本文主要是介绍毕业设计 基于51单片机FM数字收音机设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机FM数字收音机设计
1 硬件电路设计
1.1 主控制器电路设计
在此次FM调频数字收音机的设计中,系统主控电路模块是STC89C52单片机。主要是考虑到此种单片机在程序编写以及引脚分布的过程中与学校教学基本一致,因此在实际应用中上手简单,易于操作。STC89C52单片机在分装结构中包括DIP和SOP两种类型,两者的主要区别是前者是直插,后者则为贴片方式。此次设计选取的是DIP直插类型。STC89C52单片机共有40个引脚,包括电源引脚、晶振配置引脚、复位引脚、I/O口输入输出引脚等[8]。I/O口引脚可分为4组,分别对应P0-P3,在程序的编写过程中,主要是利用对I/O口进行操作来完成程序编写。在实际程序的编写过程中,不仅可以直接对单个引脚进行操作,同时也可以对一组单片机的引脚进行程序的编写,保证用户在实际程序编写过程中的便捷。STC89C52单片机在程序指令的选择上采用MCS-51指令集,这其中集成了8K的FLASH,主要是考虑到用户在下载程序的过程中,由于反复擦写,内部数据不会出现丢失。STC89C52单片机内部自带定时器、串口通信等功能,便于单片机与外部的芯片进行连接,整体上实现系统产品设计的功能。
图1.1 单片机引脚图
在单片机的最小系统中,晶振电路模块是十分重要的。晶振电路主要是保证单片机内部程序在运行过程中具有一定的时间基准。在系统程序指令的运行周期中,晶振所要采取的频率直接影响到程序指令运行的周期。晶振电路如图1.2所示,整个晶振电路增加了两个电容,保障系统运行过程中的稳定性。
图1.2 晶振电路
在单片机的最小系统中,除了晶振电路模块以外还包括复位电路模块。复位电路的设置能够帮助单片机系统在遇到故障的情况下,能够重新开始运行。复位电路可以解决例如电压不稳导致的系统程序故障、程序跑乱的复杂情况。单片机系统设置有RST复位引脚,此引脚需要在高电平的状况下,程序才能保证正常的运行,避免程序一直处于初始状态[9]。如图1.3所示是系统的复位电路,当系统上电之后,在电容的作用下,复位引脚与GND连接变低。而当系统上电完成之后,电容便会处于充满电的状况,此时引脚变高,使得系统程序会重新开始运行。同时为了便于系统复位的便捷,系统加入按键,能够使用户进行手动复位。当手动复位按键按下时,复位引脚变低,系统自动进入复位状态,当按键松开时程序就会自动开始运行。
图1.3 复位电路
1.2 显示电路
在显示方案的选择上,本文是选择LCD液晶来作为显示设备。对于LCD液晶显示器来说,其有多种不同的尺寸和分辨率,在选择上需要根据实际情况进行选择。比如在公共场合就会选择大尺寸高清晰度的,而在一些小型设备上则需要体积较小,价格便宜的。结合本次设计的课题需求,在此对于显示的要求并不高,因此最终选择了LCD1602来作为液晶显示设备。
其实从其型号名字就可以大致看其分辨率信息。该显示器为点阵字符型液晶显示器(两行显示,每行可显示16个字符),字符可以是数字[10],也可以是英文或者是定义的一些特殊字符,但是不能是中文。在控制引脚上,其引脚看起来比较多,但时间控制并不复杂,首先就是其电源供电引脚,供电的电压范围比较宽,在3到5V之间都是可以的,但是为了其显示效果好,要求供电电源的电流有一定的供电能力。其次就是数据引脚,其数据引脚为D0-D7这8个引脚,单片机是通过这8个引脚将显示的数据传输到液晶上,当然是需要按照一定的规则的,而这个规则就是通过液晶RW,RW,EN引脚去控制,在液晶数据手册上对具体要求都有进行了要求。因此需要按照要求去编写程序来进行控制,以达到显示正确结果的目的。同时还要注意的是,该型号的液晶具有背光条件引脚VO,需要通过外部电阻分压的形式给其一个合适的电压,用来调节对比度,其才能较好的显示信息。
图1.4 液晶电路图
1.3 按键电路
在FM调频数字收音机系统设计中,通常需要相应的人机交互接口方便用户或者设计人员进行功能性的输入和选择。而按键则是其中最基础也是最广泛的使用方式,如家电的遥控器,电脑键盘,手机按键等等,这些常见的电子产品都预留了按键电路,方便用户进行使用。在本次设计中,同样的设计了相应的按键电路,对于按键其有很多种不同的类型,在材质上有金属的,塑料的等等;在状态效果上,有自锁按键,有单次触发按键等等;在某一些场合还有电容按键,多状态按键,矩阵键盘等等。在此选择了简易的单次触发按键,当按下时按键两端导通,当松开时按键两端则断开,因此单片机只需要通过监控按键两侧引脚的电压变化就可以判断按键闭合与否,然后就可以根据设定的程序来执行相应的操作。此时如果按键数量较少,而功能较多,那么就可以在软件上加以处理,比如同一个按键按下一次时功能变一次,每按一次功能就变一下,设计一个循环切换的效果,这样就可以应对多功能而按键少的情况。如果按键接口足够,则在软件处理上就不需要弄的这么复杂。按键电路如图1.5所示。
图1.5 按键接口电路图
1.4 时钟电路设计
根据FM调频数字收音机课题要求,在此需要加入时钟管理功能,对于时钟管理的实现通常具有两种形式,一种是采用单片机本身自带的定时器进行计时,并通过软件进行换算得到时间,这种方式软件工作量大并且准确度低,而且掉电存储问题较难处理。另一种方式则是采用专用的时钟管理芯片来进行,本次设计选择后者,也就是采用时钟芯片DS1302来完成时间的管理[11]。该芯片模块包括了芯片本身还有电池以及一些基础的电阻和晶振。其中电池部分,其负责的就是当系统断电时,DS1302内部的时钟还能继续走,以此来实现掉电保存时间的功能。而晶振是按照手册要求采用的32.768K,通过晶振的震荡芯片内部会自动进行走时,其内部包含有秒,分,时,星期,年,月,日等时间信息,并且在润年会自动修正,准确度非常高。单片机在控制时,只需要通过引脚与其SCLK,CE和I/O引脚进行连接,按照规定的时序对其进行配置后,去直接读取时间信息就可以实现时间的管理功能。如果需要修改时间的话,也是通过这个接口去修改DS1302内部时间的数据,以此来达到目的。
图1.6 时钟电路电路
1.5 闹钟电路
此次FM调频数字收音机,设计了闹钟功能,因此在此选择了蜂鸣器作为闹钟的发声元器件。蜂鸣器控制电路如图所示,单片机的IO口主要是通过三极管来对蜂鸣器进行控制,而为什么要通过三极管来控制呢,是因为对于蜂鸣器来说,其作为发声器件,正常工作时需要达到一定大小的电流才能发出声音,电流越大,声音越大[12]。而由于从单片机管脚的输出电流很小,通常是只有几毫安,因此是无法直接驱动的,所以就通过三极管来作为放大电路,通过构建电流放大的形式,来控制蜂鸣器,以此来达到单片机控制蜂鸣器发声的目的。
图1.7 闹钟电路
1.6 收音机电路
在此采用TEA5767收音机芯片,该芯片不仅可以通过天线接收信息,还可以将接收的信息进行输出。该芯片采用CMOS技术,芯片内部集成有晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,这一系列的构成保证只需要少量的外围器件就可以实现语音录放系统的建立[12]。语音录放系统在实际操作指令的实现过程中,相应的操作命令主要通过串口通信或者是Microwire送入,不同的频率水平的高低决定了录音时间的长短以及录音音质的好坏。芯片内部的数据信息存储于闪烁存储器中,可以进行反复录音,断电情况下,保存时间较长。TEA5767语音芯片的实际工作电压为5V,工作电流范围是25-30mA,系统音质较强,适合应用于移动手机以及便携化的电子产品设计中。
LM386语音放大芯片,功耗较低,可调整电压增益情况,工作电源电压范围较大,外部连接的元器件数量较少,在正常工作下总谐波失真小,因此被广泛应用于录音机以及收音机等小型电子设备的产品设计中。为了减少外围元件,芯片电压增益设置为20。芯片输出端口调整为电源电压的一半,在6V电源电压的工作条件下,其静态功耗为24mW,这一低功耗的优势保证LM386语音放大芯片适用于电池供电的各类场合[13]。
1.7 语音存储与播放电路的设计
图1.8 收音机电路
在此次FM调频数字收音机系统的设计中,用于进行语音信息的接收和播放的是TEA5767语音芯片,芯片的相应操作交由微控制器进行控制工作,然后通过LM386放大器将TEA5767输出的语音信息进行放大,再通过喇叭进行输出。
2 系统调试
2.1 硬件调试
在系统完成硬件模块设计以及软件程序编写操作之后,需要设计系统中所需的各项元器件以及相应的配套工具来完成整个实物制做。在实物制做过程中,采用手工焊接的方法,使用电烙铁对实物进行焊接。需要注意的是,在整个产品焊接过程中,需要注意以下几点。第一,需要对整个电路板以及相应的元器件的焊接部分进行整理,避免由于外景环境因素干扰导致其本身出现生锈或油污的影响出现通电的情况存在。在烙铁工作过程中首先应当触碰引脚加热后再加入焊丝,焊接引脚的过程中需要注意避免触碰到其他引脚。另外一方面,焊接过程中需要注意给焊接的温度,避免由于高温导致元器件的损坏,加大后期的器件调试工作。需要对每个硬件部分进行细心检查,避免出现虚焊,漏焊的情况。
2.2软件调试
在根据系统要求完成硬件设计后,就需要开始使用软件平台进行程序开发,在程序开发的过程中,为了增加效率通常采用如下的流程:在KEIL开发平台上新建工程,然后对各个子模块进行程序的编写,在开始设计时主要是对一些简单的功能模块进行程序编写,尤其是人机交互模块,这样方便后续进行调试。在完成编写后,通过平台的编译系统进行编译,并根据提示进行软件程序的修改,直到整个程序没有在KEIL软件上进行报错。然后通过JTAG或者串口下载器将编译生成的HEX文件下载到单片机中,在第一次下载时,通常是下载简单的程序,方便进行一些基本的判断,然后不断的增加程序不断的下载来增加功能,以达到最终目的。在程序下载后,几乎可以肯定的是第一次下载的程序往往没办法实现我们想要的结果,这个时候就需要进行调试,使用在线调试系统可以观察单片机内部寄存器的状态或者执行单步运行,这样可以方便的查询问题点,达到快速解决问题的目的。系统进入后,可以通过在菜单栏中的选择,来对需要检测的数据变量,寄存器值等进行监测,工具栏上的按钮还可以执行单步,跳出循环等多种方式的执行操作,方便设计人员进行调试。
2.3 实物调试
如图2.1所示,是此次FM调频数字收音机设计制作的实物图,在对实物进行功能测试中,可以完成设计的各项要求实现收音机FM调频播放的功能。
图2.1 实物效果图
PCB原理图
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!
这篇关于毕业设计 基于51单片机FM数字收音机设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!