下载此文档

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


文档分类:生活休闲 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
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 芯片的

基于8086钢琴的程序设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ogthpsa
  • 文件大小520 KB
  • 时间2021-01-20