打印
[家电应用]

SH69P21进入STOP模式后用端口中断唤醒总是溢出(在线仿真)

[复制链接]
756|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
刚接触SH69P21,在线仿真时 进入STOP模式后用PB.1做端口中断唤醒,每次按下按键都提示溢出,看门口狗没开,不懂什么问题,求各大神赐教!

LIST P=69P21
ROMSIZE=1024
;*****************************************************
;系统寄存器
;*****************************************************
IE        EQU        00H        ;中断允许标志寄存器
IRQ        EQU        01H        ;中断请求标志寄存器
TOM        EQU        02H        ;Timer0模式寄存器
T0L        EQU        04H        ;Timere0载入/计数器低位寄存器
T0H        EQU        05H        ;Timere0载入/计数器高位寄存器
PA        EQU        08H        ;PORTA数据寄存器
PB        EQU        09H        ;PORTB数据寄存器
PC        EQU        0AH        ;PORTC数据寄存器
TBR        EQU        0EH        ;查表寄存器
INX        EQU        0FH        ;索引寄存器
DPL        EQU        10H        ;索引地址低位寄存器(4位)
DPM        EQU        11H        ;索引地址中位寄存器(3位)
DPH        EQU        12H        ;索引地址高位寄存器(34位)
PBIEN        EQU        13H        ;PORTB中断允许标志寄存器
PBIF        EQU        14H        ;PORTB中断请求标志寄存器
PPBCR        EQU        15H        ;PORTB上拉控制寄存器
PACR        EQU        16H        ;PORTA输入/输出控制寄存器
PBCR        EQU        17H        ;PORTB输入/输出控制寄存器
PCCR        EQU        18H        ;PORTC输入/输出控制寄存器
PULLEN        EQU        19H        ;第3位: PORTA3-1和PORTC共用上拉控制寄存器
DIV        EQU        1AH        ;内建RC振荡器分频寄存器
T0        EQU        1CH        ;第0位: T0信号沿, 第1位: T0信号源,第2位: Timer0开启控制/状态标志寄存器
PPA0        EQU        1DH        ;第1-0位:PORTA.0中断沿选择寄存器,第3-2位:PORTA.0上/下拉控制寄存器
WDT        EQU        1EH        ;第2-0位: 看门狗定时器控制寄存器,第3位: 看门狗定时器溢出标志寄存器       

;*****************************************************
;用户寄存器(数据存储器)(20H--5FH)
;*****************************************************

;*****************************************************
;define
;*****************************************************

LED1_CHG        MACRO        ;PA.2 ~= PA.2
        EORIM        PA,04H
                ENDM               
               

PB0_INT_ON        MACRO
        ORIM        PBIEN,02H        ;打开PB.1中断
        ORIM        IE, 01H                ;打开PB中断
                ENDM
                                       
;END+++++++++++++++++++++++++++++++++

;*****************************************************
;程序
;*****************************************************
        ORG        0000H
        JMP        RESET
        RTNI
        RTNI
        RTNI
        JMP        PORTB_INT
       
;*****************************************************
;上电复位延时
;*****************************************************       
RESET:
        NOP

;*****************************************************
;清数据存储器空间(02H--5FH)
;*****************************************************
CLEARRAM:
        LDI        DPL,00H
        LDI        DPM,02H
        LDI        DPH,00H
CLRINX:
        LDI        INX,00H
        ADIM        DPL,01H
        BNC        CLRINX
        ADIM        DPM,01H
        ADI        DPM,0AH
        BNC        CLRINX
;*****************************************************
;寄存器初始化
;*****************************************************
SYSTEM_INITIAL:
        LDI        WDT,00H                ;清看门狗       
        LDI        IE, 00H                ;关闭所有中断
        LDI        IRQ,00H                ;清中断请求标志
        LDI        PBIEN,00H        ;关闭端口中断
        LDI        PBIF,00H        ;清端口中断标志
               
        ANDIM        PBCR,0DH        ;设置PB.1为输入(PBCR&0X0D)
        ORIM        PPBCR,02H        ;设置PB.1为上拉(PPBCR|0X02)
               
        ORIM         PACR,04H        ;设置PA.2为输出(PACR|0X04)       
;*****************************************************
;主程序
;*****************************************************       
MAIN_PROGRAM:
        PB0_INT_ON ;打开PB.0中断
        NOP
        STOP       
        JMP        MAIN_PROGRAM
       
;*****************************************************
;端口中断服务程序
;*****************************************************
PORTB_INT:
        LED1_CHG
        LDI        PBIF,00H
        LDI        IRQ,00H        ;清端口中断请求标志
        RTNI
       
        END
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