实验四 80C51单片机外中断实验

上传人:博****1 文档编号:469754101 上传时间:2023-07-25 格式:DOC 页数:5 大小:1.67MB
返回 下载 相关 举报
实验四 80C51单片机外中断实验_第1页
第1页 / 共5页
实验四 80C51单片机外中断实验_第2页
第2页 / 共5页
实验四 80C51单片机外中断实验_第3页
第3页 / 共5页
实验四 80C51单片机外中断实验_第4页
第4页 / 共5页
实验四 80C51单片机外中断实验_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验四 80C51单片机外中断实验》由会员分享,可在线阅读,更多相关《实验四 80C51单片机外中断实验(5页珍藏版)》请在金锄头文库上搜索。

1、实验四 80C51单片机外中断实验一实验目的:了解8051系列单片机的外中断基本工作原理。掌握8051系列单片机外中断的用法。二实验原理:中断是在执行正常程序的过程中转去执行临时的任务,此时CPU必须暂停现行的程序而转去处理更加紧急的事件,在处理完毕之后方可返回执行原来的程序。在8051的中断里面,要涉及到一系列的诸如保护现场,中断响应,现场恢复,中断嵌套以及优先级等问题。8051有5个中断源,它们分别是两个外部中断请求INT0(P3.2)和INT1(P3.3)、两个片内定时器/计数器溢出中断TF0和TF1,一个片内串行口中断请求TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进

2、行控制(如图4-1所示):TCON寄存器结构D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0SCON寄存器结构D7D6D5D4D3D2D1D0TIRI表4-1TI是8051串行口的发送中断标志。当串行口发送完一帧数据后请求中断由硬件置位,而清零必须由软件来完成。RI是串行口接收中断标志。当串行口接收完一帧数据后请求中断由硬件置位,也是由软件来清零。8051的对中断的开放和屏蔽是由中断允许寄存器IE控制来实现的,IE的结构格式如图4-2所示。其中任何一个位置一就是将相应的中断源打开,反之,为0则关闭。这里EA为CPU的中断控制位,在使用任何一个中断源之前都必须将C

3、PU的中断置1。IE中断允许寄存器结构D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0表4-28051有两个中断优先级,即高优先级和低优先级。每个中断源都可设置为高或低中断优先级。所以中断嵌套有两级,嵌套原则为:正在执行的中断服务程序可以被更高级的中断请求打断,但不能被同一级别或是更低级的中断请求中断。两级中断通过中断优先级寄存器IP来设置。IP的格式如图4-3所示,字节地址是B8H。IP中断控制寄存器结构D7D6D5D4D3D2D1D0PSPT1PX1PT0PX0表4-38051CPU在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求

4、。中断响应的主要内容就是由硬件自动形成转向与该中断源对应的服务程序入口地址。这些中断源的服务程序入口地址如图4-4所示。这里要注意的是,在中断服务子程序中,关键字interrupt后面的KeilC中断编号一定要正确。如本实验是外中断0,那么接在interrupt后的号码应为0,否则得不出正确的实验结果。 KeilC中断编号中断源入口地址中断允许位0外部中断00003HEX01定时器/计数器0000BHET02外部中断10013HEX13定时器/计数器1001BHET14串行口中断0023HES表4-4这里分别给出将外中断0和1初始化的例子,据此可以更进一步的理解各寄存器的功能。void EXT

5、0_INIT(void) EX0=1; /允许外中断0IT0=1; /下跳沿响应外中断EA=1;/CPU开中断 void EXT1_INIT(void) EX1=1; /允许外中断1IT1=1; /下跳沿响应外中断EA=1;三实验内容:利用外中断方式,将一个按键接到外中断0的口线上,按键按下将口线接地,按下后将引起8051外中断,中断服务程序中CPU将点亮LED一会儿,然后关闭,等待下一次的中断。四 实验电路图:图4-1五实验方法:1 根据如上电路图连接好实验电路。实验板中将P1.3管脚与LED1相连,而INT0引脚与J10的其中一根针相连,则S1即为实验板上的AUXkey。2 按照实验要求编

6、写实验程序,建立新工程,保存为EXTINT。3 软件调试服务程序程序。l 由(Debug | Start Stop Debug Session)进入软件调试模式;l 由(Peripherals | I/O Ports )打开P1口和P3口;l 将闪动的光标放到中断服务程序内;l 由(Debug | Run to Cursor Line)执行到光标;l 用鼠标点击P3口的INT0(P3.2)模拟外中断;l 这时看到如图4-2,注意软件在中断服务程序中停止,P1.3清零(小钩子没了);4 将keilC51产生的extint.hex文件通过在线下载ISP或商用编程器写到芯片中。图4-2六 参考程序:

7、1 汇编源程序ORG0000HLJMPMAINORG0003H;中断服务入口地址LJMPEXT0_INT_SRVMAIN:LCALLEXT0_INITAGAIN:SJMP AGAINEXT0_INT_SRV:CLRP1.3LCALLDELYSETBP1.3RETI;中断服务子程序EXT0_INIT: SETBEX0SETBIT0SETBEARET;外中断设置子程序DELY:MOVR4,#0FFHD1:MOVR5,#0FFHD2:MOVR6,#6HDJNZR6,$DJNZR5,D2DJNZR4,D1RET;延时子程序END2 C语言源程序/*文件名:extint.c *描述:方波输出*/ #in

8、clude sbit LED = P13; /* 描 述: 外中断设置子程序* 输 入: 无* 返 回: 无*/void EXT0_INIT(void) EX0=1; /允许外中断0IT0=1; /下跳沿响应外中断EA=1;/* 描 述: 中断服务子程序,* 输 入: 无* 返 回: 无*/void EXT0_INT_SRV(void) interrupt 0data int j; /关键字data将变量j定义在片内RAM LED=0; /将引脚清零因此点亮发光二极管for(j=0;j30000;j+); /空循环延时 for(j=0;j30000;j+);/空循环延时 LED=1; /关闭LED,退出中断void main(void) EXT0_INIT(); while(1);思考题:1. 改写软件,改变设置试试下跳沿中断和低电平中断的区别。2. 如何将这个实验的内容加入实验二的内容,使另一个发光二极管不断闪烁,同时可以接受中断。3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号