ledtest.asm

来自「LED显示屏」· 汇编 代码 · 共 459 行 · 第 1/2 页

ASM
459
字号
        ADDH EQU 30H
        ADDL EQU 31H
        COUNT EQU 32H
        REG64 EQU 33H
        REGPING EQU 34H
        REG100 EQU 35H
        REG16 EQU 36H
        REG1 EQU 37H
        WDTRST EQU 0A6H
        COUNT_1 EQU 38H
        REG3 EQU 41H
        REG0 EQU 39H
        REG4 EQU 40H
        E BIT P1.4
        RCLKS BIT P1.5
        SCLR BIT P1.6
        SCLK BIT P1.7
        ENRD BIT P3.2
        DISEN BIT 0H
        R_FLAG BIT 1H
        ORG 0000H
        JMP MAIN
        ORG 000BH
        JMP INTT0
        ORG 0023H
        JMP INTES
        ORG 0030H
MAIN:
        MOV SP,#60H
        CLR ENRD
        LCALL OFFDIS
        MOV P0,#0FFH
        SETB E
        SETB SCLR
        CLR DISEN
        CLR RCLKS
        SETB RCLKS
        MOV R0,#0
        MOV R1,#0
        MOV A,#0FFH
        MOV TMOD,#21H
        MOV TL1,#0FCH
        MOV TH1,#0FCH
        MOV TL0,#71H
        MOV TH0,#4EH
        MOV REG100,#50
        MOV REG4,#0
        MOV REG64,#0
        MOV REG16,#16
        MOV ADDH,#0
        MOV ADDL,#0
        MOV COUNT_1,#0
        SETB EA
        SETB ES
        SETB PS
        CLR PT0
        SETB TR0
        MOV PCON,#80H
        SETB ET0
        CLR ET1
        SETB TR1
        MOV SCON,#50H
        MOV DPTR,#0
        CLR E
        CLR ENRD
        MOV R0,#0
        MOV R1,#16
        MOV DPTR,#TAB
        MOV REG0,#1
        MOV REG3,#200
L0:     MOV A,#0
        MOVC A,@A+DPTR
        MOV P0,A
        CLR SCLK
        SETB SCLK
        INC DPTR
        DJNZ R0,L0
        LCALL INCH
        CLR RCLKS
        SETB RCLKS
        DJNZ R1,L0
        MOV R1,#16
        MOV DPTR,#TAB
        MOV A,P1
        ORL A,#00001111B
        MOV P1,A
        JNB DISEN,L0
        SETB TR0
        MOV R0,#0
        MOV R1,#16
        MOV DPTR,#0
        MOV REG0,#1
        MOV REG3,#200
        MOV A,#0

;ML2:    MOVX A,@DPTR
;        MOV P0,A
;        CLR SCLK
;        SETB SCLK
;        INC DPTR
;        DJNZ R0,ML2
;        MOV R0,#0
;        LCALL INCH
;        CLR RCLKS
;        SETB RCLKS
;       DJNZ R1,ML2
;        MOV R1,#16
;        MOV DPH,ADDH
;        MOV DPL,#0
;        ;MOV DPTR,#0
;        ORL P1,#00001111B
;        JB DISEN,ML2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JL0:
        CJNE R6,#1,JL1
        SETB R_FLAG
        LCALL DIS1
        JMP JL0
JL1:
        CJNE R6,#2,JL2
        SETB R_FLAG
        LCALL DIS2
        JMP JL0
JL2:
        SETB R_FLAG
        LCALL DIS3
        JMP JL0

REC:
        PUSH ACC
        PUSH 00H
        PUSH 01H
        MOV R0,#0
        MOV DPTR,#0
        CLR R_FLAG
        MOV R1,#16
        JNB RI,$                          ;接收有多少K的数据
        CLR RI
        MOV A,SBUF
        MOV COUNT,A
        MOV REG1,A
        JNB RI,$
        CLR RI
        MOV R6,SBUF                        ;决定换行的时间
        PUSH 32H
        MOV DPTR,#0                        ;接收RAM数据
RECL0:
        JNB RI,$
        CLR RI
        MOV A,SBUF
        CPL A
        MOVX @DPTR,A
        ;MOVX A,@DPTR
        ;MOV SBUF,A
        ;JNB TI,$
        ;CLR TI
        INC DPTR
        DJNZ R0,RECL0
        DJNZ R1,RECL0
        MOV R1,#16
        DJNZ COUNT,RECL0
        MOV COUNT,REG1
        ;CALL SEND1K
        MOV R1,#16
        MOV R0,#0
        MOV A,#0FFH
CL1:
        INC DPTR
        MOVX @DPTR,A
        DJNZ R0,CL1
        DJNZ R1,CL1
        MOV R1,#16
        MOV R0,#0

        MOV DPTR,#00H

        POP 32H
        POP 01H
        POP 00H
        POP ACC
        MOV ADDH,#0
        MOV ADDL,#0
        RET
SEND66H:
        PUSH ACC
        MOV SBUF,#66H
        JNB TI,$
        CLR TI
        POP ACC
        RET
INTES:
        PUSH ACC
        CLR ES
        CLR TR0
        CLR RI
        MOV A,SBUF
        CJNE A,#55H,INTESL1
        LCALL REC
        SETB DISEN
        JMP BACK2
INTESL1:
        CJNE A,#66H,INTESL2
        LCALL SEND66H
        JMP BACK2
INTESL2:
        CJNE A,#77H,INTESL3
        CLR SCLR
        JMP BACK2
INTESL3:
        CJNE A,#88H,INTESL4
        SETB SCLR
        JMP BACK2
INTESL4:
        CJNE A,#99H,INTESL5
        MOV SBUF,#99H
        JNB TI,$
        CLR TI
INTESL5:
        CJNE A,#100,BACK2
        MOV WDTRST,#01EH
        MOV WDTRST,#0E1H
        MOV SBUF,#100
        JNB TI,$
        CLR TI
BACK2:
        SETB ES
        SETB TR0
        POP ACC
        RETI
INTT0:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?