中断时间的问题

[复制链接]
1743|6
 楼主| tracyf 发表于 2007-12-27 21:23 | 显示全部楼层 |阅读模式
ov, AC, vr, ck, hm
各位大哥,帮忙看下中断时间设置的对不对,我采用6MHZ的频率,整体程序是1S数字加一,可实际仿真时,却是13S左右加一,真奇怪;麻烦各位大哥帮忙看看,程序哪出了问题,为什么会是过13S加一呢?而不是过1S加一呢?<br />ajmp&nbsp;main<br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0bh<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;zd<br />back:<br />&nbsp;&nbsp;&nbsp;&nbsp;reti<br />main:mov&nbsp;dptr,#tab<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;r6,#10<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;30h,#0<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;31h,#0<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;32h,#0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;tmod,#1<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;th0,#3ch<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;tl0,#0b0h<br />&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;ea<br />&nbsp;&nbsp;setb&nbsp;et0<br />&nbsp;&nbsp;setb&nbsp;tr0<br />loopo:mov&nbsp;r1,#30h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;r7,#0f7h<br />loopi:mov&nbsp;p2,#0ffh<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,@r1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movc&nbsp;a,@a+dptr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;p0,a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;p2,r7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc&nbsp;r1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,r7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr&nbsp;a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;r7,a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cjne&nbsp;r7,#7fh,loopi<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sjmp&nbsp;loopo<br />zd:&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;mov&nbsp;th0,#3ch<br />&nbsp;&nbsp;&nbsp;mov&nbsp;tl0,#0b0h<br />&nbsp;&nbsp;&nbsp;djnz&nbsp;r6,back<br />&nbsp;&nbsp;&nbsp;mov&nbsp;r0,#30h<br />&nbsp;&nbsp;&nbsp;inc&nbsp;@r0<br />&nbsp;&nbsp;&nbsp;cjne&nbsp;@r0,#10,back<br />&nbsp;&nbsp;&nbsp;mov&nbsp;30h,#0<br />&nbsp;&nbsp;&nbsp;inc&nbsp;r0<br />&nbsp;&nbsp;&nbsp;inc&nbsp;@r0<br />&nbsp;&nbsp;&nbsp;cjne&nbsp;@r0,#10,back<br />&nbsp;&nbsp;&nbsp;mov&nbsp;31h,#0<br />&nbsp;&nbsp;&nbsp;inc&nbsp;r0<br />&nbsp;&nbsp;&nbsp;inc&nbsp;@r0<br />&nbsp;&nbsp;&nbsp;cjne&nbsp;@r0,#10,back<br />&nbsp;&nbsp;&nbsp;mov&nbsp;32h,#0<br />&nbsp;&nbsp;&nbsp;reti<br />tab:db&nbsp;0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h<br />&nbsp;&nbsp;&nbsp;end
yczhang 发表于 2007-12-27 23:45 | 显示全部楼层

1

没搞懂,你用的是Timer0,为什么却在000BH设中断呢,应该是在0003H设中断啊
 楼主| tracyf 发表于 2007-12-28 08:07 | 显示全部楼层

RE

不会吧,我用的是T0中断哦,应该是000BH&nbsp;啊,你说的0003H是外部中断0入口地址吧.
yczhang 发表于 2007-12-28 09:48 | 显示全部楼层

我太感激你了

我昨天写的程序有一个定时器0中断,用的是0003H,一直没有发现错误,谢谢你提醒啊<br />本来想帮别人呢,结果被别人帮了,哈哈
 楼主| tracyf 发表于 2007-12-28 10:56 | 显示全部楼层

RE

谁来帮帮我啊,我中断时间设置是0.1S,共中断十次,所以为1S,但仿真时是不只一秒,有将近十三秒,这是为什么啊?
yczhang 发表于 2007-12-28 13:14 | 显示全部楼层

6

第33行djnz&nbsp;r6,back后加一行mov&nbsp;r6,#10程序就可以了<br />&nbsp;&nbsp;&nbsp;
 楼主| tracyf 发表于 2007-12-28 21:29 | 显示全部楼层

7

嗯,果然不错,行了,哈,谢谢6楼哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

122

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部