19282|29

21

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

完整的数控直流电源程序 [复制链接]

数控直流电流源程序

        PORT    EQU     0FE00H

        PORTA   EQU     0FE01H

        PORTB   EQU     0FE02H

        PORTC   EQU     0FE03H

        DISP0   EQU     30H

        DISP1   EQU     31H

        DISP2   EQU     32H

        DISP3   EQU     33H

        DISP4   EQU     34H

        DISP5   EQU     35H

        DISP6   EQU     36H

        DISP7   EQU     37H

        WEI     EQU     38H             ;位码

 

        DATB1   EQU     27              ;              0.54

        DATB    EQU     50              ;

        PPPP    EQU     85              ;想少数响要增大数值

 

        ADADH   EQU     0FB00H          ;AD地址

 

        DAADH   EQU     0F700H          ;DA地址

        DBUFH   EQU     3CH             ;DA高四位

        DBUFL   EQU     3DH             ;DA低八位

 

 

 

 

        LENG1   EQU     24              ;双字节二进制变BCD,40H~44H

        LENG2   EQU     4

        LENG3   EQU     3

        NUMB1   EQU     40H

        NUMB2   EQU     43H

 

 

        ORG     0000H

        AJMP    MAIN

        ORG     000BH

        AJMP    LED

        ORG     0013H

        AJMP    KEYSCAN

 

 

 

MAIN:   CLR     P1.1

        SETB    P1.1

        CLR     P1.1

        MOV     R0,#00H

        MOV     R1,#00H

        MOV     SP,#50H

        SETB    PT0

        MOV     TMOD,#01H

        MOV     TH0,#0F8H               ;2MS,显示扫描间隔

        MOV     TL0,#30H

        SETB    EA

        SETB    ET0

        SETB    TR0

        SETB    IT1

        SETB    EX1

        CLR     00H                     ;电流千位合法位

        CLR     01H                     ;显示闪烁

 

        MOV     3EH,#00H                ;显示数据

        MOV     3FH,#00H

        MOV     39H,#00H                ;合字暂存

        MOV     3CH,#00H

        MOV     3DH,#00H

        MOV     45H,#00H                ;拆字暂存

 

        SETB    P1.0                    ;过载

 

        MOV     DPTR,#PORT              ;ABC口入

        MOV     A,#03H

        MOVX    @DPTR,A

        MOV     DPTR,#PORTA             ;列扫描输出低电平

        MOV     A,#0H

        MOVX    @DPTR,A

        MOV     3AH,#00H

        MOV     3BH,#00H

 

        MOV     30H,#0

        MOV     31H,#0

        MOV     32H,#0

        MOV     33H,#0

        MOV     34H,#0

        MOV     35H,#0

        MOV     36H,#0

        MOV     37H,#0

        MOV     WEI,#00H

        SETB    RS0

        SETB    RS1

        MOV     R0,#DISP0             ;显示指针           一定要用俩组

        MOV     R6,#8                 ;显示位数

        MOV     R1,#DISP0             ;键盘指针

        MOV     R7,#4                 ;键盘位数

        CLR     RS0

        CLR     RS1

 

LOOP:   ACALL   LOOPP

        ACALL   DTOA

        ACALL   ATOD

        AJMP    LOOP

 

;******************电流设置子程序***************

LOOPP:     MOV          A,3AH

           CJNE         A,#15,PASS1

           ACALL        SETONE

PASS1:     CJNE         A,#10,PASS2

           ACALL        JIA

PASS2:     CJNE         A,#11,PASS3

           ACALL        JIAN

PASS3:

           RET

 

 

 

 

 

;******************DA转换子程序*****************

DTOA:   PUSH    PSW

        SETB    RS0

        MOV     R2,3CH

        MOV     R3,3DH

        ;MOV      R2,#00H

        ;MOV      R3,#00H

        CLR     P3.5

        SETB    P3.5

        SETB    P2.3

        CLR     C

        CLR     A

        MOV     A,R2

        MOV     R7,#4

LOOP11: RLC     A

        DJNZ    R7,LOOP11

        MOV     R7,#4

LOOP22: LCALL   PRD

        DJNZ    R7,LOOP22

        CLR     C

        CLR     A

        MOV     A,R3

        MOV     R7,#8

LOOP34: LCALL   PRD

        DJNZ    R7,LOOP34

        CPL     P2.3

        POP     PSW

        RET

 

