课程设计单片机控制的收音机

上传人:第*** 文档编号:56951647 上传时间:2018-10-17 格式:DOC 页数:17 大小:1.26MB
返回 下载 相关 举报
课程设计单片机控制的收音机_第1页
第1页 / 共17页
课程设计单片机控制的收音机_第2页
第2页 / 共17页
课程设计单片机控制的收音机_第3页
第3页 / 共17页
课程设计单片机控制的收音机_第4页
第4页 / 共17页
课程设计单片机控制的收音机_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《课程设计单片机控制的收音机》由会员分享,可在线阅读,更多相关《课程设计单片机控制的收音机(17页珍藏版)》请在金锄头文库上搜索。

1、五邑大学五邑大学单片机课程设计单片机课程设计题目:基于单片机的收音机设计题目:基于单片机的收音机设计院系院系 信息工程学院信息工程学院 专业专业 电子信息工程电子信息工程(职教师资职教师资)学号学号 13071825 姓名姓名 骆子申骆子申学号学号 13071826 姓名姓名 申春龙申春龙 指导教师指导教师 姜为民姜为民 报告日期报告日期 2014 年年 12 月月 一、一、 概述概述收音机,是一种小型的无线电接收机。主要用于收听无线电发射台,通常是民用广播电台发送的娱乐及资讯节目。收音机的工作过程是:天线把空中的电磁场转化成电压信号,调谐电路选中所需频率的信号,检波器将高频信号还原成音频信号

2、(即解调),解调后得到的音频信号,再经过放大获得足够功率,推动扬声器发声。本次设计利用 STC89C52 单片机控制收音机模块 PL102BA-S(基于 SI4730芯片) ,可以接收不同频率的 FM 电台信号。作品使用 LCD1602 液晶屏显示,通过 5 个按键实现了调节频率和音量,存台和读台的功能。图 1 作品展示二、二、 设计方案分析设计方案分析1. 原理图分析原理图分析1.1 收音机模块收音机模块 PL102BA-S(基于(基于 SI4730 芯片)芯片)图 2 鞭状天线加上调频电路和 AM 铁氧体天线原理图收音部分选用了 PL102BA-S 收音机模块,它是最新开发生产的一片高性能

3、调频/调幅(FM/AM )双波段收音模块,采用 Silicon LABS 的全数字 COMS单晶片集成电路 SI4730。内置数字频率调谐和 DSP 解码器,支持数字音频输出及 RDS 接收功能。支持 I2C 及 SPI 总线控制模式,AM 支持环状天线及铁氧体磁性棒状天线。 其具有接收灵敏度高、抗干扰能力强、外部元件少、体积小、低功耗、低噪声、低成本、使用简单等优点。图 3 PL102BA-S 收音机模块电路接线图其中在:CLK(时钟脚): 接一个上拉电阻,因为 SI4730 使用了 I2C 通信接口。DIO(数据脚):由于 SI4730 和单片机电压不匹配,因此要串入一个限流电阻。RST(

4、复位脚):为低电平有效,同理此处也要串入一个限流电阻。FMI(天线脚):需要串入一个 104 的瓷片电容,只让频率合适的信号通过。ROT 和 LOT(左右声道输出脚):各接了一个耦合电容,防止直流输出。因为 SI4730 模块是 3.3V 供电,而 STC89C52 单片机是 5V 供电,因此需要降压供电。我们选用了 AMS 公司生产的线性稳压器 AMS1117-3.3 提供 3.3V 的电压给 SI4730 模块供电。AMS1117-3.3 是一个正向低压降稳压器,具有高精度、低漏失电压、有限流限热保护等优点。图 4 用排针和洞洞板引出引脚的收音机模块 PL102BA-S(基于 SI4730

5、 芯片)1.2 单片机最小系统单片机最小系统单片机最小系统,是指用最少的元器件组成单片机可以工作的系统。单片 机最小系统的三要素就是电源、晶振、复位电路。为简化电路,本次作品中省 去了复位电路。图 5 单片机最小系统单片机采用 STC89C52,这是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有

6、效的解决方案。图 6 单片机简洁的引线,省略了烧写接口和复位电路1.3 独立按键模块独立按键模块图 7 独立按键模块电路图独立按键模块主要是用来设置收音机的频率和音量,存台和读台功能的,这里将按键的一般接单片机的 I/O,一边接地。由于单片机 I/O 口内部具有上拉电阻,因此在按键没有按下的情况下,I/O 口检测到的是高电平;只要按键一按下,单片机 I/O 口就会检测到低电平。SW1 :模式键,用来切换此时是调节频率还是调节音量;SW2 :读台/确定键,可以用来读取已经存储在 EEPROM 的电台。还可以作为存台时的确定键。SW3 :存台键,用来存储电台到单片机的内部 EEPROM 中。SW4

7、 :加键,用来增加频率或者音量。SW5 :减键,用来减小频率或音量。图 8 按键布局1.4 液晶显示模块液晶显示模块 LCD1602图 9 LCD1602 液晶显示模块外观1602 采用标准的 16 脚接口和 TTL 电平,其中:第 1 脚:GND 接电源地。第 2 脚:VCC 接 5V 电源。第 3 脚:V0 为液晶显示器对比度调整端,根据经验此处用 1K 接地。第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第 6 脚:使能(enable)端,高电平(1)时读取信

