在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何

在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何,第1张

比较常用的有两种

一种比较简单的就是粗略的软件延时;

如:

void delay_1s(void)

{

unsigned char i,j;

for(i=0;i<128;i++)

for(j=0;j<254;j++);

}

这种通过调整i和j的最终值来确定延时时间,没有办法精确计算的。

另一种,做比较精确的延时,使用89C51的定时器来做

当AT89C51使用12M的晶体时,机器周期刚好是1us用定时器非常好计算,非常精确,一月偏一秒都可以做到,加入偏查校正可以做到更精确。这个一般书上都会有的,查下书咯。这里说不清楚。一下子也不记得了,现在AT89C51已经停产了,代替他的是89S51 4K FLASH,建议用89S52 8K FLASH,

一般来说要是通过延时函数来得到一个精准的延时时间(比如你说的1us、2us)是让正常人无法忍受的工作量,你可以点击编辑环境中的放大镜图标,在左边会d出显示栏,sys下sec就是延时时间(要通过设置断点),你可以改变函数中变量值大概地调出需要的时间(希望你不要固执地去尝试调出你要的时间,因为这会让你享受到一天都不止的漫长调试“乐趣”中)。晶振频率不同自然在相同参数的情况下得出延时时间不同。另外如果你确实需要得到一个比较精准的延时时间,建议你采用定时/计数器,至于怎么用这玩意儿,很简单!不到十分钟就能学会的事儿!这里就不提供教程了,用你调试的时间去学它会让你更有成就感。写了那么多,希望能帮助点什么

以上就是关于在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何全部的内容,包括:在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何、24.5M晶振的单片机 延时函数怎么计算 和12M的有什么区别请帮忙写出1us、2us、、、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9462804.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存