作业帮 > 综合 > 作业

delay:mov R7,#0 loop:mov R6,#0 djnz R6,& djnz R6,& djnz R6,&

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/10 08:40:30
delay:mov R7,#0 loop:mov R6,#0 djnz R6,& djnz R6,& djnz R6,& djnz R7,loop代表多长时间怎么
delay:mov R7,#0 loop:mov R6,#0 djnz R6,& djnz R6,& djnz R6,&
嘿嘿 先给你的提问挑个错:djnz R6,& 指令 应该书写为 djnz R6,$
而且是多些了一个djnz R6,& 指令
你的这个程序是软件延时 就是利用执行指令需要的时间达到延时的目的.
延时的时间直接与单片机的晶振频率有关,如果晶振频率使用的是12MHZ
则 一个机器周期的时间=1微妙 一般一条指令的指令周期=1个机器周期或2个机器周期
根据上面程序执行指令的机器周期总的个数 就可以推算出上面程序的延时时间了.
例如:
delay:mov R7,#0
loop:R6,#0
djnz R6,$ ;2个机器周期
djnz R7,loop
延时时间= (2个机器周期*1微妙)*256*256=2*65536微妙=131072微妙=131毫秒.