实验三 外部中断实验吴汉富
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桂林电子科技大学
实验报告
2019-2020学年第1学期
学院电子信息工程学院
课程单片机原理与接口技术
姓名吴汉富
学号 171602010528 指导老师郑秋贞
日期 2019年10月14日
实验三外部中断实验
一、实验目的
1、掌握MCS-51单片机外部中断的原理。
2、掌握MCS-51单片机外部中断程序的设计方法及其过程。
3、掌握MCS-51单片机外部中断的电路应用。
二、实验任务
利用外部中断方式,实现通过按键切换流水灯的流向。
流水灯形式自定,按键按一次,流水灯的流向改变一次。
三、实验原理
当CPU正在处理某件事情(如正在执行主程序)时,单片机外部或内部发生的某一事件(如外部设备产生的一个电平变化或脉冲跳沿的变化,或者是片内事件的发生,如计数器的计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。
中断服务处理完该事件后,再回到原来被终止的地方,继续原来的工作(如继续执行被中断的主程序),这称为中断。
80C51的中断系统有5个中断源,如图3-1所示。
图3-1 中断系统结构框图
51单片机有/INT0和/INT1两条外部中断请求输入线,引脚P3.2和P3.3。
两种触发方式:电平触发及跳变(边沿)触发。
由特殊功能寄存器TCON来管理。
IT0(IT1):外部中断0(或1)触发方式控制位。
IT0(或IT1)被设置为0,电平触发方式;IT0(或IT1)被设置为1,边沿触发方式。
IE0(IE1):外部中断0(或1)的中断请求标志位。
中断允许控制:
EA:中断允许总控位。
EA=0,屏蔽所有的中断请求;EA=1,开放中断。
EX0:外部中断INT0的中断允许位。
EX1:外部中断INT1的中断允许位。
电路原理图如图3-2所示。
图3-2 外部中断实验电路
图3-3实验效果图
四、程序流程图
五、实验结果及分析总结
在指导老师的领导下,第一次在课堂中完成了外部中断实验。
感觉很有成就感,找回了自信心。
这次实验我掌握了外部中断的原理。
掌握了外部中断程序的设计方法及其过程。
通过实验,加深了对单片机工作方式的理解,单片机每次只能执行一条指令,所以我这次实验程序的工作原理就是当外部中断0按键没有被按下时,执行主程序实现流水灯左移,当外部中断0按键被按下时,执行外部中断0程序实现流水灯右移,流水灯灯右移完成后中断返回继续执行主程序。
这次实训对我来说真的很重要,认我相信了越努力越幸运,只要认真学还是能学懂的,今后我会加倍努力学习单片机。
六、程序附录
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa;
void delayms(uint num);
void main() //主程序
{
IT0=1;
EX0=1;
EA=1;
aa=0xfe;
while(1)
{
P1=aa;
delayms(500);
aa=_crol_(aa,1);
}
}
void weimas() interrupt 0 //外部中断0 {
P1=0x7f;
delayms(500);
P1=0xBf;
delayms(500);
P1=0xdf;
delayms(500);
P1=0xef;
delayms(500);
P1=0xf7;
delayms(500);
P1=0xfb;
delayms(500);
P1=0xfd;
delayms(500);
P1=0xfe;
delayms(500);
}
void delayms(uint num) //延时函数{
uint i,j;
for(i=num;i>0;i--)
for(j=120;j>0;j--);
}。