实验四单片机中断优先级实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四单片机中断优先级实验
一、实验目的
1.理解AT89C51单片机中断优先级和优先权。
2.用PROTEUS设计、仿真基于AT89C51单片机的中断优先级实验。
3.掌握中断编程。
4.掌握发光二极管的控制方法。
二、实验要求
单片机主程序控制P0口数码管循环显示0~8;外中断(INT0)、外中断(INT1)发生时分别在P2、P1口依次显示0~8;INT1为高优先级,INT0为低优先级。
三、电路设计
④CAP、CAP-ELEC:电容、电解电容;
⑤CRYSTAL:晶振;
⑥BUTTON:按钮。
2.放置元器件
3.放置电源和地
4.连线
5.元器件属性设置
6.电气检测
四、源程序设计、生成目标代码文件
1.流程图
2.源程序设计
通过菜单“source→Add/Remove Source Files…”新建源程序文件:。
通过菜单“source→”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。
程序编辑好后,单击按钮存入文件。
3.源程序编译汇编、生成目标代码文件
通过菜单“source→Build All”编译汇编源程序,生成目标代码文件。若编译失败,可对程序进行修改调试直至汇编成功。
五、PROTEUS仿真
1.加载目标代码文件
2.全速仿真
单击按钮,启动仿真。
(1)低优先级INT0中断主程序:当主程序运行时,单片机控制与P0口相接的数码管循环显示1~8;而P1、P2口的数码管不显示。当前主程序控制P0口显示“8”的时刻单击“低优先级输入”按钮,触发INT0如
图所示,INT0服务程序控制P2口依次显示1~8,当前显示“2”。
(2)高优先级INT1中断低优先级INT0;在上一步的基础上,即主程序被INT0中断在P0口输出“8”,而在INT0服务程序在P2口输出“2”的时刻,单击“高优先级输入”按钮,触发高优先级INT1,所在INT0被中断在显示“2”,INT1服务程序控制P1口依次显示1~8。
3.仿真调试
六、思考题:
1.说明单片机中共有哪几种中断,它们的默认优先级是什么
2.怎样修改中断优先级例如在本实验中要使TIMER1成为优先级最高的中断,该怎么处理