朱建武
摘要:介绍了一种基于89C58RD单片机的音乐播放器硬件设计方案,可在数码管上显示时间,通过外置喇叭自动播放音乐。
关键词:单片机 存储芯片 液晶屏 音频功率放大器
1.设计要求
在基于单片机的音乐播放器系统设计中,采用89C58RD+型单片机为硬件基础,通过C语言程序对芯片进行编程。单片机需外接+5V稳压电源,并通过MAX232电平转换芯片和串口接入PC機。单片机工作时,用软件对定时器初值进行设定,从而得到所需要的声音频率;通过四位共阴LED数码管,可显示时间,并可进行定时设置;通过LM386N1芯片,将单片机输出的信号放大,接入喇叭即可发声。
2.分析
(1)对时间进行定时,当定时时间到后,通过喇叭能连续播放一段音乐。要求播放出的音乐的音阶准确,不能有太大偏差,否则会造成音乐声音刺耳难听;音乐播放必须连贯,即音乐必须有节奏感;喇叭放出的音乐声音响亮,不能太小,否则不能达到乐曲的提示作用。
(2)在四位共阴LED数码管上显示出时间(24小时制),包括小时、分钟,当定时1秒后,秒数加1;当定时满60秒后,秒数归零,分钟数加1;当定时满60分钟后,分钟数归零,小时数加1;当定时满24小时后,小时数归零。
本设计的软件部分包含了两个重要组成部分:音乐编程和时间程序。
设计的软件流程:程序开始运行时先对单片机进行初始化,其中包括定时器及其工作方式的选择、外部中断设定、定时器初值的设定。利用单片机,通过软件的方式产生所需要的音乐频率,并将收到的信号与音频编码表进行对比。若信号在编码表中,则将该频率的定时器初值写入定时器中,并读取频率的音阶,再从单片机的P1.0口输出,经过音频放大器驱动喇叭发出声音,利用驱动喇叭演示程序即可控制音乐的节拍。若信号不在编码表中,则返到初始化。
3. 硬件部分功能简介
设计的硬件流程如下,首先,PC机通过串口及MAX232芯片将程序下载到单片机中,其中包括把一个个的单音写入单片机的ROM存储器中,程序运行时再将音乐数据按顺序读出,利用单片机的定时器中断控制音乐节拍的长度,这样就能形成一段乐曲。在单片机P1.0口接入音频放大电路,将单片机输出的信号放大,再通过喇叭播放音乐。单片机P2口接4位共阴LED数码管,并外接1K欧的排阻,利用单片机内部的定时器中断控制时间程序,然后在数码管上显示出时间。
3.1 硬件电路图
通过串口与电脑相连相互传送数据。单片机通过P0口控制液晶显示,通过PI口控制24C1024芯片存储数据,通过串口将菜谱数据写入到24C1024芯片中去,同时调用24C1024芯片数据显示到液晶屏中。按键部分图略。按键选择菜名,客人最后确认后通过串口回传到PC中。
4. 仿真与调试过程
4.1时间显示程序仿真
对于时间显示程序,采用了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即可。
4.2音乐播放程序调试过程
关于音乐播放程序的调试,首先采用Preteus软件来仿真,但是该仿真软件中没有喇叭或蜂鸣器等声音播放工具。于是将3.1中的单片机的P1.0处接了一个示波器,想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。程序运行的时候,能看见示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要的频率,并且无法辨别音频变换的节奏是否正确。此方法并不适用。
接下来制作了一个简单的单片机播放器电路。即在实验板上焊接实验电路,电路由单片机89C58RD+、MAX232的外围电路组成,并在单片机的P1.0处用三极管连接一个简单的音频放大器,再外接一个喇叭。将程序写入单片机中,这样就能听出声音和音乐节奏是否正确。
5.总结
用单片机技术设计、制造的播放器控制系统,具有集成度高、功能强、体积小、速度快、存储量大、指令丰富,抗干扰性强,性能价格比高,通用性好,推广范围大,工作可靠,指示准确,易于匹配,使用寿命长,标准化系数高等一系列优势和特点。最后可在数码管上显示时间,当定时时间到后,喇叭自动播放一段连续的音乐。此设计摆脱了传统闹钟的刺耳声音,取而代之的是美妙的音乐,能为人们的日常生活提供准确的计时,且成本低廉,值得推广。