作者:____洋果子 | 来源:互联网 | 2024-11-17 17:52
本程序利用单片机T0定时器通过中断方法实现数码管显示。具体电路连接如下:P0口连接数码管的字型码笔段,P2口连接数码管的数位选择端。
以下是汇编语言源代码:
SECOND EQU 30H
TCOUNT EQU 31H
ORG 00H
LJMP START
ORG 0BH
LJMP INT0X
START: MOV SECOND, #00H
MOV A, SECOND
MOV B, #10
DIV AB
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV P0, A
MOV A, B
MOVC A, @A+DPTR
MOV P2, A
MOV TCOUNT, #00H
MOV TMOD, #01H
MOV TH0, #(65536-50000)/256
MOV TL0, #(65536-50000) % 256
SETB TR0
SETB ET0
SETB EA
SJMP $
INT0X: MOV TH0, #(65536-5000)/256
MOV TL0, #(65536-5000) % 256
INC TCOUNT
MOV A, TCOUNT
CJNE A, #20, NEXT
MOV TCOUNT, #00H
INC SECOND
MOV A, SECOND
CJNE A, #60, NEX
MOV SECOND, #00H
NEX: MOV A, SECOND
MOV B, #10
DIV AB
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV P0, A
MOV A, B
MOVC A, @A+DPTR
MOV P2, A
NEXT: RETI
TABLE: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH
END
T0定时器设置为方式1,每次中断计时50毫秒,共20个中断周期,总计时1秒。P0口用于显示低位数字,P2口用于显示高位数字,当计数值达到60时清零。