《单片机原理及应用》课程设计报告题目数字音乐盒学号1295054姓名邢安超张凯旋罗杰年级专业2012级自动化指导教师黄云飞完成日期2014 年 6 月7 日安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University目录摘要 (1)引言 (2)1 课程设计目的 (2)2 课程设计任务及要求 (2)4 设计原理 (3)5 系统总体方案介绍 (4)5.1 系统组成框图 (4)5.2 音乐盒的功能 (4)6 硬件设计 (4)6.1 总体设计框图 (4)6.2各部分硬件设计及其原理 (5)6.3 硬件电路图及功能 (7)7 软件设计 (8)7.1 软件程序设计 (8)8 调试 (9)8.1 检查硬件连接 (9)8.2 检查软件系统 (9)8.3 测试结果 (9)课程设计体会 (10)参考文献 (10)附录 (1)数字音乐盒邢安超张凯旋罗杰,皖江学院摘要:本设计是采用单片机为核心设计的数字音乐盒。
它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,并且可以通过LCD屏幕显示正在播放的歌曲的序号,及乐曲播放时间,开机时有英文欢迎提示字符,本音乐盒可以播放三首音乐。
主控芯片采用AT89C51,采用汇编语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。
本系统功能键有一个2×4的键盘组成,其中1号到3号键是歌曲序列号键,可以直接选择音乐;4号键选择当前播放音乐的上一首音乐,5号键选择当前播放音乐的下一首音乐,6号键使音乐暂停播放,7号键显示开机画面。
键盘采用动态扫描方式。
每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。
若有键按下,根据读入口的值选择显示值并送至显示值寄存单元,判断键值,启动计数器T0,根据次值为偏移地址找到要选择的音乐的代码的首地址,根据代码产生一定频率的脉冲,驱动蜂鸣器,放出音。
同时启动定时器T1,计算音乐的播放的时间,并且启动LCD,在LCD上显示序号和播放时间。
在制作过程中,我发现将音乐代码的首地址送出很难实现。
因为其首地址是十六位的,而单片机中我们能用的十六位的寄存器只有DPTR,但是DPTR在下面必须要用到,所以不能用。
把十六位地址拆成俩个八位的地址分高低位去送,用直接地址#high(4000h)去送,编译成功。
关键词:AT89C51,数字音乐盒, 2×4键盘,LCD,时钟震荡电路引言本课程设计是设计数字音乐盒及其播放程序。
乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。
实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。
如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。
使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。
FPGA预装了很多已构造好的参数化库单LPM器件。
通过引入支持LPM的EDA[1]软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。
单片机制作的八音盒弥补了这些。
1 课程设计目的基于学习单片机课程的基础,锻炼我们的动手能力。
《单片机与接口技术》课程设计是单片机课程的综合性与实践性教学环节,课程设计的目的就是:a.综合运用单片机原理课程和单片机接口技术课程的知识,分析和解决实际应用中的问题进一步巩固、加深和拓宽所学的知识。
b.通过设计实践,逐步树立正确的设计思想,熟悉掌握单片机应用系统设计的一般规律,培养分析问题和解决问题的能力。
c.通过逻辑分析、方案设计、硬件电路连接、画程序流程图,汇编语言编程,上机调试,进行全面的单片微机应用基本技能的训练。
2 课程设计任务及要求以单片机为核心,设计一个数字音乐盒:利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。
采用LCD显示信息。
a. 开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。
b. 可通过功能键选择乐曲、暂停、播放。
c.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲d.采用LCD显示信息e.选作内容:显示乐曲播放时间或剩余时间3 设计意义a、有利于基础知识的理解通过《初中信息技术》必修部分的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。
学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。
b、有利于逻辑思维的锻炼在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。
写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。
程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。
即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
c、有利于与其他学科的整合在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。
在信息技术课中整合其它学科的知识,发挥信息技术的优势。
例如,在编写“一元二次方程求解”程序时,就复习了数学的相关知识。
而在讲解逻辑运算的知识时,我们又可以利用物理中的电路知识进行讲解,起到意想不到的效果。
d、有利于治学态度的培养。
程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。
因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。
这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。
4 设计原理当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。
也可在LED显示歌曲号。
5 系统总体方案介绍5.1 系统组成框图音乐盒的系统结构以AT89C51单片机位控制核心,加上几个按键、时钟复位电路、蜂鸣器、LCD模块组成。
单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐播放|暂停的样式以及蜂鸣器发音。
系统组成框图如图2.1所示。
图5.1 系统组成框图5.2 音乐盒的功能音乐盒的功能结构如图2.2所示。
1~3号开关负责切换播放歌曲,播放歌曲共3首,分别是同一首歌、世上只有妈妈好和精忠报国。
4、5号开关负责切换歌曲:上一首和下一首,6号开关负责歌曲的暂停和播放,7号开关是开机键。
6 硬件设计6.1 总体设计框图当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。
也可在LED显示歌曲号。
6.2各部分硬件设计及其原理6.2.1 按键电路设计按键电路如图6.2所示:P1.0-P1.5控制按键,其中P1.0-P1.1扫描行,P1.4-P1.5扫描列。
图6.2 按键电路6.2.2 LCD 显示电路设计与原理如图6.3所示文字型LCD (16×2)的D0-D07端口与AT89C51端口P0.0-P0.7相连接VSS 与VEE 两端接地。
P2.0-P2.2作为LCD 的RS,R/W,E 的控制信号。
用P0.0-P0.7作为LCD 的D0-D7的控制信号。
A T89C51 2×4 按键文字型LCD(16×2) 蜂鸣器电源图6.3 LCD显示电路6.2.3 时钟振荡电路AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。
外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。
用户也可以采用外部时钟。
采用外部时钟的电路如图示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
振荡器电路图如下:图6.4 单片机内部、外部振荡电路6.3 硬件电路图及功能总体硬件电路实现功能如下,如图6.5所示电路中用P1.0~P1.5控制按键。
P0.0~P0.7控制LED。
P3.0控制蜂鸣器。
电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。
图6.5 硬件电路图7 软件设计7.1 软件程序设计7.1.1 程序流程图7.1.2 程序源代码(见附录)8 调试8.1 检查硬件连接在PROTUES检查各硬件管脚是否连接正确,线路逻辑是否正确,例如:晶振电路的连接,复位电路是否设计正确。
8.2 检查软件系统1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。
2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。
通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。
8.3 测试结果图8.1 系统总体运行图课程设计体会这学期学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。
在一个好的氛围里才能踏下心来做东西,在这一段时间里,同学们都认真对待这次课程设计,除了自己做好自己的课题外,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。