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

  • Post author:
  • Post category:其他



利用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次就触发定时/计数器中断。



版权声明:本文为Alex_luoli原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。