首页 > 算法 > 自动驾驶 > 单片机的反应时间是多少,单片机循环时间问题

单片机的反应时间是多少,单片机循环时间问题

来源:整理 时间:2024-01-06 22:59:50 编辑:亚灵电子网 手机版

1,单片机循环时间问题

while (150)循环会死的!i如果用char型,大概在1ms左右每个循环。如果用keil,可以软件仿真一下看看。
while(1)是该程序的监控主程序,就是个死循环,你把这个去掉了,那程序运行完后就停了。

单片机循环时间问题

2,AT89C51单片机响应外部中断的典型时间是多少在哪些情况下CPU将推迟

AT89C51单片机响应外部中断的典型时间是3个至8个机器周期,在已有同级别中断或高级别中断在进行处理过程中,CPU将推迟对中断请求的响应。

AT89C51单片机响应外部中断的典型时间是多少在哪些情况下CPU将推迟

3,51系列单片机的PWM 输出再滤波进行DA转换请问响应时间大约多

PWM输出经滤波之后的波形,其响应时间主要取决于PWM的频率和滤波器的时间常数。一般而言,为了输出较为平滑,PWM的脉冲周期远远小于滤波器的RC时间常数,因此,以滤波器的RC时间常数为准。根据两级RC参数,计算出截止频率f0,响应时间τ=0.35/f0。

51系列单片机的PWM 输出再滤波进行DA转换请问响应时间大约多

4,AT89C51单片机响应外部中断的典型时间是多少在哪些情况下CPU将推迟

任何一个中断都必须在执行完当前指令后才能跳转。响应时间实际上就是当前指令执行时间加上跳转指令执行时间。外部中断是最高级中断,除非来个外部0和外部1的分别,只要中断使能,CPU将不会推迟响应,当然当前指令执行完成再跳转这个不算推迟

5,AT89C51单片机响应外部中断的典型时间是多少在哪些情况下

任何一zd个中断都必须在执行完当前指令后才能跳转。响应时间实际上就是当前指令执行时间加上跳转指令执行时间。外部中断版是最高级中断,除非来个外部0和外部1的分别,只要中断使权能,CPU将不会推迟响应,当然当前指令执行完成再跳转这个不算推迟
at89c51单片机响应外部中断的典型时间是3个至8个机器周期,在已有同级别中断或高级别中断在进行处理过程中,cpu将推迟对中断请求的响应。
at89c51单片机响应外部中断的典型时间是3个至8个机器周期,在已有同级别中断或高级别中断在进行处理过程中,cpu将推迟对中断请求的响应。

6,51系列单片机的PWM 输出再滤波进行DA转换请问响应时间大约多少啊

PWM输出经滤波之后的波形,其响应时间主要取决于PWM的频率和滤波器的时间常数。一般而言,为了输出较为平滑,PWM的脉冲周期远远小于滤波器的RC时间常数,因此,以滤波器的RC时间常数为准。根据两级RC参数,计算出截止频率f0,响应时间τ=0.35/f0。

7,单片机中时间问题

C语言的执行时间,从来就没有计算公式。C程序的执行时间,和操作系统有很大的关系,和编译软件也有关,在单片机中,更和变量的存储类型有关(如单字节变量、两字节变量)。因为有如此多的不确定因素,所以,从来就没有办法计算C的执行时间。只是可以在仿真调试的时候,进行实际测量,得到一些(难以通用的)经验数据。楼主要想准确的控制时间,应该研究使用汇编语言,或者使用硬件定时器。C语言,只能干些粗活。
这个取决于你使用晶振的大小!比如说:12MHz的每一个指令时间为:1us如此类推!当X为1000,就相当于1ms的延时作用
可以用定时器中断时现比如用定时器1通过写TMOD寄存器进行如下设置:C/T=0 定时/计数器1工作于定时方式M1=1;M0=0--选择工作模式1,构成最大定时器GATE=0再通过写TL1和TL0指定定时时间,比如定时50ms可设为TL1 = 0x13; TH1 = 0x2C; //指定定时时间为50ms //65536-50/(11.0592/12)=11283=2C13h然后开定时器中断ET1 = 1当计时满后会进入定时器中断服务程序在中断服务程序中这样设计:TL1 = 0x13; TH1 = 0x2C; //重新赋值timer_count++;//定时器计数器加1timer_count为自己定义的一个变量,每进入一次中断,对变量加1,然后再退出中断,这样可以实现任意时间的定时,比如定时1s,即当timer_count等于20时时定时时间即为1s。我是用C语言写的,你可以转为汇编语言。
两个函数的延时时间都是一样的,随X的值变化一般一个机器周期的时间都是1us,例如调用延时函数是写delay(1000);那就是延时1000us
随便找个51的书就有,写出公式你也不一定看得懂.t = 12 * ( 65536 - m ) / fosc其中:t 代表需要设定的时间 m 代表计时器初值 fosc 代表晶振频率 12 代表分频数注:本公式仅限于12分频类51系列单片机,其他分频方式单片机请参照数据手册自行修改多谢!

8,单片机中断响应时间怎么计算

中断响应时间:从外部中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中,待下一个周期查询。 1.最短时间:中断请求有效,查询后在下一个周期便开始执行一条硬件的子程序的调用(时间是两个周期),然后开始执行服务程序的第一条指令。这样从锁存电平的周期到执行中断服务程序,中间相隔3个机器周期。2.最长时间:如果中断信号发生在前面所说的3种情况时,响应时间就要变长:(1)响应时间取决于正在执行的同级或高级中断的执行时间;(2)指当前CPU执行的指令是多周期指令,如乘除法指令(4个 周期),最坏情况,还要等3个周期。这样响应周期变为3+3=6个周期; (3)CPU当前执行的指令是RETI或访问IE、IP寄存器时,本指令(1个周期)没有响应,且下一条指令执行完后才能响应,这样附加的等待时间最长不会超过5个周期(1+4)。整个响应为5+3=8个周期。 这样,如果不考虑第1种情况,整个中断响应的时间范围应当是: 3~8个机器周期。学习单片机必备:吴鉴鹰单片机开发板
中断响应时间:从外部中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的s5p2时刻,intx引脚的电平被锁存到内部寄存器中,待下一个周期查询。 1.最短时间:中断请求有效,查询后在下一个周期便开始执行一条硬件的子程序的调用(时间是两个周期),然后开始执行服务程序的第一条指令。这样从锁存电平的周期到执行中断服务程序,中间相隔3个机器周期。 2.最长时间:如果中断信号发生在前面所说的3种情况时,响应时间就要变长:(1)响应时间取决于正在执行的同级或高级中断的执行时间;(2)指当前cpu执行的指令是多周期指令,如乘除法指令(4个 周期),最坏情况,还要等3个周期。这样响应周期变为3+3=6个周期; (内容来源:吴鉴鹰吧)(3)cpu当前执行的指令是reti或访问ie、ip寄存器时,本指令(1个周期)没有响应,且下一条指令执行完后才能响应,这样附加的等待时间最长不会超过5个周期(1+4)。整个响应为5+3=8个周期。 这样,如果不考虑第1种情况,整个中断响应的时间范围应当是: 3~8个机器周期。贡献文档:百度文库《吴鉴鹰单片机项目实战精讲》单片机开发板参考:吴鉴鹰单片机开发板(有详细的视频教程,板子功能全面,适合学习使用

9,用51单片机控制电机的启动与停止电机的驱动频率是40KHz启动响

期待看到有用的回答!
这里有个直流电机调速的程序,可以参考一下* 功能 : 通过P1.0口来控制直流电机的旋转的快慢/***********************************************************************/#include #define uchar unsigned char #define uint unsigned int sbit KEY1 = P3^2; //定义调速的按键 sbit PWM = P1^0; //定义直流电机的控制端口 uchar CYCLE; //定义周期 uchar PWM_ON ; //定义低电平时间 /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay(uint i) { uchar x,j; for(j=0;j for(x=0;x<=148;x++); } void Time0(void) { TMOD |=0x01; //定时器设置 1ms in 12M crystal TH0=(65536-1000)/256; TL0=(65536-1000)%256; //定时1mS IE= 0x82; //打开中断 TR0=1; //定时器打开 } main() { uchar PWM_Num; //定义档位 Time0(); CYCLE = 10; //时间可以调整 这个是10步调整 周期10ms 8位PWM就是256步 PWM = 0; while(1) { if(!KEY1) { Delay(15); if(!KEY1) { PWM_Num++; //按一下P3.2口,就给直流电机换一个档位 if(PWM_Num==4) { PWM_Num=0; } switch(PWM_Num) { case 0:P0=0x06; PWM_ON=0;break; //低电平时长 //给P0口赋值,是让P0口显示:1,2,3,4 这四个档位 case 1:P0=0x5B; PWM_ON=2;break; case 2:P0=0x4F; PWM_ON=4;break; case 3:P0=0x66; PWM_ON=6;break; default:break; } } } } } /********************************/ /* 定时中断 */ /********************************/ void tim(void) interrupt 1 using 1 { static unsigned char count; TH0=(65536-1000)/256; TL0=(65536-1000)%256;//定时1mS if(count==PWM_ON) { PWM = 1; //直流电机转 } count++; if(count == CYCLE) { count=0; if(PWM_ON!=0) //如果左右时间是0 保持原来状态 { PWM = 0; //直流电机不转 } } }

10,单片机实现500KHZ时钟信号

不行!89s51资料上说它能带最大33M的晶振,但是89s51的EMC性能很让人头疼的,所以搞这么大的风险会很高(不考虑理论上的)。假设是使用24M的晶振,那么500K的信号,也就是2us。即使你的单片机其他的工作什么都不做,只做中断来产生的话,也是不行的。 在中断来了后,系统要做压栈,保护等操作(有些是硬件执行的),PUSH和POP这些指令是自动的,虽然不用写,但是还是要消耗时间的,然后你还要重新给timer赋值,这样消耗的更多,想在2us内4个指令周期完成,你看看行不行呢,显然只够初始化timer(MOV的立即数操作是2个指令周期,高低位各需要用一次)。 不要想了,单用此款单片机绝对不行,除非加PWM模块,还要能找到呢。/******************************************************************/在理论上支持ATF144X的回答,如果系统只做这个工作的话,可以修改成:loop: CPL P1.0 NOP LJMP loop但是考虑到单片机端口高低电平的确立时间,估计还是不行,谁有现成的系统试试看啊,用示波器看看就知道了,等结果。成功的话给ATF144X加分吧,呵呵。
哦……抱歉,在计算的时候把这个忽略了,使用3MHz的晶振才可以。 500KHz对应是2μS,所以在使用24MHz的晶振的时候,估计这样: loop: CPL P1.0 CPL P1.0 LJMP loop 前两条指令为1周期,跳转为2周期,一次循环共4周期(2μS),端口翻转一次。补充:如果使用AT89S51+3MHz的晶振,在ALE引脚上可以直接输出500KHz的方波,不需要设置寄存器。但是要说明一下,AT89S51的一个寄存器AUXR的第一个位的状态可以决定ALE是否输出波形,在单片机复位完成之后这个位为0,表示允许ALE输出波形,如果把这个位设置为1,则禁止ALE输出波形。如果认为ALE输出的信号驱动能力不强,可以加非门来增强驱动力。如果使用AVR单片机,比如ATMEGA8,那么问题就好办多了。
500kz的时钟周期是2us 在12M晶振的情况下,机器周期1us,不能用中断,因为进中断就要3个机器周期即3us就已经超出了时钟周期(另外退中断和高低电平切换也要花掉若干个机器周期)用程序的话 LOOP: CPL P1.0 ---- 1US AJMP LOOP ---- 2US 周期是6us,超出了!LOOP: SETB P1.0 ---1USCLR P1.0 ---1USAJMP LOOP ---- 2US 周期是4us,还是超出了!所以12M下不能通过编程产生500khz的时钟 那么只有提高单片机的晶振了,24M,机器周期0.5US LOOP: SETB P1.0 ---- 0.5US CLR P1.0 ----0.5US AJMP LOOP ----1US 周期是2us,高电平0.5,低电平1.5 中断的方法还是不行! S51单片机的晶振最高好像是24M吧!!!!(嗨!单片机的速度就是慢,要是像电脑达到几个G就好办多了,呵呵!) 通常500KHZ由分频器产生! (二楼就是这个意思,呵呵)
串口通信时钟是由单片机的晶振输入后,内部产生的,每个单片机都有自己的串口控制寄存器,在编程的时候只要对其进行正确的控制就可以设置串口通信的各种工作模式,每个模式会有自己的波特率,即你说的时钟频率.波特率一般用9600,串口通信有自己的协议,在单片机教学的课程里都会有,寄存器的编程也可以在单片机的教程里找到,不会太难的 RXD,TXD引脚一般固定,因为其他引脚没有产生你说的时钟的内部机制 两机通信的时候a的RXD接b的TXD,a的TXD接b的RXD
500khz 的频率对51单片机确实太高,可以产生这个频率的方波,但无论用定时器中断还是软件模拟,都占用较多cpu资源,调节占空比已不可能
文章TAG:单片机的反应时间是多少单片机反应反应时间

最近更新

  • 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