c51语言编写延时函数 C51语言编程时,必须有的函数是

简单的单片机C51语言延时程序

延时多少不是c语言决定的,是编译后的汇编语言执行时间和单片机晶振共同决定的;

成都创新互联是一家专注于成都网站制作、成都做网站、外贸营销网站建设与策划设计,泉山网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:泉山等地区。泉山做网站价格咨询:18982081108

首先通过编译器,看看这个函数汇编之后,翻译成了什么,然后根据翻译过来汇编语言的时钟周期,计算该段程序的总执行周期(每条汇编语言指令执行的周期数都是确定的);

再用总周期乘以你的晶振时间(频率的倒数),就可以计算了。

你需要知道,机器周期、指令周期这些概念。也可以用其他的办法,很多单片机内置函数NOP,或者_delay_cycles这些内容。真想搞懂的话,希望多学学基础知识。

C51单片机延时程序,需要不精确延时2小时,请问大神怎么写延时代码,谢谢!

可以有很多办法,一是调整参数,使其延时5分钟或6分钟,循环24次或20次。二是将延时函数的形参改为长整型(32位)延时时间扩大65536倍。三是使用定时器,每次定时50mS,累计144000次,便是2小时,使用定时器(中断)的好处是在延时期间还可以干许多事情,例如显示剩余时间,检测设备工作状态或者调整延时时间等,而你的纯软件延时期间想干其它事情比较困难。

51单片机用c语言怎么写延时函数?

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环

void delay(int i){

int x,y;

for(x=i;x0;x--){

for(y=120;y0;y--)

}

}

参数 i 代表该函数延时多少ms


文章名称:c51语言编写延时函数 C51语言编程时,必须有的函数是
文章来源:http://scyanting.com/article/hioidd.html