c语言延时语句_c语言延时程序
c语言延时语句由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言延时程序”。
C语言程序延时
Keil C51的编程语言常用的有2种:一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的是晶振频率为12 MHz的AT 89C51,打算延时20 μs,51单片机的指令周期是晶振频率的1/12,即一个机器周期为1 μs;“MOV R0,#X”需要2个机器周期,DJNZ也需要2个机器周期,单循环延时时间t=2X+3(X为装入寄存器R0的时间常数)[2]。这样,存入R0里的数初始化为8即可,其精度可以达到1 μs。用这种方法,可以非常方便地实现512 μs以下时间的延时。如果需要更长时间,可以使用两层或更多层的嵌套,当然其精度误差会随着嵌套层的增加而成倍增加。
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。
有人说如果while里面不能放其它语句,否则也不行,用do-while就可以,具体怎样我没有去试.所有这些都没有给出具体的实例程序来.还看到一些延时的例子多多少少总有点延时差.为此我用for循环写了几个延时的子程序贴上来,希望能对初学者有所帮助.(晶振12MHz,一个机器周期1us.)一.500ms延时子程序 程序:
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
计算分析:
程序共有三层循环
一层循环n:R5*2 = 81*2 = 162us DJNZ 2us
二层循环m:R6*(n+3)= 202*165 = 33330us DJNZ 赋值 1us = 3us
2us + R5 三层循环: R7*(m+3)= 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us
循环外: 5us 子程序调用 2us + 子程序返回 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;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);} 三.10ms延时子程序 程序:
void delay10ms(void){
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);}
四.1s延时子程序 程序:
void delay1s(void){
unsigned char h,i,j,k;
for(h=5;h>0;h--)for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);}
教你简单的延时摄影,拍摄自己的创意时下,延时摄影是很流行的一种拍摄方式,他可以让你省了去影楼拍摄,自己就可以拍摄一些全家福之类的照片。如何做到延时拍摄以及拍摄出自己的创......
刀豆文库小编为你整合推荐5篇延时申请书,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
延 时 报 告XXXXXXXX:因我司法定代表人XXXXXX先生因公出差,未能及时审批XXXX工伤认定的申请,造成了延时申请的情况。现恳请贵单位给予协助和受理我司的工伤认定申请,谢谢!XXXXXXX......
1、putchar函数:putchar函数(字符输出函数)的作用是向终端输出一个字符。一般形式为:putchar(c)输出字符变量c的值。#includevoid main ( ){char a,b,c;a=‟A‟; b=‟B‟; c=‟C......
C语言选择语句C语言支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能。知道其状态的情况下,控制程序的执行过程。首先看一下if语句的用法:if语句:if语......
