?? led顯示.asm
字號(hào):
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
MOV R1,COMMAND
CJNE R1,#01H,CON1
MOV R7,#0FFH
TEMP2: MOV R6,#250
TEMP1: MOV A,P3
MOV B,A
ORL A,#00111111B
CJNE A,#0FFH,TEMP0
DJNZ R6,TEMP1
DJNZ R7,TEMP2
TEMP0: MOV A,B
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 R1,#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
NOP
NOP
SETB A4
MOV A,SLNUM
JZ CON3
SETB A0
CLR PYE
SETB PYE
JB RECLED,$
JNB RECLED,$
CLR A0 ;定位在第二段開(kāi)始放
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
SETB G
JNB RECLED,$
JB SLEND,CON5
INC SLNUM
MOV A,SLNUM
ANL A,#01H
MOV SLNUM,A
CLR TR0 ;繼續(xù)另一段
MOV R6,#0FFH
LOOP11: MOV R7,#0FFH
LOOP22: NOP
NOP
NOP
DJNZ R7,LOOP22
DJNZ R6,LOOP11
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
MOV A,DISPNUM
CJNE A,#48,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 00H,00H,08H,10H,28H,90H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
TABLE1:
DB 01H,01H,01H,01H,01H,01H,01H,01H
DB 01H,01H,01H,01H,01H,01H,01H,01H
DB 01H,01H,01H,01H,01H,01H,01H,01H
DB 01H,01H,01H,01H,01H,01H,01H,01H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
DB 55H,55H,55H,55H,55H,55H,55H,55H
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:
SETB R_VALID
MOV SBUF,#55H
JNB TI,$ ;數(shù)據(jù)接受認(rèn)可標(biāo)志
CLR TI
SER_CON2:
POP ACC
SETB EA
RETI
SER_ERR:
MOV SBUF,#0AAH
JNB TI,$ ;;數(shù)據(jù)有錯(cuò)重發(fā)標(biāo)志
CLR TI
JMP SER_CON2
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -