1,asmnop

执行一个空语句 null opreation 延时 有时软件抗干扰时要用到,使跑飞的程序入正轨

asmnop

2,CC2530中asmnop延时时间的计算

如果用32M的频率,这个函数耗时(100*240*3*(1/32))us,但是调用delay()的时候因为调用的函数和delay()函数不在同一个code bank,所以实际的时间还要加上切换code bank的时间,最准确的方法就是用示波器去观察。

CC2530中asmnop延时时间的计算

3,16M晶振芯片asmnop语句延时多长时间怎么算

nop就是一句空指令,意思就是运行这句指令,但是单片机什么都没做,也就是浪费了一个单片机机器周期的,具体一个机器周期等于多少个时钟周期,看具体的单片机型号,光知道asm,16M是不够的
1S/(16M/几分频) =几US再看看别人怎么说的。

16M晶振芯片asmnop语句延时多长时间怎么算

4,AVR单片机asmnop什么意思8M的话多少 时间

  AVR单片机中  asm("nop");  这条语句,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。  nop是一个空等待汇编指令,这个指令执行时,单片机是什么也不做的,仅仅起一个时间延时作用。  对于AVR单片机来与,如果不分频,那么一个振荡周期就是一个指令周期,因此8M晶振时,其一个指令周期时间是1/8000000秒,即125纳秒。

5,asmNOP的延时时间具体是多长

AVR单片机中asm("nop");这条语句,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。nop是一个空等待汇编指令,这个指令执行时,单片机是什么也不做的,仅仅起一个时间延时作用。对于AVR单片机来与,如果不分频,那么一个振荡周期就是一个指令周期,因此8M晶振时,其一个指令周期时间是1/秒,即125纳秒。

6,你的意思是所有的单片机最快速度就是1us了象PIC单片机AVR单片机等

不对的,即使是51单片机,最快也不是1us,决定速度的是晶振频率和单片机的工作模式1、传统的单片机是12T工作模式,也就是说12个时钟周期为一个指令周期,所以12M晶振时为1us(NOP),当晶振频率大于12M时就小于1us了。2、现在很多单片机都是6T(如STC89系列),4T(如80C320),1T(如STC12系列)工作模式,那么同样是12M晶振时候一个NOP的时间分别就是1/2/、1/3、1/12us,速度快了很多。

7,这段延时是多少毫秒

振荡周期和机器周期不一样的,C写的话还是软件仿真看吧
我刚用示波器看了波形,这段延时程序延时了4毫米,怎么回事?其中没中断等,CPU就是在这里纯粹执行这段延时程序。
你就直接用示波器看着调就可以了,注意优化级别不同,延时时间也会变滴。
16F73是四分频的,所以4M晶体,内核的振荡频率相当于1M,对应的机器周期就是1us。一个空指令的指令周期等于一个机器周期。所以根据以上的规则就可以知道这个函数执行的时间(前提是这个函数过程中没有任何中断打扰,现实中不太可能):1、函数现场保护和跳转进来的时间。2、多个空指令的循环体执行时间。3、函数现场恢复和跳转回去的时间。
置一引脚为1,delay,置引脚为0,delay,在置1, 抓为0的时间不就好了,肯定不是2MS,汇编一条指令为1US,C又不是,用C语言写程序,会用到单片机更多的资源。
你的看法是250*8=2000US=2毫秒,但是每一次for的执行也是需要时间的,刚好也是8个指令周期,所以还要加一倍的时间。刚好是4ms。

8,如何算51单片机延时时间

用KEIL软件可以计算时间,将while的起始位置和终止位置加红点(双击即可); 然后左侧的SEC后面的就是执行的时间。再给你几个延时程序做参考: 软件延时:(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--); }不过实际得到的延时会存在差异,所以最好用实验的方法调整延时参数。
mcu 可以 写一个,t0 ,t1两个, 例如:mcu的等待延时 void delay(uint z) uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); 下面这两个是独立运行的,不浪费mcu的时间 /***初始小灯0.25秒循环闪烁***/void timer0() interrupt 1 th0=(65536-500)/256; tl0=(65536-500)%256; if(tt==5) tt=0; led=0; else led=1; }/***按下按键初始小灯1秒闪烁数码管同步加1***/void timer2() interrupt 3 th0=(65536-50000)/256; tl0=(65536-50000)%256; if(tt0==20) tt0=0; if(key==0) tr0=0; led=0; num++; if(num==10) num=0; num0++; if(num0==6) num0=0; } } else led=1; }}

文章TAG:asm多少  
下一篇