8、息,负跳变时执行指令。第 714 脚:D0D7 为 8 位双向数据端。第 15 脚背光正极。第 16 脚背光负极。图 10 液晶显示模块 LCD1602 电路接线与引脚图2.2. PCBPCB 图图图 11 AD09 软件中的 PCB 图为了节约空间,我们将单片机放到液晶屏底下,而把晶振又放到单片机的底下。电源和收音模块则用排针引出,以方便安装。整机结构紧凑,体现了良好的设计和焊接功底。图 12 晶振、单片机和液晶屏的巧妙布局三、三、心得体会心得体会这次收音机设计,应该说是一波三折。一开始是打算用洞洞板搭焊的,但是用洞洞板搭焊的外观非常差,而且焊盘经常脱落。所以就改为印刷 pcb 版。对于因为

9、平时自己也有练练手,所以有单片机剩下来,就选择了这块STC89C52。买回模块 PL102BA-S 后,当然先看资料掌握性能和功能。然而资料全是英文的,我们花了好大的力气,反复查阅词典得知此模块功能非常齐全,具有 AM/FM/FM-RDS 三种接收功能,有数字/模拟两种音频输出,有 I2C/SPI两种控制方式。我们从实际出发,以简单实用为原则,确定只使用其 FM 接收、模拟音频输出和 I2C 控制功能。而收音模块的安装也是受到其他同学作品的启发。因为模块的尺寸实在太迷你了,许多同学的作品都用洞洞板和排针把模块的脚印出,效果居然不错,于是我们也依葫芦画瓢。接下来开始用 Altium Design

10、er 09 设计 PCB,用热转印纸印出来。可能是实验室的腐蚀药水浓度太低,居然浸泡了一天一夜还没有腐蚀好。查阅资料才知道,原来腐蚀的过程需要不断摇晃,以增加腐蚀速度。果然,边摇晃边浸泡,半小时左右就腐蚀好了。可是,凡事都没有两全的,在我们的 pcb 板快要腐蚀好的时候,我们发现有一些线路因为过分腐蚀而断开了。幸好断开的地方不是很大,焊的时候注意点就行了。制作出来后调试,大部分功能基本没问题,但是当手去触摸电路板的LCD1602 管脚时,LCD1602 会出现乱码,最终只能在 LCD1602 的信号脚上加入上拉电阻,防止干扰。接下来就是程序的优化问题,优化过程中发现,当按下模式键时,如果此时再

11、按下读台或存台键,屏幕就会出现乱码,最后在程序中加入相应的开关变量,最终问题得到解决。部分程序如下:void KeyRead()/读取按键并且执行按键操作static uchar msflag = 1;/*三行按键程序,很巧妙*/uchar ReadData=P10xff;/取反Trg=ReadData /判断是否点动Cont=ReadData;/判断是否长按if(Trg moshi+; moshiflag = 0;if(moshi=3)moshiflag = 1; moshi = 0;if(Trg dt(); /读台else /存台模式时cuntai = 0; moshi = 0; ct()

12、; /存台if(Trg if(Trg if(no=4)no = 4;dt(); /读台else if(cuntai) /存台模式no+;if(no=4)no = 4; else /频率和音量选择模式时switch(moshi)case 1 : /频率模式FM_FREQ+=10;/0.1MHzif(FM_FREQ = 10800) /108MHzFM_FREQ = 10800;Si47XX_Set_FM_Frequency(FM_FREQ); /设置FM的频率break;case 2 : /音量模式Volume+;if(Volume=63)Volume = 63;si47xxFMRX_set_v

13、olume(Volume);break;default : break;if(Trg if(no10) /长按多久才进入cnt_plus2=9;/用来下次快速进入switch(moshi) case 1 : /频率模式FM_FREQ+=100; /1MHzif(FM_FREQ = 10800)FM_FREQ = 10800;Si47XX_Set_FM_Frequency(FM_FREQ); /设置 FM 的频率break;case 2 : /音量模式Volume=Volume+1;if(Volume=63)Volume = 63;si47xxFMRX_set_volume(Volume);br

14、eak;default : break;else cnt_plus2=0;/清零,有毛刺if(Cont if(cnt_plus110) /长按多久才进入cnt_plus1=9;/用来下次快速进入switch(moshi)case 1 : /频率模式FM_FREQ-=100;/1MHzif(FM_FREQ = 6400)FM_FREQ = 6400;Si47XX_Set_FM_Frequency(FM_FREQ); /设置 FM 的频率break;case 2 : /音量模式Volume = Volume-1;if(Volume = 0)Volume = 0;si47xxFMRX_set_vol

15、ume(Volume);break;default : break;else cnt_plus1=0;/清零,有毛刺/*主函数*/void main (void)T_ERROR_OP a,b;LcdInit();FM_FREQ=9200;/FM 的初始频率(64108MHz),1 代表 10KHzDelay_1ms(200);si47xx_reset(); /si47xx 复位a=Si47XX_Power_Up(FM_RECEIVER); /si47xx 进入上电模式,并选择 FM接收模式if(a=ERROR)while(1);Delay_1ms(250); /这里一定要加延时,否则收音机不能收音b=Si47XX_Set_FM_Frequency(FM_FREQ); /设置 FM 的频率if(b=ERROR)while(1);Volume=Byte_Read(0x2800); /上电读取音量si47xxFMRX_set_volume(Volume); /设置音量LcdShowStr(1,0,“Welcome to use “);Delay_1ms(200);Delay_1ms(200);DisplayFreq(); /在液晶上显示频率相关的数据Time0_init(); /定时器 0 初始化while(1)void time0(void) interrupt 1static u

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号