微机原理实验报告-电子琴
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机接口技术课程实验设计报告
题目:按键电子琴
姓名:
学号:************、************
班级:2013级电子二班
一.设计内容
设计一个由80x86系统控制的集成电路,可以实现由键盘控制出不同频率的声音,并且在按动键盘的同时控制八位LED灯的亮灭。
二.设计思路
利用80X86系统中,8259,8255,8254三块芯片控制整个电路。利用8255芯片控制LED灯的亮灭,利用8259的中断组成开关部分,利用8254定时/计数器控制音乐播放。
2.1芯片8259控制部分
芯片控制字,采用边沿触发,单片,要写入ICW4控制字,中断类型码控制字:设置IR0~IR7的中断类型码依次为08H、…、0FH方式控制字:非特殊全嵌套方式,主片在非缓冲方式下,中断结束采用非自动结束方式。
2.2芯片8254控制部分
通道0:只读写低字节,工作在方式3即方波发生器,计数格式为2进制。通道1:方式0,计数器,BCD计数,初值01H.
2.3芯片8255控制部分
A口工作在方式0,作为输入端口用于开关采样;B口工作在方式0,作为输出,连接控制LED灯;C口未定义,默认为输出。
三.硬件电路
四.流程图
五.按键开始
装入频率时间表起始
地址
计算计数初值并装
入计数器
调用序并调用延时
程序
否
两个指针递增
检测拨键开关并控制LED灯
是
检测是否结束
返回主程序
MY8255_A EQU 0600H
MY8255_B EQU 0602H
MY8255_C EQU 0604H
MY8255_MODE EQU 0606H
MY8254_MODE EQU 06C6H
MY8254_A EQU 06C0H
DATA SEGMENT
FREQ_LIST DW 221,248,278,294,330,371,416,441
DW 495,556,589,661,742,833,882,-1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA ;初始化MOV DS,AX
MOV DX,MY8255_MODE
MOV AL,81H ;8255控制字
OUT DX,AL
MOV DX,MY8254_MODE ;8254控制字
MOV AL,36H
OUT DX,AL
BEGIN:
CALL CCSCAN ;扫描
JNZ INK1
JMP BEGIN
INK1:
MOV CH,0FEH
MOV CL,00H
COLUM:
MOV AL,CH
MOV DX,MY8255_A
OUT DX,AL
MOV DX,MY8255_C
IN AL,DX
L1:
TEST AL,01H
JNZ L2
MOV AL,00H
JMP KCODE
L2:
TEST AL,02H
JNZ L3
MOV AL,04H
JMP KCODE
L3:
TEST AL,04H
JNZ L4
MOV AL,08H
JMP KCODE
L4:
TEST AL,08H
JNZ NEXT
MOV AL,0CH KCODE:
ADD AL,CL
MOV DL,2D
MUL DL
PLAY:
MOV SI,OFFSET FREQ_LIST
ADD SI,AX
MOV DX,0FH
MOV AX,4240H
DIV WORD PTR[SI]
MOV DX,MY8254_A
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV CX,8D
NEXT3:
CALL DALLY
LOOP NEXT3
MOV DX,0FH
MOV AX,4240H
MOV SI,30D
DIV WORD PTR[SI]
MOV DX,MY8254_A
OUT DX,AL
MOV AL,AH
OUT DX,AL
JMP BEGIN NEXT:
INC CL
MOV AL,CH
TEST AL,08H
JZ KERR
ROL AL,1
MOV CH,AL
JMP COLUM KERR:
JMP BEGIN CCSCAN:
MOV AL,00H
MOV DX,MY8255_A
OUT DX,AL
MOV DX,MY8255_C
IN AL,DX
NOT AL
AND AL,0FH
RET
DALLY:
PUSH CX
MOV CX,000FH
T1:
MOV AX,009FH T2:
DEC AX
JNZ T2
LOOP T1
POP CX
RET
CODE ENDS
END START