微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 谁能帮我把这个汇编程序改成c语言的啊

谁能帮我把这个汇编程序改成c语言的啊

时间:10-02 整理:3721RD 点击:

;****************************资源分配**************************

     FLAG1  EQU 54H;是否检测到DS18B20标志位

     FLAG2  EQU 00H

     COUNT  EQU 63H

     CSA    EQU P0.4

     CSB    EQU P0.3

     RS     EQU P0.2

     RW     EQU P0.1

     E      EQU P0.0

     COM    EQU 21H       ;命令字

     DAT    EQU 22H       ;显示数据

     column EQU 23H     ;列

     pagef  EQU 24h      ;页

     cpage  EQU 25H

     ccolumn EQU 26H    ;列(0-15)

     CODE             EQU 27h

     column2          EQU 52H

     pagef2           equ 60h

     cpage2           EQU 61H

     ccolumn2         EQU 62H

     column3          EQU 2eH

     pagef3           equ 2fh

     cpage3           EQU 30H

     ccolumn3         EQU 31H

     column4          EQU 32H

     pagef4           equ 33h

     cpage4           EQU 34H

     ccolumn4         EQU 35H

     column5          EQU 36H

     pagef5           equ 37h

     cpage5           EQU 38H

     ccolumn5         EQU 39H

;*****************************主程序开始******************

ORG 0000H

LJMP START

ORG 0003H

LJMP INT0                         ;外部中断

ORG 0030H

START: MOV SP,#70H

       MOV P2,#0F0H

       CLR A                           

       CLR F0                     ;清设置键

       CLR FLAG2                  ;清确认键

       MOV COUNT,#0               ;中断次数计数

       SETB IT0

       SETB EX0

       SETB EA

      

       LCALL INT                  ;LCD12864初始化子程序

       LCALL CLEAR                ;LDC12864清屏子程序

       LCALL DISPLAY1             ;显示"温度自动控制系统"

       LCALL DISPLAY2             ;显示"设置温度"

       LCALL DISPLAY3             ;显示预设的温度

       LCALL DISPLAY4             ;显示"实际温度"

       LCALL DISPLAY5

       LCALL GET_TEMPER           ;调用读温度子程序

       ACALL DISPLAY5             ;调用显示

M:   

       LCALL GET_TEMPER

       LCALL DELAY1

      

MM:     LCALL DISPLAY3

MM1:    JB F0,MM4                ;是否按上"设置"键

        JNB F1,M                 ;是否按下"确认"键

        MOV A,48H

        CJNE A,43H,MM5

        MOV A,55H

        CJNE A,42H,MM5

        MOV A,56H

        CJNE A,41H,MM5

        LJMP MM8

      

MM4:    MOV A,COUNT

        CJNE A,#1,MM2

        LCALL DISPLAY8

        LCALL DISPLAY8

        LJMP MM

MM2:    CJNE A,#2,MM3

        LCALL DISPLAY9

        LCALL DISPLAY9

MM3:    CJNE A,#3,MM

        LCALL DISPLAY10

        LCALL DISPLAY10

        LJMP MM

MM5:    JC  MM7

        LJMP MM6

MM6:    LCALL DISPLAY6

        CLR  P0.5

        SETB P0.6

        SETB P0.7

        LJMP M

MM7:   LCALL DISPLAY7

       SETB P0.5

       CLR  P0.6

       SETB P0.7

       LJMP M

MM8:   LCALL DISPLAY11

       SETB P0.5

       SETB P0.6

       CLR  P0.7

       LJMP M

      

;***********************外部中断0子程序**************

INT0:

      CLR EX0

      INC COUNT                 ;中断计数器加1

      CPL P3.0

      MOV DPTR,#JS

      MOV A,P2

      MOV P2,#0FH

      MOV 47H,P2

      JNB ACC.4,E1

      JNB ACC.5,E2

      JNB ACC.6,E3

      JNB ACC.7,E4

      SETB EX0

      RETI

E1:   MOV 20H,#0

      LJMP KEYH

E2:   MOV 20H,#4

      LJMP KEYH

E3:   MOV 20H,#8

      LJMP KEYH

E4:   MOV 20H,#12

      LJMP KEYH

