设单片机8051的时钟频率为MHZ,试编写Ms的软件延时程序。
答案:1 悬赏:0 手机版
解决时间 2021-11-27 20:15
- 提问者网友:謫仙
- 2021-11-27 07:41
设单片机8051的时钟频率为MHZ,试编写Ms的软件延时程序。
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-11-27 09:04
软件延时程序就是利用执行每一条指令时所用的时间来进行延时的。
一般采用循环结构,达到多次反复执行某一段指令的目的,来增加延时的时间,可以通过对循环次数的控制,来达到控制延时时间长短的目的。
为了延长延时时间,一般要采用多重循环,即由外循环内部又含有内循环。
延时时间=(内循环时间)×外循环次数。
例如:设计一个延时1ms的延时子程序ys1ms,设单片机8051的时钟频率为12MHZ。
则单片机8051一个机器周期=12T=12/f=12/12MHZ=1微秒
程序和延时时间计算如下:
ys1ms: MOV R7,#4 ; 单周期1uS ( 晶振为12MHz)
DEL1: MOV R6,#123 ; 单周期1uS
DEL2: DJNZ R6,DEL2 ; 双周期2uS*123=246uS
DJNZ R7,DEL1 ; 双周期(2us+246+1)*4=996uS
NOP ; 单周期1uS
RET; 双周期2uS
延时时间t=1uS +(1us+246uS+2uS)×4+1uS+2uS=1000uS=1ms
其中 (1us+246uS+2uS)=249uS 为内循环时间 4为外循环次数
第一个1uS 是第一条指令的执行时间
1uS+2uS 是 最后二条指令 NOP RET指令的执行时间。
哈哈 给俺加分吧
一般采用循环结构,达到多次反复执行某一段指令的目的,来增加延时的时间,可以通过对循环次数的控制,来达到控制延时时间长短的目的。
为了延长延时时间,一般要采用多重循环,即由外循环内部又含有内循环。
延时时间=(内循环时间)×外循环次数。
例如:设计一个延时1ms的延时子程序ys1ms,设单片机8051的时钟频率为12MHZ。
则单片机8051一个机器周期=12T=12/f=12/12MHZ=1微秒
程序和延时时间计算如下:
ys1ms: MOV R7,#4 ; 单周期1uS ( 晶振为12MHz)
DEL1: MOV R6,#123 ; 单周期1uS
DEL2: DJNZ R6,DEL2 ; 双周期2uS*123=246uS
DJNZ R7,DEL1 ; 双周期(2us+246+1)*4=996uS
NOP ; 单周期1uS
RET; 双周期2uS
延时时间t=1uS +(1us+246uS+2uS)×4+1uS+2uS=1000uS=1ms
其中 (1us+246uS+2uS)=249uS 为内循环时间 4为外循环次数
第一个1uS 是第一条指令的执行时间
1uS+2uS 是 最后二条指令 NOP RET指令的执行时间。
哈哈 给俺加分吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