定时器中断开启程序就不运行了

定时器中断开启程序就不运行了,第1张

1、中断是一个很高明的办法,没有中断时只会顺序执行主程岁悔序中的语句

2、定时器有自己的时钟尘雀携,打开定时器后,一边顺序执行主程序的语句时,一边定时器在计时。当计到设定的值后,需要产生派伏中断,然后暂停主程序语句,转到中断程序中执行的命令。执行完命令后返回到主程序的顺序语句中。然后知道下一次中断来临,再次产生中断。

3、要让其能产生中断,就必须开中断。这就像一个控制开关,不把开关打开,灯怎么会亮。

你的程序,我运行了下,本身就不能进入中断,原敬察因是:

IE设置时没有使能T0中断。

------------------------------------------------------------

建议在设置中断的时候,使用类似下面的方法,不会记错:

SETB

ET0

使能T0中断(IE寄存器中的位)

SETB

EA

使能全局告游中断(IE寄存器中的位)

------------------------------------------------------------

还有,你的定时器初始化部分,建议做成子程序,就像这样子:

Timer0_Init:

MOV

TMOD,#11H

MOV

IP,#02H

SETB

ET0

设置中断,使用这种方亮友茄法比较好,不会记错

SETB

EA

SETB

TR0

启动定时器

ret

main:

call

Timer0_Init

初始化T0

MainLoop:

call

DoSomething

主循环

jmp

MainLoop

Good

luck!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12245274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存