📄 led显示.txt
字号:
PYE EQU P3.3
PYL EQU P3.4
RECLED EQU P3.2
A67 EQU P1.6
A4 EQU P1.4
A0 EQU P1.0
SERIN EQU P2.7
SRCK EQU P2.2
SRCLR EQU P2.1
G EQU P2.0
RCK EQU P2.3
R_DATA EQU P2.6
R_CLR EQU P2.5
R_CLK EQU P2.4
COMMAND EQU 22H
DISPNUM EQU 23H
SLNUM EQU 24H
R_VALID EQU 00H
SLEND EQU 01H
ORG 0000H
JMP MAIN
ORG 0023H
JMP SERIAL
ORG 0040H
MAIN: MOV P2,#00000001B
MOV P1,#0
MOV SCON,#01010000B
MOV PCON,#0
MOV TMOD,#21H
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
SETB ES
SETB EA
CLR R_VALID
START: JNB R_VALID,$
CLR R_VALID
CJNE COMMAND,#01H,CON1
MOV A,P3
ANL A,#11000000B
ORL A,#00001010B
CLR EA
MOV SBUF,A
JNB TI,$
CLR TI
MOV SBUF,A
JNB TI,$
CLR TI
SETB EA
JMP START
CON1: CJNE COMMAND,#02H,START
MOV P3,#0FFH
CLR SLEND
MOV SLNUM,#0
LOOP2: MOV DPTR,#TAB_SAVE
MOV A,SLNUM
MOV B,#96
MUL AB
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
SETB A67
SETB A4
CLR A4
SETB A4
MOV A,SLNUM
JZ CON3
SETB A0
CLR PYE
SETB PYE
JNB RECLED,$
JB RECLED,$
CLR A0 ;定位在第二段开始放
CON3: MOV DISPNUM,#0
CLR PYE
SETB PYE
SETB SERIN
CLR SRCLR
SETB SRCLR
LOOP1: CALL DISPLAY
MOV TH0,#0FFH
MOV TL0,#0
SETB TR0
CON6: JB RECLED,CON4
JB RECLED,$
JB SLEND,CON5
INC SLNUM
MOV A,SLNUM
ANL A,#01H
MOV SLNUM,A
CLR TR0 ;继续另一段
JMP LOOP2
CON5: CLR TR0
CLR SLEND
SETB G
JMP START
CON4: JNB TF0,CON6
CLR TF0
CLR TR0
JMP LOOP1
DISPLAY:SETB G
CLR SRCK
SETB SRCK
CLR SRCK
CLR RCK
SETB RCK
CLR RCK
CLR R_CLR
SETB R_CLR
CLR A
MOVC A,@A+DPTR
MOV R1,#8
LOOP3: RLC A
MOV R_DATA,C
CLR R_CLK
SETB R_CLK
CLR R_CLK
DJNZ R1,LOOP3
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R1,#8
LOOP4: RLC A
MOV R_DATA,C
CLR R_CLK
SETB R_CLK
CLR R_CLK
DJNZ R1,LOOP4
INC DPTR
CLR SERIN
INC DISPNUM
CJNE DISPNUM,#60H,LOOP5
LOOP5: JC LOOP6
MOV DISPNUM,#0
SETB SERIN
MOV A,DPL
CLR C
SUBB A,#96
MOV DPL,A
MOV A,DPH
SUBB A,#0
MOV DPH,A
LOOP6: CLR G
RET
TAB_SAVE:
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
SERIAL:
CLR EA
PUSH ACC
CLR RI
MOV A,SBUF
MOV B,A
SWAP A
ORL A,B
CPL A
JNZ SER_ERR
MOV A,B
ANL A,#00001111B
MOV COMMAND,A
CJNE A,#03H,SER_CON1
SETB SLEND
SER_CON1:
JNC SER_ERR
SETB R_VALID
MOV SBUF,#55H
JNB TI,$ ;数据接受认可标志
CLR TI
SER_CON2:
POP ACC
SETB EA
RETI
SER_ERR:
MOV SBUF,#0AAH
JNB TI,$ ;数据有错重发标志
CLR TI
JMP SER_CON2
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -