您的当前位置:首页正文

单片机 实验报告 外部中断应用

2024-10-18 来源:威能网
一、 实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 二、实验环境 1、Lab6000通用微控制器实验系统。 2、计算机,WAVE 集成调试软件。 三、实验项目 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转控制直流电机转、 停。 四、涉及内容 中断服务程序的关键是: 1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。 2、必须在中断程序中设定是否允许中断重入,即设置EXO位。 3、选择相应的中断源,并设置中断屏蔽寄存器的相应位。 本实验使用了INTO中断。一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本实验的中断程序保护了PSW寄存器并且在退出前恢复了这个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本实验中没有涉及这种情况。 INTO(P3.2)接单次脉冲发生器。P1.0接继电器,以查看信号反转。 开始 中断入口 设置初始状态 保护现场 设置中断控制 寄存器 状态位取反 中断允许 状态位输出 恢复现场

主程序框图 外部中断子程序框图 五、实验步骤、记录和结果 实验电路连线 连线 连接孔1 连接孔2 1 继电器——输入 P1.0 2 INT0 单脉冲—— 3 继电器——公共端 +5V 4 继电器——常闭 L0 5 继电器——常开 L3 6 继电器——常开 直流电机——至D/A 1、汇编语言 操作步骤如下: (1)创建一个项目目录:shiyan51。 (2)如实验一的七.2,修改编译器为汇编语言编译器。 (3)执行“新建文件”命令,在开发环境程序窗口中按汇编语言格式输入汇编语言源程序。将程序文件名取为shiyan51.asm保存到目录“shiyan51”。 Output equ P1.0 OutBuf equ 0 ljmp Start org 3 Interrupt0: push PSW ; 保护现场 cpl OutBuf ; 取反LED mov c, OutBuf mov Output, c pop PSW ; 恢复现场 reti Start: setb OutBuf mov TCON, #01h ; 外部中断0下降沿触发 mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA) ljmp $ end (4)在“文件”下拉菜单中,执行“新建项目”命令,建立新项目。 在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择“shiyan51”目录中的实验源程序“shiyan51.asm”,并“打开”。 在弹出的“加入包含文件”窗口,选择“取消”。 在弹出的“保存项目”窗口,建立项目文件名shiyan51,选择“保存”到“shiyan51”目录。 (5)执行“编译”命令,对输入的源程序进行编译、连接,如果有错则修改直至没有错误为止。 (6)运行程序,观察程序运行过程。 2、C语言 操作步骤如下: (1)创建一个项目目录:shiyan52。 (2)如实验一的八.2,修改编译器为C语言编译器。 (3)执行“新建文件”命令,在开发环境程序窗口中按C语言格式输入C语言源程序。将程序文件名取为shiyan52.c保存到目录“shiyan52”。 #include sbit Output = P1^0; 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)运行程序,观察程序运行过程。

因篇幅问题不能全部显示,请点此查看更多更全内容