51单片机计数器编程举例 计数值到一定大小后中断报警
扫描二维码
随时随地手机看文章
程序:
ORG 0000H
AJMP START
ORG 001BH
AJMP TIMER1 ;定时器1的中断处理
ORG 30H
START: MOV SP,#5FH
MOV TMOD,#01010000B ;定时/计数器1作计数用,模式1,0不用全置0
MOV TH1,#0FFH
MOV TL1,#0FAH ;预置值,要求每计到6个脉冲即为一个事件
SETB EA
SETB ET1 ;开总中断和定时器1中断允许
SETB TR1 ;启动计数器1开始运行.
AJMP $
TIMER1:
PUSH ACC
PUSH PSW
CPL P1.0 ;计数值到,即取反P1.0
MOV TH1,#0FFH
MOV TL1,#0FAH ;重置计数初值
POP PSW
POP ACC
RETI
END
上面这个单片机程序完成的工作很简单,就是在每6个脉冲到来后取反一次P1。0,因此实验的结果应当是:LM324后接的LED亮、灭6次,则P1。0口所接LED亮或灭一次。这实际就是我们上面讲的计数器的第二种应用:计数值到一定程度即中断报警。