汇编语言延时程序,延时10毫秒的延时程序是什么?

汇编语言延时程序,延时10毫秒的延时程序是什么?,第1张

首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOV AX,50L1:MOV BX,100L2:DEC BX     JNZ L2DEC AXJNZ L1执行完之后时间大约为10ms多一点

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是??

这是调用一个延时10毫秒的延时子程序 当然,子程序的名字可以自己定 DELY1MS: 这个名字一定要与调用中出现的名字一样,否则的话,调用的就不是这个子程序了

DELAY10MS:

MOV R2,#20

DELAY10MS1:

MOV R3,#250

DJNZ R3,$

DJNZ R3,DELAY10MS1

RET

这是调用一个延时20毫秒的延时子程序 当然,子程序的名字可以自己定 DELY1MS: 这个名字一定要与调用中出现的名字一样,否则的话,调用的就不是这个子程序了

DELAY20MS:

MOV R2,#40

DELAY20MS1:

MOV R3,#250

DJNZ R3,$

DJNZ R3,DELAY20MS1

RET

RETRET的作用是子程序返回。调用一个子程序,当单片机执行到RET语句的时候,单片机就会返回到调用的地方并继续向下执行。

下面给你一个例程:

闪烁灯

ORG 00H

AJMP START

ORG 30H

START:

MOV P0,#00H

LCALL DELY调用延时子程序

MOV P0,#0FFH

LCALL DELY调用延时子程序

AJMP START

DELY:

MOV R7,#250

DL1:MOV R6,#250

DJNZ R6,$

DJNZ R7,DL1

RET

Delay MACRO x1

CLR TR1

CLR TF1

MOV TH1,#HIGH(65536-x1)

MOV TL1,#LOW(65536-x1)

SETB TR1

JB TF1,$

ENDM

ORG 0

JMP MAIN

MAIN:  MOV TMOD,#0X10

Delay 10000

JMP $

END


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7806361.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存