前言
- 脉冲信号输入进2级74LS14整形
T1接收脉冲信号并计数,显示在LED
- 外部中断0控制计数器的启动/停止
外部中断1控制计数器的清零复位
- P1.0控制LED的段选口使能信号
P1.1控制LED的位选口使能信号
Proteus电路图
asm代码
ORG 0000H
LJMP INIT
ORG 0003H //外部中断0
LJMP INT0SUB
ORG 0013H //外部中断1
LJMP INT1SUB
ORG 0100H
INIT: CLR P1.0 //控制端复位
CLR P1.1
MOV DPTR,#TABLE //指向表头
MOV R0,#03H //循环次数
MOV R1,#7FH //位选信号
MOV TMOD,#50H //工作模式
MOV TL1,#00H //初始化
SETB EA //启动总中断
SETB EX0 //启动外部中断0
SETB EX1 //启动外部中断1
SETB TR1 //启动计数器1
TRANS: SETB TR1 //启动计数器1
MOV A,TL1 //16进制转10进制
MOV B,#10
DIV AB
MOV 40H,B //个位
MOV B,#10
DIV AB
MOV 41H,B //十位
MOV 42H,A //百位
MAIN: MOV A,R1 //位选信号
MOV P0,A //输出位信号
SETB P1.1 //上升沿
CLR P1.1
MOV A,40H //段选信号
MOVC A,@A+DPTR
MOV P0,A //输出段信号
SETB P1.0 //上升沿
CLR P1.0
MOV 40H,41H //改变段选信号
MOV 41H,42H
MOV A,R1
RR A //位选右移
MOV R1,A
LCALL DELAY //延时1ms
DJNZ R0,MAIN //循环3次
MOV R0,#03H //循环次数复位
MOV R1,#7FH //位选信号复位
SJMP TRANS
INT0SUB:CLR TR1 //启动/停止
RETI
INT1SUB:MOV TL1,#00H //清0
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH //段选表
DELAY: MOV 30H,#2 //延时1ms
MOV 31H,#234
NEXT: DJNZ 31H,NEXT
DJNZ 30H,NEXT
RET
END
注:本例程只编写了TL1值的显示,上限255
(显示TH1或其他位的值同理,增加段选信号存放区域即可)
效果图