KEYH:MOV A,47H

     JNB ACC.0,D0

     JNB ACC.1,D1

     JNB ACC.2,D2

     JNB ACC.3,D3

     SETB EX0

     RETI

D0:  MOV A,#0

     ADD A,20H

     MOV 59H,A

     MOV B,#3

     MUL AB

     JMP @A+DPTR

D1:  MOV A,#1

     ADD A,20H

     MOV 59H,A

     MOV B,#3

     MUL AB

     JMP @A+DPTR

D2:  MOV A,#2

     ADD A,20H

     MOV 59H,A

     MOV B,#3

     MUL AB

     JMP @A+DPTR

D3:  MOV A,#3

     ADD A,20H

     MOV 59H,A

     MOV B,#3

     MUL AB

     JMP @A+DPTR

JS:  LJMP LOOP0

     LJMP LOOP1

     LJMP LOOP2

     LJMP LOOP3

     LJMP LOOP4

     LJMP LOOP5

     LJMP LOOP6

     LJMP LOOP7

     LJMP LOOP8

     LJMP LOOP9

     LJMP LOOP10

     LJMP LOOP11

LOOP0:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP1:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP2:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP3:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP4:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP5:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP6:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP7:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP8:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP9:

     ACALL SHIFT1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP10:

     SETB F0              ;按下设置键

     MOV COUNT,#1

     MOV P2,#0F0H

     SETB EX0

     RETI

LOOP11:                  ;按下"确认"键

     CLR F0

     SETB F1

     MOV COUNT,#0

     MOV P2,#0F0H

     SETB EX0

     RETI

SHIFT1:

      JB F0,LLL

      LJMP EXIT

LLL:  MOV A,COUNT

      CJNE A,#2,LLL1

      MOV 48H,59H

      LJMP EXIT

LLL1: CJNE A,#3,LLL2

      MOV 55H,59H

      LJMP EXIT

LLL2: CJNE A,#4,EXIT

      MOV 56H,59H

      SETB F1

      CLR  F0

EXIT: RET

;*************************显示子程序*************************

DISPLAY1:                        ;显示"自动温度控制系统" 循环效果

       mov column4,#48

       mov pagef4,#0             ;温

       mov code,#0

       lcall writeright2   

       LCALL DELAY1

       mov column4,#32

       mov pagef4,#0             ;温

       mov code,#0

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;度

       mov code,#1

       lcall writeright2

       LCALL DELAY1

       mov column4,#16

       mov pagef4,#0             ;温

       mov code,#0

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;度

       mov code,#1

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;自

       mov code,#2

       lcall writeright2

       LCALL DELAY1

       mov column4,#0

       mov pagef4,#0             ;温

       mov code,#0

       lcall writeright2

       mov column4,#16

       mov pagef4,#0             ;度

       mov code,#1

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;自

       mov code,#2

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;动

       mov code,#3

       lcall writeright2

       LCALL DELAY1

       mov column3,#48

       mov pagef3,#0             ;温

       mov code,#0

       lcall writeleft2

       mov column4,#0

       mov pagef4,#0             ;度

       mov code,#1

       lcall writeright2

       mov column4,#16

       mov pagef4,#0             ;自

       mov code,#2

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;动

       mov code,#3

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;控

       mov code,#4

       lcall writeright2

       LCALL DELAY1

       mov column3,#32

       mov pagef3,#0             ;温

       mov code,#0

       lcall writeleft2

       mov column3,#48

       mov pagef3,#0             ;度

       mov code,#1

       lcall writeleft2

       mov column4,#0

       mov pagef4,#0             ;自

       mov code,#2

       lcall writeright2

       mov column4,#16

       mov pagef4,#0             ;动

       mov code,#3

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;控

       mov code,#4

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;制

       mov code,#5

       lcall writeright2

       LCALL DELAY1

       mov column3,#16

       mov pagef3,#0             ;温

       mov code,#0

       lcall writeleft2

       mov column3,#32

       mov pagef3,#0             ;度

       mov code,#1

       lcall writeleft2

       mov column3,#48

       mov pagef3,#0             ;自

       mov code,#2

       lcall writeleft2

       mov column4,#0

       mov pagef4,#0             ;动

       mov code,#3

       lcall writeright2

       mov column4,#16

       mov pagef4,#0             ;控

       mov code,#4

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;制

       mov code,#5

       lcall writeright2

        mov column4,#48

       mov pagef4,#0             ;系

       mov code,#6

       lcall writeright2

       LCALL DELAY1

       mov column3,#0

       mov pagef3,#0             ;温

       mov code,#0

       lcall writeleft2

       mov column3,#16

       mov pagef3,#0             ;度

       mov code,#1

       lcall writeleft2

       mov column3,#32

       mov pagef3,#0             ;自

       mov code,#2

       lcall writeleft2

       mov column3,#48

       mov pagef3,#0             ;动

       mov code,#3

       lcall writeleft2

       mov column4,#0

       mov pagef4,#0             ;控

       mov code,#4

       lcall writeright2

       mov column4,#16

       mov pagef4,#0             ;制

       mov code,#5

       lcall writeright2

       mov column4,#32

       mov pagef4,#0             ;系

       mov code,#6

       lcall writeright2

       mov column4,#48

       mov pagef4,#0             ;统

       mov code,#7

       lcall writeright2

       LCALL DELAY1

       RET

