首页 > 算法 > 自动驾驶 > 51单片机延时最大是多少,关于51单片机延迟时间的问题

51单片机延时最大是多少,关于51单片机延迟时间的问题

来源:整理 时间:2023-04-20 22:34:41 编辑:亚灵电子网 手机版

1,关于51单片机延迟时间的问题

一个时钟周期,2us,共4us
共4us
这是靠单片机指令周期延时的程序,12m晶振,每个周期为1us,每个for语句3个周期,所以124*3*3约等于1ms,所以可以进行简单的延时。

关于51单片机延迟时间的问题

2,51单片机和24C02通讯延时到底要多少

24c02时钟周期不超过400kHZ
不建议这么些,中断程序中最好不易啊出现延时之类的代码.定义一个全局的flag,在接收到数据的时候,将flag置位,在主函数中判断这个标志位是否为1,如果是1的,才将串口接收的数据写到24c02中.你延时400ms,如果在这400ms的延时中,有其他的串口数据过来,此时ri又以被清零,又进入中断服务子程序,就打断了写入的过程

51单片机和24C02通讯延时到底要多少

3,单片机延迟多少时间12M

MOV R7,#10;1微妙MOV R6,#50;R7*1=微妙DJNZ R6,$;R7*R6*2=微妙MOV R6,#100;R7*1=微妙DJNZ R6,$;R7*R6*2=微妙DJNZ R7,DELAY_DISP_LOOP;R7*2=微妙RET ;2微妙再加调用子程序的ACALL=2微妙所以1+10+1000+10+2000+20+2+2=3045微妙
假设MOV、DJNZ指令周期为2个,10×(54+154)+ 10×2 +2= 2100个指令周期;每个指令周期1us,则共有2.1ms。
这部分包含了硬件及软件上的变化因素.软件上, 建议输出汇编, 依照datasheet确认指令所用周期. (可能会有: a=i; inc a; i=a;....)硬件上, 依照硬件规格书, 可以知道晶振与单片机运行周期时间的关系. 标准应该是/12, 也有不同的.

单片机延迟多少时间12M

4,51单片机他要求延时60毫秒但是100200够吗100200不是才20

最好不要使用这种循环延迟,这种方法延迟仅仅只是让芯片,一直在高速的做着空运算。在这段时间如果还要做另一事是不行了。51单片机应该有计时器中断功能,应该是在timer.c里,有一个函数delayMs()是计时中断。这个是毫秒为单位的,20毫秒是delayMs(0,20),值0是以0号计时器计时。我也在学习,不知道能不能帮你。你看一下有关中断的资料,中断挺重要的。
你这是51(12t)的程序吧,stc12le5608ad是1t的要要差10倍左右,当然不到1秒了delay(5000);也就0.5秒delay(50000);应该是5秒左右
可以参照这个,这是个较精确的毫秒延时程序。void DelayMS(uint x) uchar i; while(x--) for(i=120;i>0;i--); }}
要看你的晶振了,如果是12M的话,这100*200大概能延时160毫秒左右
这些是非精准延时,可以用软件仿真来模拟得到所需时间,精准延时的话,可以用定时器 100*200 并不是时间,而是单片机运行100*200次运算所需的时间
我感觉做延时最好用C嵌入汇编比较好。

5,单片机延时问题下面的程序延时大约是多少

如果选用标准单片机,12振荡一个机器周期,正常模式,12M晶振,采用内部直接寻址寄存器(data),其它编译控制项为缺省设置时,一句while( --num ) 的执行时间是8us,Delay函数的执行时间就是num * 8us。详细说明如下:这段程序的延时与选用的单片机型号(有12振荡一个机器周期和单振荡一个机器周期的芯片)、工作方式(正常还是倍频模式)、晶振、编译模式(变量选择内部寄存器还是外部寄存器及优化模式),num初值等都有关系。另外多说一句,num参数数据类型也是一个因素,选择ulong、uint、uchar时间是不一样的,long时间最长,char最短ulong:40usuint:8usuchar:2us差别很大的。
和选用的单片机、晶振、编译器有关。这个的话12M,stc单片机 不到1us
很少的机器周期耗费了一点时间,单时间增大的时候,它把损耗的时间减小了,所以后来就变小了其实就好比一个分数一样,当分子分母同时增加的时候的那种意思差不多楼主可以好好理解一下你要是知道汇编的话,你就知道为什么这样的建议你去看下汇编的延时计算,你就很清楚 了
初学一般都用的12M的晶振,以上是一个带形参的函数,写程序调用是应写成void Delay(1) 括号里面任写一数 延时时间为1.6us乘以括号里的数。一般我们认为void Delay(3)为5微妙延时。在不需要精确度的时候可以这样用延时函数,精准度高的时候必须用定时器。

6,51单片机延时

