50ms延时程序】的更多相关文章

12MHz晶振 一个机器周期2us, DEL:  MOV  R7,#200D DEL1: MOV R6,#125 DEL2: DJNZ R6,DEL2 ;125*2=250us DJNZ  R7,DEL1 ;0.25*200=50ms RET…
应用单片机的时候,经常会遇到需要短时间延时的情况.需要的延时时间很短,一般都是几十到几百微妙(us).有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错.这种情况下,用计时器往往有点小题大做.而在极端的情况下,计时器甚至已经全部派上了别的用途.这时就需要我们另想别的办法了.    以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的.比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要:     …
一.相关换算 1.1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒) 2.物质在1秒内完成周期性变化的次数叫做频率,常用f表示. 物理中频率的单位是赫兹(Hz),简称赫,也常用千赫(kHz)或兆赫(MHz)或GHz做单 位.1kHz=1000Hz,1MHz=1000000Hz 1GHz=1000MHz.频率f是周期T的倒数,即f =1/T,波速=波长*频率.…
一. 500ms延时子程序 void delay500ms(void) { unsigned char i,j,k; ;i>;i--) ;j>;j--) ;k>;k--); } 产生的汇编: C:0x0800      7F0F       MOV        R7,#0x0F C:0x0802      7ECA       MOV        R6,#0xCA C:0x0804      7D51       MOV        R5,#0x51 C:0x0806      D…
在单片机或嵌入式系统的程序,常常用规定次数的空循环来实现延时 /** * 通过一个空循环体循环让程序运行一段时间.在嵌入式系统中,这个函数用来实现延时. * * 参数: *    u16 i -- 循环次数,无符号整型 * 返回值: *    无 **/ void delay(u16 i) {   while(i--); }…
//工匠小建 延时计数 100微妙计数 50M*0.00001-1 (个人理解:1s中50M次动作.那么100us多少次动作.做完这些动作就是延时)parameter delay_100us=16'd49_999; /************************************/ reg [15:0] count_1ms;reg star_dleay; /************************************///延时模块 100us后开始工作always@(pos…
有时候为了让程序暂停一下,不让它一直跑下去,可以使它进入循环结构中! 例如: #include <QCoreApplication> #include <qdebug.h> #include <QTime> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QTime time = QTime::currentTime(); while(QTime::currentTime().seco…
#include <reg52.h>sbit P1_0 = P1^0;void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误 void Main(){while (1) // 开始一直循环{P1_0 = 0;Delay(); // 没有参数也要加 () 否则会有WarningP1_0 = 1;Delay();}} void Delay() // 12M晶振1s延时{unsigned char h, i, j, k; for (h = 5; h > 0; h…
https://wenku.baidu.com/view/3c94e2934028915f814dc205.html…
原文链接:http://blog.csdn.net/tangweide/article/details/7063747 (-)使用_sleep()函数 #include <iostream>   using   namespace   std; _sleep(5*1000)://延时5秒 (二)使用Delay(int   time)函数 #include <ctime> void   Delay(int   time)//time*1000为秒数 { clock_t   now  …