标题:
关于51单片机定时计数器程序问题
[打印本页]
作者:
冯均杰11
时间:
2020-12-5 23:20
标题:
关于51单片机定时计数器程序问题
各位大佬,小弟在学习51单片机的时候有一个问题一直困惑着我,希望大佬们解惑
就是51单片机在执行主函数的时候定时器里面的程序是单独进行的,调用到定时计数器函数的时候才开始进行的呢?
比如我一个计时程序,需要用到定时计数器执行1s的定时,1秒到了,进行显示,这是定时计数器程序还在运行吗?
作者:
千江水
时间:
2020-12-5 23:20
定时器和你的主程序是分开独立运行的,当你打开了定时器开关后,主程序在运行的同时,定时器也在跑。至于你问的问题,1s后定时器是否还在运行,要看你的程序是怎么写的吧,如果你的定时时间设置的是1s钟,但是没有把TH和TL重新赋值,我记得定时器好象会重新从0开始计数,所以下一次定时的时间就不会是1s钟了。
作者:
xianfajushi
时间:
2020-12-6 09:00
去补充一下计时定时知识,蛋骗鸡定时器硬件是独立的,这点该明白。
作者:
suncat0504
时间:
2020-12-6 10:15
“千江水”说得对。单片机的定时,一般是是赋予初值,并启动定时器开始工作后,计数值自动加一。直到溢出,产生中断。在中断处理程序中,通常是重新赋予定时寄存器初始值,以保证下次计时周期正确, 然后处理你想要做的。对于计时周期比较长,而中断处理程序执行时间比较短的,不需要关中断、开中断这样的处理。但是如果出现定时周期小于中断处理代码执行时间的,如果不加入关、开中断处理,会导致中断的重复嵌套调用,导致堆栈溢出而死机。
所以,你一定要确认定时周期和终端处理程序的执行时间。尽量减少中断处理程序的处理内容,减少执行时间,避免出现中断处理没完成,下一次中断又来临。虽然可以通过关、开中断避免同一个中断的嵌套,但整个程序的定时周期就不准了。
作者:
踏雪无痕做什么
时间:
2020-12-6 19:10
定时器是单独于主程序运行,但是定时器程序要到定时时间到才会自动跳到中断程序。多啃啃书吧,有很多基本例程,有助于理解。
作者:
回忆不堪回首
时间:
2020-12-7 13:52
与主线程无关
作者:
冯均杰11
时间:
2020-12-8 18:40
懂了,谢谢各位大佬
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1