01-带原理图
- 格式:doc
- 大小:54.26 KB
- 文档页数:4
实验六 中断实验
一、 实验任务
1.熟练掌握中断服务程序的编写的方法;
2.加深理解中断服务程序调用的原理,掌握中断向量表的用法;
3.掌握前后台程序结构;
4.熟练掌握外部中断源相关寄存器的作用以及相应寄存器位的作用和设计方法。
二、 实验环境
51单片机实验台和安装有开发软件的计算机。
三、 实验内容
利用实验设备使用外部中断0和中断1,正常情况下,P1口作跑马灯使用,当发生中断0
时,灯作全部作闪烁,当发生中断1时,P1口低四位和高四位交替闪烁。
四、 实验步骤
1. P1口接发光二极管,P3.2,P3.3通过按纽接地,实验连线;
2. 编程实现P1口所接的发光二极管作跑马灯运行;
3. 利用仿真器进行仿真和调试。
4. 观察各标志位的变化,给出中断响应和返回的原理;给出程序,逐行注释,画出主
程序流程图和中断服务流程图,给出硬件原理图。
开始
SP=#30H,R2=9,设F1地址为60H,F0标志位
开启中断0,开启中断1.
无中断时
进入中断0时
将F0置1
进入中断1
将#0FFH给
F1
按照P1口作跑马灯使用RRC指令使A变化,再返回给P1口 P1最开始赋值0FFH,CPL取反送给A,A在送回给P1是8个灯全亮,全灭。循环由R0 控制 P1最开始赋值0F0H,SWAP高4低4互换送
给A,A在送回给P1
是低四位和高四位交
替闪烁。循环由R0控
三、实验程序
F1 DATA 60H
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INSER1
ORG 0013H
LJMP INSER2
ORG 0030H
MAIN:
MOV SP,#30H //将SP指针指向30H单元内容
SETB EX0 //开启中断0 开启中断1
SETB EX1
SETB IT0
SETB IT1
SETB EA
CLR F0
MOV F1,#00H
L: JB F0,L11
MOV A,60H
CJNE A,#00H,L12 //无中断时 按位右移
MOV R2,#9 //R2附初值
SETB C
MOV P1,#0FFH
MOV A,0FEH
MOV P1,A
LOOP:
RRC A
MOV P1,A
LCALL DELAY
DJNZ R2,LOOP
SJMP L
L11: MOV R0,#10
L1: MOV A,0FFH
MOV P1,A
LCALL DELAY
CPL A
DJNZ R0,L1
LJMP L
L12: MOV R0,#10
MOV A,0F0H
L2: MOV P1,A
LCALL DELAY
SWAP A
DJNZ R0,L2
LJMP L
INSER1: //中断0时 全亮全灭
SETB F0
INSER2: //中断1 时 高低4亮灭位互换
MOV F1,#0FFH
DELAY: //延时函数
MOV R5,#10
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
中断响应:从中断请求发生直到被响应,准备去执行中断服务程序,此过程即中断响应
过程。在满足中断响应条件情况下,若中断标志位1,在接下来周期开始按优先级顺序进行
中断处理。PC的内容压入堆栈。先地位地址,后高位地址,并修改堆栈指针SP。将中断源
的中断入口地址装入程序计数器PC,执行中断服务程序。
中断返回:当CPU执行到RETI指令时,将当前栈顶内容弹出到PC,恢复断点。
硬件电路图:
五、实验仪器和设备
Keil软件;试验台
六、实验结果和数据分析
本实验利用中断服务程序 外部中0和外部中断1,通过保护中断服务现场和恢复中断
服务现场并返回,判断中断服务程序, 并调用延时函数,当发生中断0时,灯全部作闪烁,
当发生中断1时,P1口低四位和高四位交替闪烁。
本次实验成绩 得分 8
教师签字: 张俊芳 批改日期:2013-5-29