求解51单片机延时程序计算

来源:百度知道 编辑:UC知道 时间:2024/05/27 22:19:26
ORG 0050H
DELAY:MOV R0,#0AH
DL2:MOV R1,#7DH
DL1:NOP
NOP
DJNE R1,DL1
DJNZ R0,DL2
RET
求每句指令的机器周期,并算出总延时时间。
希望详细点,谢谢啊!

呵呵:一楼错在时钟周期和频率的关系没弄对;
二楼错在内循环没算DJNZ的两个周期
=======================================
正解:
1)首先要知道单片机时钟晶振频率为多少?设fosc=6MHz。
2)时钟周期T是计算机基本时间单位,同单片机使用的晶振频率有关。
那么T =1/fosc=1/6M=166.7ns。
3)机器周期T1是指CPU完成一个基本操作所需要的时间,如取指操作、读数据操作等,机器周期=12 T =166.7ns X 12=2µs。
4)指令周期是指执行一条指令所需要的时间,因此指令周期没有确定值,一般为1~4个T机器周期。
5)本题各指令的机器周期为:
程序 机器周期数 一次用的时间µs
ORG 0050H 0
DELAY:MOV R0,#0AH 1 2
DL2:MOV R1,#7DH 1 2
DL1:NOP 1 2
NOP 1 2
DJNE R1,DL1 2 4
DJNZ R0,DL2 2 4
RET 2 4
6)延时时间:
(1)内循环: 时间
DL1:NOP 2
NOP 2<