各位大哥,帮忙看下中断时间设置的对不对,我采用6MHZ的频率,整体程序是1S数字加一,可实际仿真时,却是13S左右加一,真奇怪;麻烦各位大哥帮忙看看,程序哪出了问题,为什么会是过13S加一呢?而不是过1S加一呢?<br />ajmp main<br /> org 0bh<br /> acall zd<br />back:<br /> reti<br />main:mov dptr,#tab<br /> mov r6,#10<br /> mov 30h,#0<br /> mov 31h,#0<br /> mov 32h,#0<br /> mov tmod,#1<br /> mov th0,#3ch<br /> mov tl0,#0b0h<br /> setb ea<br /> setb et0<br /> setb tr0<br />loopo:mov r1,#30h<br /> mov r7,#0f7h<br />loopi:mov p2,#0ffh<br /> mov a,@r1<br /> movc a,@a+dptr<br /> mov p0,a<br /> mov p2,r7<br /> inc r1<br /> mov a,r7<br /> rr a<br /> mov r7,a<br /> cjne r7,#7fh,loopi<br /> sjmp loopo<br />zd: <br /> mov th0,#3ch<br /> mov tl0,#0b0h<br /> djnz r6,back<br /> mov r0,#30h<br /> inc @r0<br /> cjne @r0,#10,back<br /> mov 30h,#0<br /> inc r0<br /> inc @r0<br /> cjne @r0,#10,back<br /> mov 31h,#0<br /> inc r0<br /> inc @r0<br /> cjne @r0,#10,back<br /> mov 32h,#0<br /> reti<br />tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h<br /> end |