1、基于单片机控制八音盒的设计目录摘要 .2关键词 .2第一章 基于单片机控制八音盒的设计 .31.1 八音盒设计功能描述 .31.2 八音盒设计分析 .31.3 单片机的设计任务和要求 .3第二章 单片机的组成及特点 .42.1 单片机的组成 .42.2 单片机的特点 .42.3 单片机的分类 .52.4 单片机的应用分类 .5第三章 八音盒的设计要求与发音原理 .53.1 单片机八音盒的设计基本要求 .53.2 八音盒的设计发音原理 .63.3 关于 AT89C51 的性能介绍 .83.4 AT89C51 的管脚介绍 .9第四章 硬件设计 .114.1 Proteus 功能及其特点 .114.
2、2 硬件电路设计 .114.3 简单八音盒的设计 .124.4 LCD 数码显示器简介结构 .16第五章 软件设计 .175.1 软件流程图 .175.2 歌曲的编码改写实例 .17第六章 软、硬件系统联合调试 .186.1 调试 .186.2 仿真 .196.3 程序调试中出现的问题及解决的办法 .21第七章 PCB 设计及电路制作 .217.1 PCB 制作流程 .217.2 绘制 PCB 图注意事项 .25总结 .25致谢词 .26参考文献: .27附录 .27摘要传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁 钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。
3、但是, 机械式的音乐盒体积比较大,比较笨重,且发音单调。水、灰尘等外在因素, 容易使内部金属发音条变形,从而造成发音跑调。另外,机械音乐盒放音时 为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。 基于单片机设计制作的电子式音乐盒。与传统的机械式音乐盒相比更小巧, 音质更优美且能演奏和弦音乐。电子式音乐盒动力来源是电池,制作工艺简 单,可进行批量生产,所以价格便宜。基于单片机制作的电子式音乐盒,控 制功能强大,可根据需要选歌,使用方便。所放歌曲的节奏可以根据需要进 行设置,根据存储容量的大小,可以尽可能多的存储歌曲。另外,可以设计 彩灯外观效果,增设放歌时间、序号显示灯功能,
4、使音乐盒的功能更加丰富 单片机音乐播放时间显示播放音乐序号音乐播放扬声器时钟、复位电路选歌按键为了实现单片机控制音乐播放,此次毕业设计做出了尝试,即电子音乐盒的设计。本设计采用了扬声器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲,现选用 AT89S51 单片机。主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,扬声器播放出音乐。此次设计要利用单片机及 KeilC51 编程软件编程和 PROTEUS 单片机仿真软件等方面知识,用 KeilC51 编程软件编程,用 PROTEUS 单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用
5、I/O 口产生一定频率的方波,驱动扬声器,发出不同的音调,从而演奏乐曲。关键词单片机、八音盒、AT89C51、proteus、keil。第一章 基于单片机八音盒的设计1.1 八音盒设计功能描述八音盒可以经常发出宜人的音乐旋律,能给生活增加不少的乐趣。用 51 系列单片机设计一个音乐盒。功能如下:1) 利用 I/O 口产生一定频率的方波,驱动扬声器,发出不同的音调,从而演奏乐曲。2) 用字符型 LCD 显示当前播放的歌曲序号。3) 开机时有英文欢迎提示字符。4) 可通过功能键选择乐曲,暂停,播放。5) 显示乐曲播放时间或剩余时间(至少 30 秒)。1.2 八音盒设计分析本次设计利用 89C51
6、单片机结合内部定时器及 LCD 显示器,设计一个简易的电子八音盒,按下单键可以演奏预先设置的歌曲旋律。使用了文字型LCD(162)显示目前演奏的歌曲编号,由键盘(4*4)来选择演奏歌曲;具有16 个按键操作来选择演奏哪一首歌曲;演奏时可以按键暂停。内置自动定时器,若没有按键,则自动演奏歌曲。利用单片机定时器来产生固定频率的方波信号推动压电喇叭,发出旋律。音阶频率及定时器初值加载的关系及设计原理及方法,及按键扫描。在歌曲旋律设计方面采直觉式输入法,由程序中直接输入方便快速设计歌曲。1.3 单片机设计任务和要求为了实现单片机控制音乐播放,采用电子音乐盒的设计。本设计采用了扬声器发声来实现歌曲的播放
7、,能保持基本音调不变,流畅播放出歌曲,现选用 AT89S51 单片机。主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,扬声器播放出音乐。此次设计要利用单片机及 KeilC51 编程软件编程和 PROTEUS 单片机仿真软件等方面知识,用 KeilC51 编程软件编程,用 PROTEUS 单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用 I/O 口产生一定频率的方波,驱动扬声器,发出不同的音调,从而演奏乐曲。2.1 单片机的组成单片机是微型机的一个主要分支,在结构上的最大特点是把 CPU、存储器、定时器和多种输入/输出接口电路集成在一块超
8、大规模集成电路芯片上。就其组成和功能而言,一块单片机芯片就是一台计算。单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU 通过它们将地址输出到存储器或 I/O 接口;数据总线的作用是在 CPU 与存储器或 I/O 接口之间,或存储器与外设之间交换数据;控制总线包括 CPU 发出的控制信号线和外部送入 CPU 的应答信号线等。2.2 单片机的特点由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要发展如下特点:(1)有优异的性能价格比。
9、(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)低功耗、低电压,便于生产便携式产品。(5)外部总线增加了 IC(Inter-Integrated Circuit)及 SPI(Serial Peripheral Interface)等串行总线方
10、式,进一步缩小了体积,简化了结构。(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。2.3 单片机的分类单片机作为计算机发展的一个重要领域,应用一个较科学的分类方法。根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及控制型/家电型。1. 通用型/专用型这是按单片机适用范围来区分的。例如,80C51 是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成 ADC 接口等功能的温度测量控制电路。2. 总线型/非总线型这是按单片机是否提供并行总线来区分的。总线型单片机
11、普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。3. 控制型/家电型这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。显然,上述分类并不是惟一的和严格的。例如,80C51 类单片机既是通用型又是总线型,还可以作工控用。2.4 单片机的应用分类由于单片机具有显著的优点,它已成为科技领域的
12、有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:(1) 单片机在智能仪表中的应用单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。(2)单片机在机电一体化中的应用机电一体化是械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。(3) 单片机在实时控制中的应用单片机广泛地用于各种实时控制系统中。例如,在工业测
13、控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。综合所述,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。第三章 八音盒的设计要求与发音原理3.1 单片机八音盒的设计基本要求1. 基本要求是设计一个八音盒,并且编写相应的软件,完成八音盒的
14、任务,该控制任务应完成下列功能:() 使用 LCD 显示目前演奏的歌曲编号;() 用按键操作来选择演奏哪一首歌曲(建几首歌曲旋律,按下单键便可以演奏歌曲);() 演奏时可以按键暂停。2.设计所需器件清单:名 称 数量(个) 型号/参数 备 注单片机 1 AT89C51液晶屏 1 LM016按键开关 16 BUTTON普通电阻 2 10K(1 个) ,1K(1 个)排阻 1 RESPACK-8 10K电容 3 30pf( 2 个) ,10uf (1 个)晶振 1 12MHz三极管 1 PNP扬声器 1 SPEAKER3.2 八音盒的设计发音原理1. 八音盒的发音原理播放一段音乐需要的是两个元素,
15、一个是音调,另一个是音符。首先要了解 对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度 的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器 0,使其工作在模式 1,定时中断,然后控制 P3.7 引脚的输出音乐。只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的 I/O 反相,然后重复计时
16、此半周期时间再对 I/O 反相,就可在 I/O 脚上得到此频率的脉冲。2. 音符频率的产生(1)音符及定时器初始值:例如:中音 1(do)的音频=523HZ,周期 T=1/523s=1912 s定时器/计数器 0 的定时时间为:T/2=1912/2 =956s定时器 956 的计数值=定时时间/机器周期=956 /1 =956(时钟频率s=12MHZ)装入 T0 计数器初值为 65536-956=64580将 64580 装入 T0 寄存器中,启动 T0 工作后,每计数 956 次时将产生溢出中断,进入中断服务时,每次对 P3.0 引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频
17、。将 51 单片机内部定时器工作在计数器模式 1 下,改变计数初值 TH0,TL0 以产生不同的频率。下表 2-1 是 C 调各音符频率与计数初值 T 的对照表:表 2-1 C 调各音符频率与计数初值 T 的对照表音符 频率(Hz)/ 初值( )s音符 频率(Hz)/ 初值( )s低 1DO 262/63627 中 1DO 523/64580高 1DO 1042/65056 低 2RE 294/63835中 2RE 589/64687 高 2RE 1245/65134低 3M 330/64021 中 3M 661/64780高 3M 1318/65157 低 4FA 350/64107中 4F
18、A 700/64822 高 4FA 1397/65178低 5SO 393/64264 中 5SO 786/64900高 5SO 1568/65217 低 6LA 441/64402中 6LA 882/64969 高 6LA 1760/65252低 7SI 495/64526 中 7SI 990/65031高 7SI 1967/65282(2)音符、音符编码及定时器初始值:为了产生音符,必须求出音符低音 5高音 5 的计数初值。例如 C 调的低1DO 的 THTL=65536-50000/262=63627,中音 DO 的 THTL=65536-500000/523=64580,高音 DO 的
19、 THTL=65536-500000/1042=65056。为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。比如说音乐是 C 调的,那么出现低音的 5SO,直接将代码写为 1;出现低音 6LA,直接写一个 2 的代码;出现低音 7SI,直接写一个 3 代码。表 2-2 音符编码表3. 节拍频率的产生节拍的产生与编码:音乐中的节拍用延时时间产生。例如,1 拍=0.4s,1/4 拍=0.1s,以此类推。假设 1/4 拍执行一次延时程序,则 1/2 拍就执行两次延时程序,所以只要求出1/4 拍的延时时间,其余节拍就是它的倍数。为了方便,将节拍数也进行了编码,并且计算了乐谱
20、节拍编程时的延时时间,如表 2-3 和表 2-4 所示。表 2-3 节拍数编码表按 1/4 拍为一个延时时间的节拍编码与节拍对应的表按 1/8 拍为一个延时时间的节拍编码与节拍对应的表节拍编码 节拍 节拍编码节拍 节拍编码 节拍 节拍编码 节拍1 1/4 6 6/4 1 1/8 6 6/82 2/4 8 8/4 2 2/8 8 8/83 3/4 A 10/4 3 3/8 A 10/84 4/4 C 12/4 4 4/8 C 12/85 5/4 F 15/4 5 5/8表 2-4 乐谱节拍编程时的时间延时表乐谱节拍 1/4 拍的延时时间 乐谱节拍 1/8 拍的延时时间音符 音符编码 音符 音符编
21、码不发音 0 低 5SO 1低 6LA 2 低 7SI 3中 1DO 4 中 2RE 5中 3M 6 中 4FA 7中 5SO 8 中 6LA 9中 7SI A 高 1DO B高 2RE C 高 3M D高 4FA E 高 5SO F高 6LA G4/4 125 ms 4/4 62 ms3/4 187 ms 3/4 94 ms2/4 250 ms 2/4 125 ms音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。3.3 关于 AT89C51 的性能介绍AT89C51 是一种带K 字节闪烁可编程可擦除只读存储器( FPEROMFalsh Progra
22、mable and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。由于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。它可以提供以下的功能标准:() K 的字节闪烁存储器;() 128 字节随机存取数据存储器;() 32 个 I/O 口;() 2 个 16 位定时/计数器;() 1 个 5 向量两级中断结构;() 1 个串行
23、通信口;() 片内振荡器和时钟电路。另外 AT89C51 还可以警醒 OHZ 的惊涛逻辑操作,并支持两种软件的节点模式。3.4 AT89C51 的管脚介绍AT89C51 的管脚图VCC:供电电压GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O
24、 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FIASH编程和校验时,P1 口作为第八位地址接入。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用与外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FIASH 变成和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下;拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: