项目名称PC音乐电子琴.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目名称PC音乐电子琴.doc

项目名称: PC音乐电子琴 项目负责人: 杜若飞 张永帅 项目小组号: 26小组 电信工程学院实验中心 2005年9月 【摘要】 在本小学期的25天中,我们组的实验内容为PC音乐电子琴,主要有串口通信与电子音乐发生器两大功能。 整个系统,微控制器采用了Microchip公司的PIC16F877,设计中涉及到液晶显示器的驱动与使用,4×4键盘的驱动与使用,板载发光二极管、喇叭的驱动与使用,MAX232的使用,利用I2C总线读写24C64。 本系统可实现的功能具体有:在PC键盘上敲击特定键,通过串口通信传到PIC16F877由CPU控制喇叭发音、液晶显示器显示键值、发光二极管发光等功能,也可以直接敲击4×4键盘实现上述功能。不仅能进行即时弹奏发声,还能利用I2C总线读写24C64的功能把乐谱记录下来,实现掉电储存发音。 本次实验我们充分利用了单片机的控制功能特点,让PIC16F877控制多种外围模块来实现预期的基本与扩展功能。 【方案论证与比较】 串行通信模块 PC16F877内部集成了2种类型的串行通信模块,即通用同步/异步收发器和USART和主控同步串行端口MSSP,前者主要用于系统外部远距离通信,后者主要用于系统内部近距离通信.与计算机进行远程通信,选用USART模块.USART工作时有2种模式:同步传送和异步传送.由于同步传送要求较多端口,在单片机端口紧缺时不宜采用.故选择串行传送.工作方式采用全双工传送方式,由于传送的信息量较小,不启用接收发送9位数据,以简化程序.由于单片机的串行接口的电平是CMOS电平,而计算机的串口电平是TTL电平中间需要经过MAX232的电平转换才能进行通信.故加入外接芯片MAX232. 存储模块 数据存储模块可以使用单片机本身的RAM,实际上在计算机端的驱动程序加入了30个单位的RAM存储模块.RAM的优点是存储速度快,缺点是容量太小,无法掉电存储.所以我们考虑使用EEPROM来存储音乐.EEPROM有2个选择,单片机内部的EEPROM和外加的EEPROM.在测试内部EEPROM成功后,我们决定使用外部EEPROM,以更深入的理解单片机系统.外加的EEPROM采用8K容量的24C64芯片. 利用主控同步串行端口MMSP采用I2C总线读写芯片.这样单片机就可以保存更多数据,掉电存储.后期扩展也可以实现更多的功能. 音乐模块 音乐模块的实现比较简单.主要是通过端口电平的变化实现频率的变化,配上喇叭就可以奏出音乐.鉴于实验箱的连接,我们只需要加入三极管8050适当放大音乐信号就可以驱动喇叭,奏出音乐. 我们组的方案大体为二部分,每人都独立完成自己的那部分。 基本功能方面:杜若飞负责串行通信方面,学习相关知识,规划波特率为19200,使用异步传输,编写键盘有关程序。张永帅负责音乐发声,调试LCD程序,实物连接S8050与喇叭。各自完成后,开始整合串行通信与音乐、键盘、液晶程序,并进行调试。 扩展功能方面:杜若飞负责MFC串行通信的相关事宜。张永帅负责EEPROM的相关知识,并学习I2C总线控制外部24C64的知识。 【硬件模块设计介绍】 LCD模块 液晶显示模块由LCD板(液晶显示板),PCB板(印刷电路板)和控制驱动电路三部分组成。 本实验采用南京国显电子公司生产的点阵式LCD显示器,是 16位2行的点阵式液晶。共有16条引脚。在液晶板上排列着若干5x7或5x10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。与单片机连接如下: LCD连接电路图 模块引脚功能为: 所有的功能位数据和数据位数据送到液晶各引脚时液晶并不读入,而是通过将第六脚先置1再置0来触发,之后指令或数据才被读入。 用户所编的显示程序,开始必须进行初始化,初始化结束前,要开显示,否则模块无法正常显示。 采用软件复位进行初始化,下面为八位接口初始化流程图: 4×4键盘模块 当无键按下时,各行线和各列线相互断开,各列线保持高电平,当有键按下时,则相应的行线和列线相连,识别是哪一个键被按下,通常用行扫描法,即依次对每一行进行扫描,先使被扫描的行为低电平,其它所有的行均为高电平,接着检测各列线的状态(称为列码)。若各列均为高电平,则所按之键不在此行,继续扫描下一行,若列线不全为高电平,则被按之键在此行。根据行码和列码,就可知被按之键的坐标值(又称位置码),根据位置码通过查表就可得到它的键值。 S8050与喇叭模块 24C64模块 模

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档