
单片机定时器在51单片机的应用过程中,具有控制程序时间的重要作用,一些延时程序或中断程序也都是需要通过单片机定时器来完成操作的。在今天的文章中,我们将会为大家分享两种定时器延时程序的常见问题解答,希望能够对新人工程师的程序学习和实际操作有所帮助。
第一个问题:单片机延时程序的延时时间怎么计算的?
这个问题是很多新手在学习单片机程序时都会遇到的。如果想要用循环语句实现的循环,那是没法计算的,智能通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。如果想精确延时,那么就必须合理的利用单片机定时器来完成设置了。通常来说,定时器延时时间与晶振有关系,单片机系统一般常选用11.059,2MHz、12MHz或6MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1μs和2μs,便于精确延时。本程序中假设使用频率为12MHz的晶振。最长的延时时间可以达到216=65536 μs。若定时器工作在方式2,则可实现极短时间的精确延时。如使用其他定时方式,则要考虑重装定时初值的时间,这里需要注意一个问题,那就是重装定时器初值占用2个机器周期,计算时需要加以考虑。
第二个问题:有没有可以让单片机89S51,12M定时器延时10分钟、控制1个灯的方法?
这一问题是定时器在进行延时程序的编写时,非常常见的一个基础性问题。面对这种情况时,我们可以设50ms中断一次,定时初值,TH0=0x3c、TL0=0xb0,中断20次为1S。如果需要让定时器延时10分钟的话,那么需要中断12000次。计12000次后,给IO口一个低电平。如功率不够,可再加扩展,这时就可以控制灯了。
在这种单片机定时器程序的计算过程中,工程师需要首先确认一下使用什么语言计算。汇编延时准确,知道单片机工作周期和循环次数即可算出,但不具有可移植性,在不同种类单片机中,汇编不通用。用c的话,由于各种软件执行效率不一样,不会太准,通常用定时器做延时或做一个不准确的延时,延时短的话,在c中使用汇编的nop做延时程序的编写即可。
声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。
新人必看 单片机定时器应用实例解析 | 16-01-11 09:20 |
---|---|
解疑答惑 单片机定时器常见两大应用问题解析 | 15-12-10 09:25 |
新人小白必看 单片机定时器基础概念科普 | 15-12-03 09:37 |
基于51单片机定时器的电子时钟设计方案分享 | 15-11-26 09:41 |
两大单片机定时器中断时间误差原因总结分析 | 15-11-19 09:25 |