单片机延时子程序的原理(51单片机延时1ms的子程序)

单片机延时子程序的原理

单片机编程中,常常需要使用延时函数来控制各种外设的工作,比如LCD的显示,LED的闪烁,PWM的占空比等。在单片机中,我们通常使用延时子程序来实现对延时时间的控制。那么单片机延时子程序的原理是什么呢?

晶振与定时器

单片机内部的定时器是实现延时的核心部件,而晶振则是单片机定时器工作的基础设施。

晶振是一种可以将电能转换成机械能的装置。当晶振受电刺激后,会产生机械波(一般为红外、无线电波或音频)。而单片机中的定时器则是根据晶振的输入信号来实现定时和计数的。

在单片机中,晶振的频率是通过配置定时器的输入时钟源来控制的。对于AT89C51这类的8位单片机而言,其内部的16位定时器包含两个8位寄存器(THx、TLx),一旦计数器计数到最大值65535时,就会溢出并重新从0开始计数。通过对定时器的计数器进行配置,我们可以使其与晶振的频率相匹配,从而实现延时时间的控制。

软件循环实现延时

软件循环俗称“忙等待”,它是一种基本的延时实现方式,可以被用于延时短时间。在单片机开发中,通过循环来耗费CPU的时间,从而实现延时。

通过软件循环实现延时时,我们需要知道延时时间和CPU的时钟频率。以AT89C51单片机为例,它的时钟频率一般为12MHz。然后根据公式:

延时时间(单位:秒)= 循环次数*单次循环时间

单次循环时间(单位:秒)= 1 / CPU时钟频率

单片机延时子程序的原理(51单片机延时1ms的子程序)

我们可以得到循环次数,从而实现延时的目的。但是软件循环也有它的局限性,比如它需要占用CPU时间,同时不能保证每次循环的时间精确,这些都会影响延时的准确性。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcu6k-2.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 下午9:47
下一篇 2023年4月25日 下午9:47

猜你喜欢