PRD:    RLC     A

        MOV     P3.0,C

        SETB    P3.1

        CPL     P3.1

        RET

 

;*****************************AD采样子程序******************************

ATOD:

HUMID:   MOV    DPTR,#0FB00H

         CLR    A

         MOVX   @DPTR,A

WAIT:    JNB    P3.4,READ       ;转换结束信号

         SJMP   WAIT

READ:    MOVX   A,@DPTR

         MOV    B,#8

         MUL    AB

 

        MOV     40H,A           ;低位

        MOV     41H,B           ;高位

        ;MOV      40H,#0F8H

        ;MOV      41H,#07H

        MOV     42H,#00H

;双字节二进制变BCD

;入口二进制42H,41H,40H高到低

;出口44H~43H,高到低

 

MUBTD:  MOV     R0,#NUMB2

        MOV     R7,#LENG2

        CLR     A

LOOP18:  MOV     @R0,A

        INC     R0

        DJNZ    R7,LOOP18

        MOV     R7,#LENG1

LOOP48:  MOV     R1,#NUMB1

        MOV     R6,#LENG3

        CLR     C

LOOP28:  MOV     A,@R1

        RLC     A

        MOV     @R1,A

        INC     R1

        DJNZ    R6,LOOP28

        MOV     R5,#LENG2

        MOV     R0,#NUMB2

LOOP38: MOV     A,@R0

        ADDC    A,@R0

        DA      A

        MOV     @R0,A

        INC     R0

        DJNZ    R5,LOOP38

        DJNZ    R7,LOOP48

 

 

;拆字程序*************

              MOV           R0,#DISP4

              MOV           A,44H

              ACALL         SEPA1

              MOV           R0,#DISP6

              MOV           A,43H

              ACALL         SEPA1

              RET

 

SEPA1:        MOV           45H,A

              ANL           A,#0F0H

              SWAP          A

              MOV           @R0,A

              INC           R0

              MOV           A,45H

              ANL           A,#0FH

              ;SWAP          A

              MOV           @R0,A

              ;RET

 

 

         MOV    DPTR,#0FB01H

         CLR    A

         MOVX   @DPTR,A

WAIT1:   JNB    P3.4,READ1       ;转换结束信号

         SJMP   WAIT1

READ1:   MOVX   A,@DPTR

         CLR    C

         ;MOV    A,#68

         CJNE   A,#PPPP,LLI

LLI:     JNC     LL2              ;集电极电压大于5V则不报警

         CLR   P1.0               ;负载电压大于10V

         RET

LL2:     SETB  P1.0

         RET

 

 

;闭环*****************************

        CLR     C

        MOV     A,43H

        SUBB    A,3FH

        MOV     46H,A              ;

        MOV     A,44H

        SUBB    A,3EH

        MOV     47H,A              ;

       

       

 

 

 

;***********键盘显示中断程序*****************

 

;用定时中断0,显示扫描,30H~37H是段码存放地址,38H是位码地址

;8155 PB0~PB3段码输出,PB4~PB7位码输出

 

;用外部中断1键盘扫描,PA0~PA3列扫描输出,PC0~PC3;输入,P2.0CS,P2.1IO/M

;出口数值是0~15,存在3AH,3BH用作放键暂存

 

;用寄存器第3

;已用R0,R2,R3,R4,R5,R6,其中R0,R6为显示用,R1,R2,R3,R7为键盘用,R4,R5延时用

 

 

;*******************中断显示扫描子程序*****************

LED:    PUSH    PSW

        PUSH    ACC

        PUSH    B

        PUSH    DPH

        PUSH    DPL

        SETB    RS0

        SETB    RS1

        MOV     TH0,#0F8H             ;2MS

        MOV     TL0,#30H

        MOV     A,@R0

        ADD     A,WEI

        MOV     DPTR,#PORTB

        MOVX    @DPTR,A

        MOV     A,WEI

        ADD     A,#10H

        MOV     WEI,A

        INC     R0

        ;ACALL   DELAY

        DJNZ     R6,LED1

        MOV     WEI,#00H

        MOV     R0,#DISP0

        MOV     R6,#8

 

LED1:   POP     DPL

        POP     DPH

        POP     B

        POP     ACC

        POP     PSW

        RETI

 

;**************中断键盘扫描子程序************

