《单片机_实验报告_外部中断应用》由会员分享,可在线阅读,更多相关《单片机_实验报告_外部中断应用(2页珍藏版)》请在金锄头文库上搜索。
1、一、 实验目的1、学习外部中断技术的基本使用方法。2、学习中断处理程序的编程方法。二、实验环境1、Lab6000 通用微控制器实验系统。2、计算机,WAVE 集成调试软件。三、实验项目用单次脉冲申请中断,在中断处理程序中对输出信号进行反转控制直流电机转、停。四、涉及内容中断服务程序的关键是:1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2、必须在中断程序中设定是否允许中断重入,即设置 EXO 位。3、选择相应的中断源,并设置中断屏蔽寄存器的相应位。本实验使用了 INTO 中断。一般中断程序进入时应保护 PSW,ACC 以及中断程序使用但非其专用的寄存器。本实验的中断程序保护了 P
2、SW 寄存器并且在退出前恢复了这个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本实验中没有涉及这种情况。INTO(P3.2)接单次脉冲发生器。P1.0 接继电器, 以查看信号反转。主程序框图 外部中断子程序框图五、实验步骤、记录和结果实验电路连线1、汇编语言操作步骤如下:(1)创建一个项目目录:shiyan51 。(2)如实验一的七.2,修改编译器为汇编语言编译器。(3)执行“新建文件 ”命令,在开发环境程序窗口中按汇编语言格式输入汇编语言源程序。将程序文件名取为 shiyan51.asm 保存到目录“shiyan51” 。Output equ P1.0OutBu
3、f equ 0ljmp Startorg 3Interrupt0:push PSW ; 保护现场cpl OutBuf ; 取反LED连线 连接孔 1 连接孔 21 继电器输入 P1.02 INT0 单脉冲3 继电器公共端 +5V4 继电器常闭 L05 继电器常开 L36 继电器常开 直流电机至 D/A开始设置初始状态设置中断控制寄存器中断允许等待中断中断入口保护现场状态位取反状态位输出中断返回恢复现场 mov c, OutBufmov Output, cpop PSW ; 恢复现场retiStart:setb OutBufmov TCON, #01h ; 外部中断0下降沿触发mov IE, #
4、81h ; 打开外部中断允许位(EX0)及总中断允许位(EA)ljmp $end(4)在“文件 ”下拉菜单中,执行“新建项目”命令,建立新项目。在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择“shiyan51 ”目录中的实验源程序“shiyan51.asm” ,并“打开” 。在弹出的“加入包含文件”窗口,选择“取消” 。在弹出的“保存项目”窗口,建立项目文件名 shiyan51,选择“保存”到“shiyan51”目录。(5)执行“ 编译”命令,对输入的源程序进行编译、连接,如果有错则修改直至没有错误为止。(6)运行程序,观察程序运行过程。2、C 语言操作步骤如下:(1)创建一个项目目
5、录:shiyan52 。(2)如实验一的八.2,修改编译器为C语言编译器。(3)执行“新建文件 ”命令,在开发环境程序窗口中按C语言格式输入C语言源程序。将程序文件名取为shiyan52.c 保存到目录“shiyan52 ”。#include sbit Output = P10;void ExtInt0() interrupt 0 static bit OutBuf=1;OutBuf = !OutBuf;Output = OutBuf;void main() TCON = 0x01; / 外部中断0下降沿触发IE = 0x81; / 打开外部中断允许位(EX0)及总中断允许位(EA)while (1) ;(4)在“文件” 下拉菜单中,执行“新建项目”命令,建立新项目。在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择“shiyan52 ”目录中的实验源程序“shiyan52.c ”,并“打开” 。在弹出的“加入包含文件”窗口,选择“取消” 。在弹出的“保存项目”窗口,建立项目文件名 shiyan52,选择“保存”到“shiyan52”目录。(5)执行“ 编译”命令,对输入的源程序进行编译、连接,如果有错则修改直至没有错误为止。(6)运行程序,观察程序运行过程。