实验七 外部中断实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学实验报告纸

实验七外部中断实验

一、实验目的

学习外部中断技术的基本使用方法。

二、实验内容

1、INT0端接单次脉冲发生器。按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转。

2、修改程序,实现用一位开关产生外部中断1,每产生一次,调用一个流水灯方式,按顺序4次一个周期后重复

三、实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图

1)外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入。

2)中断服务的关键:

a、保护进入中断时的状态。

堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。

b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。

c、用POP指令恢复中断时的现场。

3)中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些

寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。

4)中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。

本实验需要用到CPU模块(F3区)和八位逻辑电平显示模块(B5区)、单次脉冲模块(E3区)。

五、实验程序

;//*************************************************

;文件名: EXint for MCU51

;功能: 外部中断实验

;接线: 导线连接单次脉冲模块的输出端到CPU模块的P32,

; CPU模块的P10接八位逻辑电平显示模块的L0灯。

;//*************************************************

org 0

ljmp Start

org 3

LJMP Interrupt0

ORG 0100H

Start:

mov TCON, #01h ; 外部中断0下降沿触发

mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA)

OK:

MOV R2,#04H

MOV R1,#0

LOP1:

CJNE R2,#0,LOP1

ljmp OK

Interrupt0:

Output1:

CJNE R1,#0,Output2

mov a, #0fEH

mov R5, #8

loop1:

mov P1, a

rl a

Acall Delay

djnz R5, loop1

LJMP JIES

Output2:

cjne r1,#1,Output3

mov a, #07fH

mov R5, #8

loop2:

mov P1, a

rr a

Acall Delay

djnz R5,loop2

LJMP JIES

Output3:

CJNE R1,#2,Output4

mov a, #0FFH

mov R5, #9

loop3:

CLR C

mov P1, a

RRC a

Acall Delay

djnz R5, loop3

mov R5, #8

loop4:

SETB C

RLC A

MOV P1,A

Acall Delay

djnz R5, loop4

LJMP JIES

Output4:

CJNE R1,#3,JIES

MOV R3,#00H

MOV R4,#09H

MOV DPTR, #tab ; 表首址

loop5:

MOV A,R3

MOVC A, @A+DPTR ; 查表读取第一个字节 MOV P1,A

INC R3

ACALL DELAY

DJNZ R4,loop5

LJMP JIES

Delay:

mov r6,#0

DelayLoop1:

mov r7,#0

DelayLoop2:

NOP

NOP

djnz r7,DelayLoop2

djnz r6,DelayLoop1

ret

JIES:

INC R1

DEC R2

RETI

tab:

DB 0FFH,0E7H,0C3H,81H,00H,81H,0C3H,0E7H,0FFH

End

六、实验步骤

1)系统各跳线器处在初始设置状态,用导线连接单次脉冲模块的输出端到CPU模块的P32;

CPU模块的P10接八位逻辑电平显示模块的灯。

2)启动PC机,打开THGMW-51软件,输入源程序,并编译源程序。编译无误后,下载程序运行。

3)连续按动单次脉冲产生电路的按键,发光二极管L0每按一次状态取反,即隔一次点亮。

七、实验现象和分析

运行程序,每按一次脉冲产生按钮,就可以产生一次中断,就调用了一种流水灯方式,而且可以循环的调用。

程序采用中断的方式来调用流水灯方式,而且是顺序调用,在调用完一次后寄存器R1加1,通过判断R1的值来选择流水灯方式,等循环完四次后,将R1清零这样,就可以重新调用。但程序的编写还有一些缺陷,就是在调用后,流水灯只输出一次,不能重复输出,这样就不能真正的为流水灯,所以还需要改进一下。

八、实验总结

通过实验进一步掌握了外部中断的使用方法,单片机中断有五个,为外部中断0,外部中断1,定时中断0,定时中断1,串行中断。而外部中断0的对应中断输入引脚为P3.2,在实验中将P3.2连接电路的脉冲输出,这样就可以产生中断信号,启动中断程序。将中断程序的程序入口地址0003H中写入相应的跳转指令,就可以实现中断程序调用。

相关文档
最新文档