KEYSCAN:   PUSH         PSW

           PUSH         ACC

           PUSH         B

           PUSH         DPH

           PUSH         DPL

           SETB         RS0

           SETB         RS1

           ACALL        DELAY1                 ;消抖延时

           JNB          P3.3,LIST

           MOV          DPTR,#PORTA            ;恢复B口输出低电平

           MOV          A,#00H

           MOVX         @DPTR,A

           POP          DPL

           POP          DPH

           POP          B

           POP          ACC

           POP          PSW

           RETI                                ;没有按

LIST:      MOV          DPTR,#PORTC

           MOVX         A,@DPTR

           MOV          3BH,A

           MOV          R2,#0FEH

           MOV          R3,#00H

LINE0:     MOV          DPTR,#PORTA

           MOV          A,R2

           MOVX         @DPTR,A

           MOV          DPTR,#PORTC

           MOVX         A,@DPTR

           JB           ACC.0,LINE1

           MOV          A,#0

           AJMP         TRYK

LINE1:     JB           ACC.1,LINE2

           MOV          A,#1

           AJMP         TRYK

LINE2:     JB           ACC.2,LINE3

           MOV          A,#2

           AJMP         TRYK

LINE3:     JB           ACC.3,NEXT

           MOV          A,#3

           AJMP         TRYK

NEXT:      ;INC          R3

           MOV          A,R3

           ADD          A,#4

           MOV          R3,A

 

           MOV          A,R2

           JNB          ACC.3,EXIT

           RL           A

           MOV          R2,A

           AJMP         LINE0

EXIT:      MOV          DPTR,#PORTA              ;恢复B口输出低电平

           MOV          A,#00H

           MOVX         @DPTR,A

           POP          DPL

           POP          DPH

           POP          B

           POP          ACC

           POP          PSW

           RETI                                  ;没有按

TRYK:      ADD          A,R3

           MOV          3AH,A

 

 

LETK:      MOV          DPTR,#PORTC

           MOVX         A,@DPTR

           XRL          A,3BH

           JZ           LETK

           MOV          DPTR,#PORTA              ;恢复B口输出低电平

           MOV          A,#00H

           MOVX         @DPTR,A

           POP          DPL

           POP          DPH

           POP          B

           POP          ACC

           POP          PSW

           RETI

 

 

 

 

 

 

 

;*******************电流设置****************

SETONE:

           SETB         RS0

           SETB         RS1

           ;SETB         01H                     ;置显示闪烁位

SETONE1:   MOV          A,3AH

           CJNE         A,#10,L1

L1:        JNC          SETONE1

 

           JB           00H,L3

           CJNE         A,#2,L2                  ;2000MA

           MOV          DISP0,#2

           MOV          DISP1,#0

           MOV          DISP2,#0

           MOV          DISP3,#0

 

           ;CLR          01H

           CLR          RS0

           CLR          RS1

           PUSH         PSW

           SETB         RS1

           ACALL        BCDHEX                   ;十六位BCD变十六进制

           ACALL        SUBBV                    ;*2再送DA

           POP          PSW

           CLR          A

           RET

L2:        MOV          3AH,#0FFH

           JNC          SETONE1

           SETB         00H

 

L3:        MOV          @R1,A                    ;即时刷新显示缓冲区

           INC          R1

           MOV          3AH,#0FFH

           DJNZ         R7,SETONE

           MOV          R7,#4

           MOV          R1,#30H

           CLR          00H

           ;CLR          01H

           CLR          RS0

           CLR          RS1

 

           PUSH         PSW

           SETB         RS1

           ACALL        BCDHEX                  ;16字节BCD变二进制

           ACALL        SUBBV                   ;*5/8

           POP          PSW

           CLR          A

           RET

 

 

 

;**********加电流

JIA:       MOV          3AH,#0FFH

           MOV          A,DISP3

           INC          A

           MOV          DISP3,A

           CJNE         A,#10,OUT

           MOV          DISP3,#0

           MOV          A,DISP2

           INC          A

           MOV          DISP2,A

           CJNE         A,#10,OUT

           MOV          DISP2,#0

           MOV          A,DISP1

           INC          A

           MOV          DISP1,A

           CJNE         A,#10,OUT

           MOV          DISP1,#0

           MOV          A,DISP0

           INC          A

           MOV          DISP0,A

           CJNE         A,#2,OUT

           MOV          DISP0,#1

           MOV          DISP1,#9

           MOV          DISP2,#9

           MOV          DISP3,#9

 

OUT:       PUSH         PSW

           SETB         RS1

           ACALL        BCDHEX

           ACALL        SUBBV

           POP          PSW

           CLR          A

           RET

