单片机汇编中断系统实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告:实验三中断系统实验
专业班级:2011级信息工程姓名:高祥学号:1195111009 指导老师
一、实验目的
1. 学习掌握51单片机中断系统结构、中断控制。
2. 学习掌握中断控制初始化和中断服务程序设计、调试。
二、实验说明
实验通过开关向单片机提出中断请求,单片机响应中断控制LED移位,从而观察中断的请求、响应的过程。通过本实验学生可以学习单片机中断系统结构以及中断控制初始化和中断服务程序设计、调试。
三、实验内容
1)、LED循环移位控制:
要求:P0口接LED,编程实现两种以上的循环移位方式(方式自定义,显示效果必须有明显的区别)。为便于观察,移位速度控制在1位/秒,采用软件延时。
代码码一:
;************************************************************************** :该程序实现的是LED灯循环左移程序,延时时间为0.99s
:************************************************************************** MOV A, #0FEH
LJMP MAIN
ORG 0080H
MAIN: MOV P0,A
ACALL DELAY
RL A
AJMP MAIN
Delay:MOV R7, #0C2H
D1 :MOV R6, #32H
D2 :MOV R5 ,#32H
D3 :DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET
END
代码二:
:************************************************************************* :该代码实现的是连个LED向右轮流循环显示功能,延迟时间为0.99S
:************************************************************************* MOV A,#9FH
LJMP MAIN
ORG 0080H
MAIN: MOV P0,A
ACALL DELAY
RR A
AJMP MAIN
Delay:MOV R7, #0C2H
D1 :MOV R6, #32H
D2 :MOV R5 ,#32H
D3 :DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET
END
2)、外部中断:
要求:通过按键产生外部中断请求(/INT0)信号,中断服务程序中完成上述循环移位方式切换。要求分别编写电平触发方式和跳变沿触发方式的初始化程序及中断服务程序。
代码一:
;**************************************************************************** ;通过按键来实现中断请求信号,完成一中的LED左循环程序,电平触发
;************************************************************************** ORG 0000H
LJMP MAIN
ORG 0003H
LJMP Bre
MAIN: MOV SP,#60H
CLR 01H
LOOP1:MOV A,#0FEH
LOOP4:MOV P2,A
ACALL Delay
SETB EA
SETB EX0
CLR IT0
RL A
JnB 01H,LOOP4
MOV R2,A
ACALL Delay
JNB 01H,LOOP4
LOOP2:MOV A,#9FH
LOOP3:MOV P2,A
ACALL Delay
RR A
JNB 01H,LOOP5
SJMP LOOP3
LOOP5:MOV A,R2
SJMP LOOP4
Bre: PUSH PSW
PUSH Acc
CPL 01H
POP Acc
POP PSW
RETI
Delay: MOV R7,#0C2H
D1 :MOV R6,#32H
D2 :MOV R5,#32H
D3 :DJNZ R5,D3
DJNZ R6,D2
DJNZ R7,D1
RET
END
代码二:
;**************************************************************************** ;通过按键来实现中断请求信号,完成一中的LED向右循环程序,跳变沿触发
;************************************************************************** ORG 0000H
LJMP MAIN
ORG 0003H
LJMP Bre
MAIN: MOV SP,#60H
CLR 01H
LOOP1:MOV A,#0FEH
LOOP4:MOV P2,A
ACALL Delay
SETB EA
SETB EX0
SETB IT0
RL A
JnB 01H,LOOP4
MOV R2,A
ACALL Delay
JNB 01H,LOOP4
LOOP2:MOV A,#9FH
LOOP3:MOV P2,A
ACALL Delay
RR A
JNB 01H,LOOP5
SJMP LOOP3
LOOP5:MOV A,R2
SJMP LOOP4
Bre: PUSH PSW
PUSH Acc
CPL 01H
POP Acc
POP PSW
RETI
Delay: MOV R7,#0C2H