单片机音乐播放器报告.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
科信学院 单片机应用系统(三级项目) 设计说明书 (2014/2015学年第二学期) 题 目 : 音乐播放器设计 专业班级 : 信息1班 学生学号 : 120072128 学生姓名 : 代星雨 指导教师 : 吴开兴、刘会军、 马永强、马小进 设计周数 : 2周 设计成绩 : 2015年6月26日 1、项目设计目的 2 1.1目的 2 1.2课程设计任务 2 1.3课程设计要求 2 2、项目设计 2 2.1总体设计 2 2.2硬件设计 3 2.3软件设计 8 2.4硬件调试 16 2.5软件调试 16 3、项目设计总结或结论 17 3.1课设总结 17 3.2课程设计感想 17 4、参考文献 18 1、项目设计目的 1.1目的 应用单片机,利用它的原理组成一个音乐播放器。 1.2课程设计任务 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒) 采用LCD或数码管显示信息。 开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。 可通过功能键选择乐曲,暂停,播放。 1.3课程设计要求 根据技术要求和现有开发环境,分析设计题目; 设计系统实现方案; 设计并绘制电路原理图; 画出功能模块块的程序流程图; 使用汇编语言(或C语言)编写实现程序; 结合硬件调试、修改并完善程序; 编写课程设计报告。 2、项目设计 2.1总体设计 本次设计以低成本,灵活方便为原则,所以控制器选用主流的51系列单片机,考虑到51内部储存空间的限制,故选用容量为51两倍的AT89C52单片机作为总控制器,以矩阵键盘作为乐曲选择器,以0.5W 8Ω扬声器等组成功放设备,以LCD1602液晶作为人机交互界面。时钟振荡电路用来为单片机产生时钟脉冲,本设计采用内部时钟方式。 软件用来对单片机的各引脚进行控制LCD显示,同时在功放电路的输出端口产生不同频率的矩形波进而产生音乐,当按钮按下时程序要完成对歌曲的切换,对LCD显示内容的切换。 总体方案图以及相关流程图: 图2-1 图 总体方案图 图2-2 主程序流程图 图2-3显示流程 2.2硬件设计 当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。微控制器采用AT89C52。AT89C52是美国ATMEL公司生产的与MCS-51系列单片机完全兼容的高性能CMOS 8位单片机,MCS-51系列单片机以其推出时间早、配套资源丰富、开发手段完善、性价比高等特点而得到了广泛的应用,是单片机的主流品种。 AT89C52的内部资源主要包括: ·与MCS--51 系列完全兼容的高性能8位CPU; ·8K字节可重复编程的Flash存储器; ·256字节的SRAM; ·4个8位的并行口,共32条I/O口线; ·3个16位的定时器/计数器; ·6个中断源,2个中断优先级的中断系统; ·一个全双工的串行口; ·内部振荡器。 图2-4 单片机引脚图 2.2.2晶振电路 单片机的正常工作是在时钟的作用下完成的,晶振选用11.0592M的。时钟振荡电路由晶振(6MHZ) 图2-5晶振电路图 图 2.2.4按键输入电路 按键输入电路由4*4矩阵键盘组成,P1口作为输入控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。 键盘是由若干个按键组成的开关矩阵,它是最简单的单片机应用系统的输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。本设计采用4*4的键盘结构,如图 图2-7键盘结构图 键盘的行线X0~X3通过电阻接+5V,当键盘上没有键闭合时,所有的行线和列线都断开,行线都是高电平。当键盘上某一个键闭合时,该键所对应的行线和列线都被短路。例如6号键被按下时,行线X1和列线Y2被短路,此时X1的电平由Y2的电位决定。如果把行线接到单片机的输入口,列线接到单片机的输出口,则在单片机的控制下,先使列线Y0为低电平“0”,其余三根列线Y1、Y2、Y3都为高电平“1”,读行线状态。如果X0、X1、X2、X3都为高电平,则Y0这一列上没有键闭合。如果读出的行线不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态,如果Y0这一列上没有键闭合,使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列上是否有键闭合。这种逐行逐列

文档评论(0)

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

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

1亿VIP精品文档

相关文档