- 相关推荐
基于单片机的自动音乐播放器的设计(一)
摘 要
为方便人们的日常生活,优化学校、机关等单位的计时系统,采用以单片机为基础设计了一种的自动音乐播放器。本设计利用单片机89C58RD+的定时和计数功能,来完成时间的显示和定时功能。并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来完成对音乐节拍长度的控制。通过LM386N1音频功率放大器,将单片机输出的信号放大,再通过喇叭播放乐曲。通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过串口接入PC机,这样就能从PC机上将用C语言编写的程序下载到单片机上。最后可在数码管上显示时间,当定时时间到后,喇叭自动播放一段连续的音乐。此设计摆脱了传统闹钟的刺耳声音,取而代之的是美妙的音乐,能为人们的日常生活提供准确的计时,且成本低廉,值得推广。
关键词:单片机;自动音乐播放;音频转换;时间显示;LM386N1音频功率放大器
The design of automatic music player based on monolithic integrated circuit
Abstract
In order to facilitate people's daily life, optimizes schools’, institutions’ timing system, used has designed one kind of automatic music player which based on monolithic integrated circuit. This design fixed time and counts the function using monolithic integrated circuit 89C58RD+, completes the time the demonstration and fixed time the function. And, Through hypothesis starting value of timer, product the different frequency sound. Severs using the timer completesthe control of music metre length.Through LM386N1 audio power amplifier, enlarges signal which the monolithic integrated circuit outputs,then broadcast music from loudspeaker. Through MAX232 chip,can transform PC machine on the voltage and the monolithic integrated circuit supply voltage.And then,turns on the computer though String mouth,then it can download procedure which compiles with the C language to monolithic integrated circuit from computer.At last,it can demonstrates the time on the digital tube.When time to after fixed time, the loudspeaker automatically broadcasts section of continual musics. This design get rid of the traditional alarm clock’s grating sound, displaces is the wonderful music,can provides the accurate time for people's daily life.The design cost very inexpensive,it is worth promoting.
Key word:Monolithic integrated circuit; Automatic music broadcast; Audio frequency transformation; Time demonstration; LM386N1 audio power amplifier
目 录
论文总页数:页
引 言.......................................................................1
1 设计任务................................................................2
2 软件设计
2.1 音乐编程原理及流程图 ...............................................
2.1.1 声音的产生 ......................................................
2.1.2 音频转换原理 ....................................................
2.1.3 音频转换流程图 ..............................................
2.2 时间显示程序设计..............................................
2.2.1 时间显示模块..............................................
2.2.2 时钟流程图 ..............................................
3 硬件电路的设计..............................................................2
3.1 硬件流程模块(此节作为第1节---后面几节就围绕它来写,并且要写“连贯”)
3.2 主要模块电路的设计..........................
3.2.1 89C58RD+型单片机介绍.........................................
3.2.2 LM386N及外围电路的设计............. ...............
3.2.3 串行通信和MAX232芯片...........................................
3.2 4 AT89C52的定时/计数器概述.........................................
3.2 5 LED显示原理......................................................
4 KEIL仿真软件及Protel 99 SE的应用......................................
4.1 KEIL51的应用..........................................................
4.2 Protel 99 SE的应用.....................................................
4.3 PCB板制作.............................................................
5 仿真及调试过程..........................................................
5.1 硬件调试过程
5.2 软件仿真及调试过程
6 结果分析................................................................ 结 论.....................................................................
参考文献.......................................................................
致 谢.....................................................................29
声 明.....................................................................30
附 录.....................................................................16
基于单片机的自动音乐播放器的设计
引 言
单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
本文将介绍一种以89C58RD+型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,时间对于每一个人都十分重要,时间就代表了金钱,代表了先机。所以,准确的计时和及时的时间提示就显得相当重要,各个公司、机关、院校日常作息都需要计时和号音提示,我们的日常生活也离不开时间。目前,此类音乐计时播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。
本次设计以89C58RD+型单片机为基础,利用单片机编成技术对芯片进行功能设定,实现对时间的计时,并在四位共阴LED数码管上显示出来。同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过LM386N1型音频功率放大器将音频信号放大。当定时时间到后,通过喇叭连续播放一段音乐。此设计通过多次测试,计时准确,音乐声音宏亮清晰,节拍正常,达到预期效果。
本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定、四位共阴LED数码管的显示、LM386N1型音频功率放大器外围电路的介绍,以及仿真软件(Keil、Protel99 SE)的使用方法和相关PCB板的制作。
1 设计任务
在基于单片机的自动音乐播放器中,采用89C58RD+型单片机为硬件基础,通过C语言对芯片进行编程。单片机需外接+5V稳压电源,并通过MAX232电平转换芯片和串口接入PC机。单片机工作时,用软件对定时器初值进行设定,从而得到所需要的声音频率;通过四位共阴LED数码管,可显示时间,并可进行定时设置;通过LM386N1芯片,将单片机输出的信号放大,接入喇叭即可发声。具体要求如下:
(1)对时间进行定时,当定时时间到后,通过喇叭能连续播放一段音乐。要求播放出的音乐的音阶准确,不能有太大偏差,否则会造成音乐声音刺耳难听;音乐播放必须连贯,即音乐必须有节奏感;喇叭放出的音乐声音响亮,不能太小,否则不能达到乐曲的提示作用。
(2)在四位共阴LED数码管上显示出时间(24小时制),包括小时、分钟,当定时1秒后,秒数加1;当定时满60秒后,秒数归零,分钟数加1;当定时满60分钟后,分钟数归零,小时数加1;当定时满24小时后,小时数归零。
软件设计
本设计的软件部分包含了两个重要组成部分:音乐编程和时间程序(注:也可以用下框图来反映----具体自己画和填写!!!---便全面反映2.1和2.2等要写的东西)
2.1音乐编程原理及其流程图
2.1.1 声音的产生
声音是音频振动的结果,振动的频率高则为高音,频率低则为低音。音频范围为20HZ-200KHZ之间,而人类耳朵比较容易辨识的声音大概是200HZ-20KHZ。一般音响电路是以正弦波信号驱动喇叭,产生悦耳的音乐的;在数字电路里,则是以脉冲信号驱动喇叭以产生声音。同样的频率,脉冲信号或正弦信号产生的音效,对于人类的耳朵来说很难有所区别。
若用单片机产生声音,可利用程序产生频率,送到输入/输出端口,例如P1.0,再从该点连接到喇叭的驱动电路,即可驱动喇叭。
2.1.2 音频转换原理
若要产生音频脉冲,只要算出某一音频的周期,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。
利用单片机的内部定时器使其工作计数器模式(MODEL1)下,改变其计数值TH0及TL0以产生不同频率的方法产生不同音阶。例如,频率为523HZ,其周期T=1/523=1912us,因此只要令计时器计时956 us/1 us=956,每计数956次时将I/O反相,就可得到中音DO(523HZ)。计数脉冲值与频率的关系式是:
N = F1/2/F2 (式3-2-1)
式3-2-1中,N是计数值;F1是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ);F2为想要产生的声音频率。
其计数初值T的求法如下:
T = 65536 –N = 65536 - F1/2/F2 (式3-2-2)
本次设计采用16位定时方式,晶体振荡器频率为6MHZ,根据式3-2-1和式3-2-2可以计算出各音乐频率的计数器初值,再将十进制的计数器初值转换为四位16进制,将其制表写入程序中,通过查表装入要求的初值即可。音阶与频率的对应关系如表3-1所示。
表2-1
音符 DO RE ME FA SO LA SI
低音简谱码 1 2 3 4 5 6 7
频率/Hz 523 587 659 698 784 880 987
高音简谱码 1 2 3 4 5 6 7
频率/Hz 1046 1174 1318 1396 1567 1760 1975
2.1.3 节拍的产生
音阶的频率是固定的,而节拍有快有慢,拍子越短节奏越快,拍子越长节奏越慢。控制发音的时间有两种方法:调用延时子程序或采用定时器中断。本次设计采用的是定时器终端方式。
首先在整首乐曲中找出最短的拍子,一般为1/4拍,拍子的时间约为0.125s。然后以1/4拍为基准,然后设定每0.125s产生一次中断,其定时器值为125000,定时常数为08F3H。若采用模式2,定时器值太小,不是很好用。所以采用模式1,将定时器值设为62500,即0CDCH,则只需要执行2次定时器中断就可以产生1/4拍的时间长度。同样,若要产生其它的拍子(如1/2拍,3/4拍……),只需要定时器中断N次,产生N*0.125s定时,使其满足各个节拍的时间长度即可。
设计的程序按如下方法编写:
(1)将音符代码装入8位字节高4位,节拍代码装入低4位,组成一个字节,以此类推。将整段乐曲转换成一定长度的编码表。具体编程方法如下:
1.首先,定义toneh[]和tonel[]两个数组,将各个音乐频率的定时器初值的16进制数的高8位装入toneh[],低8位装入tonel[]。
2.利用单片机的定时器中断,将toneh[]和tonel[]的数据分别装入TH0和TL0,并且,收到信号P1.0就反相。
void timer0(void) interrupt 1 using 1
{
P1_0=!P1_0;
TH0=toneh[rti];
TL0=tonel[rti];
}
3.利用定时器1控制音乐节拍的时间长度,将上文所述的定时器初值装入定时器1。
void timer1(void) interrupt 3 using 2
{
TH1=0x0c;
TL1=0xdc;
m++;
}
(2)在程序执行时顺序查此表,取出音符代码,查频率表,置入T/C口,取出节拍代码,供定时器使用,启动后即可发出声音。
2.1.4 音频转换流程图
设计的软件流程如图2-2所示。程序开始运行时先对单片机进行初始化,其中包括定时器及其工作方式的选择、外部中断设定、定时器初值的设定。利用单片机,通过软件的方式产生所需要的音乐频率,并将收到的信号与音频编码表进行对比。若信号在编码表中,则将该频率的定时器初值写入定时器中,并读取频率的音阶,再从单片机的P1.0口输出,经过音频放大器驱动喇叭发出声音,利用驱动喇叭演示程序即可控制音乐的节拍。若信号不在编码表中,则返到初始化。
2.2 时间显示程序设计
2.2.1设计思路
对于时间程序的设计,主要依靠单片机内部定时器的计数功能实现。时钟由秒针、分针和时针组成,在程序中分别由sdata,mdata,hdata表示各单位的数据。首先对sdata,mdata,hdata分别设定一个初值,其中sdata设为0,表示秒针初始为0。然后利用定时器对秒针计数,当计数值达到1秒的时间后产生定时器中断,sdata的数据就加1。由于本次设计采用的晶振频率为6MHz,所以定时器取值为2500。将hdata的数据装入第一和第二个数码管,将mdata的数据装入第三和第四个数码管。当sdata的数据为59时,若此时再来一个定时器中断,则秒针重新归零,而分针就加1。同样,分针和时针的进位也是同一道理。
当设定的闹钟时间一到,程序即转入音频程序,驱动喇叭放出音乐。
2.2.2 时钟程序流程图
时钟程序流程图如图2-3所示。(应有简单的文字叙述或解释)
3 硬件电路的设计
3.1硬件流程模块
设计的硬件流程模块如图3-1所示。首先,PC机通过串口及MAX232芯片将程序下载到单片机中,其中包括把一个个的单音写入单片机的ROM存储器中,程序运行时再将音乐数据按顺序读出,利用单片机的定时器中断控制音乐节拍的长度,这样就能形成一段乐曲。在单片机P1.0口接入音频放大电路,将单片机输出的信号放大,再通过喇叭播放音乐。单片机P2口接4位共阴LED数码管,并外接1K欧的排阻,利用单片机内部的定时器中断控制时间程序,然后在数码管上显示出时间。
3.2 模块电路的设计
3.2.1 89C58RD+型单片机介绍
89C58RD+是一种带32KB闪烁可编程/可擦除制度存储器(EPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS的8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51的指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,因而ATMEL的89C58RD+是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。并且,比起跟它同种类型的89C51,它具有更大的Flash存储器,可下载很大容量的程序代码,因此功能更加强大,应用范围更广泛。
89C58RD+有40个引脚,32个外部双向输入/输出(I/O)端口,9个中断源,内含2个外中断口,3个16位可编程定时计数器,可编程UART串行通信口,SPI串行口,89C58RD+可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。89C58RD+有PDIP、TQFP及PLCC等三种封装形式,以适应不同应用系统的需求。
89C58RD+管脚如图3-2所示,其中
时钟引脚
XTAL1:接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发声器的输入端。
XTAL2:接外部晶体的另一个引脚。在单片机内部,它是构成内部振荡器的反相放大器的输出端。当采用外部振荡器时,此引脚应悬浮不连接。
注意:如果采用片内的振荡电路,要在单片机的引脚XTAL1和XTAL2之间连接一个石英晶体或陶瓷谐振器,并接两个电容到地。
控制线或其他电源的复位引脚
RST:复位输入端。
ALE/:当访问外部寄存器时,地址锁存允许的输出电平用于锁存地址的低位字节。在Flash编程期间,此管脚用于输入编程脉冲。在平时,ALE以不变的频率周期输出正脉冲信号,次频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行外部执行状态ALE禁止,置位无效。
:外部程序存储器的选通信号。在有外部程序存储器取指令期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。
/Vpp:当保持低电平时,则在此期间访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意要加密方式1时,将内部锁定为RESET;当断保持高电平时,此间访问内部程序存储器。在Flash编程期间,此管脚也用于施加12V编程电源(Vpp)。
输入/输出引脚
P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写“1”时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在Flash编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时,P0口外部必须被拉高。
P1口:P1口为一个内部提供上拉电阻的8位双向I/O,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在Flash编程和校验时,P1口为第八位地址接收。
P2口:P2口为一个内部提供上拉电阻的8位双向I/O,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高。且作为输入。并因此作为输入时,P2口的管脚被外部拉底,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部8位地址数据校验时,P2口输出其特殊功能起存器的内容。P2口在Flash编程和校验时,接收高8位地址信号和控制信号。
P3口:P3口为一个内部提供上拉电阻的8位双向I/O,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为一些特殊功能口,如表2-1所示。
表2-1
口 管脚 备选功能
P3.0 RXD 串行输入口
P3.1 TXD 串行输出口
P3.2 外部中断0
P3.3 外部中断1
P3.4 T0 计时器0外部输入
P3.5 T1 计数器1外部输入
P3.6 外部数据存储器写选通
P3.7 外部数据存储器读选通
3.2.2 LM386N1及外围电路的设计
LM386N1乃音频功率放大器,主要应用于低压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地为参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,加之封装形式有塑封8引线双列直插式和贴片式,使LM386N1具有静态功耗低(约为4mA),可用电池供电;工作电压范围宽(4-12V or 5-18V);外围元件少等特点。
LM386N1管脚示意图如图3-3。
LM386N 外围电路如图3-4所示意。其中R3为正相输入电阻,取值为10K;R4、R5是分压电阻,取值分别为0.5K和0.01K;C9、C10是旁路电容,取值分别为0.1uf、10uf;C11是一个耦合电容,取值为47uf;C12是旁路电容,取值为0.047uf。
3.2.3 串行通信和MAX232芯片
在单片机和PC机之间,要通过MAX232芯片进行电平转换,MAX232芯片主要是完成TTL←→EIA双向电平转换。??EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。??MAX232电路具有的特点是:单5V电源工作;两个驱动器及两个接收器;±30V输入电平;低电源电流(典型值是8mA);符合甚至优于ANSII标准EIA/TIA-232-E及ITU推荐标准V.28。
MAX232的外围电路如图2-4所示。MAX232的13、14脚(Rli、Tlo)分别接串口的数据发送端、数据输出端,11、12脚(Rlo、Tli)分别接单片机的11、10脚(TXD、RXD)。在1脚和3脚、4脚和6脚、2和16脚、6和15脚以及15和16脚之间分别接1个1uf的电容,即可使芯片正常工作,完成电平转换功能。
3.2.4 AT89C52的定时/计数器概述
AT89C52单片机有3个独立的16位定时/计数器,即定时/计数器0(T0),定时/计数器1(T1)和定时/计数器2(T2)。它们都有定时或事件计数功能,可用于定时控制、延时、对外事件计数和检测等场合。
3个16位定时/计数器,其中T0,T1可作16位加1计数器,T2既可作16位加1计数器,也可作减1计数器,每个定时/计数器都可由软件设置为定时工作方式或计数工作方式。
当设置为计数工作方式时,通过引脚T0(P3.4),T1(P3.5),T2(P1.0)对外部脉冲信号计数,当输入脉冲信号从1到0负跳变时,计数器就自动就1。为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。
当设置为定时方式时,AT89C52片内振荡器输出的时钟经12分频或6分频后,作为定时器的计数脉冲。每当来一个时钟下降沿时,定时器T0,T1或T2的数值加1,直至计满溢出为止。
3.2.5 LED显示
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管的发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。四位共阳数码管管脚图如图3-6。
4 KEIL仿真软件及Protel 99 SE的应用
4.1 KEIL51的应用
硬件与软件的设计一般都要分别借助一些软件,如我们通常用作电路设计与制版的Protel,MCS-51程序开发工具KEIL等。
Keil C51 uVision2集成开发环境是基于80C51内核的软件开发平台,支持工程建立、程序的编译与链接、软件仿真、硬件仿真、目标代码的生成等功能。Keil C51编译器在产生代码的准确性和效率方面达到了较高的水平。
与大多数集成开发环境类似,Keil C51集成开发环境也是用工程的方法来管理文件,在一个工程文件中源程序(C51程序、汇编程序)、头文件等都可以进行统一管理。
安装运行KEIL51,使用KEIL的开发工具进行项目开发过程,与其他软件开发项目的过程基本上相同:
创建C 语言或汇编语言的源程序。
编译或汇编源文件。
纠正源文件中的错误。
从编译器和汇编器连接目标文件。
测试连接的应用程序。
4.2 Protel 99 SE的应用
Protel软件是由澳大利亚的Protel Technolgy公司推出的,一直是从事印刷电路板设计的首选软件。在1990年,Protel软件由DOS平台发展到Windos平台,是世界上第一家运行在Windos平台的EDA(电子设计自动化)软件。Protel 99 SE是由Protel 99版本发展而来的,是基于Windos环境下的EDA软件。
Protel 99 SE主要的功能模块
电路原理图(Schematic)设计模块。该模块主要包括设计原理图的原理图编辑器,用于修改、生成原件符号的元件库编辑器以及各种报表的生成器。
印刷电路板(PCB)设计模块。该模块主要包括用于设计电路板的PCB编辑器,用于PCB自动布线的Route模块。用于修改、生成元件封装的元件封装库编辑器以及各种报表的生成器。
可编程逻辑器件(PLD)设计模块。该模块主要包括具有语法意识的文本编辑器、用于编译和仿真设计结果的PLD模块。
电路仿真(Simulate)模块。该模块主要包括一个功能强大的数/模混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。
4.3 PCB板的设计制作
印制电路板(PCB)是电子产品中电路元件和器件的支撑件.它提供电路元件和器件之间的电气连接,是从原理图到实际产品必经的一道设计工序。PCB设计的好坏对抗干扰能力影响很大。要使电子电路获得最佳性能,元器件的布局及导线的布设是很重要的。为了设计质量好、造价低的PCB.应遵循以下一般原则:
布局(1)首先,要考虑PCB尺寸大小。PCB尺寸过大时,印制线条长,成本也增加;过小,元器件排列太密集,则会增加布线难度,还会引起相邻线的干扰。在确定PCB尺寸后,再确定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。
(2)某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。
(3)重量超过15g的元器件、应当用支架加以固定,然后焊接。
(4) 以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、紧凑地排列在PCB上.尽量减少和缩短各元器件之间的引线和连接。
(5)应留出印制扳定位孔及固定支架所占用的位置。
2)布线(1)输入输出端用的导线应尽量避免相邻平行。最好加线间地线,以免发生反馈藕合。
(2)电源线和地线的宽度应尽量的大,一般在2-3mm以上。
(3) PCB布线不可以走成直角,以免产生阻抗突变。
(4)尽量避免使用大面积铜箔,否则,长时间受热时,易发生铜箔膨胀和脱落现象。
3)焊盘焊盘中心孔要比器件引线直径稍大一些。焊盘太大易形成虚焊。焊盘外径D一般不小于(d+1.2)mm,其中d为引线孔径。对高密度的数字电路,焊盘最小直径可取(d+1.0)mm。
5 仿真及调试过程
5.1 硬件调试过程
本次设计的硬件电路主要由单片机89C58RD+、MAX232和LM386N1的外围电路组成,在调试电路的过程中也碰到了一些问题。
问题一:单片机无法正常下载程序。
调试步骤:
(1)检查单片机和串口电路是否连接错。发现单片机的18、19脚的印制线接在了17、18脚上,导致晶振无法正常工作。出现错误原因则是制作PCB板时,制作板子的人将印制线连错。解决方法:把17脚的印制线用小刀切断,再将19脚与晶振用导线连接起来。
(2)检查串口的接口是否连接正确。发现串口连接线的数据接收和发送两端接反了,导致单片机无法接受到数据。解决方法:将串口DB9端拆开,把连接2和3脚的数据线交换。
(3)检查焊接电路是否有虚焊和漏焊。
(4)检查串口助手的芯片选择是否正确。
MAX232工作电压如表6-1所示。
表6-1
管脚 电压值(V) 管脚 电压值(V)
1 6.67 9 4.70
2 8.78 10 0
3 2.52 11 4.77
4 4.13 12 0.44
5 -4.25 13 -9.85
6 -8.16 14 -7.60
7 8.26 15 0
8 0 16 4.79
问题二:下载音频程序后无法播放音乐。
调试步骤:
检查电源是否正常接入电路中。
利用示波器测试单片机输出端是否有信号输出,发现信号输出正常,说明单片机正常工作。
利用示波器测试音频放大电路输出端是否有信号输出,发现信号输出正常,说明音频放大电路工作正常,同时说明是喇叭部分出现了问题。
故障原因:焊接时将发声器件烧坏了,导致发不出声音。
解决方案:重新换一个8欧姆喇叭,即可正常播放音乐。
5.2 软件仿真及调试过程
本次设计的软件部分由时间显示程序和音乐播放程序组成。
时间显示程序仿真
对于时间显示程序,我采用了Preteus软件来仿真。首先进入Preteu界面,设计一个简单的仿真电路,及一个单片机的基本外围电路,在P0.0-P0.7接一个4位共阴数码管和排阻,如图6-1。最后,把程序调入单片机中,开始运行。
1)调试过程中所遇到的问题:运行程序时LED4位共阴数码管显示程乱码。
原因分析:数码管初始设置有错。
解决方案:重新设置数码管显示参数,正确的设置为{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。
2)数码管显示的时间与真正的时间进度不一致。
原因分析:定时器初值设置有误。本次设计的晶振为6MHZ,而程序中的初值却设置成了12MHZ晶振所采用的值5000,导致显示的时间比真正的时间要慢。
解决方案:将定时器初值改为12MHZ晶振初值的一半,及2500即可。
2、音乐播放程序调试过程
关于音乐播放程序的调试,我首先采用Preteus软件来仿真,但是该仿真软件中没有喇叭或蜂鸣器等声音播放工具。于是本人将图6-1中的单片机的P1.0处接了一个示波器,想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。程序运行的时候,能看见示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要的频率,并且无法辨别音频变换的节奏是否正确。此方法并不适用。
接着,我制作了一个简单的单片机播放器电路。即在实验板上焊接实验电路,电路由单片机89C58RD+、MAX232的外围电路组成,并在单片机的P1.0处用三极管连接一个简单的音频放大器,再外接一个喇叭。将程序写入单片机中,这样就能听出声音和音乐节奏是否正确。
6 结果分析
结 论
经过这次毕业设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:
1、通过这次毕业设计,我能将以前四年所学到的专业知识与实践相联系,将所学到的知识充分运用到本次设计中。同时,我也认识到自己知识上不足的地方,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。
2、进一步熟悉了单片机的知识。通过本次设计,我对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。并且,能够以单片机为基础元件设计一个简单的系统。
4、通过本次设计,熟悉了设计一个项目所必经的几个阶段。本次设计从理论研究到硬件原理图设计,从元器件的选择到PCB板的制作,从软件编程到最后的调试过程都由我独立完成。这不仅锻炼了我独立完成设计工作的能力,更重要的是了解了一个电子产品的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。
5、提高了自己查找资料的能力。在设计过程中,我碰到了一些暂时无法解决的问题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得团队合作的重要性。
参考文献
[1] 郑郁正.单片机原理及应用.四川大学出版社,2003。
[2] 谭浩强.C程序设计(第二版).清华大学出版社,1999。
[3] 王晓君.安国臣等. MCS—51及兼容单片机原理与选型. 北京-电子工业出版社, 2003。
[4] 李启炎. Protel 99SE应用教程. 上海-同济大学出版社 2005.2
[5] 胡烨, 姚鹏翼, 江思敏. Protel 99 SE电路设计与仿真教程. 北京-机械工业出版社, 2006。
[6] 张义和,陈敌北。例说8051。北京:人民邮电出版社,2006。
[7] 张洪润,张亚凡。单片机原理及应用。清华大学出版社,2004。
致 谢
毕业设计是大学中学习和实践的一个重要环节。它综合的考察了一个学生对过去所学的知识的运用能力和对新知识吸收、消化能力,通过设计,可以培养我们独立思考、开拓创新、勇于探索的能力。在指导老师的精心指导下,我查阅了大量的文献资料,经过三个月的学习、讨论、设计、调试,最终完成了设计方案。通过设计,我们不仅掌握了设计的基本步骤,还学会了科学系统的设计方法,拓宽了知识面。在本课题设计中,为了熟悉课题,我通过图书馆、互联网学习查阅了许多相关的资料,加强了自学能力并且有意识地将掌握知识归纳总结运用到实践中来。
在这次毕业设计过程当中,离不开学校指导老师对我们的全力支持。他们尽最大努力为我们的毕业设计提供好的条件,以使我们的毕业设计能够顺利完成。
在此,我特别感谢王春圃老师。王老师在本次设计中给与了我很大的帮助,在理论上使我有了良好的基础,对整个设计有了清楚的思路。在设计过程中给我提出了许多宝贵的意见,并且帮助我一起解决设计中遇到的问题,为本次毕业设计耗费了许多的心血。同时,我也要感谢在设计中给予我支持的其他老师和同学!
【基于单片机的自动音乐播放器的设计(一)】相关文章:
基于CS管理的房地产企业开发设计06-04
基于web的异地并行设计与制造系统研究06-02
基于胜任力的企业个体绩效管理流程设计06-03
基于PLC的断路器型式试验系统设计03-10
基于工业机器人的自动化生产技术研究论文04-14
基于电话网络的热网远程控制系统设计05-11
浅谈基于工作流程的高职《国际贸易实务》课程教学模式设计06-13
基于分组技术的下一代光传送网05-29