DISPLAY2:                         ;显示"设置温度"

       mov column3,#16            ;设

       mov pagef3,#2

       mov code,#8

       lcall writeleft2

       LCALL DELAY1

       mov column3,#32          ;置

       mov pagef3,#2

       mov code,#9

       LCALL writeleft2

       LCALL DELAY1

        mov column3,#48          ;温

       mov pagef3,#2

       mov code,#0

       lcall writeleft2

       LCALL DELAY1

       mov column4,#0            ;度

       mov pagef4,#2

       mov code,#1

       lcall writeright2

       LCALL DELAY1

       RET

DISPLAY3:

       mov column2,#16

       mov pagef2,#2

       mov code,#10

       lcall writeright

                                  ;显示预设的温度

       mov column2,#24

       mov pagef2,#2

       mov code,48H

       lcall writeright

       mov column2,#32

       mov pagef2,#2

       mov code,55H

       lcall writeright

       mov column2,#40

       mov pagef2,#2             ;.

       mov code,#11

       lcall writeright

       mov column2,#48

       mov pagef2,#2

       mov code,56H

       lcall writeright

       RET

      

DISPLAY4:                              ;显示"实际温度"

       mov column3,#16            ;实

       mov pagef3,#4

       mov code,#10

       lcall writeleft2

       LCALL DELAY1

       mov column3,#32           ;际

       mov pagef3,#4

       mov code,#11

       lcall writeleft2

       LCALL DELAY1

       mov column3,#48          ;温

       mov pagef3,#4

       mov code,#0

       lcall writeleft2

       LCALL DELAY1

       mov column3,#0          ;度

       mov pagef3,#4

       mov code,#1

       lcall writeright2

       LCALL DELAY1

        RET

DISPLAY5:                            ;显示实际的温度

      MOV A,29H

      MOV C,40H  ;28的位地址

      RRC A

      MOV C,41H

      RRC A

      MOV C,42H

      RRC A

      MOV C,43H

      RRC A

      MOV 51H,A

      ANL 29H,#0FH

      MOV A,29H

      MOV B,#6

      MUL AB

      MOV 50H,A

      mov a,51H

      mov b,#10

      div ab

      mov 43H,a

      mov 42H,b

      MOV A,50H

      MOV B,#10

      div AB

      MOV 41H,A

       MOV 40H,B

       mov column2,#16

       mov pagef2,#4

       mov code,#10

       lcall writeright

       mov column2,#24            ;实际温度

       mov pagef2,#4

       mov code,43h

       lcall writeright

       mov column2,#32

       mov pagef2,#4

       mov code,42h

       lcall writeright

       mov column2,#40

       mov pagef2,#4             ;.

       mov code,#11

       lcall writeright

       mov column2,#48

       mov pagef2,#4

       mov code,41h

       lcall writeright

       RET

      

DISPLAY6:

       mov column3,#24

       mov pagef3,#6             ;状

       mov code,#13

       lcall writeleft2

       LCALL DELAY1

       mov column3,#40

       mov pagef3,#6             ;态

       mov code,#14

       lcall writeleft2

       LCALL DELAY1

       mov column,#56

       mov pagef,#6             ; :

       mov code,#10

       lcall writeleft

       LCALL DELAY1

       mov column4,#0

       mov pagef4,#6             ;加

       mov code,#15

       lcall writeright2

       LCALL DELAY1

       mov column4,#16

       mov pagef4,#6             ;热

       mov code,#16

       lcall writeright2

       LCALL DELAY1

       mov column4,#32

       mov pagef4,#6             ; !

       mov code,#19

       lcall writeright2

       LCALL DELAY1

       RET

DISPLAY7:

       mov column3,#24

       mov pagef3,#6             ;状

       mov code,#13

       lcall writeleft2

       LCALL DELAY1

       mov column3,#40

       mov pagef3,#6             ;态

       mov code,#14

       lcall writeleft2

       LCALL DELAY1

       mov column,#56

       mov pagef,#6             ; :

       mov code,#10

       lcall writeleft

       LCALL DELAY1

       mov column4,#0

       mov pagef4,#6             ;降

       mov code,#17

       lcall writeright2

       LCALL DELAY1

       mov column4,#16

       mov pagef4,#6             ;温

       mov code,#0

       lcall writeright2

       LCALL DELAY1

       mov column4,#32

       mov pagef4,#6             ;!

       mov code,#19

       lcall writeright2

       LCALL DELAY1

       RET

DISPLAY8:

         mov column2,#24

         mov pagef2,#2

         mov code,48H

         lcall writeright

         LCALL DELAY

         LCALL DELAY

         mov column2,#24

         mov pagef2,#2

         mov code,#12

         lcall writeright

         RET

         

DISPLAY9:

         mov column2,#32

         mov pagef2,#2

         mov code,55H

         lcall writeright

         LCALL DELAY

         LCALL DELAY

         mov column2,#32

         mov pagef2,#2

         mov code,#12

         lcall writeright

         RET

DISPLAY10:

        mov column2,#48

         mov pagef2,#2

         mov code,56H

         lcall writeright

         LCALL DELAY

         LCALL DELAY

         mov column2,#48

         mov pagef2,#2

         mov code,#12

         lcall writeright

         RET

      

DISPLAY11:

       mov column3,#24

       mov pagef3,#6             ;状

       mov code,#13

       lcall writeleft2

       LCALL DELAY1

       mov column3,#40

       mov pagef3,#6             ;态

       mov code,#14

       lcall writeleft2

       LCALL DELAY1

       mov column,#56

       mov pagef,#6             ; :

       mov code,#10

       lcall writeleft

       LCALL DELAY1

       mov column4,#0

       mov pagef4,#6             ;降

       mov code,#20

       lcall writeright2

       LCALL DELAY1

       mov column4,#16

       mov pagef4,#6             ;温

       mov code,#21

       lcall writeright2

       LCALL DELAY1

       mov column4,#32

       mov pagef4,#6             ;!

       mov code,#19

       lcall writeright2

       LCALL DELAY1

       RET

DISPLAY:

       mov column2,#24

       mov pagef2,#2

       mov code,48H

       lcall writeright

       mov column2,#32

       mov pagef2,#2

       mov code,55H

       lcall writeright

       mov column2,#40

       mov pagef2,#2             ;.

       mov code,#11

       lcall writeright

       mov column2,#48

       mov pagef2,#2

       mov code,56H

       lcall writeright

      MOV A,29H

      MOV C,40H  ;28的位地址

      RRC A

      MOV C,41H

      RRC A

      MOV C,42H

      RRC A

      MOV C,43H

      RRC A

      MOV 51H,A

      ANL 29H,#0FH

      MOV A,29H

      MOV B,#6

      MUL AB

      MOV 50H,A

      mov a,51H

      mov b,#10

      div ab

      mov 43H,a

      mov 42H,b

      MOV A,50H

      MOV B,#10

      div AB

      MOV 41H,A

      MOV 40H,B

       mov column2,#24            ;实际温度

       mov pagef2,#4

       mov code,43h

       lcall writeright

       mov column2,#32

       mov pagef2,#4

       mov code,42h

       lcall writeright

       mov column2,#40

       mov pagef2,#4             ;.

       mov code,#11

       lcall writeright

       mov column2,#48

       mov pagef2,#4

       mov code,41h

       lcall writeright

       RET

;***********************DS18B20复位初始化子程序***********

INIT_1820:      

      SETB P3.1

      NOP

      CLR P3.1;主机发出延时537微秒的复位低脉冲

      MOV R1,#3

TSR1: MOV R0,#107

      DJNZ R0,$

      DJNZ R1,TSR1

      SETB P3.1       ;然后拉高数据线

      NOP

      NOP

      NOP

      MOV R0,#25H

TSR2: JNB P3.1,TSR3  ;等待DS18B20回应

      DJNZ R0,TSR2

      LJMP TSR4      ; 延时

TSR3: SETB FLAG1     ; 置标志位,表示DS1820存在

      LJMP TSR5

TSR4: CLR FLAG1      ; 清标志位,表示DS1820不存在

      LJMP TSR7

TSR5: MOV R0,#117

TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间

TSR7: SETB P3.1

      RET    ; 读出转换后的温度值

      

      

      

;***********************读温度子程序*****************      

GET_TEMPER:

      SETB P3.1

      LCALL INIT_1820;先复位DS18B20

      JB FLAG1,TSS2

      RET ; 判断DS1820是否存在?若DS18B20不存在则返回

TSS2:

      MOV A,#0CCH ; 跳过ROM匹配

      LCALL WRITE_1820

      MOV A,#44H ; 发出温度转换命令

      LCALL WRITE_1820;通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒

      LCALL DISPLAY

      LCALL INIT_1820;准备读温度前先复位

      MOV A,#0CCH ; 跳过ROM匹配

      LCALL WRITE_1820

      MOV A,#0BEH ; 发出读温度命令

      LCALL WRITE_1820

      LCALL READ_18200

      RET

;*************************写命令子程序**********

WRITE_1820:

      MOV R2,#8

      CLR C

WR1:  CLR P3.1

      MOV R3,#6

      DJNZ R3,$

      RRC A

      MOV P3.1,C

      MOV R3,#23

      DJNZ R3,$

      SETB P3.1

      NOP

      DJNZ R2,WR1

      SETB P3.1

      RET

;***********************读命令子程序***********

READ_18200:

      MOV R4,#2

      MOV R1,#29H

RE00: MOV R2,#8

RE01: CLR C

      SETB P3.1

      NOP

      NOP

      CLR P3.1

      NOP

      NOP

      NOP

      SETB P3.1

      MOV R3,#9

RE10: DJNZ R3,RE10

      MOV C,P3.1

      MOV R3,#23

RE20: DJNZ R3,RE20

      RRC A

      DJNZ R2,RE01

      MOV @R1,A

      DEC R1

      DJNZ R4,RE00

      RET

;**********************左半屏写入数字子程序**************8

writeleft:            

mov dptr,#table1

push column

mov cpage,#2

mov ccolumn,#0

mov a,pagef

anl a,#07h

orl a,#0b8h            ;页地址,第0页

mov com,a

lcall prm0

mov a,column

anl a,#3fh

orl a,#40h             ;列地址,第0列

mov com,a

lcall prm0

mov a,code

mov b,#16

mul ab

add a,dpl

mov dpl,a

mov a,b

addc a,dph

mov dph,a

lp1:

mov a,#00h

movc a,@a+dptr

mov dat,a

lcall prm1

inc ccolumn

mov a,ccolumn

inc dptr

cjne a,#8,lp1

dec cpage

inc pagef

mov a,cpage

jz over1

mov a,pagef

anl a,#07h

orl a,#0b8h

mov com,a

lcall prm0

pop column

mov a,column

anl a,#3fh

orl a,#40h

mov com,a

lcall prm0

mov ccolumn,#0

ljmp lp1

over1:

ret

;************右半屏写入数字子程序*******************

writeright:

mov dptr,#table1

push column2

mov cpage2,#2

mov ccolumn2,#0

mov a,pagef2

anl a,#07h

orl a,#0b8h

mov com,a

lcall prr0

mov a,column2

anl a,#3fh

orl a,#40h

mov com,a

lcall prr0

mov a,code

mov b,#16

mul ab

add a,dpl

mov dpl,a

mov a,b

addc a,dph

mov dph,a

lp2:

mov a,#00h

movc a,@a+dptr

mov dat,a

lcall prr1

inc ccolumn2

