⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ledscan2.asm

📁 自己写的秒表程序
💻 ASM
字号:
;use interupting method to display LED
Counter EQU 59H		;记录正在扫描哪个数码管
FIRST EQU P0.7
SECOND EQU P0.6
THIRD EQU P0.5
FORTH EQU P0.4
FIFTH EQU P0.3
SIXTH EQU P0.2
DISPBUF EQU 30H		;显示内容缓冲区
ORG 0000H
AJMP START

ORG 000BH
AJMP DISP

;//////////////// Main
ORG 30H
START:
MOV SP,#5FH
MOV P2,#00H
MOV P0,#0FFH
MOV P1,#0FFH
MOV TMOD,#00000001B
MOV TH0,#HIGH(65536-2000)  ;扫描间隔1ms
MOV TL0,#LOW(65536-2000)
SETB TR0		;开计时器
SETB EA
SETB ET0
MOV Counter,#0
;MOV DISPBUF,#0
MOV A,#0
mov dispbuf,#0
mov dispbuf+1,#0
mov dispbuf+2,#0
mov dispbuf+3,#0
mov dispbuf+4,#0
mov dispbuf+5,#0


LOOP:
MOV DISPBUF+5,A
INC A
LCALL DELAY
CJNE A,#10,LOOP
MOV A,DISPBUF+4
INC A
CJNE A,#10,LOOP2  

MOV A,DISPBUF+3         ;进位到秒个位
INC A
CJNE A,#10,LOOP3               

MOV A,DISPBUF+2		;进到秒十位
INC A
CJNE A,#6,LOOP4

MOV A,DISPBUF+1		;进到分个位
INC A
CJNE A,#10,LOOP5

MOV A,DISPBUF
INC A
CJNE A,#6,LOOP6
MOV A,#0		;分十位归零
LOOP6:
MOV DISPBUF,A

MOV A,#0		;分个位归零
LOOP5:
MOV DISPBUF+1,A		

MOV A,#0		;秒十位归零
LOOP4:
MOV DISPBUF+2,A

MOV A,#0
LOOP3:
MOV DISPBUF+3,A

MOV A,#0		;秒个位归零
LOOP2:
MOV DISPBUF+4,A

MOV A,#0
AJMP LOOP



;///////////////Display function
DISP:
PUSH ACC
PUSH PSW
MOV TH0,#HIGH(65536-2000)
MOV TL0,#LOW(65536-2000)
SETB FIRST
SETB SECOND
SETB THIRD
SETB FORTH
SETB FIFTH
SETB SIXTH

MOV A,#DISPBUF
ADD A,Counter
MOV R0,A
MOV A,@R0
MOV DPTR,#DISPTAB
MOVC A,@A+DPTR
MOV P2,A
MOV A,Counter
JZ DISPFIRST
DEC A
JZ DISPSECOND
DEC A
JZ DISPTHIRD
DEC A
JZ DISPFORTH
DEC A
JZ DISPFIFTH
CLR SIXTH
AJMP DISPNEXT

DISPFIRST:
CLR FIRST
AJMP DISPNEXT
DISPSECOND:
CLR SECOND
AJMP DISPNEXT
DISPTHIRD:
CLR THIRD
AJMP DISPNEXT
DISPFORTH:
CLR FORTH
AJMP DISPNEXT
DISPFIFTH:
CLR FIFTH

DISPNEXT:
INC Counter
MOV A,Counter
SUBB A,#6
JZ RSTCOUNT
AJMP DISPEXIT

RSTCOUNT:
MOV Counter,#0
DISPEXIT:
POP PSW
POP ACC
RETI

;///////////// Delay function
DELAY:
PUSH PSW
SETB RS0
/*MOV R7,#79
D1:MOV R6,#80
D2:MOV R5,#80
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
*/
MOV R7,#50   ;0.01s
D1:MOV R6,#95
DJNZ R6,$
DJNZ R7,D1
POP PSW
RET

DISPTAB:
DB 5FH,44H,9DH,0D5H,0C6H,0D3H,0DBH,45H,0DFH,0D7H

END

⌨️ 快捷键说明

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