📄 time.txt
字号:
4个8段数码管计时程序
[code];此程序为4个8段数码管计时程序 mail:ppsteve@qq.com
;designed by cracksteve
;8段数码管用p0口显示
;p2口选通。
;此共享为了调试小车方便而写
;INT0中断引发开始和截至
;reset复位
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0T
MAIN:
SETB IT0 ;设置下降沿触发
SETB EA ;CPU开中断
;MOV RO,#50H ;地址区地址
SETB EX0 ;int0中断允许
;初始化各个数值位
MOV R0,#00H
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#00H
MOV 53H,#00H
MOV DPTR,#TAB
WAITINT0:
CJNE R0,#00H,OUTTIME
;LCALL DELAY10MS
LCALL DIS;
AJMP WAITINT0
OUTTIME:
LCALL DELAY10MS
MOV A,53H
CJNE A,#09H,INCT
MOV 53H,#00H
MOV A,52H
CJNE A,#09H,ADDSHI
MOV 52H,#00H
MOV A,51H
CJNE A,#09H,ADDBAI
MOV 51H,#00H
MOV A,50H
CJNE A,#05H,ADDQIAN
MOV 50H,#00H
LCALL DIS
AJMP WAITINT0
ADDQIAN:
INC 50H
LCALL DIS
AJMP WAITINT0
ADDBAI:
INC 51H
LCALL DIS
AJMP WAITINT0
ADDSHI:
INC 52H
LCALL DIS
AJMP WAITINT0
INCT:
;INC A
;MOV 53H,A
INC 53H
LCALL DIS
AJMP WAITINT0
DIS:
;显示当时时间,数码管显示
LCALL DELAY10MS
MOV A,53H ;最后一位
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
LCALL DELAY10MS
SETB P2.4
MOV A,52H ;倒数第二位
MOVC A,@A+DPTR
MOV P0,A
CLR P2.5
LCALL DELAY10MS
SETB P2.5
MOV A,51H ;倒数第二位
MOVC A,@A+DPTR
MOV P0,A
CLR P2.6
LCALL DELAY10MS
SETB P2.6
MOV A,50H ;倒数第二位
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
LCALL DELAY10MS
SETB P2.7
LCALL DELAY10MS
RET
DELAY10MS:
MOV R5,#3
D0: MOV R6,#250 ;延时1ms子程序
D1: DJNZ R6,D1
DJNZ R5,D0
RET
INT0T:
CJNE R0,#00H,CHG
MOV R0,#01H
JMP RETIO
CHG:
MOV R0,#00H
RETIO:
RETI
TAB: DB 00111111B
DB 00000110B
DB 01011011B
DB 01001111B
DB 01100110B
DB 01101101B
DB 01111101B
DB 00000111B
DB 01111111B
DB 01101111B
END[/code]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -