keil程序扫描到延迟是停留在延迟那行还是一直扫描

keil程序扫描到延迟是停留在延迟那行还是一直扫描,第1张

keil程序扫描到延迟是停留在延迟那行还是一直扫描

1、硬件延时

优点:用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;

缺点:往往在精度要求不是很高时,会使定时器/计数器大材小用,而且很极端时,定时器根本不够的。

2、软件延时

优点:节省硬件资源的同时,只要正确使用可接近要求的精度,这种方法主要采用循环体进行;

缺点:精度不高,对编程者经验要求甚高。

二、硬件延时

1、常用晶振:11.059 2 MHz(容易产生各种标准的波特率)、12 MHz或6 MHz(机器周期

分别为1 μs和2 μs,便于精确延时)。

2、本程序中假设使用频率为12 MHz的晶振。最长的延时时间可达2的16次方=65 536 。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考

虑重装定时初值的时间(重装定时器初值占用2个机器周期)。

3、在实际应用中,定时常采用中断方式,如进行适当的循环可实现几秒甚至更长时间的延

时。使用定时器/计数器延时从程序的执行效率和稳定性两方面考虑都是最佳的方案。但应该注意,C51编写的中断服务程序编译后会自动加上PUSH ACC、PUSH PSW、POP PSW和POP ACC语句,执行时占用了4个机器周期;如程序中还有计数值加1语句,则又会占用1个机器周期。这些语句所消耗的时间在计算定时初值时要考虑进去,从初值中减去以达到最小误差的目的。

三、软件延时(通过调用延时函数)

1、调用延时函数三要素:

入口周期Te、返回周期Tr、内部代码执行周期Ti

则:该函数总执行周期Tf=Te+Tr+Ti;其中:Ti=循环次数*循环周期N

1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。

2、然后添加c文件,接下来输入代码,先输入一个头文件命令。

3、然后,进行宏定义,代码如图所示。

4、然后声明P1口,如下图所示。

5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。

6、最后,点击编译,生成HEX文件就可以了,这样51单片机延时语句就完成了。


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

原文地址: https://outofmemory.cn/yw/11548779.html

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

发表评论

登录后才能评论

评论列表(0条)

保存