mov a,ccolumn2

inc dptr

cjne a,#8,lp2

dec cpage2

inc pagef2

mov a,cpage2

jz over2

mov a,pagef2

anl a,#07h

orl a,#0b8h

mov com,a

lcall prr0

pop column2

mov a,column2

anl a,#3fh

orl a,#40h

mov com,a

lcall prr0

mov ccolumn2,#0

ljmp lp2

over2:

ret

;*****************左半屏写入汉字子程序*****************

writeleft2:  

mov dptr,#table2

push column3

mov cpage3,#2

mov ccolumn3,#0

mov a,pagef3

anl a,#07h

orl a,#0b8h

mov com,a

lcall prm0

mov a,column3

anl a,#3fh

orl a,#40h

mov com,a

lcall prm0

mov a,code

mov b,#32

mul ab

add a,dpl

mov dpl,a

mov a,b

addc a,dph

mov dph,a

lp3:

mov a,#00h

movc a,@a+dptr

mov dat,a

lcall prm1

inc ccolumn3

mov a,ccolumn3

inc dptr

cjne a,#16,lp3

dec cpage3

inc pagef3

mov a,cpage3

jz over3

mov a,pagef3

anl a,#07h

orl a,#0b8h

mov com,a

lcall prm0

pop column3

mov a,column3

anl a,#3fh

orl a,#40h

mov com,a

lcall prm0

mov ccolumn3,#0

ljmp lp3

over3:

ret

;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;

writeright2:  ; 右半屏写入汉字子程序

mov dptr,#table2

push column4

mov cpage4,#2

mov ccolumn4,#0

mov a,pagef4

anl a,#07h

orl a,#0b8h

mov com,a

lcall prr0

mov a,column4

anl a,#3fh

orl a,#40h

mov com,a

lcall prr0

mov a,code

mov b,#32

mul ab

add a,dpl

mov dpl,a

mov a,b

addc a,dph

mov dph,a

lp4:

mov a,#00h

movc a,@a+dptr

mov dat,a

lcall prr1

inc ccolumn4

mov a,ccolumn4

inc dptr

cjne a,#16,lp4

dec cpage4

inc pagef4

mov a,cpage4

jz over4

mov a,pagef4

anl a,#07h

orl a,#0b8h

mov com,a

lcall prr0

pop column4

mov a,column4

anl a,#3fh

orl a,#40h

mov com,a

lcall prr0

mov ccolumn4,#0

ljmp lp4

over4:

ret

;*******************右半屏写入数字子程序****************

writeleft1:  
mov dptr,#table1
push column2
mov cpage2,#2
mov ccolumn2,#0
mov a,pagef2
anl a,#07h
orl a,#0b8h
mov com,a
lcall prm0

mov a,column2
anl a,#3fh
orl a,#40h
mov com,a
lcall prm0

mov a,code
mov b,#16
mul ab
add a,dpl
mov dpl,a
mov a,b
addc a,dph
mov dph,a

lp9:
mov a,#00h
movc a,@a+dptr
mov dat,a
lcall prm1
inc ccolumn2
mov a,ccolumn2
inc dptr
cjne a,#8,lp9
dec cpage2
inc pagef2
mov a,cpage2
jz over9
mov a,pagef2
anl a,#07h
orl a,#0b8h
mov com,a
lcall prm0
pop column2
mov a,column2
anl a,#3fh
orl a,#40h
mov com,a
lcall prm0
mov ccolumn2,#0
ljmp lp9
over9:
ret


;*********************写指令代码子程序(左)*******************
PRM0:  CLR CSA
  SETB CSB
  CLR rs
  SETB rw
PRM01:  MOV P1,#0FFH
  SETB E
  MOV A,P1
  CLR E
  JB  ACC.7,PRM01
  CLR rw
  MOV P1,COM
  SETB E
  CLR E
  RET
  

;***********************写显示数据子程序(左)******************
PRM1:  CLR CSA
  SETB CSB
  CLR rs
  SETB rw
PRM11:  MOV P1,#0FFH
  SETB E
  MOV A,P1
  CLR E
  JB  ACC.7,PRM11
  SETB rs
  CLR rw
  MOV P1,DAT
  SETB E
  CLR E
  RET

;********************写指令代码子程序(右)************

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top