实验5 外部中断实验
- 格式:ppt
- 大小:58.00 KB
- 文档页数:7


外部中断应用实验
设计性试验
2012年11月28日 星期三 第三四节课
一、实验目的
1、掌握中断系统外部中断源的使用方法。
2、掌握延时程序的编程及使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求
1、用Proteus软件画出电路原理图,在单片机的P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形,在单片机的 P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。
2、在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。
三、电路原理图
四、实验程序流程框图和程序清单及实验结果
/********************
实验五 外部中断应用实验
要求:(1)在单片机的P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形,在单片机的 P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。
(2)在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。
**********************/
ORG 0000H
START: LJMP MAIN
ORG 0003H
LJMP EXINT0
ORG 0013H
LJMP EXINT1
ORG 000BH
LJMP TTC0
ORG 0100H
MAIN: MOV SP, #2FH ;堆栈指针初始化
MOV IE, #10000111B;EA - - ES ET1 EX1 ET0 EX0
MOV TMOD, #01H ;设置定时器T/C0为工作方式1
MOV TH0, #9EH ;设置定时器T0的计数初值为25ms
MOV TL0, #58H
一、 实验要求
在单片机的外中断输入引脚INT0————(或INT1————),接一个按键开关来产生外部中断请求,通过P1口连接的8个LED发光二极管的状态,来反映外中断的作用。
中断未发生时,P1口连接的8个LED为流水状态,当按键开关按下,即外部中断请求产生时,8个LED呈现闪烁状态。按键开关松开,8个LED又为流水状态。
二、 实验目的
(1) 理解掌握外部中断源、中断请求、中断标志、中断入口等概念。
(2) 掌握中断程序的设计方法。
程序如下:
ORG 0000H //程序入口
LJMP MAIN //跳入主程序入口MAIN
ORG 0003H //INT0中断入口
LJMP INT0P
ORG 0030H
MAIN: SETB EA //中断允许总开关控制位
SETB EX0 //允许外部中断0中断
SETB PX0 //外部中断0中断为高优先级
START:MOV R2,#8
MOV A,#0FEH //为点亮引脚发光二极管需写入P1口的点亮控制码
LOOP: MOV P1,A //点亮控制码写入P1口,点亮相应的LED LCALL DELAY //调用延时子程序
RL A //点亮控制码循环左移,点亮下一位
DJNZ R2,LOOP //判断左移是否超过8位,未超过继续循环
LJMP START //左移循环已8次,再重新进行下一次循环点亮
INT0P: PUSH PSW //保护现场
PUSH Acc
NOLIG: JNB IE0,IT0R
MOV P1,#00H
LCALL DELAY
MOV P1,#0FFH
LCALL DELAY
实验5-外部中断
外部中断是指由CPU外部发出的中断请求,例如外部设备的输入/输出请求或定时器中断。在此实验中,我们将学习如何使用ATmega16的外部中断功能。
硬件连接:
- 将按钮连接到MCU的外部中断引脚(INT0或INT1)
- 将LED连接到MCU的输出引脚
软件实现:
1. 配置外部中断
在ATmega16中,外部中断引脚被分为INT0和INT1,可以使用MCU的寄存器来配置它们。下面是一些相关的寄存器:
- MCUCR:MCU控制寄存器,用于设置外部中断引脚的触发方式(如下降沿、上升沿、逻辑电平等)。
- GICR:全局中断控制寄存器,用于启用/禁用外部中断。
下面是一些示例代码来配置INT0为下降沿触发:
```c
// 设置INT0引脚的触发方式为下降沿
MCUCR |= (1 << ISC01);
MCUCR &= ~(1 << ISC00);
// 启用INT0中断
GICR |= (1 << INT0);
```
2. 实现中断服务程序
中断服务程序(ISR)是在响应中断时自动调用的函数。在此实验中,我们将为INT0编写一个简单的ISR,使连接到MCU的LED闪烁。
```c #include
#include
#define LED PB0
#define BUTTON PD2
// INT0中断服务程序
ISR(INT0_vect)
{
PORTB ^= (1 << LED); // 翻转LED状态
}
// 启用全局中断
sei();
while (1)
{
// 延时一段时间
实验五 中断实验
实验目的
1、加深理解计算机系统中断工作的原理及处理过程。
2、学习和掌握中断产生、中断响应、中断处理等技术。
实验原理
TEC-XP教学机中提供给用的外部中断源有三个,由教学机面板右下角的三个无锁按键
作为其硬件中断源,从右到左依次简称为P1、P2、P3中断源。TEC-XP在响应这三个中断
源的中断请求时,采用的是向量地址转移法,即中断源的请求可通过硬件电路产生一个向量
地址,在该地址中存放一条转移指令,执行该指令即可转入对应的中断服务程序。
P1、P2、P3的中断向量地址由TEC-XP的内部结构确定,分别为2420H、2430H和2440H,
用户中断使用时,应在对应地址中写入转移指令,从而转向用户自定义的中断服务程序。
实验内容
编写主程序和三个中断源的中断服务程序,在主程序执行过程中,按下按键产生中断请
求,观察中断服务和中断嵌套的现象。
主程序的功能:在屏幕上循环显示数字字符“6”,并可随时接受中断请求;
中断服务程序的功能:进入中断服务程序显示字符串“BIn”,其中n是与中断源优先
级相对应的数字字符“1/2/3”,等待按键,直到有任一按键按下,显示字符串“EIn”后退出
中断。
实验步骤
本实验共4学时,其中1~7步2学时,第8步2学时,请在实验前提前预习和准备,
以保证实验效果。
1、相关扩展指令的微程序验证
本实验中使用到开中断、关中断、中断返回等扩展指令,做具体中断实验之前,先进行
这些指令微程序的分析和验证。
该步骤中应将功能开关拨为11010,即设为单步、手动执行指令,使用微程序控制器,
联机操作。
表5-1 若干扩展指令的执行周期微程序 指令 微地址 操作功能 下址 CI3~0 SCC3~0 MRW I2~0 I8~3 B口 A口 SST SSH\SCI DC2 DC1 EI 58H EI 30H 0011 0000 100 000 001 000 0000 0000 000 000 110 000 DI 59H DI 30H 0011 0000 100 000 001 000 0000 0000 000 000 111 000 IRET 67H SPAR SP+1SP 00H 1110 0000 100 011 010 000 0100 0100 000 001 011 000