#include <regx52.h>bit t;main() TMOD=0x01; TH0=(-50000)/256; TL0=(-50000)%256; EA=1; ET0=1;TR0=1; while(1);}void time0()interrupt 1 static unsigned char i=0; TH0=(-50000)/256; TL0=(-50000)%256; i++; if(i==10) i=0; t=~t; }}我不知道你利用定时器延时来干嘛用,就随便给你写了一个,一般我们直接用软件延时就可以了,定时延时是较为麻烦和不便的,上面的程序中,设了一个全局bit类型的变量t,每过半秒t就会取反一次,你就可以利用t的值去执行某种操作,如:if(t==1) P1_0=0;else P1_0=1; 如果P1_0是一个LED灯,并且这段程序在循环控制结构中,那灯就会循环每半秒闪烁一次。具体程序具体对待!定时器定时、中断系统你参考上面的程序。下面是毫秒级的软件延时,精确到小数点的第三位:ys(unsigned int y) unsigned char s; while(y--) for(s=122;s>0;s--);}
org 00h jmp main org 000bh ;timer0中断入口 push psw ;cjne指令会影响PSW,所以先压栈 mov tl0,#0b0h mov th0,#3ch ;装入初值 inc r7 cjne r7,#10,next ;50ms中断,10次就是0.5s mov r7,#00h ;在此处写中断程序的具体内容next: pop psw retimain: mov tmod,#01h mov th0,#3ch mov tl0,#0b0h mov r7,#00h ;r7记录中断次数 setb tr0 setb et0 setb ea jmp $
我以2ms为例说明一下: 单片机的晶振周期为12hz,则执行一条代码为一个机器周期,为1微妙(ua),所以2ms=10*200(ua), 对r2赋值200(4位二进制数最大值为256,所以只能取到200)即#c8h。再对r2循环20次就实现了2ms延时。至于100ms、 200ms、 1s等等方法类似,只是调整相应的初值。多设置几次循环就行。 程序代码如下: delay: mov r1,#0ah ;赋值r1为10次 delay1: mov r2,#c8h ;赋值r2为200次 delay2: djnz r2,$ ;r2自减到0,不到0继续等待 djnz r1,delay1 ;r2减到0后r1自减1,重新给r2赋初值后继续循环,直到r1到0为止,延时结束 ret

7,51单片机12HZ的怎么计算延时时间

应该是 12MHz 吧?单片机内部,计时的单位是《机器周期T》。下面是每条指令执行时,所用的周期数: MOV R1,#60 1TF: MOV R3,#248 1T DJNZ R3,$ 2T DJNZ R1,F 2T RET 2T下面是程序循环时所用的周期数: MOV R1,#60 F: MOV R3,#248 DJNZ R3,$ 2 * 248 = 496 T DJNZ R1,F (2 + 496 + 1) * 60 = 29940T RET 2 + 29940 + 1 = 29943T总共是: 29943T。如果是 12MHz,时间就是:29943us。另外,执行这个程序,还需要一条 CALL 指令,应该再加上 2T。--怎么样实现5S的延时?慢慢算呗。
每一条指令需要的机器周期如下: MOV R1,#60 ;1个机器周期F: MOV R3,#248 ;1个机器周期 DJNZ R3,$ ;2个机器周期 DJNZ R1,F ;2个机器周期 RET ;2个机器周期则内层循环 MOV R3,#248 ;1个机器周期 DJNZ R3,$ ;2个机器周期消耗的时间为:1 + 248 * 2 = 497个机器周期外层循环DJNZ R1,F ;2个机器周期每执行一次都会重复内层循环一次,所以外层循环执行的时间为:(497 + 2)* 60 = 29940个机器周期。所以这段程序消耗的时间总和为(不含调用指令CALL或者LCALL消耗的时间):29940 + 1(MOV R1,#60 消耗的时间)+2(RET消耗的时间) = 29943个机器周期,假设晶振为12M,标准8051单片机,则这段程序延迟时间为29943微妙
12MHZ的话,根据51单片机的指令周期MOV R1,#60 ;1uSMOV R3,#248 ;1uSDJNZ R3,$ ;2uSDJNZ R1,F ;2uSRET ;2uS所以循环体F里面是1+248*2+2=499uSMOV R1,#60的话就是60个F的时间,约等于是30mS,如果要定时5S的话用定时器好点!
12hz?? 12m吧!按频率买即可
MOV R1,#AAAF:MOV R3,#BBB DJNZ R3,$ DJNZ R1,F一个机器周期包括12 个时钟周期。一个12M的 晶体震荡器,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1 微秒。5S=5000 000( 微秒),所以只要AAA*BBB=5000 000( 微秒)即5S即可。6M=2( 微秒)12*(1/6)12M=1( 微秒)12*(1/12)24M=0.5( 微秒)12*(1/24)
软件延时:(asm)晶振12MHZ,延时1秒 程序如下: DELAY:MOV 72H,#100 LOOP3:MOV 71H,#100 LOOP1:MOV 70H,#47 LOOP0:DJNZ 70H,LOOP0 NOP DJNZ 71H,LOOP1 MOV 70H,#46 LOOP2:DJNZ 70H,LOOP2 NOP DJNZ 72H,LOOP3 MOV 70H,#48 LOOP4:DJNZ 70H,LOOP4定时器延时:晶振12MHZ,延时1s,定时器0工作方式为方式1DELAY1:MOV R7,#0AH ;;晶振12MHZ,延时0.5秒AJMP DELAY DELAY2:MOV R7,#14H ;;晶振12MHZ,延时1秒 DELAY:CLR EX0MOV TMOD,#01H ;设置定时器的工作方式为方式1MOV TL0,#0B0H ;给定时器设置计数初始值MOV TH0,#3CHSETB TR0 ;开启定时器 HERE:JBC TF0,NEXT1SJMP HERE NEXT1:MOV TL0,#0B0HMOV TH0,#3CHDJNZ R7,HERECLR TR0 ;定时器要软件清零SETB EX0RET C语言延时程序:10ms延时子程序(12MHZ)void delay10ms(void)unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)for(k=248;k>0;k--);} 1s延时子程序(12MHZ)void delay1s(void)unsigned char h,i,j,k;for(h=5;h>0;h--)for(i=4;i>0;i--)for(j=116;j>0;j--)for(k=214;k>0;k--);} 200ms延时子程序(12MHZ)void delay200ms(void)unsigned char i,j,k;for(i=5;i>0;i--)for(j=132;j>0;j--)for(k=150;k>0;k--);} 500ms延时子程序程序: (12MHZ)void delay500ms(void) unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); }不过实际得到的延时会存在差异,所以最好用实验的方法调整延时参数。
文章TAG:51单片机延时最大是多少单片机延时最大

