精确延时整理(12T单片机)

发布者:sjp5035022最新更新时间:2015-02-09 来源: 51hei关键字:精确延时  12T单片机  编译软件 手机看文章 扫描二维码
随时随地手机看文章
注:1.编译软件为"Keil uVision3"(Keil uVision2也试用)。用其他编译软件的话就不准了。
2.需要包含头文件
3.所有函数的延时时间都是在12Mhz晶振下计算的,如用其他晶振需进行换算。
4.函数的执行时间为“函数的参数”乘以精确到的时间。例如delayms(unsigned char n)函数,其精确度为1ms,如果写入语句delayms(4),那就是延时4ms。
5.计算出来的延时时间不包括函数调用与返回的时间。如果函数的精确度较高,且参数较小,那么实际延时时间就可能与计算的时间差很远。

(1)精确到2us的延时(12MHz)
void delayus(unsigned char n)
{ while(--n);
}

(2)精确到100us的延时(12MHz)
void delay100us(unsigned char n)
{ unsigned char i;
for(;n;n--)
{ _nop_();
for(i=46;i;i--);
}
}

(3)精确的半毫秒延时函数(12MHz)
void delay1_2ms(unsigned char n)
{ unsigned char i;
for(;n!=0;n--)
{ _nop_();
for(i=246u;i!=0;i--);
}
}

(4)精确的毫秒延时函数(12MHz)
void delayms(unsigned char n)
{ unsigned char i;
for(;n!=0;n--)
{ for(i=248u;i!=0;i--);
for(i=248u;i!=0;i--);
}
}
关键字:精确延时  12T单片机  编译软件 引用地址:精确延时整理(12T单片机)

上一篇:关于MSP430 Timer_A的问题
下一篇:关于2维数组与指针的探究

推荐阅读最新更新时间:2024-03-16 13:53

c51的精确延时
用c语言为单片机编程无疑十分节约时间,可在很短的时间内开发出较高效的代码,对于程序的维护和扩充也较汇编语言方便许多。 但c语言也有它的不足之处,那就是在时间的精确控制上。要想用c实现精确的延时,只能把c的函数编译成汇编语言,然后按照汇编语言计算其执行时间。本人就按照这种方法,编写了几个51单片机的c语言精确延时函数。 注:1.编译软件为 Keil uVision3 (Keil uVision2也试用)。用其他编译软件的话就不准了。 2.需要包含头文件 3.所有函数的延时时间都是在12Mhz晶振下计算的,如用其他晶振需进行换算。 4.函数的执行时间为 函数的参数 乘以精确到
[单片机]
AVR使用范例--AVR软件延时精确计算指导
和软件延时时间长短有关的因素有,单片机,晶振,延时语句,此处以for循环语句为例。 首先,我们编写一个for循环的延时语句,如下:非关键代码省略 void delay(unsigned char n) { for(;n!=0;n--) ; } void main(void) { init_devices(); delay(254); /*计算结果,本条语句延时约138微秒,avr studio仿真结果延时141微妙 以仿真的为准。*/ while(1) ; } 正常编译,按照常规方法打开JTAG下载并进入调试。我们要想办法获取程序的运行指令个数。
[单片机]
AVR使用范例--AVR<font color='red'>软件</font><font color='red'>延时</font><font color='red'>精确</font>计算指导
Altera发布Quartus II软件9.1 缩短编译时间
  Altera公司日前宣布推出Quartus II软件9.1——在CPLD、FPGA和HardCopy ASIC设计方面,业界性能和效能突出的软件。与以前的软件版本相比,Quartus II软件9.1新特性和增强功能将编译时间缩短了20%,编译时间比竞争高密度40-nm和65-nm设计仍然快2到3倍。软件新特性是快速重新编译,对于较小的设计改动,这一特性大大缩短了编译时间,而且还支持Altera最新发布的CycloneIV FPGA。   Quartus II软件9.1建立在Altera设计软件一直保持的效能优势基础上。对于高端FPGA,软件实现了业界最快的编译时间,过去5年中,编译时间平均每年缩短20%。最新版软件编译时间上
[嵌入式]
C51全局初始化及精确延时程序
/********************************************************************************************************* * Initialization Program * QiZhao,2007 * All Rights Reserved * File : initial.h * By : QiZhao * Contact : zq1987731@163.com * * Version : V2.
[单片机]
PIC单片机实现x ms/1s钟精确延时
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。 ;**************DelayMS************** DelayMS ; 延时x毫秒,x由变量w寄存器设定 movwf L1 ; Loop1 movlw .39 ; movwf L2 ; Loop2 movlw .31 ; movwf L3 ; Loop3 nop
[单片机]
单片机keil C语言精确延时
for循环实现C语言精确延时 zang0108 @ 2005-12-15 10:42:00 C语言最大的缺点就是实时性差,我在网上到看了一些关于延时的讨论,其中有篇文章 51单片机 Keil C 延时程序的简单研究,作者:InfiniteSpace Studio/isjfk 写得不错,他是用while(--i);产生DJNZ 来实现精确延时,后来有人说如果while里面不能放其它语句,否则也不行,用do-while就可以,具体怎样我没有去试.所有这些都没有给出具体的实例程序来.还看到一些延时的例子多多少少总有点延时差.为此我用for循环写了几个延时的子程序贴上来,希望能对初学者有所帮助.(晶振12MHz,一个机器周期1us.) 一
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved