矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1968|回复: 9

请教坛友8051单片机定时器的问题

[复制链接]
     
发表于 2022-7-31 12:03:31 | 显示全部楼层 |阅读模式
学单片机有一段时间了,好多问题还很糊涂,比如有些for循环的延时的代码,看到有些教科书说,实际工程里边,是不能那样用的,因为会一直占用cpu,
那么想请教下,像8051里边的那两个定时器,是和cpu独立的吗?
     
发表于 2022-7-31 17:42:41 | 显示全部楼层
本帖最后由 joywyc 于 2022-7-31 17:47 编辑

有关时序的单片机编程,能用定时计数器的,尽量用定时计数器,而不使用循环程序来替代,这是必须的。原因就是,使用程序循环作为时间控制,具有很大的误差和不确定性。
定时计数器,是单片机提供给使用者的硬件资源,它能提供精准的节拍时钟脉冲,为什么放弃不用?
若你能使用它,说明你学会了单片机高级应用之一,利用精准时间来控制程序的运行,这为以后应用打下基础,何乐而不为?
计算机中的CPU,之所以跟逻辑电路不同,就在于它的中断功能!这是计算机特色功能之一,学习使用它,对于学习单片机至关重要。否则,就说明你还没有入门!
回复 支持 1 反对 0

使用道具 举报

     
发表于 2022-7-31 12:08:26 | 显示全部楼层
定时器设置好了定时时间后,不占用CPU的时间。
定时时间到了,定时器发出中断(当然要先设置好了中断参数),CPU停止当前的工作去处理这个中断。当然处理中断期间占用CPU。

另外,不要全信教科书,也不能不信教科书,那些信,那些不信,要自己去推敲。如果是很简单的程序,对功耗又没有要求,用死循环来延时也是可以的,简单有效,为何不用呢?

回复 支持 反对

使用道具 举报

     
发表于 2022-7-31 13:47:06 | 显示全部楼层
定时器相当于闹钟,你(主程序)设置好时间,打开后就不管它了.当它时间到了,就响铃(产生定时中断),然后你(程序)去处理中断,程序中,自动去相应的中断入口找处理程序.
回复 支持 反对

使用道具 举报

     
发表于 2022-7-31 16:55:46 | 显示全部楼层
for 循环的确会一直占用CPU,但一般情况下你也不必在意,因为这时候你也不需要CPU干点别的,99%的人都是如此。
回复 支持 反对

使用道具 举报

     
发表于 2022-7-31 18:21:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2022-8-1 10:25:23 | 显示全部楼层
对于新手来说,定时器不是非用不可,我也开发软件三年之久,还没正儿八经用上定时器,其实也不难,这东东和cpu进程无关,我都是在软件上循环设计上巧妙一些,能不用尽量不用。等非用不可在去学习透彻,那时候已经是大师了小菜一碟
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-8-1 18:17:20 | 显示全部楼层
感谢以上坛友的解答,太谢谢了,
回复 支持 反对

使用道具 举报

     
发表于 2022-8-4 08:53:59 | 显示全部楼层
片上资源必须都会用,特别是定时器!我从事单片机工作接近30年的经验告诉你。
回复 支持 反对

使用道具 举报

     
发表于 2023-3-12 08:59:35 | 显示全部楼层
ljchip 发表于 2022-8-4 08:53
片上资源必须都会用,特别是定时器!我从事单片机工作接近30年的经验告诉你。

从事单片机30年,厉害
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-26 16:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表