单片机时钟延时子程序c语言

void delay (uchar k)
{
uchar j;
while((k--)!=0)
{
for(j=0;j<125;j++)
{;}
}
} 什么意思呢,还有那个125是怎么得出的呢?

第1个回答  2011-11-05
void delay (uchar k) 带参数的程序,意思就是,你调用这个程序的时候,要给出k的数值
{
uchar j; 声明一个j
while((k--)!=0) k减1之后的结果不等于0,执行括号内的程序。等于0,跳出返回
{
for(j=0;j<125;j++) j初值为0,当j小于125的时候,j自动加1
{;} 里面是空的。。。程序呢?
}
}

125是怎么算的。。。第一,取决于你想要多少延时。。。第二,取决于你给的k的数值。。。第三,取决于单片机运行这几行代码的周期

懂了吧。。。之所以,要写出带参数k的延时程序,是因为你的程序中要多次调用这个延时程序,但是每次需要的时间却不一样本回答被提问者采纳

如何用c语言实现单片机延时?
500ms延时子程序程序:(晶振12MHz,一个机器周期1us。)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--);}

求C语言单片机延时10分钟子程序
void main{ TMOD=0x01;\/\/设置定时器0为工作方式1 TH0=(65536-50000)\/256;TL0=(65536-50000)%256;EA=1;\/\/开总中断 ET0=1;\/\/开定时器0中断 TR0=1;\/\/启动定时器0 c=0;while(1){ if(c==12000){c=0;} \/\/10分钟 很精确 } } void time0()interrupt 1 { c++;TH0=(65536-50000...

哪位高手知道 单片机精确延时1秒得C语言子程序 谢谢了
软件延时:(asm)晶振12MHZ,延时1秒 程序如下:DELAY:MOV 72H,#100 LOOP3:MOV 71H,#100 LOOP1:MOV 70H,#47 LOOP0:DJNZ 70H,LOOP0 NOP DJNZ 71H,LOOP1 MOV 70H,#46 LOOP2:DJNZ 70H,LOOP2 NOP DJNZ 72H,LOOP3 MOV 70H,#48 LOOP4:DJNZ 70H,LOOP4 定时器延时:晶振12MHZ,延时1s,...

需要一个C语言程序。51单片机控制:按键按一下,延迟1分钟后开灯,灯亮半...
include<reg52.h> define uchar unsigned char define uint unsigned int sbit s=P1^0;sbit led=P1^1;void delayms(uint i) \/\/1ms延时程序 { uchar j;for(;i>0;i--){ for(j=0;j<125;j++)\/\/如果延时时间误差较大,可按比例改变125这个数 \/\/取值范围0-255,数值越大,延时越长 {;}...

单片机C语言中while的延时时间?
C语言延时程序:10ms延时子程序(12MHZ)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延时子程序(12MHZ)void delay1s(void){ unsigned char h,i,j,k;for(h=5;h>0;h--)for(i=4;i>0;i--)for(j=116;...

请教一下单片机的C语言延时
include <reg52.h> \/ 晶振为12MHZ \/ void DelayS(unsigned int w){ unsigned int i;while(w--){ for(i=45400;i>0;i--){ } } } void main(){ DelayS(2); \/\/这是1秒延时 DelayS(10); \/\/这是5秒延时 DelayS(20); \/\/这是10秒延时 } \/\/刚打的,不懂再问 ...

关于51单片机60秒倒计时的c语言程序,delay和dispiay部分分别什么意思啊...
delay(int t)这个是延时子程序,如果采用20M晶振的话,调用一次延时t毫秒。display()是数码管动态扫描显示子程序,位控位为P3.0、P3.1,段码控制为P1。扫描间隔时间为5毫秒左右。

我的单片机用的11.0592M的晶振,想写一个大概延时1MS的子程序,应该怎样...
void delay(uint n){ uint i,j;for(i=n;i>0;i--){ for(j=110;j>0;j--);} } 当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值。头文件下请定义宏 define uchar unsigned char define uint unsigned int ...

51单片机1us延时c语言程序 while语句 晶振12MHZ
51单片机12M晶振延时1us,只需要执行一个NOP就是了。C语言中也是如此。include<reg51.h> include<intrins.h> main(){ _nop_(); \/\/延时1us while(1);}

单片机C语言编程中延时函数和定时器中断有何关系
延时函数(延时子程序)是主程序正常运行时执行的,---主程序运行的时间即是延时函数的延时时间。定时器中断是在主程序中插入的事件,是在主程序的某个时间点,跳出主程序去执行定时器中断要做的事情。所以如果一个延时子程序不停地被中断(包括定时器中断或者其他中断)打断,就没有时间完成自身运行一次...

相似回答
大家正在搜