;**********减电流

JIAN:      MOV          3AH,#0FFH

           MOV          A,DISP3

           DEC          A

           MOV          DISP3,A

           CJNE         A,#0FFH,OUT1

           MOV          DISP3,#9

           MOV          A,DISP2

           DEC          A

           MOV          DISP2,A

           CJNE         A,#0FFH,OUT1

           MOV          DISP2,#9

           MOV          A,DISP1

           DEC          A

           MOV          DISP1,A

           CJNE         A,#0FFH,OUT1

           MOV          DISP1,#9

           MOV          A,DISP0

           DEC          A

           MOV          DISP0,A

           CJNE         A,#0FFH,OUT1

           MOV          DISP0,#0

           MOV          DISP1,#0

           MOV          DISP2,#0

           MOV          DISP3,#0

 

OUT1:      PUSH         PSW

           SETB         RS1

           ACALL        BCDHEX

           ACALL        SUBBV

           POP          PSW

           CLR          A

           RET

 

 

BCDHEX:

       MOV R7,#03H

       MOV R0,#DISP0

       CLR A

       MOV R1,A

       MOV R2,A

       MOV R4,A

       MOV R5,A

       MOV R3,A

       MOV A,@R0

       MOV R1,A

       CLR C

LOOP16: MOV A,R1

       ADD A,R1

       MOV R1,A

       MOV A,R2

       ADDC A,R2

       MOV R2,A

       MOV A,R1

       MOV R3,A

       MOV A,R2

       MOV R4,A

       MOV A,R1

       ADD A,R1

       MOV R1,A

       MOV A,R2

       ADDC A,R2

       MOV R2,A

       MOV A,R1

       ADD A,R1

       MOV R1,A

       MOV A,R2

       ADDC A,R2

       MOV R2,A

       MOV A,R1

       ADD A,R3

       MOV R1,A

       MOV A,R2

       ADDC A,R4

       MOV R2,A

       INC R0

       MOV A,@R0

       MOV R5,A

       MOV A,R1

       ADD A,R5

       MOV R1,A

       MOV A,R2

       ADDC A,#00H

       MOV R2,A

       MOV R5,#00H

       DJNZ R7,LOOP16

       RET

 

SUBBV:     MOV          3EH,R2

           MOV          3FH,R1

 

           MOV          R4,3EH               ;高位

           MOV          R3,3FH             ;低位

           MOV          R2,#DATB1

;********************************5

MULI:

      MOV A,R2   ;取乘数

      MOV B,R3   ;取被乘数低位

      MUL AB     ;计算(R3)*(R2)

      MOV R5,A    ; 乘积的低位送R5

      MOV R6,B     ; 乘积的高位送R6

      MOV A,R2      ;恢复乘数

      MOV B,R4      ;取被乘数高位

      MUL AB         ;计算(R4)*(R2)

      ADD A,R6       ;(R3)*(R2)积的高位加(R4)*(R2)积的低位

      MOV R6,A       ;存结果

      MOV A,B         ;(R4)*(R2)

      ADDC A,#00H      ; (R4)*(R2)积的高位加低位进位

      MOV R7,A         ;存最高位

      ;RET

 

 

 

 

      MOV       A,R6

      MOV       R1,A

      MOV       A,R5

      MOV       R0,A

 

;*******************8

 

        MOV     R2,#00H

        MOV     R3,#DATB

        MOV     R4,#00H

        MOV     R5,#00H

        MOV     R7,#10H

 

CHU5:   MOV     A,R0

        ADD     A,R0

        MOV     R0,A

        MOV     A,R1

        ADDC    A,R1

        MOV     R1,A

        MOV     A,R2

        ADDC    A,R2

        MOV     R2,A

        MOV     A,R4

        ADD     A,R4

        MOV     R4,A

        MOV     A,R5

        ADDC    A,R5

        MOV     R5,A

        CJNE    R2,#DATB,LOOP07

LOOP07:  JC      LOOP17

        MOV     A,R2

        SUBB    A,R3

        MOV     R2,A

        MOV     A,R4

        ADD     A,#01H

        MOV     R4,A

        MOV     A,R5

        ADDC    A,#00H

        MOV     R5,A

LOOP17:  DJNZ    R7,CHU5

 

        MOV     3CH,R5                ;装入DA转换

        MOV     3DH,R4

        RET

 

 

 

 

 

DELAY1:    MOV          R4,#100                   ;消抖延时20MS   70 10MS

