51 单片机延时程序

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:39:10
51 单片机延时程序
D1:MOV R2,#0AH
D2:MOV R3,#0FFH
D3:DJNZ R3,D3
DJNZ R2,D2
RET
这一段延时多长,具体每一步延时多长?计算方法........?

MOV R2,#0AH 执行了1次 每次需要1个机器周期 共需要1*1个机器周期
MOV R3,#0FFH执行了10次个 .....1........ ...10*1...
DJNZ R3,D3执行了255*10次 .....2........ ...2550*2..
DJNZ R2,D2执行了1次 .....2........ ...10*2...
RET 执行一次 ...2......... ..1*2....

一共需要5133个机器周期,如果用12M晶振 则执行一个机器周期需要1US,那么一共需要5133US

还有不用算的方法,运行一下,编译环境下有记时的,将光标放到程序后,运行到光标处.

这是个双重循环,内循环255次,外循环10次,再加一次D1送数指令,再加10次D2送数指令
查一下所用单片机的工作时钟周期和指令周期的关系,很容易算出具体延时