电子琴微机原理基于8086课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
湖南科技大学
潇湘学院信息与电气工程系
《课程设计报告》
题目:基于8086的电子琴设计
专业:通信工程
班级:通信一班
姓名:罗婷
学号: 18
指导老师:欧青立陈君宋芳管志利李目 2015年 12 月 28 日
信息与电气工程系
课程设计任务书
2015—2016 学年第 1 学期
专业:通信工程学号: 18 姓名:罗婷
课程设计名称:微机原理与接口技术
设计题目:基于8056的电子琴设计
完成期限:自 2015 年 12 月 14 日至 2015 年 12 月 26 日共 2 周
设计内容:
通过 8255 和 8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由 8255 和 8 个常开型开关来完成。发音部分:CUP 通过对定时器 8253 的通道 2 进行编程,使其 I/O 寄存器接收一个控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 2 门控的开断,以产生特殊的音响。本文用到的是 8253 的方式 3——方波发生器。
基本要求:
1.以8255接八个开关K1~K8,做电子琴按键输入。
2.以8253控制扬声器,拨动不同的开关,发出相应的音阶。
要求:
指导教师(签字):
批准日期:年月日
摘要
定时器/ 计数器8253 可以产生不同频率的信号, 经过三极管放大驱动扬声器发出不同的音阶。硬件上以8086 作为核心处理单元, 将8253 的输出端连接音频模块。软件上检测按键是否有键按下, 判断按键并驱动对应发音子程序。通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的
QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。此外还有音乐盒、附有生日歌的生日卡片等等。所以利用微机制作的简易电子琴在我们的日常生活中随处可见。
关键词:Altium Designer;masm.5.0 ;8086;8255;8253定时器;
目录
1. 设计目的 (4)
2. 元件与仪器 (4)
3. 设计内容 (4)
4. 电路工作原理 (4)
5.1 控制模块工作原理 (5)
5.2.0 8255A芯片: (5)
5.2.1 8255A的内部结构 (6)
5.2.2 8255的外部引脚 (6)
5.2.3 8255的方式控制字 (7)
6. 发声模块工作原理 (7)
6.1.1 8253芯片 (7)
6.1.2 8253的6种工作方式: (7)
7.整体电路图 (8)
8.主要程序与编译软件 (8)
9. 软件程序: (9)
10. 心得体会 (11)
1.设计目的
检验和提高我在原理与接口综合应用方面分析问题与解决问题的能力,同时也给我提供更多、更好的训练机会。根据设计要求,尽可能完成设计要求的功能,选择最合适的器件,构成最有效的硬件电路来完成。
2. 元件与仪器
1.计时器8253
2.并行控制器8255A
3.实验台
4. PC机
3.设计内容
⑴根据扬声器发声原理可知:不同频率的方波通过扬声器可发出不同的声
音。
⑵由此构想运用8253通道二工作在方式3的状态下控制其2#计数器对应寄
存器中的数值,然后将输出端口OUT2产生的方波通过扬声器转换成为声音。
⑶为了实现弹奏按键来控制扬声器,可以通过用开关改变8253(工作在方
式3的状态下)2#计数器对应寄存器中的数值,8253输出端口OUT2 通过74LS08
后与扬声器相连接。
⑷最后要实现的就是将开关对应的数字信号存入寄存器中采用8255A并行
接口特点,使端口A工作在方式PB1并作为输出口,端口B工作在方式0,并作
为输入口。将开关与8255A的输入端口A相连接。
4. 电路工作原理
整个电路采用模块化来进行设计,分为控制模块和发声模块。主要的器件有
一个并行接口8255,和一个8253定时器。输入部分的硬件原理图比较简单,控
制模块其主要是由8个常开型开关和一个并行接口8255组成。8个开关一端接
地,另一端接到8255的A口输入,并且通过一个电阻接到+5V。因此,在开关不
按下时,从8255A口输入的是高电平,当开关按下时,输入的则是低电平,这样
通过低电平触发,既方便也对芯片起保护作用。通过软件检测输入的数据,然后给8253送相应频率的计数值。发音模块连接到扬声器上的是8253定时器2,GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。因此,只有PB0和PB1同时为“1”时,才能驱动扬声器鸣叫。
5.1 控制模块工作原理
控制部分主要是由8255和8个常开型开关来完成。常开型开关如右图。8个常开型开关K1~K8与8255的A口PA0~PA7相接,不触动开关时,为高电平输入,当按下开关时,就接地,为低电平输入。例如当K1键按下时,从8255中A口输入的数为B,十六进制为0FEH。每一个开关按下时,都对应一个ASCII 码,由于PC计算机的时钟晶振为1.1931816MHz,根据频率的公式:
f=1/T
则频率周期为
T=1/f
定时器的计数器为16位计数器,则最大的计数值为65536,那么其定时时间为:
t=65536*T=65536/f=0.0549254(秒)
5.2 8255A芯片:
8255A是为Intel公司的微处理器配套的通用可编程并行接口芯片,其基本功能如下:
8255A接口芯片有3个8位并行输入/输出端口,可利用编程方法设置3个端口是作为输入端口还是作为输出端口;
8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送,查询方式传送,中断方式传送。与此相应,8255A设置了方式0、方式1以及方式2。