设置外部中断0为下降沿触发,外中断1为低电平触发。关闭定时计数器中断
;1:定时/计数器实验,方式0,查询方式编程
;系统时钟12MHz,T0每5ms溢出一次
;20次后取反P0.0
;执行后,与P0.0连接的LED亮0.1s灭0.1s,即以5Hz的频率闪烁
ORG 0000H
ljmp Start
ORG 0100H
Start:
mov TMOD,#00H ;计数模式为0,13位计数模式
mov TH0,#0CH ;6C78H 定时器0的高8位
mov TL0,#78H ;定时器0的低8位
mov R7,#20 ;设置循环20次
setb TR0 ;开定时器/计数器0的中断
;计数,溢出了之后就跳转
Loop: jbc TF0,T0SVR ;如果TF0位1就跳转,TF0是定时器0的溢出标志位
sjmp Loop
T0SVR: mov TH0,#0CH ;0C78H
mov TL0,#78H
djnz R7,Next
mov R7,#20
cpl P0.0 ;取反p0.0位
Next:sjmp Loop
END
扩展资料
TF1---定时器1溢出标志位。
当定时器1记满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器中断,那么该位完全不用人为去操作,但是如果使用软件查询方式的话,当查询到该位置1后,就需要用软件清0。
TR1---定时器1运行控制位。
由软件清0关闭定时器1。当GATE=1,且INIT为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。
TF0---定时器0溢出标志,其功能及其操作方法同TF1。
TR0---定时器0运行控制位,其功能及操作方法同TR1。
IE1---外部中断1请求标志。