请教中断问题

[复制链接]
2676|9
 楼主| lixiang69 发表于 2008-3-7 18:50 | 显示全部楼层 |阅读模式
在SH69P43中
;***********************
TIMER1_INT:
    STA    AC_HOLD,00H
    ANDIM    IRQ,1101B
    LDI    IE,0FH
    LDA    AC_HOLD,00H
    RTNI....................(1)
;***********************
PORT_INT:
    STA    AC_HOLD,00H
    ANDIM    IRQ,1110B
    LDI    PORT_INT_FLAG,01H
    LDI    IE,0101B
    LDA    AC_HOLD,00H
    RTNI
这两个都是中断程序,为什么TIMER1中断后执行到标号(1)时还会向下继续执行PORT_INT中断(PORT_INT中断还没有发生)
warm_ice 发表于 2008-3-8 09:26 | 显示全部楼层

这样

如果是这样,多半是仿真系统不正常,建议您重新检查仿真器与仿真板之间的联线,看是否有接触不良的现象,另外,请按照P43仿真板的使用说明正确设置,看一下是否会正常.
 楼主| lixiang69 发表于 2008-3-8 18:35 | 显示全部楼层

你好

我想对SH69P43的PB.2口置1,置0而不干扰其他位,下面的程序可以吗?有没有更好的方法?谢谢!
PB.2置0:
    LDA    PB,00H
    STA    PORT_HOLD,00H
    ANDIM    PORT_HOLD,1011B
    STA    PB,00H    
PB.2置1:
    LDA    PB,00H
    STA    PORT_HOLD,00H
    ORIM    PORT_HOLD,0100B
    STA    PB,00H
其中PORT_HOLD是个积存器
warm_ice 发表于 2008-3-8 18:52 | 显示全部楼层

可以

这样做是可以的,或者也可以用PORT_HOLD这个寄存器作PORTB的缓存,也就是说对PORT_HOLD这个寄存器与PB口的状态始终一致,要对PB口操作时,先对这个缓存操作,再存回BUFFER即可.
 楼主| lixiang69 发表于 2008-3-10 17:32 | 显示全部楼层

非常感谢!

明白您的意思了,谢谢!不过我想那样如果对PA~PD的所有端口都位操作时,会占用很多RAM积存器,因为每个端口都要有对应的PORT_HOLD这个寄存器,我想的对吗?谢谢!
warm_ice 发表于 2008-3-12 09:26 | 显示全部楼层

应该是的

PA~PD只需要4个寄存器,对程序来说,应该问题不大.这样做主要是确保程序可靠.
 楼主| lixiang69 发表于 2008-3-13 15:28 | 显示全部楼层

你好

你好,我买的开发工具带 的光盘里有个(PRO-01软件及相关资料 和 PRO-03软件及升级文件),请问这两个是做什么用的?谢谢!
warm_ice 发表于 2008-3-13 19:08 | 显示全部楼层

回楼上的朋友

PRO01是专用烧录软件,供中颖几颗老的产品使用.
PRO03也是专用烧录软件,提供绝大部分中颖产品的烧录功能.
 楼主| lixiang69 发表于 2008-3-15 17:31 | 显示全部楼层

你好

你好,请问我在 RICE66 中编写的代码,怎样查看代码总量是否超过 芯片的ROM,也就是说怎样知道我 写了多少K的程序,谢谢!
warm_ice 发表于 2008-3-17 09:06 | 显示全部楼层

回楼上的朋友

如果没有用到ORG指令,可以在程序编译后在最后一行指令行处点击鼠标右键,会显示PC指针的值,这样就清楚了已经使用的空间.

或者将编译好的OBJ文档调入烧录程序中,可以看到有代码的部分和没有代码的部分,您就清楚了还有多少空间.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

320

帖子

3

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