1、yiher2022/8/7例說89S51-C語言89S51-C语言6-1中断的应用第六章yiher2022/8/7例說89S51-C語言89S51-C语言6-2本章内容 yiher2022/8/7例說89S51-C語言89S51-C语言6-3MCS-51中断控制系统 yiher2022/8/7例說89S51-C語言89S51-C语言6-4中断流程 yiher2022/8/7例說89S51-C語言89S51-C语言6-5IE寄存器 yiher2022/8/7例說89S51-C語言89S51-C语言6-6IP寄存器 yiher2022/8/7例說89S51-C語言89S51-C语言6-7自然优先等
2、级 yiher2022/8/7例說89S51-C語言89S51-C语言6-8不同优先等级下,程序执行的流程 yiher2022/8/7例說89S51-C語言89S51-C语言6-9不同优先等级下,程序执行的流程 yiher2022/8/7例說89S51-C語言89S51-C语言6-10TCON寄存器 yiher2022/8/7例說89S51-C語言89S51-C语言6-118x51/8x52中断向量表 中断编号中断源名称中断向量地址-系统复位(Reset)0 x00000第一个外部中断INT00 x00031第一个定时器/计数器中断TF00 x000B2第二个外部中断INT10 x00133第
3、二个定时器/计数器中断TF10 x001B4串行口中断RI/TI0 x00235第三个定时器/计数器中断(8x52)TF2/EXF20 x002Byiher2022/8/7例說89S51-C語言89S51-C语言6-12中断设置 yiher2022/8/7例說89S51-C語言89S51-C语言6-13中断子程序 yiher2022/8/7例說89S51-C語言89S51-C语言6-14确定对话框 yiher2022/8/7例說89S51-C語言89S51-C语言6-15中断系统对话框 yiher2022/8/7例說89S51-C語言89S51-C语言6-16实例演练6-4-1INT0实验yi
4、her2022/8/7例說89S51-C語言89S51-C语言6-176-3-1 目 标 主程序正常执行时,P1所连接的八个LED将闪烁。按INT0按钮开关,则进入中断状态,P1所连接的八个LED将变成单灯左移,而左移3圈(从最左边到最右边为1圈)后,恢复中断前的状态,程序将继续执行八灯闪烁的功能。yiher2022/8/7例說89S51-C語言89S51-C语言6-18INT0实验电路图 yiher2022/8/7例說89S51-C語言89S51-C语言6-196-3-1 INT0实验接线图 yiher2022/8/7例說89S51-C語言89S51-C语言6-20流程图 yiher2022
5、/8/7例說89S51-C語言89S51-C语言6-21ch06-3-1.c_1yiher2022/8/7例說89S51-C語言89S51-C语言6-22ch06-3-1.c_2yiher2022/8/7例說89S51-C語言89S51-C语言6-23思考一下!在本实验里,若希望中断时,这八个LED变成是霹雳灯,来回各三圈,才返回主程序,程序应如何更改?yiher2022/8/7例說89S51-C語言89S51-C语言6-24实例演练6-4-2INT1实验yiher2022/8/7例說89S51-C語言89S51-C语言6-256-3-2 目 标 主程序正常执行时,七段显示器将从0开始正数到9
6、(循环),每0.5秒增加1。按INT1按钮开关,则进入中断状态,则七段显示器将从9开始闪烁倒数到0(一圈后结束中断),每0.5秒减少1。yiher2022/8/7例說89S51-C語言89S51-C语言6-26INT1实验电路图 yiher2022/8/7例說89S51-C語言89S51-C语言6-276-3-2 INT1实验接线图 yiher2022/8/7例說89S51-C語言89S51-C语言6-28流程图 yiher2022/8/7例說89S51-C語言89S51-C语言6-29ch06-3-2.c_1yiher2022/8/7例說89S51-C語言89S51-C语言6-30ch06-
7、3-2.c_2yiher2022/8/7例說89S51-C語言89S51-C语言6-31切换为Int1中断 yiher2022/8/7例說89S51-C語言89S51-C语言6-32思考一下!在本实验的仿真中,若要在输出口里看到0、1、29的变化,而非09的七段显示器驱动信号,应如何修改程序?若在本实验的电路里,将原本的共阳极七段显示器,改采用共阴极七段显示器,则程序应如何更改?yiher2022/8/7例說89S51-C語言89S51-C语言6-33实例演练6-4-3两个外部中断实验yiher2022/8/7例說89S51-C語言89S51-C语言6-346-3-3 目 标 主程序正常执行时
8、,P1所连接的八LED将闪烁。按INT0按钮开关,则进入INT0中断状态,P1所连接的八个LED将变成单灯左移,而左移3圈(从最左边到最右边为1圈)后,恢复中断前的状态,程序将继续执行八灯闪烁的功能。按INT1按钮开关,则进入INT1中断状态,P1所连接的八个LED将变成单灯右移,而右移3圈(从最左边到最右边为1圈)后,恢复中断前的状态,程序将继续执行八灯闪烁的功能。单灯左移(INT0)中断的优先级较单灯右移(INT1)中断的优先级高。yiher2022/8/7例說89S51-C語言89S51-C语言6-35两个外部中断实验电路图 yiher2022/8/7例說89S51-C語言89S51-C
9、语言6-366-3-3 两个外部中断实验接线图 yiher2022/8/7例說89S51-C語言89S51-C语言6-37流程图 yiher2022/8/7例說89S51-C語言89S51-C语言6-38ch06-3-3.c_1yiher2022/8/7例說89S51-C語言89S51-C语言6-39ch06-3-3.c_2yiher2022/8/7例說89S51-C語言89S51-C语言6-40ch06-3-3.c_3yiher2022/8/7例說89S51-C語言89S51-C语言6-41思考一下!在本实验里,“IP=0 x01”表示之中断优先级较高,则进行调试/仿真时,先中断,LED由右
10、而左3圈;若还没结束之前,启动INT1中断,将会有么变化?同样地,先INT1中断,LED由左而右3圈;若还没结束INT1之前,启动中断,将会有么变化?请记录在实习报告里。若希望INT1中断的优先等级高于程序中断的优先等级,应如何修改?修改完成后,再进行一次第1题的实验,并记录在实习报告里。yiher2022/8/7例說89S51-C語言89S51-C语言6-42实例演练6-4-4键盘中断实验yiher2022/8/7例說89S51-C語言89S51-C语言6-43键盘中断实验电路图 yiher2022/8/7例說89S51-C語言89S51-C语言6-44流程图 yiher2022/8/7例說89S51-C語言89S51-C语言6-45ch6-3-4.c_1yiher2022/8/7例說89S51-C語言89S51-C语言6-46ch6-3-4.c_2yiher2022/8/7例說89S51-C語言89S51-C语言6-47思考一下!在本实验里,有没有“抖动”的困扰?在本实验里,若按住按键不放,会怎样?