基于单片机的数字FM收音机的设计_第1页
基于单片机的数字FM收音机的设计_第2页
基于单片机的数字FM收音机的设计_第3页
基于单片机的数字FM收音机的设计_第4页
基于单片机的数字FM收音机的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的数字FM收音机的设计 论 文 作 者: 论文 合 作者: 所 在 学 院: 所 学 专 业: 指导教师姓名: 论文完成时间: 摘要:本文在具体分析了STC89C52单片机的技术特点与数字FM收音机的基础上,提出了采用单片机控制收音机实现数字调频的方法,并给出了具体的软硬件设计。该系统利主要由STC89C52单片机、液晶显示器、按键、调频收音模块TEA5767、功放LM386组成1。实际运行时,用TEA5767搜索频率,利用单片机STC89C52控制处理,经LM386芯片放大音频功率同时再通过液晶显示器显示频率,最终实现87.5MHz108MHz调频广播的接收。相关的功能验证实验表明,本系统达到了既定的设计目标。关键词:单片机技术;收音机;频率搜索;液晶显示 第1章 课题分析与方案论证 1.1 课题要求第2章 硬件电路 2.1主控电路 2.2音频输出电路 2.3FM收音电路 2.4LCD1062液晶屏模块 2.5按键电路第3章 软件设计 3.1主程序设计 3.2液晶屏显示控制子程序 3.3收音机控制子程序 参考文献 一: 课题要求课题要求设计一个基于单片机的数字FM收音机,能够实现搜台、频率控制以及频率显示的功能。收音频段为87.5MHz108MHz,采用液晶显示器显示频率。通过对课题任务的分析可知,可以利用锁相环频率合成器BU2614与单片机STC89C52连接,实现87.5MHz108MHz调频广播的接收,并用TEA5767搜索频率,通过液晶显示器显示, 第2章 硬件电路 2.1 主控电路 1. 引脚描述 单片机的基本系统也称为最小系统,这种系统所选择的单片机内部资源已能满足系统的硬件需求,不需外接存储器或I/O接口,含有时钟电路和复位电路,外由电源供电。这种单片机内一定含有用户的程序存储器,用户程序写入到内部只读程序存储器。单片机STC89C52采用双列直插封装(DIP),有40个引脚。该单片机采用ATMEL公司的高密度非易失性存储技术制造,与美国Intel公司生产的MCS-51系列单片机的指令和引脚设置兼容。如图2-1所示为STC89C52的引脚结构图。 图2-1 STC89C52的引脚结构图STC89C52有40 条引脚,分为端口线、电源线、地线和控制线四类。STC89C52RC引脚功能说明8: (1)端口线(4*8=32条) STC89C52有四个并行I/O端口,每个端口有8条口线,用于传送数据。 P0.0P0.7:P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。 P1.0P1.7:这8条引脚和P0口的8条引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O使用时,P1.0P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。 P2.0P2.7:这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O口使用。它的第二功能和P0口的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样是可以传送存储器的读写数据。 P3.0P3.7:这组引脚的第一功能和其余端口的第一功能相同。第二功能作控制用,每个引脚并不完全相同,如表2-1所示为P3口第二功能。表2-1 P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)(2)电源线(1条)VCC为+5V电源线。(3)地线(1条)(4)控制线(6条) 外接晶体引脚XTAL1和XTAL2XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输入端。ALE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。 在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:允许访问片外存储器编程电源线,可以控制STC89C52使用片内ROM还是使用片外ROM。若EA=1,则允许使用ROM;若EA=0,则允许使用片外ROM。:片外ROM选通线,在执行访问片外ROM的指令MOVC时,STC89C52自动在PSEN线上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下,PSEN线均为高电平封锁状态。 RST:复位电源线,可以使STC89C52处于复位工作状态。通常,STC89C52的复位有自动上电复位和按钮复位两种。2. 时钟电路的设计时钟电路是计算机的心脏,它控制着计算机的工作节奏。单片机允许的时钟频率是因型号而异的,STC89C52典型值为11.05926MHZ,本设计采用的就是典型值。单片机STC89C52内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。定时反馈电路一般为石英晶振和电容组成的并联回路。如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。如图2-2所示为时钟的电路图,晶振大小为11.0592MHz,电容C1、C2大小为22PF。 图2-2 时钟电路图 3. 复位电路的设计 计算机在启动运行是都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机STC89C52有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平。使器件复位,只要RST保持高电平,单片机保持复位状态。此时ALE、P0、P1、P2、P3口等都输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。复位以后内部寄存器的初始状态为(SP=07),P0、P1、P2、P3为0FFH外,其它寄存器都为0。如图2-3所示为复位电路图,它能实现上电复位和手动复位的功能。 上电复位时,在图2-3中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电源接通的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。 手动复位时,在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。 图2-3 复位电路图 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路等组成。单片机最小系统如图2-4所示。 图2-4 单片机最小系统 2.3 FM收音电路 FM模块的控核心芯片采用飞利浦公司的TEA5767HN数字立体声FM芯片11,该芯片把所有的FM功能都集成到一个用HVQFN40封装的小方块中。芯片工作电压2.5V5.0V,典型值是3.3V;RF(调频)接收频率范围是76108MHz,(最强信号+噪声)/噪声的值在60dB左右,失真度在0.4%左右;双声道音频输出的电压在6090mV左右,带宽为22.5KHz。 TEA5767HN芯片主要具有以下特征:(1)集成高灵敏度的低噪声放大器。(2)FM到中频的混频器可以工作在87.5108MHz的欧美频段或7691MHz的日本频段,并且可预设接收日本108MHz的电视音频信号的能力。(3)射频具有自动增益控制功能,并且LC调谐振荡器只需固定片装电感。(4)内置的FM解调器可以省去外部鉴频器,并且FM的中频选择性可以在芯片内部完成。(5)可以采用32.768KHz或13MHz的振荡器产生参考时钟或可以直接输入6.5MHz的时钟信号。(6)集成锁相环调谐系统(7)可以通过I2C或三线串行总线来获取中频计数器值或接收的高频信号电平,以便进行自动调谐功能。(8)SNC12(立体声噪音抑制)、HCC(高频衰减控制)、静音处理等可以通过串行数字接口进行控制。(9)免费调谐立体声解码器。(10)自动调节温度范围(在VCCA,VCC(VCO)和VCCD=5V)。在方案设计时就已经确定FM部分采用按照推荐的应用设计电路图生产的模块。本设计FM模块采用封装完整版收音机模块,外接引脚只有10个,只需要关注引脚而不需要关注模块的内部结构,开发方便简单。下图2-10是模块的引脚封装,表2-4为引脚功能简介(引出引脚的功能和芯片引脚的定义完全相同)。 图2-10 TEA5767模块引脚图 表2-4 TEA5767模块引脚定义表引脚号符 号简介10ANT天线接口9GND接地8R右声道输出7L左声道输出6GND接地5VCC电源正极4NC无效端口3GND接地2CLK总线时钟线输入1DATA总线数据线输入/输出 图2-11 TEA5767模块电路连接图上图所示为TEA5767模块的FM电路连接图。图中,VCC接稳压电源模块中的3.3V电源。R_OUT、L_OUT为FM的音频信号输出,R_OUT为右声道输出,L_OUT为左声道输出,本设计左声道和右声道同时输出构成立体声。SDA和CLK为I2C通信的数据线和时钟线,外接10K的上拉电阻,系统的MCU通过I2C接口来对FM模块进行控制。芯片上的WREAD引脚在本系统中没有使用,故空接。CLK、SDA用于与系统的MCU实现串行通信13。2.4 LCD1602液晶屏模块1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个57或者511等点阵字符位组成,本设计采用的是57型的,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD是指显示的内容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。引脚说明如下:第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。1602与单片机的连线图,10K电位器调节对比度,15、16引脚分别接电源和地构成背光电源。图2-12 LCD1602模块连接图2.5 按键电路系统采用了4键输入以实现系统功能的设定,其中SW1、SW2分别用于操作频率的增加和减少,SW3、SW4分别用于操作自动搜台的向上调台和向下调台。由于系统中的其他模块对微控制器的端口占用较少还有很多没有使用的端口,键盘连接上直接采用了每个按键占用一个端口的形式。键盘的读取采用扫描的形式,当检测到有按键按下时,消抖动后进行键值判断。 如图2-13所示是按键电路的连接图,SW1、SW2、SW3、SW4分别接单片机的P2.0、P2.1、P2.2、P2.3口。按键按下对应单片机IO口为低电平。图2-13 按键电路连接图 第3章 软件设计 软件系统以数据处理为核心、通过不断扫描按键状态,实现数字立体声收音,同时显示电台信息。按键处理包含频率调节、电台切换模式,按键后,程序返回不同的键值给数据处理模块、收音控制,程序则相应进行后续动作。按键值确定后则需进行数据处理,包括频率值的转换计算、使用IIC 协议对TEA5767 模块的读写操作。收音控制数据处理模块发送五字节控制信息控制收音控制模块的读写动作,使收音模块进行搜索、选择频率锁定、报告当前数据状况等信息。收音模块返回的数据为5 字节信息格式,该信息发送到数据处理模块,供程序的后续处理. 最后,显示模块用来显示数据处理模块计算后的频率信息。 3.1主程序设计整个主程序主要由收音模块、液晶显示器模块、按键模块组成。首先对液晶显示器和TEA5767HN芯片初始化。接着就是对显示器显示关机状态,并开启定时器,对按键进行扫描。根据不同的按键进行响应的处理。系统初始化完成时对收音模块进行读取,此时收音模块将收到的数据进行分析处理,其后将最终得到的数据上传至单片机,单片机根据得到的数据驱动液晶显示器进行相应的显示,随后单片机将对系统键盘端口进行扫描,并根据扫描得到的键值进行相应的处理。整个系统主程序流程如图3-1所示。 图3-1 整个系统主程序流程部分源程序代码如下:void main()unsigned char i;lcd_init();/ 初始化LCD delay(10);frequency = 89800;radio_write(); / 写入收音机while(1)i = GetKey(); Lcd_Display(frequency); / 液晶显示switch (i) / 判断按键case 0x00: search(0); / 手动加break;case 0x01: search(1); / 手动减break;case 0x02: auto_search(0); / 向上调台break;case 0x03: auto_search(1); / 向下调台break;default: break; 3.2液晶屏显示控制子程序液晶屏显示驱动处于系统的最后端,属于人机交互界面,本次设计采用的液晶屏精确调整度是0.1MHZ。本设计系统开始时,系统赋予它一个初始值,如果有按键按下,初始值将会被清除,同时进行按键处理,液晶屏显示所相应的数值;若没有按键按下,液晶屏则直接显示原有的初始值。本设计用液晶屏显示,是因为液晶屏简单易设计,能够更加直观的观察与操作收音机。如图3-2为液晶屏显示控制子程序流程图。 图3-2 液晶屏显示控制子程序流程图void Lcd_Display(unsigned long i) /显示函数lcd_pos(0); /0列 lcd_wdat(0x46); /Flcd_pos(1); /1列 lcd_wdat(0x4D); /Mlcd_pos(5); /设置显示位置为第一行的第1个字符lcd_wdat(i/100000+0x30);lcd_pos(6); lcd_wdat(i%100000)/10000+0x30); lcd_pos(7); lcd_wdat(i%100000)%10000)/1000+0x30); lcd_pos(8); lcd_wdat(0xa5); /.lcd_pos(9); lcd_wdat(i%100000)%10000)%1000)/100+0x30); lcd_pos(11); lcd_wdat(0x4D); /Mlcd_pos(12); lcd_wdat(0x48); /Hlcd_pos(13); lcd_wdat(0x5a); /Z 3.3 收音机控制子程序收音机子程序处理中,在手动搜台时候,只需要给收音机发完命令字,以及频率,然后收音模块就读取所发送的频率,等待100ms进行数据处理和分析,判断是否收到电台,如果没有收到电台,频率增加(减少)0.1MHZ,再次继续读取频率所发送的频率;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论