⑴ 单片机中延时子程序的作用是什么

1.数据传送指令 MOV
数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。版
如:权MOV R7,#80H ;将数据80H 送到寄存器R7,这时寄存器R7 里面存放着80H,就单这条
指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。
2.空操作指令 NOP
空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。
3.循环转移指令 DJNZ
循环转移指令功能是将第一个数进行减1 并判断是否为0,不为0 则转移到指定地点;为0 则往下执行。
如:DJNZ R7,KK ;将寄存器R7 的内容减1 并判断寄存器R7 里的内容减完1 后是否为0,如果
不为0 则转移到地址标号为KK 的地方;如果为0 则执行下一条指令。这条指令需要2 个机器周期。
利用以上三条指令的组合就可以比较精确地编写出所需要的延时程序。

⑵ 单片机编写一个能延时1秒的子程序

通用办法,可以类推:

DELAY1s:
MOVR5,#08H;∵1s=1000000us
MOVR6,#0A2H;∴1000000/2=500000
MOVR7,#20H;500000用16进制表示为:07A120
;所以R5=07H+1=08H
;R6=0A1H+1=0A2H
;R7=20H
loop:DJNZR7,$;延时时间≈2×[(R5-1)×256+R6-1]×256+R7
DJNZR6,loop;当R5、R6等于0,相当于256参与运算
DJNZR5,loop;当R5、R6等于0,相当于256参与运算
RET