
基于单片机的电子贺卡设计.docx
61页目录引 言 2一、设计要求 31.1设计题目 31.2课题意义 3二、系统硬件原理及设计 32.1系统组成框图 32.2 电子贺卡的功能结构框图 4三、音乐基础知识 43.1 音乐基础 43.2音调脉冲和音乐节拍的实现 53.2.1 音调脉冲的产生 53.2.2音乐节拍的产生 63.2.3音符码表的编制 73.3主程序流程图 93.4发声模块程序设计 103.5按键模块程序设计 11四、硬件电路设计 124.1 主要器件 124.1.1 微处理器 124.1.2开关元件 144.2 发声驱动电路 154.3电路工作原理 16五、软件设计 165.1软件开发平台 175.2详细的程序设计 17总 结 27参考文献 28引 言如今,电子技术获得了飞速的发展,现代电子产品几乎渗透了社会的各个领域目前,单片机正朝着高性能个多品种方向发展趋势将是进一步想着 CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系 统集成到一个芯片上相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件同时,学习使用单片机是了解计算机原理与结构的最佳选择单片机内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过 10元即可单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、 温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大例如精密的测量设备(功率计,示波器,各种分析仪)目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师 利用单片机实现音乐播放有很多要点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱通过音乐发声器的设计方案,掌握C语言的编程方法并熟练的运用 AT89C52 单片机定时器产生固定频率的方波信号,推动喇叭发出旋律,按下单键可以演奏预先设置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏,本设计采用简易音阶编码直觉式输入法方便设计音乐旋律。
一、设计要求 基于单片机的音乐播放器,播放简单歌曲,本次课题音乐播放为《奇异恩典》、《欢乐颂》和《生日快乐》1.1设计题目基于单片机的电子贺卡设计1.2课题意义基于单片机的音乐播放器可应用于 mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生 各种固定频率的方波信号,也可以产生包括“Do”、“Re”、“Me”--等音阶在内的各种频率声音将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律我们可以运用在生活实际中比如贺卡或者电子门铃基于这个思想,我们设计了一款特殊的“音乐播放器”,本播放器可实现播放、暂停、等功能由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用 AT89C52 单片机,本播放器具有电路简单,功能强大,易于拓展等特点在此基础上,可以添加按键,LED 显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能二、系统硬件原理及设计 2.1系统组成框图硬件系统包括主控模块、时钟电路、复位电路、电源电路、显示模块、发声模块和按键模块如图2-1所示发声模块时钟电路主控模块(AT89C52)复位电路按键模块电源电路 图2-1 硬件系统结构图2.2 电子贺卡的功能结构框图电子贺卡的功能框图如图2-2所示,程序调用,按不同键负责控制歌曲的播放、下一曲、上一曲和暂停,同时蜂鸣器发出响声和停止声音。
开始播放、下一曲、上一曲、暂停发声和暂停声音程序调用图2-2 电子贺卡的功能框图三、音乐基础知识3.1 音乐基础音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉人耳能听到的声音频率大约在 11—20000Hz,而音乐使用的音一般在 27—4100Hz乐音体系中各音级的名称叫做音名,被广泛采用的是 C D E F G A B (do re mi fa so la si 则多用于歌唱,称为唱名)乐音体系中音高关系的最小计量单位叫做半音,两个半音构成一个全音乐音中有几十个高低不同的音,但是最基本只有这七个音,其他高、低音名都是在这个基础上变化出来的乐谱表上用来表示正在进行的音的长短的符号,叫做音符不同的音符代表不同的长度音符有以下几种:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符此外,还有附点音符,它就是指带附点的音符,所谓附点就是记在音符右边的小圆点,表示增加前面音符时值的一半音持续的长短即时值,一般用拍数表示,休止符表示暂停发音一首音乐就是由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。
3.2音调脉冲和音乐节拍的实现3.2.1 音调脉冲的产生音调表示一个音符唱多高的频率,和平时所说的“音高”十分类似这是音乐学中的名词,在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz其余音均通过和其比较获得如果f1和f2两个音符的频率相差一倍时,也即f2=2×f1时,则称f2比f1高一个倍频程音符1(低音do)与音符i(中音do),……,等之间正好相差一个倍频程,在音乐学中一般称其相差一个八度音音乐中规定,在一个八度音内,共有12个半音以1—八音区为例,这12个半音分别是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5—#5、#5—6、6—#6、#6—7、7—i由于人耳的听觉效果是非线性的,因此这12个音阶的分度基本上是以对数关系来划分的要让单片机产生音频脉冲,只要计算出某一音频的周期,将此周期除以2得到半周期,利用定时器对此半周期进行定时,每当定时时间到,将P1.7口线上的电平取反,从而得到所需要的音频脉冲产生音频的定时器初值计算公式如下:式中,k根据单片机工作方式确定,可为13(方式0)、16(方式1)、8(方式2), fosc为单片机工作频率, 为希望产生的音频。
例如中音DO的频率为523Hz,若单片机的工作频率为12MHz,定时器T0设置为工作方式1,按以上公式计算得定时器初值为64580;高音DO的频率为1047Hz,计算定时器初值为650583.2.2音乐节拍的产生节拍表示一个音符唱多长的时间,同样是音乐学中的名词在一张完整乐谱的开头,都有如1=C 、1=G …… 等的标识例如图3-2所示为1=C 的节拍示意图这里的、用来表示节拍,而1=C、1=G表示一个乐谱的曲调,简单地说就是跟音调有关系图3-2 节拍示意图可以通过延时程序来产生不同的节拍如果1拍为0.4秒,则1/4为0.1秒,只要设定延时时间就可以求得节拍时间例如一段延时程序Delay为1/4拍,则一拍只要调用4次Delay程序,依此类推3.2.3音符码表的编制编写一段音乐的音符码表时,先把乐谱的音符找出,按表3-1建立对应的音调码码及定时器初值表,按表3-2建立节拍码表每个音符使用1个字节,字节的高4位存放音符的音调码,低4位存放音符的节拍码表3-1 与音符对应的音调码表和定时器初值表(fosc=12MHz)简谱发声音调码定时器初值5低音SO1FB046低音LA2FB907低音SI3FC091中音DO4FC442中音RE5FCAC3中音ME6FD094中音FA7FD345中音SO8FD826中音LA9FDC87中音SIAFE061高音DOBFE222高音RECFE563高音MEDFE854高音FAEFE9A5高音SOFFEC1不发音0用C语言将音调码表和定时器初值表表示出来即为:uchar code TABLE[ ]={ //音符对应的定时器初值表 0xfb,0x04,0xfb,0x90,0xfc,0x09,0xfc,0x44, 0xfc,0xac,0xfd,0x09,0xfd,0x34,0xfd,0x82, 0xfd,0xc8,0xfe,0x06,0xfe,0x22,0xfe,0x56, 0xfe,0x85,0xfe,0x9a,0xfe,0xc1};表3-2节拍码表节拍码节拍数11/4拍22/4拍33/4拍41拍51又1/4拍61又2/4拍82拍A2又2/4拍C3拍F3又3/4拍按照上述原理可以编写出“Amazing Grace”乐曲的音符码表。
Amazing Grace”的简谱如下:5.|1 - 31 |3- 2| 1 - 6. |5.- 5.|1-31|3-2|5--|5-|3 |5·3 53|1-5.| 6·1 16.|5.-5.|1-31|3-2|1--|1-|对应的音符码表为:uchar code GRACE[ ]={ //《奇异恩典》音符码表 0x14,0x48,0x62,0x42,0x68,0x54,0x48,0x24,0x18, 0x14,0x48,0x62,0x42,0x68,0x54,0x8c,0x880x64,0x86,0x62,0x82,0x62,0x48,0x14,0x26,0x42,0x42,0x22,0x18, 0x14,0x48,0x62,0x42,0x68,0x54,0x4c,0x48,0x00};3.3主程序流程图如图3-3所示为主程序流程图开始初始化开始键是否按下 N播放音乐 Y按键扫描图3-3 主程序流程图3.4发声模块程序设计如图3-4所示为发声模块程序流程图开始是否为结束码 Y取音调码和节拍码 N音调码是否为0 N Y停止T0计算T0初值,装载,启动T0延时音符码变量+1结束图3-4 发声模块程序流程图3.5按键模块程序设计本设计中采用4个按键来控制音乐的播放:Key0 控制上一曲播放;Key1开始播放;Key2控制下一曲播放;Key3暂停播放。
主程序中放置了3首歌曲,分别是"Amazing Grace" ;"Ode To Joy" ;"Happy Birthday"进入主程序。












