用汇编怎么写51单片机的延时程序?

295 2024-02-28 23:23

一、用汇编怎么写51单片机的延时程序?

DEL1S:MOV R7,#10D1: MOV R6,#200D2: MOV R5,#250 DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RET说明:

1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等 2、这个程序是12M时钟,如果时钟不同,要修改数值。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5

二、用单片机汇编一个100ms的延时程序?

DELAY:

MOV R3,#100 ;2

DLY0:

MOV R2,#249 ;2*100

DLY1:

DJNZ R2,DLY1 ;249*2*100

MOV R2,#248 ;2*100

DLY2:

DJNZ R2,DLY2 ;248*2*100

DJNZ R3,DLY0 ;2*100

RET ;2

以上假设12M晶振,延时共2+(249*2+2+248*2)*100+2=100004微妙=100.004毫秒

三、单片机中的延时程序的延时时间怎样计算的?

比如说:void delay (){ int x; char y; for(x=1000;x>0;x--) { for(y=100;y>0;y--)};}x每减一次,y减100次,x一共减少1000次这个子程序的延时时间是:1000*100=100ms(默认时间是us)如果想更精确的话,可以用软件进行调试 for语句下面的{}还可以省略有不清的可以多交流

四、单片机延时程序的作用?

这个原因还是蛮多的,分同的情况,单片机的处理速度是很快的,有的时候为了让我们便于观察需要加入延时,例如一个指示灯的亮灭,如果不加入延时是看不出来的,再有就是键盘去抖动,一般按键都有20ms左右的抖动,为了更好的检测防止干扰,也需要延时一段时间在进行判断,总之延时的作用在不同的情况下也不同

五、计算延时子程序的延时时间?

计算延时子程序延时时间是1000000微秒

延时时间是一个机器周期,与晶振的关系是:osc/12/1000000微秒

比如12M晶振,=12*1000000/12/1000000=1us

六、单片机延时函数延时时间计算delay(uinti)?

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

七、单片机,一个延时15μs的延时程序。可调倍数?

代码示例:

void dleay (unigned int i)

{

do

{

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

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

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

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

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

}

whlei(i);

八、汇编程序如何烧写到单片机里?

汇编语言烧到单片机 的过程 ( 不同系列的单片机有所不同) 汇编程序 ---> 汇编语言编译器 ---> 单片机烧写器 ---> 单片机 编写 软件 软件+硬件 单片机

九、汇编语言5秒的延时程序怎么写(微机原理)?

首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOVAX,50L1:MOVBX,100L2:DECBX JNZL2DECAXJNZL1执行完之后时间大约为10ms多一点

十、汇编语言5秒的延时程序怎么写(微机原理)?

首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOV AX,50L1:MOV BX,100L2:DEC BX JNZ L2DEC AXJNZ L1执行完之后时间大约为10ms多一点 根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。 具体步骤如下:/导致这种情况的原因主要是……

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片