⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emc单片机学习笔记(4)中断.txt

📁 EMC78p156学习笔记! EMC78p156学习笔记!
💻 TXT
字号:
EMC的中断有软中断和硬中断,这里讨论的是硬中断,向量
在0x0001的软中断以后另文讨论。
    EMC78P153有三个中断源,TCC溢出中断,输入引脚的变化
(Port6从休眠模式唤醒),外部中断。三个中断源只有一个中
断向量,那就是0x0008,也就是所有的三个中断发生后,程序都
会自动的来到这里。这就需要在中断服务程序里面做switch确认
中断标志,即判断中断源,进行散转来处理相关的中断。同时要
清除对应的标志位,避免中断的重复进入。
    相关的寄存器有 中断控制寄存器、中断标志寄存器。总中断
开启指令ENI和关闭指令DISI控制总的中断开关操作。

    主程序,做好初始化,就可以打开中断了。

中断服务程序的结构:
1、要先关中断的总开关
2、保护现场(比如A、STATUS等寄存器)
3、然后根据中断标志寄存器,清除相应的Bit并处理相应的中断
4、恢复现场(比如A、STATUS等寄存器)
5、最后退出中断并打开中断的总开关(RETI包括ENI的功能)。

        ORG 0x0008              ;Interrupt Service Routine
        DISI                    ;关中断
        MOV     A123,A
        MOV     A,STATUS
        MOV     STATUS123,A
        JBC     RF, TCIF
        JMP     SUB_TCC
        JBC     RF, ICIF
        JMP     SUB_P6
        JBC     RF, EXIF
        JMP     SUB_EXT
ISREND:
        MOV     A,STATUS123
        MOV     STATUS,A
        MOV     A,A123
        RETI

SUB_TCC:
        BC      RF, TCIF   清中断标志
        ;Do something For TCC interrupt
        JMP     ISREND
SUB_P6:
        BC      RF, ICIF
        ;Do something For Port6 change
        JMP     ISREND
SUB_EXT:
        BC      RF, TCIF
        ;Do something For External Interrupt
        JMP     ISREND

    EMC的中断跟PIC类似,所有的中断使用同一个中断服务程序,
需要编程者自己去做判断和散转。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -