当前位置:文档之家› 单片机 实验报告 外部中断应用

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

一、实验目的
1、学习外部中断技术的基本使用方法。

2、学习中断处理程序的编程方法。

二、实验环境
1、Lab6000通用微控制器实验系统。

2、计算机,W A VE 集成调试软件。

三、实验项目
用单次脉冲申请中断,在中断处理程序中对输出信号进行反转控制直流电机转、停。

四、涉及内容
中断服务程序的关键是:
1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EXO位。

3、选择相应的中断源,并设置中断屏蔽寄存器的相应位。

本实验使用了INTO中断。

一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。

本实验的中断程序保护了PSW寄存器并且在退出前恢复了这个寄存器。

另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。

本实验中没有涉及这种情况。

INTO(P3.2)接单次脉冲发生器。

P1.0接继电器,以查看信号反转。

主程序框图外部中断子程序框图
五、实验步骤、记录和结果
实验电路连线
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
连线连接孔1 连接孔2
1 继电器——输入P1.0
2 INT0
单脉冲——
3 继电器——公共端+5V
4 继电器——常闭L0
5 继电器——常开L3
6 继电器——常开直流电机——至D/A
开始
设置初始状态
设置中断控制
寄存器
中断允许
中断入口保护现场状态位取反状态位输出恢复现场
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 <reg51.h>
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)运行程序,观察程序运行过程。

相关主题