最近更新

  • BA6208是什么芯片,BA6247是什么芯片?BA6208是什么芯片,BA6247是什么芯片?

    什么是芯片,它的用途是什么?BABA:镁光的MLC闪存芯片,单芯片,本地主控芯片BA,这是PCItoISA桥芯片的最后一张图,右边是BIOS芯片。都是信号解调芯片,芯片正面连接调谐器芯片,调谐器芯片为开关电源.....

    自动驾驶 日期:2024-04-10

  • 松下npm贴片机多少钱,买松下贴片机多少钱松下npm贴片机多少钱,买松下贴片机多少钱

    买松下贴片机多少钱5元2,问下全新的松下贴片机cm602Lnmejm8a12吸嘴0402芯片的的要300万1000万都有你好!大概20万左右,市场的行情是这样,可以去问问。打字不易,采纳哦!3,买一台松下贴片机要多.....

    自动驾驶 日期:2024-04-10

  • A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样

    A9频率14怎么442系统和422系统安兔兔跑分一样2,海信LED网络电视所用的A9CPU是怎样档次的CPU3,Mstar6A918处理器的主要参数4,a9处理器相当于骁龙多少5,三星a9安兔兔跑分50000多分正常吗6,苹.....

    自动驾驶 日期:2024-04-10

  • 03db是多少,30wt等于多少03db是多少,30wt等于多少

    30wt等于多少wt%是重量百分比的意思,如重量百分含量为30。即100公斤物质中,某元素含量为30公斤。0.32,33cl等于多少ml厘升cl是体积单位为酿酒行业以及调酒师的常用术语进行单位转换的话1.....

    自动驾驶 日期:2024-04-10

  • 占空比多少有意义,占空比控制有什么优点占空比多少有意义,占空比控制有什么优点

    占空比控制有什么优点2,100占空比有何意义3,氩弧焊机的占空比在脉冲的过程中起到什么作用4,万用表上的占空比是什么意思什么是占空比占空比是什么意思5,占空比有什么作用谁来指点一下6,什么.....

    自动驾驶 日期:2024-04-10

  • 电路正负极颠倒危害,锂电池正负极接反电路正负极颠倒危害,锂电池正负极接反

    损坏电路元件:电动自行车电池正负极接反后,通电后会损坏电路元件。一旦正负极颠倒,电动自行车电池正负极接反会导致以下情况:保险丝熔断:电动自行车电池正负极接反后,保险丝一旦通电就会.....

    自动驾驶 日期:2024-04-10

  • 电路图中网孔,电路中网格的概念电路图中网孔,电路中网格的概念

    网格电流法只适用于平面电路图。网状:在确定的电路图中,最简单的不能细分的回路称为网状,下面的电路图中有几个分支,电路拓扑又称电路图,即电路结构,是对电路图的再次抽象,网状:将电路画在平.....

    自动驾驶 日期:2024-04-10

  • 电路板的硬件调试,简述硬件电路的设计流程电路板的硬件调试,简述硬件电路的设计流程

    电路板制作完成后,将购买的元件焊接到PCB板上,然后对电路板进行测试和调试。印刷电路板的测试和调试计划,拿到电路板的第一件事是查看是否有大型设备型号和引脚,更换电路板的高昂成本也成.....

    自动驾驶 日期:2024-04-10