基于51单片机的数控调频收音机.docx
- 文档编号:25420913
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:34
- 大小:980.35KB
基于51单片机的数控调频收音机.docx
《基于51单片机的数控调频收音机.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数控调频收音机.docx(34页珍藏版)》请在冰豆网上搜索。
基于51单片机的数控调频收音机
课程设计论文
题目:
基于RDA5807的数控FM收音机
院(系):
信息与通信学院
专业:
电子信息工程
学生姓名:
杜俊峰
学号:
1100220509
指导教师:
蔡晓东
2013年12月15日
摘要
此收音机基于RDA5807收音模块,通过STC89C52单片机来控制频率显示、音量控制,单片机与收音模块之间通过IIC通信协议来进行通信控制。
该数控收音机具有噪音消除、软静音、低音增强,而且灵敏度高、噪声小,抗干扰能力强,能够在液晶屏上实时显示频率和声音。
并且体积小、方便携带。
关键词:
RDA5807,STC89C52.IIC通信
Abstract
ThisradioradiomodulebasedRDA5807bySTC89C52microcontrollertocontrolthefrequencydisplay,throughIICcommunicationprotocolforcommunicationbetweenthecontrolvolumecontrol,microcontrollerandradiomodule.Thedigitalradiowithnoisecancellation,softmute,bassboost,andhighsensitivity,lownoise,stronganti-interferenceabilitytodisplaythefrequencyandsoundinrealtimeontheLCDscreen.Andsmall,easytocarry.
Keywords:
RDA5807,STC89C52、IIC
目录
引言1
1设计要求及方案选择1
1.1设计要求1
1.2方案选择1
1.2.1方案对比1
1.2.2方案构图2
1.2.3各部分作用2
2理论分析与设计3
2.1单片机最小系统设计3
2.1.1STC89C52特性3
2.1.2STC89C521引脚功能3
2.2收音模块及存储芯片电路设计4
3电路设计6
3.1硬件电路设计6
3.1.1单片机最小系统电路6
3.1.2模块电路设计6
4软件设计7
4.1IIC通信协议分析7
4.2程序流程图9
5系统调试10
5.1调试结果10
5.2结果分析10
6结论10
谢辞11
参考文献12
附录...............................................................................................................................................13
引言
收音机在日常生活中必不可少,在信息化的今天,数字化已经成为时代潮流,数控收音机越来越受到人们的青睐,相比于传统收音机,数控收音机以良好的人机互动、操作简单化更符合人们的要求
1设计要求及方案选择
1.1设计要求
(1)65-108MHz全球FM接收频段相容(包括日本76-91MHz和欧美87.5-108MHz)
(2)具备噪声消除、软静音、低音增强等功能
(3)灵敏度高、噪声小、抗干扰能力强
(4)具备频率显示功能
1.2方案选择
在如今这个信息化时代,信息的接收和处理显得越发重要,收音机作为传统接受信息的工具,已经深入到人们的日常生活中。
在电子领域,对于制作调频收音机,有以下两种方法。
一是用分立元件设计收音机。
二是运用集成模块用数控来做收音机。
1.2.1方案对比
方案一:
分立元件所做的收音机,其缺点显而易见,调试难度大,音质差,成本相比集成收音机高很多,在现在基本上已经被淘汰了。
方案二:
用集成模块做收音机。
集成模块做的收音机有以下特点:
(1)体积和功耗小。
一片集成电路放大器可具有数十个晶体管、二极管、电阻和电容等所组成电路的功能。
但其体积和功耗仅相当于一个小功率晶体管。
(2)可靠性高。
由于集成电路外部连线和焊点极少,减小了出故障的可能性,故可靠性高。
(3)保真度好。
由于集成电路是把所有晶体管都制在一块片子上,晶体管的配对和静态电流等都可处于最佳状态,所以失真度很小,一般都小于1%。
故用它制作的收音机保真度较好。
(4)灵敏度高。
这是因为集成电路可以在其内部多制一些晶体管,从而提高整机的灵敏度。
(5)功率大、音质优美。
用集成电路和大功率晶体管共同组装的收音机能达到几十瓦以上的不失真功率输出,功率余量大。
因此,声音洪亮,音质优美。
(6)频响宽。
集成电路放大器的开环增益非常高,接成闭环后能减小失真和加宽频响。
其频响范围可从40赫到20千赫,比分立元件组装的收音机频响宽。
(7)稳定性好、性能指标高。
集成电路工作稳定,为提高整机性能,电路可设计成分立元件难以实现的高性能电路。
(8)集成电路中相邻元件的参数匹配优良,故放大器的零点漂移和共模抑制比等直流参数得到改善。
在输入端无信号时,功率输出级的中点始终保持零电位,不会因温漂而烧扬声器。
这是目前元件所达不到的。
(9)装配和调试比较简单。
用集成元件组成的功放电路,只要焊接无误,几乎不需调整,即能保证放音。
对于变频和中放集成电路,则不必调整静态工作点。
用集成元件组成的组合式收音机,只要调准中频频率,完成三点统调即可。
(10)价格便宜。
即在整机性能和功能相同的情况下,成本比分立元件收音机低很多,这样有利于收音机的推广普及。
此外,集成电路的应用,为收音机的多功能创造了必备的条件。
例如,自动选台、预选节目、频率的数字显示等性能,已随着集成电路的应用而相继实现。
所以我最终选择了方案二,选用RDA5807收音模块做调频收音机。
1.2.2方案构图
基于RDA5807的数控收音机,在电子领域有许多相关的方案和设计思路,在仔细考量现有的条件和本身的专业能力后我选择用STC89C52单片机作为控制系统来驱动RDA5807收音模块。
由于5807的工作电压只要3.3V,而单片机的工作电压是5V,所以我选用AS1117降压芯片来将5V的电压降到3.3V来给收音模块供电,因为担心内存不够,我外加一块24C02存储芯片,与RDA5807一起通过IIC串口通信与单片机最小系统相连。
我用四个按键分别控制音量的加减和上下搜索频道,并且用1602液晶来显示当前频道频率和音量大小。
因为都是模块化的器件,所以本次的作品体积小,携带方便,有实用价值。
方案利用的是单片机最小系统、液晶显示部分、按键控制和收音模块与存储芯片部分共同等组成的系统,下图为方案系统框图。
1-1方案系统框图
1.2.3各部分的作用
(1)液晶显示。
液晶显示用1602液晶屏来显示频率和音量信息。
单片机最小系统将收到的频率和音量数据发送给液晶,让其显示出来。
(2)按键控制。
四个按键分别用来控制音量大小和频率搜索,提供人机互动,通过单片机来控制收音模块
(3)单片机最小系统。
用STC89C52单片机来实现数控,接受按键信息来控制收音模块,再将收音模块反馈的信息传给液晶。
(4)收音模块。
通过和最小系统进行信息交换,按要求完成用户的指令
2.理论分析与设计
2.1单片机最小系统电路设计
2.1.1STC89C52特性
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
STC89C52实物图
2.1.2STC89C52引脚功能
1电源:
①VCC-芯片电源,接+5V;
②VSS-接地端;
2.时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
3.控制线:
控制线共有4根:
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:
外ROM读选通信号。
RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
4.I/O口线:
P0、P1、P2、P3共四个八位口。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
P0口也用以输出外部存储器的低8位地图1址。
由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用ALE。
P1口是专门供用户使用的I/O口,是准双向口。
P2口是从系统扩展时作高8位地址线用。
不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。
P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。
作为第一功能使用时操作同P1口。
STC89C52的引脚图
2.2收音模块及存储芯片电路设计
“RRD-102V2.0”立体声收音模块(FMStereoradioModule)高灵敏度、低功耗、超小体积的调频立体声收音模组。
采用RDAMicroelectronics的RDA5807M(或RDA5802NM),此电路外围元件少、噪声系数极小。
具有体积小、低功耗、低成本、应用简单、使用范围广等优点。
是一款简单易用且具极高性价比的单芯片FM立体声收音模组。
它能很好的完成课设要求。
由于它只需要3V电压工作,我用as1117线性稳压芯片将5v的单片机工作电压降到3V。
模块的引脚及外围电路图
AS1117应用电路
3.电路设计
3.1硬件电路的设计
本次课设的硬件电路主要分成两大块来做板,一块是单片机最小系统和液晶及按键的部分;另一部分是以收音模块为主的模块部分。
3.1.1单片最小系统部分电路图
单片机最小系统外围电路只需要接复位电路及震荡电路就行,而显示及按键只需要接到I/O口就行了。
下面是其原理图:
3.1.2模块电路设计
由单片机给1117芯片和24C02供电,再将降压得到的3V电压供给RDA5807模块,由于模块和芯片的外围电路都资料上都已经给出来了,所以只需要将其连接到一起就可以了。
J1接单片机电源,J3接单片机I/O口
模块原理图
4.软件设计
4.1IIC通信协议分析
本次课程设计硬件电路设计比较简单,但是程序比较难,它的难度在于RDA5807采用的是IIC通信模式,这种通信模式对时序要求很严格。
IIC通信协议有以下特点:
(1)只要求两条总线线路一条串行数据线SDA一条串行时钟线SCL
(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主发送器或主机接收器
(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏
(4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s高速模式下可达.4Mbit/s
(5)片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整
(6)连接到相同总线的IC数量只受到总线的最大电容400pF限制
I2C协议总线信号时序分析
1.数据的有效性:
SDA线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。
2.起始和停止条件
当SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件。
当SCL线是高电平时,SDA线由低电平向高电平切换表示停止条件。
3.总线空闲状态
SDA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高;
4.数据传输与应答信号ACK
发送到SDA线上的数据必须是8位的。
每次传输可以发送的数据不受限制。
每个字节后必须在时钟的第9个脉冲期间释放数据总线(SDA为高),
由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。
首先传输的是数据的最高位(MSB)。
如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,
可以使时钟SCL保持低电平迫使主机进入等待状态。
当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。
4.地址格式
数据的传输遵循如图4.1完整的数据传送所示,在起始条件之后,发送一个7位的从机地址,紧接着第8位是数据方向(R/—W),0-表示发送数据(写),
1-表示接收数据(读)。
数据传输一般由主机产生的停止位(P)终止。
但是如果主机仍希望在总线上通讯,它可以产生重复起始条件(Sr),和寻址另一个从机,
而不是首先产生一个停止条件。
在这种传输中,可能有不同的读/写格式结合。
现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。
为了提供硬件的效率和简化电路的设计,
PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。
I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。
作为一个专利的控制总线,I2C已经成为世界性的工业标准。
每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:
LCD驱动器)或者可以接收也可以发送的器件(例如:
存储器)。
发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。
I2C是一个多主总线,即它可以由多个连接的器件控制。
基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。
但是由于数据传输速率和应用功能的迅速增加,
I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。
并且最近还增加了高速模式,其速度可达3.4Mbits/s。
它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。
IIC通信协议一般的过程:
1-先向总线发出芯片地址
2-如果有芯片地址正确的芯片,会产生一个SDA上应答。
3-接着主机再发出应答过的芯片发出将要所进行操作的片内地址。
4-芯片地址正确的芯片,会再产生一个SDA上应答。
5-此时如果是读操作,从芯片将输出数据到SDA上。
如果是写操作,主机会将数据写到SDA上。
4.2程序流程图:
根据以上资料,结合单片机知识,编出了相关程序,这是程序流程图:
程序框图
具体程序详见附录
5.系统测试
5.1调试结果:
所能接受的频率
87.0MHZ
87.1MHZ
88.0M
88.3M
89.8M
90.0M
94.1M
95.0M
96.0M
97.7
99.0M
100.0
101.1
101.4
101.5
102
104
105
106
108
5.2结果分析:
根据结果可知,其满足了87~108MHZ(欧美)频率接受要求,并且具有良好的噪音消除和抗干扰能力。
液晶显示频率和音量,完全符合课设题目要求,因此,此作品达到老师所给要求,是成功的。
6.总结
通过这段时间的辛苦努力,在老师和大家的帮助下,终于把这个课程设计题目完成了,也能够满足课设题目所定的要求,具有频率显示功能,并且能够搜索到相应范围内的频率,采用数字控制,操作简单,携带方便。
谢辞
本论文设计在老师的悉心指导和严格要求下业已完成,从课题选择到具体的写作过程,论文初稿与定稿无不凝聚着心血和汗水,在我的课程设计期间,老师为我提供了种种专业知识上的指导和一些富于创造性的建议,老师一丝不苟的作风,严谨求实的态度使我深受感动,没有这样的帮助和关怀和熏陶,我不会这么顺利的完成课程设计。
在此向老师表示深深的感谢和崇高的敬意!
同时,在论文写作过程中,我还参考了有关的书籍和论文,在这里一并向有关的作者表示谢意。
我还要感谢同组的各位同学以及我的各位室友,在课程设计的这段时间里,你们给了我很多的启发,提出了很多宝贵的意见,对于你们帮助和支持,在此我表示深深地感谢!
参考文献
[1]康华光.电子技术基础[M].北京:
高等教育出版,2006,68(3):
40~57.
[2]李强.51系列单片机应用软件编程技术[M].北京:
北京航空航天大学,2009:
77~90.
[3]谭浩强.C语言程序设计教程[M].北京:
高等教育出版社,1991:
30~32.
[4] 樊昌信通信原理(第6版)[M].北京:
国防工业出版社,2006:
20~65
[5] 宋树祥,周冬梅.高频电子线路.[M]北京大学出版社,2007年2月
[6] 陈邦媛.射频通信电子线路学习指导.[M]科学出版社,2007年6月
[7] 吴慎山.高频电子线路.[M]电子工业出版社,2007年1月
[8] 谢沅清.通信电子线路.[M]电子工业出版社,2007年7月
[9] 曾兴雯.高频电子线路.[M]高等教育出版社,2004年1月
[10] 杨翠娥.高频实验与课程设计.[M]哈尔滨工程大学出版社,2005年1月
[11] 于洪珍.通信电子线路.[M]清华大学出版社,2006年1月
[12] 陈利永.电子电路基础.[M]中国铁道出版社,2006年7月
附录
附录一程序
/*主程序*/
#include"reg52.h"
#include"intrins.h"
#include"lcd.h"
#include"IIC.h"
#include"delay.h"
sbitK1=P2^1;
sbitK2=P2^2;
sbitK3=P2^3;
sbitK4=P2^4;
unsignedlongfrequency;
//RDA5807寄存器
unsignedcharRDA_reg_data[8]=
{
0xd0,0x00,//02H
0x00,0x00,//03H
0x00,0x40,//04H
0x90,0x88,//05H
};
unsignedcharcodecdis1[]={"XiaoDU'sRADIO"};
unsignedcharcodecdis2[]={"FMVOL"};
charcodereserve[3]_at_0x3b;//保留0x3b开始的3个字节
/**********************************************************
连续写寄存器子函数
**********************************************************/
voidRDA5807_write_reg(void)
{
uchari;
I2C_start();
//收音模块写入操作
I2C_write_byte(0x20);
//寄存器连续写操作
for(i=0;i<8;i++)
{
I2C_write_byte(RDA_reg_data[i]);
}
I2C_stop();
}
/**********************************************************
连续读寄存器子函数
**********************************************************/
voidRDA5807_read_reg(uchar*reg_buf)
{
I2C_start();
//收音模块读取操作
I2C_write_byte(0x21);
//寄存器连续读操作
reg_buf[0]=I2C_read_byte(I2C_ACK);
reg_buf[1]=I2C_read_byte(I2C_ACK);
reg_buf[2]=I2C_read_byte(I2C_ACK);
reg_buf[3]=I2C_read_byte(I2C_NACK);
I2C_stop();
}
/**********************************************************
模块上电初始化子函数
**********************************************************/
voidRDA5807_power(void)
{
delayms(50);
//发送软件复位指令
RDA_reg_data[0]=0x00;
RDA_reg_data[1]=0x02;
RDA5807_write_reg();
delayms(10);
//收音模块默认参数
RDA_reg_data[0]=0xd0;
RDA_reg_data[1]=0x01;
RDA5807_write_reg();
}
/**********************************************************
功能描述:
收音模块自动寻台模式
**********************************************************/
voidRDA5807_FM_seek(void)
{
uintchan;
ucharreg_data[4]={0x00,0x00,0x00,0x00};
RDA_reg_data[3]&=~(1<<4);//调谐禁用
//内部自动寻台使能
RDA_reg_data[0]|=(1<<0);//SEEK位置1
RDA5807_w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数控 调频 收音机