第1个回答 2010-08-08
push,pop、06h,07h,是保护和恢复R6,R7的内容。
其它关于延时时间的算法,看看你们学院电信专业用的教材54页即可知道。
第2个回答 2010-07-25
晶振12M。14h=#20,#19h=#25 。执行一次DJNZ R7,DL2为2us,粗算时,不计其它几us的指令,就是2X20X25us=1ms
push为入栈指令,pop为出栈指令。保护进入延时子程序前的R6和R7的数据。退出时,数据还给它们。这里的06h和07h分别为R6、R7,因为push和pop不支持PUSH Rn 、POP Rn的写法。
第3个回答 2010-07-25
晶振为12M说明1个机器周期的频率是为12分之一晶振即机器周期为1us,只要这样代下就可以算出来了。
push 06h
就是把第一组寄存器组的r6入栈使其不受延时影响之前的数据。
第4个回答 2010-07-25
push是数据进栈进行保护,POP是出栈。上述的延时时间,因为用的是晶振12MHZ,所以一个机器周期为1us,因为上述MOV为一个机器周期,DJNZ为2个机器周期。所以定时时间为:20(即14H)*25(即19H)*2*2=2000us
第5个回答 2010-07-28
pop和push的意思是入栈处理。保存现场,以防当前寄存器值改变。06h和07h是第0组寄存器的r6和r7。
大约520微秒。d1执行14h次,d2执行14h*19h次,最后一个djnz执行14h次。,加一起就是520了。