3 INT0中断实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三-INT0中断实验
1.实验目的
(1)掌握MCS-51单片机中断原理以及编程使用方法。(2)理解下降沿中断和低电平中断的区别。
2.实验内容
编写主程序,读取K0状态;当其与地端闭合时(P1.3=0)初始化为下降沿触发中断;反之(P1.3=1),初始化为低电平触发中断。编写中断服务程序,使图中的发光管闪烁1次(点亮和熄灭各一次),间隔250ms,即中断服务程序的执行时间为2.5秒,退出中断程序时,使发光管灭。
3.实验器材
(1)Proteus仿真软件(2)keil C51开发环境软件(3)LY-51S 2.1 开发板
4.实验原理
MCS-51单片机有5个中断源,其中两个是由-INT0、-INT1引脚输入的外部中断源;另外三个是内部中断源即由T0、T1的溢出引起中断和串行口发送完一个字节或接收到一个字节数据引起中断。
触发外部中断有两种方式,即下降沿引起中断或低电平引起中断。当编程TCON中的ITi(i=0、1)为1时,则引起触发的方式为边沿触发方式,反之(ITi=0)为低电平触发方式。
每个中断源的中断请求能否得到响应要受两级“开关”的控制,即一个总“开关”EA和五个分“开关”ES、ET1、EX1、ET0和EX0的控制能否中断,只有当EA为1,且对应的分“开关”也为1时,相应中断源的中断请求才能被响应。
5个中断源可编程为两种优先级,同一种优级内以-INT0的级别最高,然后是T0中断、-INT1中断、T1中断和串行口中断。5个中断源对应有个固定的中断服务程序入口地址。
CPU在每个机器周期顺序采样每个中断源,如查询到某个中断源的中断标志为1,中断系统通过硬件自动将相应的中断矢量装入PC,进入中断服务程序。
图中的开关TR3为一带锁按钮(在实验仪“脉冲源”模块中),在按下和松开按钮时,“”孔的电平将发生变化,由此产生下降沿。
5.实验电路原理图
6.程序框图
7.实验步骤
(1)按照“5.实验电路原理图
”,用proteus 绘制原理图。
(2)用keil C51开发环境软件,按照“6.程序流程图”,编写、调试和运行C51处理程序(提示:主程序流程中断处理程序流程图
可参考A15.C)。
(3)按下并锁定K1按键(P1.3=0:下降沿触发中断);然后,每按一下按键K8,向-INT0输入一个下降沿,并触发一次中断;观察发光管LED1的闪烁情况。
(4)松开K1按键(P1.3=1:低电平触发中断);然后,按下按键K80保持不动(连续触发中断低电平),观察发光管闪烁情况。总结两种中断类型的观察结果是否一样,为什么?
(5)用探针测量图中点的电平,按下TR3,然后松开,观察该点电平的变化。
(6)在仿真通过后,在“L Y-51S 2.1 开发板”按下图连接杜邦线。然后将程序下载到“L Y-51S 2.1 开发板”上运行;运行过程中,按K1、K8按键,观察LED1灯的变化。
(将绘制的原理图和编写、调试和运行的处理程序存放在自己所带的USB盘中。)
8.程序清单(参考MCS51\A15.ASM A15.C)
;“验证式”实验十五 INT0中断实验
;外中断0
;文件名:(MCS51\A15.ASM)
ORG 0000H
SJMP MAIN
ORG 0003H ;外中断0入口地址
LJMP INTER0
;主程序
MAIN: JB P1.3,MAIN1 ;判断是电平触发还是沿触发
CLR TCON.0 ;中断初始化 IT0=0(低电平触发)
SJMP MAIN2
MAIN1: SETB TCON.0 ;中断初始化 IT0=1(下降沿触发)
MAIN2: ORL IE,#81H ;EA=1(开中断)、EX0=1(允许-INT0中断)
ORL IP,#02H ;T0优先级别高于-INT0
SJMP MAIN
;中断处理程序
INTER0: CLR EA ;关中断
SETB P1.2 ;LED亮
LCALL DELY
CLR P1.2 ;LED灭
LCALL DELY
SETB EA ;开中断
RETI
DELY: MOV R6,#00H ;延时
DELY1: MOV R7,#00H
DELY2: DJNZ R7,DELY2
DJNZ R6,DELY1
RET
9.撰写实验报告
(1)预习
(2)原始记录——用C51编写的处理程序,在“7.实验步骤”中的(3)(4)(5)观察总结内容。
(3)实验报告内容