贵 州 大 学 实 验 报 告 纸
一、实验目的
学习外部中断技术的基本使用方法。
二、实验内容
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中写入相应的跳转指令,就可以实现中断程序调用。
一、实验目的
1. 掌握中断程序编程方法。
2.了解蜂鸣器控制方法。
二、实验原理及实验内容
1. 实验原理
本实验主要训练读者对中断原理的理解和对中断的编程。关于中断原理参考第三章有关内容。本实验通过外部中断1所接的轻触开关打开或关断蜂鸣器,循环点亮跑马灯。
2.实验内容
a. 接通J18(控制蜂鸣器跳线),接通J17(控制8位跑马灯跳线)。
b. 在Keil编译环境下,根据流程图编写程序,生成*.HEX文件。
c. 在ISP环境下将生成的*.HEX文件下载到89S52中。
d. 离线运行,观察运行结果。
图7-6中断流程图
三、参考程序
汇编程序:
BEEP EQU P3.4 /*定义蜂鸣器*/
ORG 0000H
AJMP MAIN
ORG 0013H
LJMP INT1PRM /*转向外部中断1服务子程序*/
MAIN:
SETB IT1 /*下降沿触发*/
MOV IE,#84H /*中断控制寄存器设置*/
WAIT: AJMP $ /*等待中断发生*/
INT1PRM:
CPL BEEP /*蜂鸣器取反*/
CLR C
MOV A, #0FFH /*准备把11111110赋予P0口,首先存入累加器A中*/
MOV R5,#09H /*设置循环次数为9*/ /*左移程序*/
XUNH: /*流水灯子程序*/
RLC A /*左移一位*/
MOV P0,A
ACALL DELAY /*调用延时程序,使人能看清楚灯的循环*/
DJNZ R5,XUNH /*判断自减后R5是否为0,若是,则跳回按键判断程序,若不是,则继续循环*/
RETI
DELAY: MOV R6,#0FFH /*延时程序*/
TT2: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,TT2
RET
END
C语言程序:
#include<reg52.h>
sbit Beep=P3^4; //蜂鸣器
unsigned char time;
main()
{ P3=0xff;
EX1=1; //外部中断1允许位
IT1=1; //下降沿触发
EA=1; //开总中断
Beep = 0x00;
while(1)
{ ; }
}
void inttrer() interrupt 2
{
unsigned int i,j;
Beep=~Beep; //蜂鸣器取反
time=0x01;
for(i=0;i<8;i++) //digitled 控制digled 轮流亮
{ P0 =~ time;
time = time<<1;
for(j=5000;j>0;j--){;}
}
}
四、实验仪器和设备
Keil软件;AT89S52实验平台;ATMEL ISP在线编程软件;
五、实验结果和数据分析
1.描述中断处理过程。
2.将程序改写成查询方式,要求能达到同样的程序效果,并说明中断和查询的区别。
实验三外部中断实验报告班级学号姓名教师一实验目的1掌握单片机外部中断的原理及过程2掌握单片机外部中断程序的设计方法3掌握单片机外部…
51单片机外部中断实验实验报告要求1整理本实验涉及的程序将它们按正确的格式详细书写在实验报告纸上1无中断时发光让发光二极管从左到右…
单片机程序实验报告实验四外部中断实验一实验目的1学习8051单片机的中端原理及编程方法2掌握中断处理程序的编程方法和调试方法二实验…
SOPC技术综合设计实践实验报告实验题号实验五项目名称PIO外部中断实验系班计科师范系111学号姓名实验日期20xx年4月2日指导…
实验十一P1口及外部中断一实验目的1掌握利用MCS51单片机P1口实现IO的三种传送方式2掌握MCS51单片机外部中断源的原理和编…
实验八INTn中断实验4课时综合实验实验日期20xx1211学校安徽农业大学经济技术学院星期三节次12实验课时姓名江珊珊学号专业班…
单片机实验报告(二)实验名称:定时器及外部中断南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技…
实验三外部中断实验报告班级学号姓名教师一实验目的1掌握单片机外部中断的原理及过程2掌握单片机外部中断程序的设计方法3掌握单片机外部…
中断及其优先级实验一实验目的1了解C51单片机中断以及中断优先级概念2掌握利用单片机中断编写相应的单片机程序二实验内容通过AT89…
51单片机外部中断实验实验报告要求1整理本实验涉及的程序将它们按正确的格式详细书写在实验报告纸上1无中断时发光让发光二极管从左到右…
实验二外部中断实验一实验目的1掌握外部中断技术的基本使用方法2掌握中断处理程序的编写方法二实验设备PC机Keil软件Proteus…