单片机实验七
实 实 验 报 告 专业 计算机科学与技术 班级 学号 姓名 课程名称 单片机原理及应用 学年 2013-2014 学期 1 /2 课程类别 专业必修 限选 任选 实践 实验时间 2014 年 4 月 21 日 实验名称 实验七 外部中断 0(/INT0)中断技术实验 实验目的和要求 ① 掌握 MSC-51 单片机中断原理以及编程和使用方法。
② 理解下降沿中断和低电平中断的区别。
实验器材 1 实验仪一台;2 编程器一台; 3 万用表一块;4 小镊子一把; 实验原理、内容与要求(见附页)实验结果(见附页)小结 通过实验,我掌握了MSC-51单片机中断原理以及编程和使用方法,以及理解了下降沿中断和低电平中断的区别。
√ √ √ √
评定成绩:
批阅教师:
年 月 日 实验 原理: MCS-51 单片机有 5 个中断源,其中,两个是由/INT0、/INT1 引脚输入的外部中断源;另外三个是内部中断源,即由 T0、T1 的溢出引起中断和串行口发送完一个字节或接收到一个字节数据引起的中断。触发外部中断有两种方式,即下降沿引起中断或低电平引起中断,当编程 TCON 中的 ITi 为 1 时,则规定引起触发的方式为边沿触发方式,反之为低电平触发方式。每个中断源的中断请求能否得到响应要受两级“开关”的控制,即一个总“开关”EA 和五个分“开关”ES、EXT1、EX1、ET0 和 EX0 的控制,只有当 EA 为 1,且对应的分“开关”也为 1时,对应中断源的中断请求才能被响应。5 个中断源可编程为两个优先级,同一优先级内以/INT0 的优先级最高,然后是 T0 中断、/INT1 中断、T1 中断和串行口中断。5 个中断源对应 5 个固定的中断服务程序入口地址。CPU 在每个机器周期顺序采样每个中断源,如查询到某个中断源的中断标志为 1,中断系统通过硬件自动将相应的中断矢量装入 PC,进入中断服务程序。实验线路如下图所示,图中的开关 TR3 为一按钮,通常状态下 A 点接地,C 点为高电平,当按下按钮时 B 接地,这时就会在 C 点输出低电平,当松开按钮时,C 点重新变成高电平。
实验 内容与要求:
1 编写主程序,读取图中开关 SW1 的状态,当其闭合时(P1.3 为低电平)初始化为下降沿中断,反之,初始化为低电平中断,且黄色发光管灭;编写中断服务程序,使图中的发光管闪烁 5 次,间隔 250MS,即中断服务程序的执行时间为2.5 秒,退出中断程序时,使发光管灭。实验分两步进行:
首先将 SW1 闭合,按住按钮 TR3,时间小于 2.5 秒,即在中断服务程序执行结束时,使图中 C 点变成高电平;数秒后再按住按钮 TR3,时间大于 2.5 秒,即在中断服务程序执行结束时,图中 C 点仍为低电平;观察发光管的闪烁情况。
然后关掉电源,将 SW1 打开,重复上述的动作,观察发光管的闪烁情况。两次的观察结果是否一样,为什么? 2 用万用表测量图中 C 点的电平,按下 TR3 1 秒钟,然后松开,观察 C 点电平的变化。
线路设置:
如程序存放在 AT89S51 中,AT89S51 的/EA(引脚 31)必须接高电平,实验时需短路 J13 的 1 和 2 引脚,否则;必须短路 J13 的 2 和 3 引脚; 实验时要求短接 J3 的 1、2,J6 的 2、6。
实验结果:
发光管闪烁 5 次,间隔 250MS,即中断服务程序的执行时间为 2.5 秒,退出中断程序时,发光管灭。
附录(源程序清单):
1 汇编语言程序清单(FileName :ex7.asm)ORG 0000H SJMP MAIN ORG 0003H LJMP EXINT0 MAIN: MOV SP,#60H CLR P1.2 SETB EA MOV C,P1.3 JC LOWER SETB IT0;边沿触发方式 SJMP CONT LOWER: CLR IT0;低电平触发方式 CONT: SETB EX0;允许/INT0 中断 HERE: SJMP HERE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断服务程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EXINT0: MOV R0,#5 LP: CPL P1.2
DLY: MOV 30H, #5 DEL0: MOV R7, #100;延时 50ms DEL1: MOV R6, #125 DEL2: 党建NZ R6, DEL2 党建NZ R7, DEL1 党建NZ 30H,DEL0 党建NZ R0,LP CLR P1.2 RETI END 2 C 语言程序清单(FileName :cex7.c)#include
