1 / 21
文档名称:

基于8086钢琴的程序设计.doc

格式:doc   大小:520KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于8086钢琴的程序设计.doc

上传人:ogthpsa 2021/1/20 文件大小:520 KB

下载得到文件列表

基于8086钢琴的程序设计.doc

相关文档

文档介绍

文档介绍:Hefei University
微机原理课程设计报告
课题名称:基于8086钢琴的程序设计
班 级:09自动化(1)班
报 告 人:


指导教师:

2011 年 12 月 30 日
目录
摘 要: 3
关键字: 3
正 文: 3
一、总体框图 3
二、方案的论证 3
三、电路设计 4
扬声器接口电路 4
4
总电路系统 5
四、软件设计流程图 6
6
7
五、c51单片机系统仿真实现 9
六、总结与体会 9
参考文献: 9
附件一、自动化专业微机原理课程设计任务书 10
附件二:汇编程序清单 11
附件三:C语言程序清单 15
基于8086钢琴的程序设计
摘 要:
本设计以8086为主体,结合使用8255,8253及相关电路设计利用键盘输入发出不同频率的的音调。利用8255检测键盘,根据输入信号驱动数码管显示,控制8253,完成输入与检测;利用8253的分频输出不同的信号,经放大驱动扬声器发出声音。
关键字: 8086、8255、8253、键盘
正 文:
一、总体框图
本系统主要有两个功能模块组成:键盘扫描,蜂鸣器发声。围绕这二个功能需要用到三个主要芯片:8086,8255,8253。首先8086主芯片负责数据交换与处理,芯片初始化等。系统开始时对键盘进行扫描,有输入信号时,8255采集信号并输入8086进行处理, 8086接到8255输入的信号时,调用与之相关的初始值n,输入到8253,对clock进行分频输出不同的频率信号,驱动扬声器发出不同的音调,同时8255对8253进行控制并对信号进行采集送到8086,决定发声时间的长短。
二、方案的论证
扬声器接口由8255、8253、驱动器和低通滤波器等构成,8255做控制器,8253做音频信号源。根据音阶频率表,利用8253可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:
键盘接口采用8255A,使用A、B端口,对键盘的扫描,对8255初始化编程,写入控制字B,方式0,A口作输出,B口和C口为输入。
三、电路设计
扬声器接口电路
扬声器接口如图所示,该电路主要作用是将8253A的OUT2端口输出的不同频率的波形经放大器LM386放大并驱动扬声器发出不同音调的声音.

如图所示是16个按键的键盘,左边8个高音键,右边8个是低音键,8255的PA口对应于键盘的行,PB口键盘的列。
利用程序检测键盘,先在PA口全部输出低电平,由二极管的单向导通,在键盘的每个按键的两边都是处于高电平的状态,当有按键按下时,该按键对应的行和列都变为低电平,再由PB口检测键盘两边的信号,低四位检测列,高四位检测行即可确定键值。
总电路系统
系统cpu8086工作在最小模式下,通过数据总线给8255写入控制字,使其工作在方式0,A口作输出,B口作输入。系统通过8255检测键盘,检测到键盘的键值后再通过8086给8253写入相应的计数初值,产生需要的波形信号。其中,8255和8253的片选信号是由一片74LS138译码器提供。
四、软件设计流程图


键盘扫描程序流程图如上图所示,上面的键盘扫描包含以下几步:
1、检测是否所有键都松开了,若没有则反复检测。
2、当所有键都松开了,在检测是否有键压下,若无键压下则反复检测。
3、若有键压下,要消除键抖动,再确定是否有键压下。
4、对压下的键进行编码,将该键的行列信息转换成16进制码,由此确定哪个键被压下了,如果出现了多键重按的情况,则只有在其他键均释放后,仅剩一个键闭合时,才把此键当做本次压下的键。
5、该键释放后,再回到2。
程序调试正常,截图如下:
五、c51单片机系统仿真实现
硬件仿真图
六、总结与体会
由于之前没有接触过protues仿真软件,所以前几天进展较慢,主要在熟****软件的使用方法,后来在老师的指导下,能够较熟练的应用该软件。
通过本次课程设计让我们不仅加深了对8086 8253 8255 芯片的