文档介绍:微机原理与接口技术课程设计
简易电子琴的设计
专业:通信工程
班级:通信1002班
姓名:洪立峰胡瑞
学号: 2010013500
2010013502
指导老师:左旭坤
摘要
本次设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。利用定时器可发出不同频率的方波,不同频率的方波经喇叭就会发出不同音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的方波,本设计中按键一次,会发出方波,松开后随之延时,但在延时的期间继续检测按键,若此时又有键被按下,若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。
单片机控制通用MIDI音源模块制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。此外还有音乐盒、附有生日歌的生日卡片等等。所以利用微机制作的简易电子琴在我们的日常生活中随处可见。
第一章简易电子琴的硬件设计方案
简易电子琴的设计构想
⑴采用8个拨码开关为输入(其中SB1~SB7为简易电子琴的弹奏按键,另外一个SB0作为控制自动弹奏预存琴谱的开关);
⑵扬声器为输出;
⑶由输入控制输出,即拨码开关控制扬声器;
简易电子琴的功能与要求
⑴功能一弹奏:用户每按一个键盘琴键就弹奏相应的音符;
⑵功能二演奏:按下键盘上某一个指定的建后自动弹奏预存琴谱功能;
简易电子琴硬件设计方案的确定
⑴根据扬声器发声原理可知:不同频率的方波通过扬声器可发出不同的声音。
⑵由此构想运用8253工作在方式3的状态下控制其2#计数器对应寄存器中的数值,然后将输出端口OUT2产生的方波通过扬声器转换成为声音。
⑶为了实现弹奏按键(即拨码开关)来控制扬声器,可以通过用拨码开关改变8253(工作在方式3的状态下)2#计数器对应寄存器中的数值,8253输出端口OUT2通过反相器后与扬声器相连接。
⑷最后要实现的就是将拨码开关对应的数字信号存入寄存器中
采用8255A并行接口特点,使端口A工作在方式0并作为输出口,端口B工作在方式0,并作为输入口。将拨码开关与8255A的输入端口B相连接。
⑸可编程接口芯片
8255A芯片:
8255A的数据线、片选信号线、地址线、读写控制线等分别与系统总线相连,其中A、B、 C三个端口一排针形式引出,如下图⑴所示,端口地址如表2
表1 8255A端口地址表
信号线
寄存口
编址
IY03
A口
60H
B口
61H
C口
62H
控制寄存器
63H
8253芯片:
系统中,8253的0通道输出线与8253的0#中断请求线作为时钟中断信号。1#,输出接8251的收发时钟端,供串行通讯使用,这里的13计数器仅当作一个分频器使用。2#通道以排针形式引出,开放给用户使用,如下图⑵,所示系统中的8253端口地址如表2
表2 8253端口地址表
信号线
寄存口
编址
IY02
0#寄存器
40H
1#寄存器
41H
2#寄存器
42H
控制寄存器
43H
图⑴
图⑵
61H 端口是8255并行接口B口的地址,,通过与门之后才连到扬声器上的。
第二章简易电子琴的软件设计
主程序流程图
弹奏程序功能设计
DATA SEGMENT
TABLE1 DB 4DH,45H,3DH,39H,33H,2DH,28H ;1,2,3,4,5,6,7的频率
DATA ENDS
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:STACK
START: MOV AX, DATA
MOV DS, AX
MOV AL,82H ;8255初始化
OUT 63H,AL
A0: IN AL,61H
OUT 60H,AL
CMP AL,00H
JZ A0
CMP AL,02H ;1,2,3,4,5,6,7的发音判断
JZ F1
CMP AL,04H
JZ F2
CMP AL,08H
JZ F3
CMP AL,10H
JZ F4
CMP AL,20H
JZ F5
CMP AL,