DELAY: MOV R6,#0 MOV R7,#0 D1: DJNZ R6,$ DJNZ R7, D1 RET END
答案:2 悬赏:70 手机版
解决时间 2021-02-20 16:38
- 提问者网友:沉默的哀伤
- 2021-02-19 22:03
DELAY: MOV R6,#0 MOV R7,#0 D1: DJNZ R6,$ DJNZ R7, D1 RET END
最佳答案
- 五星知识达人网友:不甚了了
- 2021-02-19 22:12
255X255=65025,设为12M晶振,刚延时约65ms
全部回答
- 1楼网友:旧脸谱
- 2021-02-19 22:52
以上汇编转化为c语言为:
void delay() {
for(r7=250;r7>0;r7--)
for(r6=250;r6>0;r6--);
}
这是执行一段延时。原理是:
执行一个语句需要消耗1到2个机器时间,除法的更长;
1个机器时间和晶振频率有关,一般单片机都是t=12/f,比如当晶振频率是12mhz的时候,1个机器时间是t=12/12mhz=1us
然后看循环r7*r6=62500次,
对于mov r6,#250共执行250次,djnz r6,d2执行62500次,djnz r7,d1执行250次,则每句消耗2个机器时间有:
t=(250+62500+250)*2=126000us=126ms=0.126s
故延时越0.126秒
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