返回首页

51单片机延时程序解读(51单片机延时一秒程序编写)

来源:www.haichao.net  时间:2022-12-16 16:37   点击:103  编辑:admin   手机版

1. 51单片机延时一秒程序编写

相当于汇编里的nop伪指令,表示的是空操作,可是实现延时,表示执行一条没有什么意义的指令,例如 MOV r0 ,r0。

因为是执行“指令”,所以花的时间是一个指令周期,指令周期是以机器周期为单位计算的(有的指令周期是2个或者以上的机器周期,但是nop指令就是花费一个机器周期),所以:1个NOP = 1个机器周期 = 12 * 时钟周期(51而言)= 12 * 1 / f; f 表示的是你的晶振频率, 例如6Mhz的晶振,f = 6000000,带入上式,结果单位为s。

2. 51单片机10微秒延时程序

代码示例:

void dleay (unigned int i)

{

do

{

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();

_nop_(); //延时了13微秒

i--; //一个计算 花了 2微秒

}

whlei(i);

3. 51单片机延时一微秒

51单片机精确延时有两个办法: 1、采用定时器来延时。

2、用汇编语言来编制延时程序。

4. 51单片机时分秒程序设计

假设晶振为12MHz,不用中断时程序语句如下: TMOD=0x01;

//定时器0工作方式1 TH0=(65536-1000)/256;

//装入初值 TL0=(65536-1000)%256; TF0=0;

//清溢出标志; TR0=1;//启动定时器0 while(TF0==0);

//等待定时时间到 TR0=0; TF0=0;

5. 51单片机c语言延时一分钟程序

51单片机执行一个语句相当于24个晶振周期,for(j=110;j>0;j--);这个语句每次执行相当于执行4个语句,也就是96个晶振周期,执行110次,你用的单片机应该是11.0592Mhz的,因此 for(j=110;j>0;j--);所用时间为:96*110/11059200,约等于1ms,所以执行这个语句110约等于1ms,500此就是500ms

6. 51单片机延时1秒程序

用定时器计时10就可以了,检测到按键按下后启动定时器,在定时器的中断函数里判断到了10秒就关闭LED

7. 51单片机定时一秒程序

1.程序中通过扫描按键,获得按键值,并付给按键变量。

2.确定按键完成的条件(按确定键或一定延时量)

3.按键完成后,处理按键变量,并计算为设定延时值

4.时钟累计变量复位,开始重新累计,允许累计标志位值1

5.当累计变量大于等于设定延时值时,设定时间到达,输出规定动作,允许累计标志位清零。

8. 51单片机延时1s的程序汇编

用中断,定时器工作方式1,计数最大数为65536,那么从15536开始计数,达到65536要计50000次,6M的晶振机器周期为2微秒,那么溢出一次耗时为100000微秒,计数溢出10次即为1秒钟 ORG 000BH AJMP TIME0 ORG 30H MAIN: MOV 30H,#00H;先把30H地址的数据清零,用做给溢出计数用 MOV TMOD,#00000001B MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 LOOP:AJMP LOOP TIME0:PUSH ACC PUSH PSW INC 30H;进入中断后就自增 MOV A,30H CJNE A,#10,T_RET;看计数器的溢出到了10次没,没有就跳到T_RET再继续从15536计数 T_L1:延时1秒到了,写自己的程序吧。

MOV 30H,#00H;记得把溢出计数器再次清零 T_RET:MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETI END

9. 51单片机延时程序1ms怎么写

先看看你的系统time ticket是多少毫秒,一般来说,大概都是1-10ms,然后用这个做基数,弄个aount就行了,10ms就是10,1ms就是100,很容易。

10. 51单片机定时器延时一秒

一.51没有这样的功能,STC12单片机才有这样的功能,不过你可以用延时函数来产生PWM波形,但比较浪费CPU时间。

二.还有一种方法可以用51来实现,但要消耗两个定时器,一个T0定时器控制PWM周期,另一个T1定时器控制PWM占空比。(T0装的初值要大于T1的初值)在定时器中断的时候都是对I/O口进行取反就可以了。一个定时器产生PWM波形,做不出来,要两个的(不过只赏0分太少了吧!!!)

11. 51系列单片机实现延时的方法

void delay(unsigned int x) //延时 x ms{unsigned int i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}延时1ms 即为使x=1;这程序延时约1ms(x=1时用keil测出来约 0.96831272ms,近似1ms),用C语言很难做到准确的1ms。注意晶振为11.0592MHZ的时候用~ 晶振为12MHZ时 把 i=120 近似值1ms

顶一下
(0)
0%
踩一下
(0)
0%