首页 > 芯片 > 半导体 > 单片机一般延迟多少,单片机中延时问题

单片机一般延迟多少,单片机中延时问题

来源:整理 时间:2023-10-10 22:27:33 编辑:亚灵电子网 手机版

本文目录一览

1,单片机中延时问题

是什么芯片啊?如果是51的话,用keil编译成汇编语句应该是下面这段:MOV r7,#250d1: nop 1机器周期djnz r7,d1 2机器周期选用12m晶振的情况下其延时大致是:(1+2)*250=750us=0.75 ms如果把_nop_();去掉的话,编译结果如下:MOV r7,#250djnz r7,d1 2机器周期延时为0.5ms,我估计函数的本意是要求延时500us的,所以可以把_nop_();去掉。
看晶振
大概在3ms左右!可以用Keil算!
请说明所用单片机类型、所用时钟、、、

单片机中延时问题

2,单片机延时程序的延时时间怎么算的

单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。扩展资料:1丶指令周期,是每种运算需要的时间,如加法、逻辑等,是每一步进行这种指令运算需要的时间,是机器周期的整数倍,这种周期不定。2丶51单片机12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微妙=1微妙。3丶1个毫秒延时子程序如下:voiddelay1ms(uintms)uint i,j;for(i=0;i<ms;i++)for(j=0;j<110;j++);} }

单片机延时程序的延时时间怎么算的

3,单片机的延时10ms是多长时间啊

延时多长时间要看你单片机的频率和使用的语言种类,比如同一个延时程序,在8M晶振单片机跑就比在4M的快接近一倍,用汇编写的延时就比用c的要准些,一般都用c写,用不同软件转换相同延时程序时间也不同。由于软件将你编的程序转成汇编交给单片机识别,它所执行的时间为单片机一个周期*程序运行的条数
1秒(S)=1000毫秒(MS);1毫秒(MS)=1000微秒(US);1微秒(US)=1000纳秒(NS);1纳秒(NS)=1000皮秒(PS)。自己用单片机的指令周期算算就好了,达到要求的延时。
10s
别这么懒好不好?!不就个多重循环吗。根据晶振频率算。比如12m的晶振对应1us的机器周期,你要10ms,不很精确的话,循环10000次不就得了。
1毫秒=1000微秒,如果晶振(就是相当于振源)如果是12M的,那个一个机器周期就是一微秒,一个mov 指令占用两个机器周期,就是2微秒,一个djnz占用三个机器周期,就是3微秒,同理,6M的晶振,一个机器周期就是2微秒,反复赋值,执行指令,实现延时的功能。

单片机的延时10ms是多长时间啊

4,在51单片机中nop延时多长时间

_nop_()要延时1个指令周期。1、时钟周期=振荡周期,名称不同而已,都是等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1/12M。2、机器周期,8051系列单片机的机器周期=12*时钟周期,之所以这样分是因为单个时钟周期根本干不了一件完整的事情(如取指令、写寄存器、读寄存器等),而12个时钟周期就能基本完成一项基本操作了。3、指令周期。一个机器周期能完成一项基本操作,但一条指令常常是需要多项基本操作结合才能完成,完成一条指令所需的时间就是指令周期,当然不同的指令,其指令周期就不一样的了。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。

5,430单片机的最小延时是多少

如果选用标准单片机,12振荡一个机器周期,正常模式,12m晶振,采用内部直接寻址寄存器(data),其它编译控制项为缺省设置时,一句while( --num ) 的执行时间是8us,delay函数的执行时间就是num * 8us。详细说明如下:这段程序的延时与选用的单片机型号(有12振荡一个机器周期和单振荡一个机器周期的芯片)、工作方式(正常还是倍频模式)、晶振、编译模式(变量选择内部寄存器还是外部寄存器及优化模式),num初值等都有关系。另外多说一句,num参数数据类型也是一个因素,选择ulong、uint、uchar时间是不一样的,long时间最长,char最短ulong:40usuint:8usuchar:2us差别很大的。
最小的延时是多少?2113430 的主频在8M左右,所以最小延时应该是0.125usasm(nop)就是最小延时。但这不能被调用5261,调用的话,要有压栈,出栈的操作,就会超过这个时间了。所以你自己写C的延4102时函数,一般是for多少个空循环,也许是双循环什么的,这个效率本身低过汇编,另1653外加上调用函数的压栈出栈等操作,更多一些是可预期的版这样看来,你问题里的函数效率已经很高了。4个指令周期的时间。当然如果写成inline函数也可能会在提高一点权儿。但不多了。

