51单片机应用——利用定时/计数器扩展一个外部中断源

利用89C51单片机的定时计数器扩展一个外部中断源,说明接线并编写主程序

分析:当定时/计数器T0工作在计数器时,P3.4处电平出现负跳变,T0+1,T0溢出后请求溢出中断,将TF0置1,并将T0清0。为此让外部中断请求线接P3.4,T0工作在模式2自动装入,初值设置为0FFH,只要外部请求一次就会触发T0溢出中断。因此TMOD = 0000 0110B=06H,初值X=0FFH。T0中断允许ET0=1

代码实现:

ORG 0000H
LJMP MAIN

ORG 000BH;T0中断入口
LJMP NEXT

ORG 0030H
MAIN:
MOV SP,#60H;开辟堆栈区
MOV TOMD,#06H;T0初始化
MOV TH0,#0FFH
MOV TL0,#0FFH

SETB EA;开中断
SETB ET0;开T0中断
SETB TR0;启动T0

LOOP:SJMP LOOP;模拟一段很长的程序

NEXT:
CLR EA;关中断
PUSH PSW
PUSH ACC
SETB EA;开中断
...;中断处理
CLR EA
POP ACC
POP PSW
SETB EA
RETI

总结:本应用关键在于将计数器工作在模式2并使初值X拉满,只要再计1次就触发定时/计数器中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值