编写一个延时1ms的程序

作者&投稿:诸狐 (若有异议请与网页底部的电邮联系)

下面是延时1ms的程序。如给这个程序传递一个50的数值,则可以产生约50000...
这个程序可以用整型值产生较长的延时。根据汇编代码进行的分析表明,用j进行的内部循环大约延时8μs,程序编写得近似正确,但并不精确。不同的编译器会产生不同的延时,因此,j的上限值125应根据实验进行补偿调整。构成循环结构的常见语句主要有:while,do...while和for。 已赞过 已踩过< 你对这个回答的评价是? 评...

请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。_百...
1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。2、然后添加c文件,接下来输入代码,先输入一个头文件命令。3、然后,进行宏定义,代码如图所示。4、然后声明P1口,如下图所示。5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。6、最后,点击编译,生成HEX...

单片机编写一个能延时1秒的子程序
所以 R5=07H+1=08H ; R6=0A1H+1=0A2H ; R7=20Hloop: DJNZ R7,$ ; 延时时间≈2×[(R5-1)×256+R6-1]×256+R7 DJNZ R6,loop ; 当R5、R6等于0,相当于256参与运算 DJNZ R5,loop ; 当R5、R6等于0,相当于256参与运算 RET ...

如何利用for循环实现1ms延时
不过大体来说,一条for循环大概8个机器周期,在12M晶振下,通常用以下代码实现1ms的延时:void delayms(unsigned int ms){unsigned char i;while(ms--){for(i = 0; i < 120; i++);}}大概算一下,120*8*1us=1ms,如果需要精确的定时,还是得用定时器。如果是for (i=0;i<100;i++);的...

c语言中延时1ms的程序以及原理,谢谢
h> void main(){ clock_t start,finish;double durtion=0;printf("计时开始\\n");start=clock();while(1-durtion>0.00001){ finish=clock();durtion=(double)(finish-start);} printf("1ms计时完毕\\n");} 原理:两个时间差值是1ms就立即跳出while循环,C语言中时间分度值是ms ...

需要一个C语言程序。51单片机控制:按键按一下,延迟1分钟后开灯,灯亮半...
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,数值越大,延时越长 {;} } } void delay1s(uint i) \/\/1s延时程序 ...

c51使用while循环实现1ms延时子程序
在12mhz晶振下,需要添加#include<INTRINS.H>库函数 include<INTRINS.H> void delay(void) \/\/误差 0us { unsigned int c=124;while(c){ c--;} _nop_();_nop_();} 在keil下进行测试结果如下:在执行delay之前sec数值为0.000389 delay执行后sec的值为0.001389差值为1ms ...

51单片机中,写个延时函数,延时1ms,该怎么写,为什么?
用汇编语言写可以精确计算,但有时想拼出整数的ms或10ms也不容易,计算方法如下图说明:而C语言靠经验和实验得来的,如下面程序 如果不准(与晶振频率有关),调K的值,,软件仿真查看,直到大致准确,想更精确用定时器 void delay(unsigned char i) \/\/延时程序{ unsigned char i,k;for(j=i;j...

AVR中延时1ms程序怎么写?晶振是12MHz。
.问题分析:.你好,根据你的描述,可以放松心情,调节情绪,接受心里疏导。.意见建议:.建议多运动,有助于血液循环,提供大脑供养量多散心,多和亲戚朋友交流,保持愉快的心情,要发脾气时,可以先深呼吸平复一下心情。慢慢就会改善。玛卡的好处在于:促进内分泌系统的正常运作、提高体内性腺功能、促进消化...

找一个单片机汇编语言编写的延时1ms的子程序
TIME1:;延时498uS MOV R7, #248 DJNZ R7, $ ;R7的为0时,程序向下运行,否则继续减 ;DJNZ R6, TIME1 ;加上此命令后,每个小周期时间为500uS ;运行两周为1MS,再加上最前面的MOV R6那条指令,就是1.002MS RET 此程序实现的是1.002MS的定时,当然这当中不算主程序调用此延时程序时现场保护的...

石芬13070872335问: 用C语言编写延时0.001ms程序 -
平潭县牛黄回答: #include <stdlib.h> void main(){ sleep(1); /* 延迟1ms */ }

石芬13070872335问: 找一个单片机汇编语言编写的延时1ms的子程序 -
平潭县牛黄回答: 多简单的小程序呀:TIME1MS: MOV R6, #2 TIME1: ;延时498uS MOV R7, #248 DJNZ R7, $ ;R7的为0时,程序向下运行,否则继续减 ; DJNZ R6, TIME1 ;加上此命令后,每个小周期时间为500uS ;运行两周为1MS,再加上最前面的MOV R6那条指令,就是1.002MS RET此程序实现的是1.002MS的定时,当然这当中不算主程序调用此延时程序时现场保护的时间,即压栈和出栈的时间

石芬13070872335问: 设单片机的晶振频率为6HZ,请编写延时1ms的延时程序 -
平潭县牛黄回答: 2us的机器周期.1ms即有500个机器周期. //延时 1000个机器周期 void delay(UCHAR nTime) {UCHAR i,j;for( i=0; i<nTime; i++){for( j=0; j<125; j++ );} } 你改成500的就行了

石芬13070872335问: 我的单片机用的11.0592M的晶振,想写一个大概延时1MS的子程序,应该怎样写?(用C语言)
平潭县牛黄回答: 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

石芬13070872335问: 求一个1ms的单片机C语言延时程序 -
平潭县牛黄回答: void delay(char x) { unsigned char a,b,c; for(c=x;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--);} 学过标准C就知道了,char 和int 是可以相...

石芬13070872335问: 单片机50ms延时程序 -
平潭县牛黄回答: 如果要求计时很准确,最好还是用定时器.你这个程序虽然计算得比较准确了,可是有两点还没有考虑进来,一点是执行CALL指令调子程序的时间,一点是执行RET指令返回的时间,这两条指令各需要8个机器周期,所以,需要从上面的程序是减去16个机器周期的.所以,这种利用循环指令延时的时间是不太准确的,不过,用这种程序延时也是不要求十分精确的,没有必要,要准确就用定时器好了.

石芬13070872335问: AT89C51单片机,如何实现延迟一秒用C语言延迟一秒,我是用循
平潭县牛黄回答: 其实可以用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶振频率...

石芬13070872335问: 如何编写1秒软件延时程序 -
平潭县牛黄回答: 1秒这么长,用定时器中断,50ms一中断的,20次就是1秒. 这样不占资源 .

石芬13070872335问: 跪求用C语言编一个延时小程序 -
平潭县牛黄回答: 设置定时器时间为1ms 定时器,在定时器中断函数里面给一个32位变量每中断一次就+1,加到300000就到了5分钟 1分钟=60秒 1秒=1000毫秒 5*60*1000=300000毫秒

石芬13070872335问: AT89C51单片机延时1秒程序怎么写??? -
平潭县牛黄回答: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网