6,单片机四个数码管动态显示的延时时间约为多少

#include <reg52.h>#include <stdlib.h>#define uint unsigned long#define uchar unsigned char sbit N1 = P1^0; sbit N2 = P1^1;sbit N3 = P1^2;sbit N4 = P1^3;uchar code table[]=uint num;int a,t1=0;void delayms(uint xms) //延时函数 uint i,j; for(i=xms;i>0;i--) for(j=10;j>0;j--);}void display(uint num) N1=0; P0=table[(num/1000)]; delayms(1); P0=0XFF; N1=1; N2=0; P0=table[(num%1000)/100]; delayms(1); P0=0XFF; N2=1; N3=0; P0=table[(num%100)/10]; delayms(1); P0=0XFF; N3=1; N4=0; P0=table[(num%10)]; delayms(1); P0=0XFF; N4=1;}void TimeAdd() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; t1++; if(t1==10) //20*50==1秒10*50=0.5秒 t1=0; num++; }}void main() TMOD=0X01; // 定时器 初始化 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; //中断总开关 ET0=1; //开定时器0 中断 TR0=1; //启动定时器0 num=6000; //初始值 while(1) display(num); }}

7,单片机的延时延时时间长度是怎么算的最好有一个例子来说明

延时长度根据你的振荡器的频率和后分频来计算的。最简单就是写一段延时,用示波器测试一下。简单的延时可以用nop循环,长延时尽量用定时器来做。
如果单片机晶振为6M,机器周期即为2us=12/fosc汇编语句对时间的把握精确于C语言,所以参考不同指令的长度,就可以算出你的延迟时间。单片机的延时程序:MOV R7,#200LOOP1:MOV R6,#125LOOP2:DJNZ R6,LOOP2DJNZ R7,LOOP1RET第一句为单周期指令,耗时2us第二句执行了200次,耗时2*200us第三句为双周期指令,执行了125*200次,耗时2*2*125*200us第四句同第三句,耗时2*2*200us第五句双指令周期总够耗时2+2*200+2*2*125*200+2*2*200+2*2约为100ms
你这是死循环延时,太浪费单片计的运行时间了,这也是最低级的写程序的方法。用定时器中断处理是一种方法,但在定时器不多,或者定时器还有其它用途的场合就不好办了。而且这会打断其它流程的正常操作。最好的做法是做成周期查询的,类似与操作系统的任务,定一个时间基数,比如1ms,然后单片机产生1ms中断,中断里只对变量a进行加1操作。主程序里任何需要定时的任务,就去查询当前a的值。比如延时就是记下当前的a值,然后等到a的值变到需要的时间值后再执行。但不要死等a的值变化,主程序应该是轮询式的,到了需要的时间点就去做该做的事,没到时间,主程序就去轮询其它任务。这样的单片机的处理能力才真的被释放出来,这个程序也就有随意添加其他任务的可能。

8,单片机程序 计算延时多长时间

先给你一个实例:石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期 微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 DJNZ R7,$ 2个 2×248 DJNZ R6,D1 2个 2+ 20*(2+2*248+2)=10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:DELAY: MOV R5,#20D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET ///////////////////////////////////////////////////////////////DELAY:MOV R7,#10HDELAY0:MOV R6,#7FHDELAY1:MOV R5,#7FHDELAY2:DJNZ R5,DELAY2DJNZ R6,DELAY1DJNZ R7,DELAY0RETTime = 16*[ 127*(127*2+3)+3 ] + 3 = 522275 us;你可以用Keil仿真测出时间,我测试的时间是,第一个循环为257us,第二个为32642us,第三个为522277us
找个示波器,在待测时间处直接输出波形就可以了。然后用示波器看看时间差。
DJNZ R5,DELAY2一共执行了10H*7FH*7FH遍,每一遍用时2机器周期,所以总的时间是:10H*7FH*7FH*2=516128个机器周期。如果是12M时钟,每个机器周期1微秒。延时时间约为0.5秒。
计算延时时间应注意以下几点:1、晶振跑多少的,象这里的6m的话,那么它执行的机器周期就是2us,2、看指令执行要多少个机器周期,向djnz、ret都要两个机器周期,3、那么,这里总共时间是26(1a)*255(0ff)*255(0ff)*2(机器周期)*2us(1个机器周期的时间)=6762600us 若要精确计算的话要加上上面赋值的时间和子程序返回的时间。不过一般只要计算到上面就行了,因为赋值和返回指令的时间很短(相对于整个延时程序来说)希望对你有所帮助...
文章TAG:单片机一般延迟多少单片机一般延迟

