汇编1S的延时程序怎么弄?

汇编1S的延时程序怎么弄?,第1张

延时1s计算方法是将所有指令执行时间相加得出的。比如:

dly1s:

mov

r2,#10

1

dly1:

mov

r3,#200

1*10

dly2:

mov

r4,#248

1*200*10

djnz

r4,$

2*248*200*10

djnz

r3,dly2

2*200*10

djnz

r2,dly1

2*10

ret

2

total=1+10+2000+992000+4000+20+2=998033

如果使用12m晶振,那么延时时间为0.998秒。

用定时器T0来完成

那么我令T0的溢出时间为200us

那么T0的初值为56

1(s)=200*250*2(us)

下面是程序

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP CTC0

ORG 100H

MIAN:

MOV SP,#5FH

MOV R7,#250软件计数第一级

MOV R6,#2软件计数第二级

MOV TL0,#56送初值

MOV TH0,#56

ANL TOMD,#0F0HTOMD高4位不变,T1工作方式不

ORL TMOD,#02H定义T0工作方式

SETB ET0

SETB TR0

SJMP $

CTC0:

PUSH PSW保护PSW

DJNZ R7, EXIT软件计数

MOV R7,#250 重装初值,下同

DJNZ R6,EXIT

MOV R6,#2

EXIT:

POP PSW

RETI


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

原文地址: http://outofmemory.cn/yw/7768553.html

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

发表评论

登录后才能评论

评论列表(0条)

保存