c语言延时1ms程序

作者&投稿:洪寒 (若有异议请与网页底部的电邮联系)
c语言中延时1ms的程序以及原理,谢谢~

#include
#include
void main()
{
clock_t start,finish;
double durtion=0;
printf("计时开始
");
start=clock();
while(1-durtion>0.00001)
{
finish=clock();
durtion=(double)(finish-start);
}
printf("1ms计时完毕
");
}
原理:两个时间差值是1ms就立即跳出while循环,C语言中时间分度值是ms

C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。
void delay_ms(unsigned int ms_number) // ms延时函数 (AT89C51 @ 11.0592MHz)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
{
for(j=0;j<200;j++);
for(j=0;j<102;j++);
}
}
void Delay()
{
unsigned char a,b,c;
for(a=0;a<?;a++)
for(b=0;b<?;b++)
for(c=0;c<?;c++);
}
void delay_ms(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
{
for(j=0;j<200;j++);
for(j=0;j<102;j++);
}
}

拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

这个程序应该是板子上延时的程序。
a就是需要延迟的毫秒数(也可能是其他单位)。
就是说,执行 for(i=0;i<600;i++);的时间应该是一个单位长度(可能为1ms);
这样,你在调用的时候,赋值给a多少值,实际就是延时多少毫秒。
例如,延时10ms,就用
delay(10);
延时1ms,就用
delay(1);

建议你测一下吧, 看是多久.


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

请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢...
4、然后声明P1口,如下图所示。5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。6、最后,点击编译,生成HEX文件就可以了,这样51单片机延时语句就完成了。

试编写延时1分钟子程序(设fosc=6MHz)。
【答案】:fosc=6MHz,1机周为2μs。编程如下:DY1s:MOV R7,#240 ;DY10:MOV R6,#250 ;DY11:MOV R5,#250 ;DY12:DJNZ R5,DY12 ;2机周×250×2μs\/机周=1ms DJNZ R6,DY11 ;1ms×250=250ms DJNZ R7,DY10 ;250ms×240=1分 RET ;

c语言中延时1ms的程序以及原理,谢谢
} 原理:两个时间差值是1ms就立即跳出while循环,C语言中时间分度值是ms

需要一个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这个数 \/\/取值...

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

用C语言编写1ms延迟子程序,不明白for (j=0;j<120;j++),求助大大们_百度...
for (j=0;j<120;j++); \/\/计数120次,延迟1ms } 这是一个for循环嵌套,每执行一次第一个for语句,那么第二个for语句要执行120次 for (j=0;j<120;j++); 就是没执行一次第一个for循环,就令 j =0,再判断是否 j 满足循环条件(这里就是判断是否 j 小于120)如果满足就继续循环,如果...

如何利用for循环实现1ms延时
通常用以下代码实现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++);的话,那么大概算一下,100*8*1us=0.8ms ...

c语言延时1ms程序
这个程序应该是板子上延时的程序。a就是需要延迟的毫秒数(也可能是其他单位)。就是说,执行 for(i=0;i<600;i++);的时间应该是一个单位长度(可能为1ms);这样,你在调用的时候,赋值给a多少值,实际就是延时多少毫秒。例如,延时10ms,就用 delay(10);延时1ms,就用 delay(1);...

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

鹰手营子矿区19862286490: 用C语言编写延时0.001ms程序 -
丁空复方: #include <stdlib.h> void main(){ sleep(1); /* 延迟1ms */ }

鹰手营子矿区19862286490: c语言延时一秒响铃代码 -
丁空复方: #include <stdio.h>#include <stdlib.h> int main() { Sleep(1000); //延迟1秒putchar('\a'); //响铃return 0; }请采纳.

鹰手营子矿区19862286490: 我的单片机用的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

鹰手营子矿区19862286490: 用C语言写一个KEILC51的延时1秒程序,急 -
丁空复方: keilc51好像也是用C编程, 一般延迟程序就是增加系统负载比如: int i,j; yanchi() {for(i=0;i<1000;i++)for(j=0;j<1000;j++); } 这样就可以达到延迟的目的,具体参数你可以随便设.

鹰手营子矿区19862286490: 51单片机c语言延时函数 Void delay 1ms(unsigned int ms){un -
丁空复方: 这个延时关键看使用的晶振多大,比如12M晶振for(j=0;j<120;j++);大概延时1毫秒,11.0592M晶振那么for(j=0;j<110;j++);延时1毫秒,你这里的for(j=0;j<100;j++);延时1毫秒的话,晶振应该是10M,不太常见哟,特别是在单片机方面.

鹰手营子矿区19862286490: 单片机外接24M的晶振,1ms的基准延时函数用C语言怎么写? -
丁空复方: 定时器T0 工作方式1 晶振频率24MHz 定时器最大定时时间(us):32768 定时器最小定时时间(us):0.5 【1ms精确定时C51代码】 void T0_init(void) //定时器初始化 { TMOD |= 0x01; TH0 = 0xf8; //设置定时器计数初值,定时1000us TL0 = 0x33; IE |= 0x82; //打开总中断 TR0 = 1; //启动定时器 } void T0_intservice(void) interrupt 1 //定时器中断服务 { TH0 = 0xf8; //重装载定时器计数初值 TL0 = 0x33; //这里可以插入其他处理程序,不会影响定时器工作 }

鹰手营子矿区19862286490: 怎么用C语言写一个51单片机0.001ms延时程序 -
丁空复方: 普通的51用11.0592MHz达不到这个要求的,如果你用12MHz的晶振可以达到,一个_nop_();就是1us,******************************* 头文件要加如下:#include ******************************* 这个问题就不要想着用中断了,还没响应0.001ms就已经过去了,谈何精确??普通的51,12MHz晶振,一个周期就已经是0.001ms了,你自己想想看吧...

鹰手营子矿区19862286490: 怎么样用C语言实现精确延时 -
丁空复方: 要自己构造, 步骤1,检查单片机的说明书,知道执行一条指令要多少时钟周期, 2, 12M的时钟频率就是一个始终周期83.3ns, 3,你要1毫秒,就是要延迟12000个时钟周期, 做一个For循环,在里面做4000次加法运算就可以了(假设你的单片机一个指令用一个时钟)

鹰手营子矿区19862286490: C语言编程时,延时函数125次=1ms(书本上是这样的,不懂),是怎样得来的? -
丁空复方: 就看楼主你用的晶振是多大的!如果你用的是12M的晶振,一个机器周期为T=12/f=1微秒,你的延时程序循环600*125=75000次,即75000微秒,就是75毫秒.

鹰手营子矿区19862286490: 跪求用C语言编一个延时小程序 -
丁空复方: 设置定时器时间为1ms 定时器,在定时器中断函数里面给一个32位变量每中断一次就+1,加到300000就到了5分钟 1分钟=60秒 1秒=1000毫秒 5*60*1000=300000毫秒

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