最近更新

  • 无线键盘接口电路,电脑键盘按键不行怎么办?无线键盘接口电路,电脑键盘按键不行怎么办?

    接口电路。检查键盘和电脑主机之间的连接接口,以确定接触是否良好,再次插拔连接键盘和电脑主机的USB电缆,键盘电路板是整个键盘的控制核心,位于键盘内部,主要作为按键扫描识别、编码和传输.....

    半导体 日期:2024-04-11

  • 大功率灯泡功率多少,一般家用电灯泡功率多大大功率灯泡功率多少,一般家用电灯泡功率多大

    本文目录一览1,一般家用电灯泡功率多大2,平时所说的大功率LED灯是多大功率3,灯泡电功率一般是多少4,一个普通白炽灯泡功率为多少啊5,400W250W70W150W60W的电灯的功率是多大6,灯泡的实际功率.....

    半导体 日期:2024-04-10

  • 1节1号标准干电池的内阻计算多少,1号电池的内阻是多少1节1号标准干电池的内阻计算多少,1号电池的内阻是多少

    1号电池的内阻是多少2,一节干电池的内阻是多少3,1号和5号干电池内阻各多大4,干电池的内阻一般为多大5,一节干电池的电流是多大6,15V1号干电池内阻一般是多少7,1号电池内阻大约为多少8,一号干.....

    半导体 日期:2024-04-10

  • 运放水位控制电路,水泵水位控制电路示意图运放水位控制电路,水泵水位控制电路示意图

    家用水泵的自动抽水控制电路如下图所示:当水位下降时,浮子开关的触点闭合,水泵工作。电子水位开关和控制器,适用于污水环境,当水位下降到B点以下时,由于脚②的低电位而设置,高输出电平释放继.....

    半导体 日期:2024-04-10

  • 30mw是多少w,喇叭功率30MW 是 什么意思30mw是多少w,喇叭功率30MW 是 什么意思

    喇叭功率30MW是什么意思mW是表示功率大小的一种单位,1KW=1000W,1W=1000mW。2,30mwcm2等于多少wm230/1000*10000=300没看懂什么意思?3,2030mw什么意思20-30兆瓦,1兆瓦=1000KW虽然我很聪明,但这.....

    半导体 日期:2024-04-10

  • 下雨传感器电路,用于感应雨水的传感器下雨传感器电路,用于感应雨水的传感器

    雨雪传感器,雨雪天主机自动停机。当刮水器杆设置在INT位置时,下雨时,雨量传感器将自动感应雨量以挂水,它装有雨水传感器,刮风下雨时会自动关窗,GloriasaltyRV有一个雨水传感器,此时在外面晾晒.....

    半导体 日期:2024-04-10

  • 反 型滤波电路,反向过滤方法反 型滤波电路,反向过滤方法

    如果我们想要获得更好的滤波效果,通常需要一个由电容和电感组成的滤波电路,例如“π滤波电路”。通常π型滤波电路由两个电容和一个电阻组成,滤波效果较好,因为滤波电路需要大容量的储能电.....

    半导体 日期:2024-04-10

  • 有源回馈整流电压提升,反馈整流器和有源整流器的区别有源回馈整流电压提升,反馈整流器和有源整流器的区别

    使用电流源作为共发射极放大器电路的有源负载可以通过电流源的大交流等效电阻提高输出电压增益。单相桥式整流电路、双绕组全波整流电路和半波整流电路,整流后的电压为空载时的交流电压.....

    半导体 日期:2024-04-10