单片机实验四中断实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程学系实验报告
课程名称: 单片机原理及接口(应用)
实验项目名称:实验四 中断系统实验 实验时间:2011.11.18
班级: 姓名: 学号:
一 实 验 目 的:
熟悉keil 仿真软件、proteus 仿真软件的使用和单片机外部中断的使用。了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。
二 实 验 环 境:
软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件
三 实 验 内 容 过 程 及 结 果 分 析: 3.1中断概念:
在CPU 和外设交换信息时,存在着快速CPU 和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。中断 CPU 和外设并行工作,当外设数据准备好( 或有某种突发事件发生)时向CPU 提出请求,CPU 暂停正在执行的程序转而为该外设服务(或处 理紧急事件),处理完毕再回到原断点继续执行原程序。 3.2中断源:
引起中断的原因,中断申请的来源,中断源可以是I/O 设备、故障、时钟、调试中人为设置。
中断优先级当有多个中断源同时 向CPU 申请中断时,CPU 优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的 ,这种预先安排的响应次序。 3.3中断的嵌套:
在中断系统中,高优先级的 中断请求能中断正在进行的较低级的中断源处理,
中断源
3.4中断控制的有关寄存器:
(1)中断的允许和禁止——中断控制寄存器
IE
IE 寄存器的各位对应相应的中断源,如果允许该中断源中断则该位置1,禁止中断则该位0 。
EA :中断总控开关,是CPU 是否响应中断的前提。 EA=1,CPU 开中断; EA=0, CPU 关中断。 ES : 串行口中断允许位,ES=1,允许串行口发送/接收中断;ES=0,禁止串行口中断。 ET1:定时器T1中断允许位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。 ET0:定时器T0中断允许位,ET0=1,允许T1计数溢出中断; ET0=0,禁止T0中断。 EX1:外部中断INT1允许位,EX1=1,允许INT1中断; EX1= 0,禁止INT1中断。 EX0: 外部中断INT0允许位, EX0=1,允许INT0中断; EX0= 0,禁止INT0中断。 (2)中断请求标志及外部中断方式选择寄存器TCON
说明: 1. IT0和IT1为外中断INT0 和INT1中断触发方式选择,若选下降沿触发则相应位置1;若选低电平触发 ,IT 相应位置0。
2.某中断源有中断请求,该中断标志置1,无中断请求,该中断标志置0
3.TR0 和 TR1 为定时器T0和T1 工作启动和停止控制。
(3)中断优先级管理寄存器IP
五个中断源的优先级别由IP 寄存器管理,相应位置1,则该中断源优先级别高,置0的优先级 别低。 当某几个中断源在IP 寄存器相应位同为1或同为零时,由内部查询确定优先级,查询的顺序是:
INTO →TO →INT1→T1→串行口
中断处理过程分为四个阶段:中断请求,中断响应,中断处理、中断返回。
使用MCS-51的中断,要为使用到的中断源编写中断服务程序。C51为中断服务程序的编写提供了方便的方法。C51的中断服务程序是一种特殊的函数,它的说明形式为:
void 函数名(void) interrupt n using m
{ 函数体语句 }
这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。
四实验内容:
用protues仿真软件设计一个仿真实验板,将实验板上单片机的INT1引脚和按键引脚相连,将按键作为外部中断请求按键,用中断法判断按键,当所选按键按下时发生中断请求,引起外部中断。设计当按键按下是数码管显示1,再按下时显示2以此循环从0到8.
4.1用protues进行流水灯的仿真需要的元件有AT89C51、CAP、BUTTON、7SEG-COM-CAT-RED、RES、CRYSTAL、画出仿真图如下:
Protues仿真界面图
4.2使用keil仿真软件编写程序和使用c51编写并进行调试。
新建工程创建HEX文件
程序如下
#include
unsigned char i;
unsigned char code
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; yanshi(void) interrupt 2
{i++;
if(i==9)
i=0;
} void main() {IT1=1;i=0; EA=1;EX1=1; while(1) P0=tab[i]; }
4.3运行结果当按下开关是可依次得到0~8循环出现。
运行结果图
五实验心得:
通过实验熟悉keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用。了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。熟悉中断处理特别是外部中断处理的过程和中断处理子程序的书写格式和使用方法。