您的当前位置:首页单片机外部中断实验

单片机外部中断实验

2022-08-06 来源:乌哈旅游


外部中断实验

一、实验目的

1.掌握外部中断技术的基本使用方法2.掌握中断处理程序的编写方法

二、实验原理

1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式.2.中断服务的关键:

(1)保护进入中断时的状态。

堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。注:中断程序自动保护PC,对其做入栈操作

(2)用POP指令恢复中断时的现场。(先进后出)3.中断控制原理:

中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TCON格式(中断控制字)

TF1、TF0:定时器/计数器T的溢出中断请求标志位;

TR1、TR0:计数器控制位TR1(TR0)=1启动定时器TR1(TR0)=0停止计数器

IE1:外部中断请求1标志位;

IT1:选择外部请求1;

IE0:外部中断请求0标志位;

IT0:IT0=0为低电平触发IT0=1为负跳变有效;复位后TCON被清零,中断请求被禁止。

SCON格式(触发方式中断控制字)

TI:串行口的发送中断请求标志位。发送1帧串行数据后,硬件自动为TI置1。注:CPU不会为T1清零,需要在中断程序中用软件为TI清零

RI:串行口接受中断请求标志位。接收完1帧串行数据后,硬件自动为RI置1。注:CPU不会为R1清零,需要在中断程序中用软件为RI清零

三、实验内容

参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。中断结束后LED继续接上次状态进行跑马灯闪烁。注:注意保护现场。且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。例:PUSH 06H (累加器支持左移右移不支持压栈出栈; 工作组寄存器不支持左移右移支持压栈出栈);把R6入栈 等同 PHSHU R6

四、实验步骤

1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。

2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加**.ASM源程序,进行编译,直到编译无误。

4.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行

程序。

五、参考程序

ORG 0000HLJMP STARTORG 0003HLJMP INTORG 0030H

INT: PUSH 05H PUSH 06H PUSH 07H MOV P1,#00H ACALL DELAY

POP 07H

POP 06H POP 05H RETI

START: MOV IE,#81H MOV TCON,#01HMOV A, #0FEHOUTPUT: MOV P1,A

RL A 循环左移 ACALL DELAY LJMP OUTPUTDELAY: MOV R6,#0 MOV R7,#0 MOV R5,#5

DELAYLOOP: ;延时程序 DJNZ R6,DELAYLOOP DJNZ R7,DELAYLOOP

DJNZ R5,DELAYLOOP RET

END

六、附加要求:

将中断内容变为前五个灯进行一次跑马灯,然后中断结束。

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