单片机C51延时时间怎样计算.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机C51延时时间怎样计算.pdf》由会员分享,可在线阅读,更多相关《单片机C51延时时间怎样计算.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机单片机 C51C51 延时时间怎样计算延时时间怎样计算一.500ms 延时子程序程序:void delay500ms(void)unsigned char i,j,k;for(i=15;i0;i-)for(j=202;j0;j-)for(k=81;k0;k-);运算分析:程序共有三层循环一层循环 n:R5*2=81*2=162usDJNZ2us二层循环 m:R6*(n+3)=202*165=33330usDJNZ2us+R5 赋值 1us=3us三层循环:R7*(m+3)=15*33333=499995usDJNZ2us+R6 赋值 1us=3us循环外:5us子程序调用 2us+子程序
2、返回 2us+R7 赋值 1us=5us延时总时刻=三层循环+循环外=499995+5=500000us=500ms运算公式:延时时刻=(2*R5+3)*R6+3*R7+5二.200ms 延时子程序程序:void delay200ms(void)unsigned char i,j,k;for(i=5;i0;i-)for(j=132;j0;j-)for(k=150;k0;k-);三.10ms 延时子程序程序:void delay10ms(void)unsigned char i,j,k;for(i=5;i0;i-)for(j=4;j0;j-)for(k=248;k0;k-);四.1s 延时子程序
3、程序:void delay1s(void)unsigned char h,i,j,k;for(h=5;h0;h-)for(i=4;i0;i-)for(j=116;j0;j-)for(k=214;k0;k-);参考链接::/picavr/news/2020-04/2106.htm摘要实际的单片机应用系统开发过程中,由于程序功能的需要,经常编写各种延时程序,延时时刻从数微秒到数秒不等,关于许多 C51 开发者专门是初学者编制专门精确的延时程序有一定难度。本文从实际应用动身,讨论几种有用的编制精确延时程序和运算程序执行时刻的方法,并给出各种方法使用的详细步骤,以便读者能够专门好地把握明白得。关键词
4、Keil C51 精确延时程序执行时刻引言单片机因具有体积小、功能强、成本低以及便于实现分布式操纵而有专门广泛的应用领域1。单片机开发者在编制各种应用程序时经常会遇到实现精确延时的问题,比如按键去抖、数据传输等操作都要在程序中插入一段或几段延时,时刻从几十微秒到几秒。有时还要求有专门高的精度,如使用单总线芯片DS18B20 时,承诺误差范畴在十几微秒以内2,否那么,芯片无法工作。用51 汇编语言写程序时,这种问题专门容易得到解决,而目前开发嵌入式系统软件的主流工具为 C 语言,用 C51 写延时程序时需要一些技巧3。因此,在多年单片机开发体会的基础上,介绍几种有用的编制精确延时程序和运算程序执
5、行时刻的方法。实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法能够提高 CPU 的工作效率,也能做到精确延时;另一种是软件延时,这种方法要紧采纳循环体进行。1 使用定时器/计数器实现精确延时单片机系统一样常选用 11.059 2 MHz、12 MHz 或 6 MHz 晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为 1 s 和 2 s,便于精确延时。本程序中假设使用频率为12 MHz 的晶振。最长的延时时刻可达 216=65 536 s。假设定时器工作在方式 2,那么可实现极短时刻的精确延时;如使用其他定时方式,那么要考虑重装定时初值的时刻重装定时器初值
6、占用 2 个机器周期。在实际应用中,定经常采纳中断方式,如进行适当的循环可实现几秒甚至更长时刻的延时。使用定时器/计数器延时从程序的执行效率和稳固性两方面考虑差不多上最正确的方案。但应该注意,C51 编写的中断服务程序编译后会自动加上 PUSH ACC、PUSH PSW、POP PSW 和 POP ACC语句,执行时占用了 4个机器周期;如程序中还有计数值加 1 语句,那么又会占用 1 个机器周期。这些语句所消耗的时刻在运算定时初值时要考虑到里面去,从初值中减去以达到最小误差的目的。2 软件延时与时刻运算在专门多情形下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种
7、软件延时的方法。2.1 短暂延时能够在 C 文件中通过使用带_NOP_()语句的函数实现,定义一系列不同的延时函数,如 Delay10us()、Delay25us()、Delay40us()等存放在一个自定义的 C 文件中,需要时在主程序中直截了当调用。如延时10 s 的延时函数可编写如下:Delay10us()函数中共用了 6 个_NOP_()语句,每个语句执行时刻为 1 s。主函数调用 Delay10us()时,先执行一个 LCALL 指令2 s,然后执行 6 个_NOP_()语句6 s,最后执行了一个 RET 指令2 s,因此执行上述函数时共需要 10 s。能够把这一函数当作差不多延时函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 C51 延时 时间 怎样 计算
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内