DEL21:     MOV          R5,#100

DEL11:     DJNZ         R5,$

           DJNZ         R4,DEL21

           RET

           END

 

此帖出自电源技术论坛

最新回复

有图吗?分享下哦  luoronghua242@126.com  详情 回复 发表于 2009-11-7 12:29
点赞 关注
 
 

回复
举报

1284

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 

Re: 完整的数控直流电源程序

我看不惯MOV。。。555
此帖出自电源技术论坛
个人签名呼呼...在校应届大四学生,代做电子类毕业设计(测量类、仪器类、控制类、无线通信类、电子产品类、界面设计类、纯论文类等等,一一俱全)。涉及各种单片机软硬件设计、电路模拟分析、FPGA、CPLD、ARM7/ARM9、LINUX、VB/VC++/QT界面等等。包过。。。欢迎咨询。Tel:13957160506。QQ:273437087
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

Re: 完整的数控直流电源程序

怎么不是查表的?

此帖出自电源技术论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 

Re: 完整的数控直流电源程序

我正在做数控直流电源的毕业设计,能够把程序对应的电路图发给我看一下吗? 拜托了,谢谢。我的邮箱lishuweilili@126.com QQ:271758891
此帖出自电源技术论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 

Re: 完整的数控直流电源程序

我正在做数控直流电源的毕业设计,能够把程序对应的电路图发给我看一下吗?
拜托了,谢谢。我的邮箱lishuweilili@126.com QQ:271758891
此帖出自电源技术论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 

Re: 完整的数控直流电源程序

我是桂林电子科技大学的大三学生,我想做个电源,可以找上面那个程序的电路图发经我吗?谢谢 邮箱:xfx111168@126.com QQ:377238188
此帖出自电源技术论坛
 
 
 

回复

1284

帖子

0

TA的资源

五彩晶圆(中级)

7
 

Re: 完整的数控直流电源程序

眼花了啦。。。学生c好点啊,楼上的
此帖出自电源技术论坛
个人签名呼呼...在校应届大四学生,代做电子类毕业设计(测量类、仪器类、控制类、无线通信类、电子产品类、界面设计类、纯论文类等等,一一俱全)。涉及各种单片机软硬件设计、电路模拟分析、FPGA、CPLD、ARM7/ARM9、LINUX、VB/VC++/QT界面等等。包过。。。欢迎咨询。Tel:13957160506。QQ:273437087
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 

回复:完整的数控直流电源程序

我一点都不明白.没有电路图
此帖出自电源技术论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 

回复:完整的数控直流电源程序

是啊 ,没图纸啊,遗憾啊光程序看不懂啊,呵呵呵
此帖出自电源技术论坛
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(初级)

10
 

回复:完整的数控直流电源程序

没有图纸? 程序最好当附件发
此帖出自电源技术论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
这个有图吗? 我邮箱 keralolooo19870618@126.com 拜托发个图来参考一下 万分感谢
此帖出自电源技术论坛
 
 
 

回复

362

帖子

0

TA的资源

一粒金砂(初级)

12
 
遗憾啊光程序看不懂啊
此帖出自电源技术论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

13
 
这个有图没有啊,不图怎么对应啊,发给我份好吗,谢谢,现在急用
此帖出自电源技术论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

14
 
这个有图没有啊,不图怎么对应啊,发给我份好吗,谢谢,现在急用

lliuxuchengmail@163.com
此帖出自电源技术论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(高级)

15
 
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
此帖出自电源技术论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(高级)

16
 

Re: 完整的数控直流电源程序

最好有图对应,没有电路图看得好辛苦
此帖出自电源技术论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

17
 

Re: 完整的数控直流电源程序

虽然很难看懂啊 不过也谢谢分享了阿
此帖出自电源技术论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

18
 

Re: 完整的数控直流电源程序

我也正在写数控直流稳压电源设计的论文了
     能否把图发给我啊   
         就程序  看不懂啊
             拜托
         我的邮箱caolizxc@yahoo.com.cn
                           谢谢。。。
此帖出自电源技术论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

19
 

Re: 完整的数控直流电源程序

对应的是什么图?我正在做这个设计,很需要的,能发给我么,谢谢了,我的邮箱lurkeryc@yahoo.com.cn,如果有C51语言的最好,这个好难懂的。。
此帖出自电源技术论坛
 
 
 

回复

25

帖子

0

TA的资源

纯净的硅(初级)

20
 
此帖出自电源技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表