电子科技大学中山学院学生实验
院别:电子信息学院 课程名称:微处理器实验
班级
无线技术14
姓名
学号
实验名称
中断与定时/计数器实验
实验时间
2016年10月25日
成绩
教师签名
批改时间
报 告 内 容
一、实验目的和任务
1、掌握80C51单片机外部中断的初始化及中断服务子程序
方法。
2、掌握80C51单片机定时器/计数器的程序控制方法。
二、实验原理简介
中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。80C51类单片机至少包括5个中断源:
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。(本实验用)
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。(本实验用)
T1:定时器/计数器l中断,由T1计满回零引起。
TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
本实验对应的硬件电路与实验三相同(见图3.3.1)。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,其中KX0对应外部中断0,进行KX0按键动作的时候可以触发外部中断。
注意:在做本实验时,须将拨码开关JUMP2置为接通状态(向左)。
三、实验内容和步骤
实验步骤:
1)编写源程序。执行FileNew命令(或点击相应的工具按钮),在编辑窗口中创建上述汇编语言源程序并存盘为DataExch.ASM文件。
2)建立工程文件。执行ProjectNew Project命令,创建一个名为DataExch.uv2的工程文件,单片机型号可选择Atmel 89C5x、Philips 8xC5x等。
3)将源文件加入到工程中。右击Project Windos中Target1下的Source Group1,执行Add Files to Group ‘Source Group1’命令,将DataExch.ASM源文件加入到工程中。
4)设置工程选项。右击Project Windos中Target1,执行Options for Target ‘Target 1’命令(或点击相应的工具按钮),弹出选项设置窗口,勾选Output页中的Create Hex File(本实验不选也可)。
5)生成代码文件。执行ProjectRebuild all target files命令(或点击相应的工具按钮),对工程进行汇编、连接处理,生成程序代码文件。若系统给出错误或严重警告提示,应当按照提示进行修改,存盘后,重新执行ProjectRebuild all target files命令(或点击相应的工具按钮)。
6)软件模拟调试。执行DebugStart/Stop Debug Session命令(或点击相应的工具按钮),开始进行软件模拟调试。调试过程中可交替采用连续、断点、单步(step into)、宏单步(step over)、到光标所在行等运行方式。可通过寄存器窗口和存储器窗口观察或设置寄存器、存储单元的当前值。查看存储器时,应在存储器窗口的地址栏内键入要查看的存储器类型和起始地址(例如可分别键入D:0、C:0,X:0查看内部RAM、程序存储器、外部RAM 0#地址开始的单元内容)。
实验内容:
1、 外部中断实验。设计程序,按键控制发光管。按键一次,发光管亮一秒然后熄灭。
程序如下: ORG 0000H
LJMP MAIN
ORG 0003H
LJMP X0ISR
MAIN: SETB IT0
SETB EX0
SETB EA
SJMP $
X0ISR: MOV R2,#2
LCALL DELAY2
JB P3.2,X0ISR2
CLR P0.0
MOV R2,#100
LCALL DELAY2
SETB P0.0
CLR IE0
X0ISR2: RETI
DELAY2: MOV R3,#80
DELAY3: MOV R4,#200
DJNZ R4,$
DJNZ R3,DELAY3
DJNZ R2,DELAY2
RET
2、 定时中断实验。设计程序,通过P1.0,输出1KHZ方波。
程序如下: START: MOV TMOD,#00000001B
MOV R2,#100
NEXT: MOV TH0,#HIGH(-500)
MOV TL0,#LOW(-500)
SETB TR0
JNB TF0,$
CLR TF0
CPL P1.0
DJNZ R2,NEXT
CPL P1.0
SJMP START
END
3、 定时中断实验。设计程序,定时或通过按键控制交替输出1KHZ和2KHZ方波。
程序如下: ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
MAIN: MOV TMOD,#00000001B
SETB ET0
SETB EA
NEXT: MOV R7,#HIGH(-500)
MOV R6,#LOW(-500)
MOV DPTR,#-1000/2
MOV TH0,R7
MOV TL0,R6
SETB TR0
LCALL DELAY
MOV R7,#HIGH(-250)
MOV R6,#LOW(-250)
MOV DPTR,#-500/2
MOV TH0,R7
MOV TL0,R6
SETB TR0
LCALL DELAY
SJMP NEXT
T0ISR:MOV TH0,R7
MOV TL0,R6
MOV TH0,DPH
MOV TL0,DPL
CPL P1.0
RETI
DELAY: MOV R2,#25
DELAY2: MOV R3,#100
DELAY3: MOV R4,#100
DJNZ R4,$
DJNZ R3,DELAY3
DJNZ R2,DELAY2
RET
END
四、实验结果与
1. 掌握了中断和定时器的原理和应用。
2. 中断包括中断请求、中断响应、中断服务、中断返回四个环节。
3. 经过多次的上机实验练习,仍然存在着小小的失误,比如把0打成O,忘记加分号等。但是只要认真仔细检查,还是可以找到错误并改正的。