求单片机软件延时精确计算公式。C编程,for语句。好像与单片机、晶振有关...
void delay_ms_fun (unsigned int mDelay1) \/\/ms延时 { unsigned int mDelay2; for (; mDelay1 > 0; mDelay1--){ for (mDelay2 = 0; mDelay2 < 123; mDelay2++){ } } } #define _delay_ms(i) delay_ms_fun((i*1000L)\/998L) \/\/实际为(i*1000-13)\/998 总而言之,就是根...
请教关于单片机C语言中用while延时的问题
晶振频率Fosc=12MHz,则机械周期 T=12\/Fosc=1us;程序中 的 自加(++)、自减(--) 的执行周期为1个机械周期,即1us;若为 理想状态,则delay(500000)的时间应该是:500000×1us=500ms;但是,编译软件 要把 函数调用、for 语句转换成 机器指令,这是需要一定周期的,周期长短 视不同的编译软件...
单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?
for(i=0,i<255,i++){x=2} 这里x=2是一个指令周期 而执行了255次 假如你的晶振是12MHZ的 则你执行一个指令周期是1us 255次是0.255ms
单片机C程序 里面何如灵活的使用空指令,for循等环延时
这两者应该是一个平衡取舍,一个是以时间换空间,一个是以空间换时间。延时多长时间,一般要根据实际情况作出计算,应该取一个有一定冗余的值。
单片机延时程序,延时时间计算 for(m=20;m>0;m--) for(n=20;n>0;n...
我结合了你的for循环软件延时来给你简单讲解一下,软件延时是单片机在执行一条空指令耗费的时间,当程序执行到Delay_ms();延时后,先执行M减一次for(m=20;m>0;m--) 接着再执行N减一次for(n=20;n>0;n--),最后是 for(s=248;s>0;s--);这是一个嵌套语句 for(m=20;m>0;m--)m...
哪位高手知道 单片机精确延时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语言延时
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秒延时 } \/\/刚打的,不懂再问 ...
单片机延时时间程序怎么编程
2、计算延时需要的机器周期。比如采用12M晶振,CPU采用通用8051,那么一个机器周期为1US,50毫秒为50*1000=50000US,需要的机器周期=50000\/1=50000。3、试编程,如下:程序代码 指令时间总共时间 DELAY50MS:;22 MOV R7,#A;1 1 DELAY1:MOV R6,#B;11*A DJNZ R6,$;22*B*A DJNZ R7,DELA...
51单片机C语言for循环延时程序时间计算
不可能的,是不是你的编译有错的啊 我改的晶振12M,在KEIL 4.0 里面编译的,为你得出的结果最大也就是40ms,这是软件的原因,不可能出现100ms那么大的差距,是你的软件的原因。不信你实际编写一个秒钟,利用原理计算编写一个烧进单片机和利用软件测试的秒程序烧进单片机,你会发现原理计算的程序...
求一个严格的单片机c语言延迟函数 要求延迟0.5s 单片机晶振为11.0592...
晶振为12Mhz,z=1,大约为1ms。 专家说治疗早泄,最好采用比较保守和安全的药物治疗,即使采用物理治疗、行为治疗、心理治疗,最好也要结合药物治疗,