中断方式控制彩灯闪亮
报 告
实验题目: 中断方式控制彩灯闪亮
专 业: 计算机科学与技术
学生姓名:
班级学号:
分组序号:
指导教师:
2011 年 5月13 日
中断方式控制彩灯闪亮实验报告
一、 实验时间
20## 5/13
二、 实验地点
三、 实验小组人员
四、 指导老师
五、 实验目的
通过8259中断控制器应用编程实验,学习中断控制器的工作原理及中断控制程序的设计方法。
六、 实验内容
在声光报警模块上按动SW3开关,通过8255向主机内的中断控制器申请10号中断,在中断服务程序中,点亮声光报警模块上的LED灯。
七、 实验原理
利用平台上的开关SW3,通过8255的PC4申请IRQ10号中断,实验的原理图3.2.12所示。
图3.2.12 中断申请电路原理图八、 实验资源配置
1.IBM PC兼容机
2.windows200
3.MFID多功能微机实验平台
4.MF2kp微机原理实验集成开发环境
九、 实验步骤
步骤一:在MFID实验平台上的C区的IRQ10与PC4相连。
步骤二:在MF2KP环境下输入汇编程序,编译、连接、运行。
步骤三:每按1次SW3键,PC4申请1次中断,LED点亮一次。
十、 实验流程图
十一、 实验源程序
STACK1 SEGMENT STACK
DW 200 DUP(?)
STACK1 ENDS
DATA SEGMENT
MESG1 DB 'Press SW3 one time to invoke interrupt one time,and to light one of LEDs',0ah,0dh
DB 'Exit with q/Q',0ah,0dh,'$'
LEDDATA DB 01H,02H,04H,08H,10H,20H,40H,80H
NUM DW(0)
INT0A_OFF DW(?)
INT0A_SEG DW(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,09H
MOV DX,OFFSET MESG1
INT 21h ;显示提示信息
MOV DX,303H ;初始化8255
MOV AL,83H
OUT DX,AL
MOV DX,300H ;LED灯熄灭
MOV AL,00H
OUT DX,AL
MOV AX,3572H ;获取原中断向量
INT 21H
MOV INT0A_OFF,BX ;保存原中断向量
MOV BX,ES
MOV INT0A_SEG,BX
CLI ;关中断
MOV AX,2572H
MOV DX,SEG LEDLIGHT ;设置新的中断向量
PUSH DS
MOV DS,DX
MOV DX,OFFSET LEDLIGHT
INT 21H
POP DS
STI ;开中断
IN AL,0A1H ;打开IRQ10
AND AL,0FBH
OUT 0A1H,AL
L1:
MOV AH,0BH ;检查是否有’Q’或’q’键按下
INT 21H
INC AL
JNZ NEXT0 ; 若无键按下,则程序往下执行
MOV AH,08H ;如有’Q’或’q’键按下,则程序退出
INT 21H
CMP AL,'q'
JZ EXIT
CMP AL,'Q'
JZ EXIT
NEXT0:
MOV DX,302H ;查PC2是否为0
IN AL,DX
AND AL,04H
JNZ L1
MOV DX,303H ;按下SW3,则PC4=1申请中断
MOV AL,09H
OUT DX,AL
CALL delay2
MOV DX,303H ;置PC4=0
MOV AL,08H
OUT DX,AL
JMP L1
EXIT:
MOV AX,2572H ;恢复中断向量
MOV DX,INT0A_SEG
PUSH DS
MOV DS,DX
MOV DX,INT0A_OFF
INT 21H
POP DS
IN AL,0A1H ;屏蔽IRQ10
OR AL,04H
OUT 0A1H,AL
MOV AX,4C00H ;程序退出
INT 21H
LEDLIGHT PROC FAR ;中断服务程序
PUSH SI
PUSH AX
PUSH DX
CLI ;关中断
MOV SI,OFFSET LEDDATA
ADD SI,NUM
MOV AL,[SI]
MOV DX,300H
OUT DX,AL ;点亮LED
INC NUM
CMP NUM,08H
JNE NEXT
MOV NUM,00H
NEXT :
MOV AL,62H ;发中断结束命令
MOV DX,0A0H
OUT DX,AL ;向从片8259发EOI命令
OUT 020H,AL ;向主片8259发EOI命令
STI ;开中断
POP DX
POP AX
POP SI
IRET
LEDLIGHT ENDP
delay2 proc ;延时子程2
push cx
push bx
mov cx,04ffh
dl4: mov bx,0ffffh
dl3: dec bx
jnz dl3
dec cx
jnz dl4
pop bx
pop cx
ret
delay2 endp
CODE ENDS
END START
十二、 调试中出现的问题及解决方法
第一次调试成功代码,出来的现象只有一个灯的亮灭,而且运行的时候灯是全亮的,原因有两个,一个是硬件方面,实验箱本身有一定的不足,还有一个就是程序的不足;再经过了多次的调试之后又出现了彩灯闪烁不停的现象,而且前面灯全亮的问题也没得到解决;大概又过了几小时,才找到问题的根源,硬件方面:实验箱的问题无法避免;软件方面,用两层延时就可以改变彩灯闪烁的快慢。这样一来,现象就明显了。
十三、 实验心得
通过这次实验我深刻体会到了自己中断方式知识的不足以及汇编语言编程的不熟练,程序不断出错,有关中断的以前没有做过实验,上课学的都没有在实际中运用过,只是懂得基本的原理,具体的还真不知道是怎么回事,导致我需要不断地调试以及参考书本。不过经过几小时的功夫,还是出来了现象,通过这次实验也让我对中断有了更深的了解。
十四、 参考文献
《微机原理与接口技术项目教程》杨居易编著 清华大学出版社
中国计量学院电工电子实验中心电子版实验报告
实验课程: 电路电子实验 实验日期: 2009-10-14 实验项目: 循环彩灯控制 班级: 07电气2班 学号: 0700103212 姓名: 一、实验目的
1.学习计数器、译码器、发光二极管及相关芯片的使用方法。
2.掌握计数器、译码器、发光二极管及相关芯片的综合应用 。
3.掌握用示波器测试计数器输出波形的方法 。
二、实验任务
用74LS138、74LS161、74LS00、发光二极管等芯片实现一个彩灯的循环控制。
三、实验仪器(设备名称与型号)
各色发光二极管、74LS161计数器、74LS138、74LS00、等芯片,导线,电阻信号发生器,示波器,数字万用表等。
四、实验方案(包括简要原理及设计电路图等)
步骤:1.用万用表二极管挡、电阻2K挡或将导线连接+5V电源与输出发光二极管等方法检查导线导通情况,当万用表发出蜂鸣声、阻值示数约为0或发光二极管亮时,均表示导线导通。
2,根据电路原理图连接电路。
1、电路原理图
电路图(1)
电路图(2)
七、实验结论
八、实验思考题
目录前言1一课题设计任务及要求3二设计目的3三优选设计方案4四整体设计思想及原理框图5五各模块设计与分析61脉冲发生电路72控制电…
内蒙古师范大学计算机与信息工程学院数字电路课程设计报告1彩灯控制器电路设计计算机信息与工程学院20xx级计科师范汉班柴宁娇20xx…
课程设计综合实验报告20xx20xx年度第二学期名称电子技术综合实验题院系能源动力与机械工程学院班级热能0809班学号学生姓名指导…
电工电子课程设计实验报告题目名称:彩灯控制器指导教师:姓名:学号:专业班级:日期:前言电子技术课程设计是配合电子技术基础课程与实验…
现代电路与系统实验报告实验三彩灯控制器学院研究生院学号1400030034姓名张秋明一实验目的及要求设计一个彩灯控制器能让一排灯自…
目录前言1一课题设计任务及要求3二设计目的3三优选设计方案4四整体设计思想及原理框图5五各模块设计与分析61脉冲发生电路72控制电…
课程课程设计综合实验报告课程设计综合实验报告20xx20xx年度第1学期名称电子技术综合实验题目院系电气与电子工程学院1课程课程设…
单片机原理及接口技术课程设计报告单片机节日彩灯控制器设计彩灯控制器姓名学号指导教师学院机电工程学院专业机械设计制造其自动化完成日期…
西安邮电学院电子设计报告书学院名称学生姓名专业名称班级实习时间多路彩灯控制器通信与信息工程学院屈颖06信息工程信息工程090220…
课程设计综合实验报告20xx20xx年度第二学期名称电子技术综合实验题院系能源动力与机械工程学院班级热能0809班学号学生姓名指导…
实验1超声波测距并用液晶显示一实验目的1掌握AVR单片机IO口定时器的运用2掌握超声波测距原理与应用3掌握液晶显示器1602的使用…