微机原理与接口技术课程设计报告音乐流水灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术课程设计论文题目:音乐流水灯
姓名:鞠强
学号:201330020228
班级:1330202
专业:自动化
2015年6月
一、实验任务及要求
任务:
1、掌握综合使用基本输入输出设备、通用接口芯片、专用接
口芯片的方法;
2、掌握实时处理程序的编制和调试方法。
要求:用8255、8253、8259配合8086使蜂鸣器发出唱歌声同时还能够使用数码管进行边跳舞边唱歌实验。
二、硬件连线
键盘的控制、LED显示模块:采用74系列模块控制
键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。
蜂鸣器发声控制:由8255模块控制;
PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4
中断处理模块:由8259控制
8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8253的OUT0。
三、程序流程图
主程序
初始化各阶段寄存器及相关变量
初始化8253、8255芯片
设置中断向量、开放8253中断屏蔽
开放处理器中断
中断服务程序
保护现场
判断时间是否不小于59分55秒
报时
扫描键盘
G 键?
调用启停子程序S COUNT COUNT=40? ADDONE 子程序
COUNT 清0
显示时间,调用显示时间子程序
结束中断(发EOI 命令)
恢复现场
中断返回
Y Y
N Y
四、实验源代码
DATA SEGMENT AT 0 USE16
ORG 1000H
HOUR DW ?
MIN DW ?
SEC DW ?
SLL DB ?
COUNT DB ?
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
ORG 1500H
BEG:JMP START
TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西
KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值
KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值
PORT1 EQU 340H ;数码管段选端口
PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口
START: MOV EAX,60000000H
MOV CR0,EAX
MOV AX,DATA
MOV DS,AX
MOV HOUR,0203H ;小时分钟以及秒的初始化
MOV MIN,0509H
MOV SEC,0502H
LEA BX,TAB
MOV SLL,0 ;开始暂停标志位置0
MOV COUNT ,0 ;中断次数计数初始值为0
;8255初始化,用于产生报时的脉冲
MOV EAX,80808080H;控制字
MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)
OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出
MOV DX,20BH
MOV AL,0FFH
OUT DX,AL
;8253初始化,用于产生周期为25ms的中断
MOV AL,00110110B ;计数器0,先低后高,方式三,二进
制
MOV DX,32cH ;写往控制口
OUT DX,AL
MOV DX,320H ;计数器0写初值:47KHz*25ms
MOV AX,1175
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AL,0FEH ;IR0开屏蔽
OUT DX,AL
XOR AX,AX ;装载中断向量
MOV ES,AX
MOV DI,08H*4
MOV AX,OFFSET INTSR
MOV ES:[DI],AX
MOV AX,SEG INTSR
MOV ES:[DI+2],AX
STI ;开中断
JMP $
INTSR PROC ;中断服务程序
CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间
JL NEXT1
CMP SEC,0505H
JL NEXT1
MOV DX,20BH
MOV AL,00H ;蜂鸣器低有效,报时
OUT DX,AL
JMP NEXT2
NEXT1: CMP MIN,0
JNE NEXT3
CMP SEC,0
JNE NEXT3
MOV DX,20BH
MOV AL,00H ;蜂鸣器低有效,报时
OUT DX,AL
JMP NEXT2
NEXT3: MOV DX,20BH
MOV AL,0FFH
OUT DX,AL
NEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣
JLE NEXT4
MOV DX,20BH