版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档可能无法思考全面,请浏览后下载! 河南大学物理与电子学院课程设计报告基于TEA5767的数字调频收音机报告人:王世威 专业:通信工程设计小组成员:王世威 、何康24 / 27目录 前言3一、主要器材介绍41.1 STC89C52单片机41.2 TEA5767收音模块儿4 1.3 1602LCD显示屏.5 1.4 LM386音频功率放大器.6二、系统原理及功能介绍72.1数字FM收音机基本原理7 2.2系统功能介绍7三、元件清单.9四、 制作过程104.1 前期准备104.2 实物图104.3焊接过程中遇到的问题和注意事项12五、程序.13六、结论23前言十九世纪无线电通讯技术的发明,使通信
2、摆脱了依赖导线的传统方式,是通信技术上的一次飞跃,也是人类科技史上的一个重要成就。作为无线电通信的的杰出成果,收音机的发明极大地改变了人们的生活方式,给人们的生活带来了无穷的乐趣。随着科技的发展,技术不断地更新换代,收音机也沿着矿石收音机、电子管收音机、晶体管收音机、集成电路收音机的轨道不断进步着。近年来,随着DSP技术的发展,采用DSP技术研发的收音机芯片的出现,“硬件无线电”由“软件无线电”代替,大大降低了收音机制造业的门槛。2006年深圳凯隆电子有限公司与美国芯科实验室合作,开发出世界上第一台数字收音机。数字技术收音机的问世,标志着传统模拟收音机将逐渐退出历史舞台。收音机的数字时代已经到
3、来。数字调频收音机就是无线电模拟信号由天线感应后接收后,在同一块儿芯片里放大,然后转化为数字信号,再对数字信号进行处理,然后还原成模拟音频信号输出。数字调频收音机体积小、重量轻、寿命长、频率稳定、操作简便等优点,使其在市场上越来越受欢迎。本次项目设计,我们对数字调频收音机的原理在理论上进行了充分的了解,基于其基本理论,我们制作了一台数字调频收音机。一、主要器材介绍 本系统主要由STC89C52单片机、1602LCD显示屏、LM386音频功率放大器、TEA5767收音模块儿、电阻电容等组成。1.1 STC89C52单片机STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统
4、可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止
5、,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。引脚如右图所示。1.2 TEA5767收音模块儿TEA5767是飞利浦公司生产的一款收音机芯片,很多手机,MP3、MP4里的收音机功能都是基于它实现的。TEA5767内置了主频高达75MHZ的数字信号处理器,实现384KBPS/48KHZ的MD级高品质MP3音乐文件回放,加上拥有一般MP3播放器难以企及的高保真回放线路(信噪比高达95DB,THD总谐波失真率0.05%同时非常省电。FM收音功能,这个功能主要是有FM收音模块来完成。其中FM收音模块的核心就是下面的Philips(飞利浦)TEA5767。这是一块性能比较良好
6、的FM收音芯片,很多的MP3都是用这个型号来实现FM收音功能。其引脚如下图所示。TEA5767模块儿引脚图1.3 1602液晶屏1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控
7、制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1.4 LM386音频功率放大器LM386是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地为参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386
8、特别适用于电池供电的场合。二、系统原理及功能介绍2.1 数字FM收音机基本原理FM型的收音机电路可用如下图所示的方框图来表示。收音机通过调谐回路选出所需的电台,送到变频器与本振电路送出的本振信号进行混频,产生中频输出(我国规定的FM中频为10.7MHZ),中频信号将检波器检波后输出调制信号,调制信号经低放、功放放大电压和功率,推动喇叭发出声音。2.2系统功能介绍 本项目设计的目的,就是设计制作出一个数字调频收音机。所以,本系统所实现的主要功能就是收音功能。通过单片机外接三个按键,分别控制复位,向上手动搜台,向下手动搜台。同时,所搜到的频道的频率由1602LCD显示。天线接到信号后,由tea57
9、67芯片进行处理,在单片机的控制下,再通过LM386功放芯片,最终通过喇叭播出广播。电路原理图如下:三、元件清单USB线*1根旋钮*2个1062LCD*1个10uF电解电容1个,100uF电解电容3个,22pF电容2个,104pF电容3个9*15万用板1张STC89C52单片机*1个12MHz晶振1个TEA5767收音模块儿1个10K电阻2个,4k电阻1个,1k电阻2个LM386功放*1个天线1根单片机基座1个按键*3,杜邦线若干排针16个喇叭1个四、 制作过程3.1 前期准备项目设计之初,我们通过查阅各种资料,对数字调频收音机的原理的进行了充分了解,以便有一个理论上的认识和把握。之后,通过对
10、原理的了解和制作要求,进行了电烙铁、焊锡、导线、电路板、单片机、液晶屏、收音模块儿等器材的选购与借取,为硬件的制作奠定了基础。软件方面,通过Keil软件用C语言编程,利用Proteus软件对部分电路进行仿真。程序调试无误之后,用单片机开发板将程序烧进STC89C52单片机,控制本系统工作。3.2 实物图经过认真考虑,拟定本系统的焊接主要分为最小系统、显示模块、TEA5767收音模块儿及周围电路、功放其周围电路、按键五个部分分步进行,既保证了焊接可以有条不紊的进行,又保证了焊接的准确性和完整性。由于本项目的器件较多,电路错综复杂,故焊接颇为费力。下附焊接完的几张实物图,以供参考。正面: 背面:工
11、作状态:左边两个旋钮分别用来调整音量和显示屏亮度。可以正常工作3.3 制作过程中遇到的问题和注意事项 在焊接的过程中,遇到了一些问题,给顺利焊接造成了一定的困难。主要问题有以下几个方面。一是元件布局和布线的问题。由于电子元件比较多,如何布局直接影响到电路的焊接。刚开始我们只是按照原理图上画的进行布局,结果在背面进行焊接的时候给布线造成了很大的困难,不得不采用大量的飞线。所以汲取这个教训,在以后的焊接中,之前都要进行认真地元件布局和布线,尽量减少飞线的使用,使整个板子显得更加漂亮,焊接更加容易,同时尽量减小对电路的影响。二是个别元件的的焊前测试和其特性的掌握。比较典型的就是按键和杜邦线,在焊接过
12、程中,有时候出问题一直找不到原因,最后发现是按键坏了或者杜邦线有问题。所以在使用之前应首先测试其良好与否。还有就是稳压管的特性,由于没有反接,造成电路无法正常工作,这也是一个教训。三是要注意特殊器件的焊接。本设计主要是TEA5767收音模块儿的焊接。由于该模块儿上面的焊接点太小,稍不注意就容易焊接坏,所以在焊接的时候需要格外小心,最好借助一个小基台。五、程序#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define DELAY5US _
13、nop_();_nop_();_nop_();_nop_();_nop_();/*TEA5767模块接线方法*sbit SDA=P26; sbit SCL=P27;/*频率调节按键接线*sbit Key1=P32;sbit Key2=P33;/=LCD1602接口连接方法=/*- |DB0-P0.0 | DB4-P0.4 | RW-P2.3 | |DB1-P0.1 | DB5-P0.5 | RS-P2.4 | |DB2-P0.2 | DB6-P0.6 | E-P2.2 | |DB3-P0.3 | DB7-P0.7 | -*/=*/ #define LCM_Data P0 /LCD1602数据接
14、口#define Busy 0x80 /用于检测LCM状态字中的Busy标识sbit LCM_RW = P23; /读写控制输入端,LCD1602的第五脚sbit LCM_RS = P24; /寄存器选择输入端,LCD1602的第四脚sbit LCM_E = P22; /使能信号输入端,LCD1602的第6脚/*参数定义*unsigned long int FM_FREQ; /频率unsigned short int FM_PLL; /PLLuchar idata sbuf5; / 数据发送缓冲区uchar idata numbyte;uchar idata numbyte_AMP;uchar
15、 idata ADDRESS_AMP;uchar idata ADDRESS_SEND; /7发送地址uchar idata ADDRESS_RECEIVE; /7接收地址uchar idata rbuf5; / 数据接收缓冲区uchar idata ampint5;uchar bdata PLL_HIGH; uchar bdata PLL_LOW; /设定用于搜索和预设的可编程频率合成器uchar bdata I2C_byte1;/发送的五字节7可位寻址的设置值uchar bdata I2C_byte2;uchar bdata I2C_byte3;uchar bdata I2C_byte4;
16、uchar bdata I2C_byte5;sbit MUTE =I2C_byte17;/如果MUTE=1,则左右声道被静音;MUTE=0,左右声道正常工作 sbit SM = I2C_byte16; /SM=1,则处于搜索模式;SM=0,不处于搜索模式sbit SUD=I2C_byte37; /SUD=1,增加频率搜索;SUD=0,减小频率搜索uchar byte1; uchar byte2;uchar byte3;uchar byte4;uchar byte5;uchar num1,num2,num3,num4;uchar tab1='0','1','
17、;2','3','4','5','6','7','8','9','A','B','C','D','E','F'bit bdata NACK; / 错误标志位/*相关函数声明*void init(void); /TEA5767初始化void delay600ms(void); /延迟600msvoid delay100ms(void);/延迟100msvoid delay10ms()
18、;void delay1ms(void);/延迟1msvoid sendnbyte(uchar idata *sla, uchar n);/与sendbyte函数构成I2C数据发送函数void I2C_start(void);/I2C 传输开始void sendbyte(uchar idata *ch);void checkack(void); /检查应答讯号void stop(void);/I2C传输结束void AMP_sendnbyte(uchar idata *sla,uchar numbyte_AMP);void key_scan(void);/键扫描void search_up(v
19、oid); /接收频率向上加void search_down(void); /接收频率向下减void setByte1Byte2(void); /设置第一第二字节频率void LCMInit(void);/LCD初始void DelayMs(uint Ms);/1MS基准延时程序void WriteDataLCM(uchar WDLCM);/LCD模块写数据void WriteCommandLCM(uchar WCLCM,BuysC); /LCD模块写指令uchar ReadStatusLCM(void);/读LCD模块的忙标void DisplayOneChar(uchar X,uchar
20、Y,uchar ASCII);/在第X+1行的第Y+1位置显示一个字符void LCDshow(void);void DelayMs(uint Ms);/*主程序*void main(void) numbyte = 5;numbyte_AMP=5; ADDRESS_SEND = 0xC0;/ TEA5767写地址 1100 0000ADDRESS_RECEIVE=0XC1;/读地址 1100 0001 ADDRESS_AMP=0X8E; init(); / 初始化TEA5767 LCMInit();/LCD初始 LCDshow(); while(1) key_scan(); /键扫描 /*按键
21、扫描程序*void key_scan(void) if(Key1=0) delay10ms(); if(Key1=0) while(Key1=0); search_up(); /频率向上 LCDshow(); delay600ms(); if(Key2=0) delay10ms(); if(Key2=0) while(Key2=0); search_down(); /频率向下 LCDshow(); delay600ms(); /*LCD1602显示程序*void LCDshow(void) num1=FM_FREQ/100000000; num2=(FM_FREQ%100000000)/100
22、00000; num3=(FM_FREQ%10000000)/1000000; num4=(FM_FREQ%1000000)/100000; DisplayOneChar(0, 4,'F');/ DisplayOneChar(0, 5,'M');/ DisplayOneChar(0, 6,'R');/ DisplayOneChar(0, 7,'a');/ DisplayOneChar(0, 8,'d');/ DisplayOneChar(0, 9,'i');/ DisplayOneChar(0, 1
23、0,'o');/ DisplayOneChar(1, 4, tab1num1); DisplayOneChar(1, 5, tab1num2); DisplayOneChar(1, 6, tab1num3); DisplayOneChar(1, 7, '.'); DisplayOneChar(1, 8, tab1num4); DisplayOneChar(1, 9,'M');/ DisplayOneChar(1, 10,'H');/ DisplayOneChar(1, 11,'Z');/*= LCM初始化=*/vo
24、id LCMInit(void) LCM_Data = 0; WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号 DelayMs(5); WriteCommandLCM(0x38,0); DelayMs(5); WriteCommandLCM(0x38,0); DelayMs(5); WriteCommandLCM(0x38,1); /显示模式设置,开始要求每次检测忙信号 WriteCommandLCM(0x08,1); /关闭显示 WriteCommandLCM(0x01,1); /显示清屏 WriteCommandLCM(0x06,1); / 显示光标移动设
25、置 WriteCommandLCM(0x0C,1); / 显示开及光标设置 DelayMs(100);/=LCD1602显示子程序=/ 写数据函数: E =高脉冲 RS=1 RW=0/=*/void WriteDataLCM(uchar WDLCM) ReadStatusLCM(); /检测忙 LCM_Data = WDLCM; LCM_RS = 1; LCM_RW = 0; LCM_E = 0; /若晶振速度太高可以在这后加小的延时 LCM_E = 0; /延时 LCM_E = 1;/*= 写指令函数: E=高脉冲 RS=0 RW=0=*/void WriteCommandLCM(uchar
26、 WCLCM,BuysC) /BuysC为0时忽略忙检测 if (BuysC) ReadStatusLCM(); /根据需要检测忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0; LCM_E = 0; LCM_E = 0; LCM_E = 1;/*= 正常读写操作之前必须检测LCD控制器状态:E=1 RS=0 RW=1; DB7: 0 LCD控制器空闲,1 LCD控制器忙。 读状态=*/uchar ReadStatusLCM(void) LCM_Data = 0xFF; LCM_RS = 0; LCM_RW = 1; LCM_E = 0; LCM_E = 0
27、; LCM_E = 1; while (LCM_Data & Busy); /检测忙信号 return(LCM_Data);/*=功 能: 在1602 指定位置显示一个字符:第一行位置015,第二行1631说 明: 第 X 行,第 y 列 注意:字符串不能长于16个字符=*/void DisplayOneChar( uchar X, uchar Y, uchar ASCII) X &= 0x1; Y &= 0xF; /限制Y不能大于15,X不能大于1 if (X) Y |= 0x40; /当要显示第二行时地址码+0x40; Y |= 0x80; / 算出指令码 Writ
28、eCommandLCM(Y, 0); /这里不检测忙信号,发送地址码 WriteDataLCM(ASCII);/*= 设定延时时间:x*1ms=*/void DelayMs(uint Ms) uint i,TempCyc; for(i=0;i<Ms;i+) TempCyc = 250; while(TempCyc-); /*void init(void) uchar idata sbuf5=0XF0,0X2C,0XD0,0X10,0X40; /模块预设值 uchar idata rbuf5=0X00,0X00,0X00,0X00,0X00; uchar idata ampint5=0X2
29、7,0X40,0X42,0X46,0XC3; FM_PLL=0X302C; FM_FREQ=100800000; /开机预设频率 PLL_HIGH=0; PLL_LOW=0; delay100ms(); delay100ms(); P1=0XFF; P2=0XFF; I2C_byte1=0XF0; /模块预设值 I2C_byte2=0X2C; I2C_byte3=0XD0; I2C_byte4=0X10; I2C_byte5=0X40; byte1=0X27; byte2=0X40; byte3=0X42; byte4=0X46; byte5=0XC3; sendnbyte(&ADDR
30、ESS_SEND,numbyte); delay100ms(); AMP_sendnbyte(&ADDRESS_AMP,numbyte_AMP);/*/送n字节数据子程序 void sendnbyte(uchar idata *sla, uchar n) uchar idata *p; sbuf0=I2C_byte1; sbuf1=I2C_byte2; sbuf2=I2C_byte3; sbuf3=I2C_byte4;I2C_start();/ 发送启动信号sendbyte(sla); / 发送从器件地址字节checkack(); / 检查应答位 if(F0 = 1) NACK = 1
31、;return; / 若非应答表明器件错误置错误标志位NACKp = &sbuf0;while(n-) sendbyte(p);checkack(); / 检查应答位if (F0 = 1)NACK=1;return; / 若非应答表明器件错误置错误标志位NACKp+;stop(); / 全部发完则停止/*/延迟100msvoid delay100ms()uchar i;for(i=100;i>0;i-)delay1ms();/*/延迟1msvoid delay1ms(void) uchar i;for(i=1000;i>0;i-);/*/在为高时,由高变低即为I2C传输开始
32、void I2C_start(void) SDA=1; SCL=1; DELAY5US; SDA=0; DELAY5US; SCL=0;/*/发送一个字节数据子函数void sendbyte(uchar idata *ch) uchar idata n = 8; uchar idata temp;temp = *ch;while(n-) if(temp&0x80) = 0x80) / 若要发送的数据最高位为1则发送位1SDA = 1; / 传送位1SCL = 1;DELAY5US; SCL = 0; SDA = 0;else SDA = 0; / 否则传送位0SCL = 1;DELAY
33、5US;SCL = 0; temp = temp<<1; / 数据左移一位/发送n字节数据子程序void AMP_sendnbyte(uchar idata *sla, uchar n) uchar idata *p; ampint0=byte1; ampint1=byte2; ampint2=byte3; ampint3=byte4; ampint4=byte5;I2C_start();/ 发送启动信号sendbyte(sla); / 发送从器件地址字节checkack(); / 检查应答位 if(F0 = 1) NACK = 1;return; / 若非应答表明器件错误置错误标
34、志位NACKp=&int0;while(n-) sendbyte(p);checkack(); / 检查应答位if (F0 = 1)NACK=1;return; / 若非应答表明器件错误置错误标志位NACKp+; stop(); / 全部发完则停止/*/向上搜索void search_up(void) MUTE=1;/静音 SUD=1; /搜索标志位设为向上 if(FM_FREQ>108000000)FM_FREQ=87500000; /判断频率是否到顶 FM_FREQ=FM_FREQ+100000;/频率加100K FM_PLL=(unsigned short)(4000*(FM_FREQ/1000+225)/32768);/计算值 setByte1Byte2();/设置I2C第一第二字节PLL值/*/ 向下搜索void search_down
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市管理协管员招聘考试(城市管理执法)试题及答案
- 中国变频加热设备项目投资可行性研究报告
- 中间包透气上水口行业深度研究报告
- 真空焊接炉总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 2025-2026学年三年级语文上册统编版 第八单元达标检测卷 (有答案)
- 提袋式离心机行业深度研究报告
- 中国PP-R采暖管项目投资可行性研究报告
- 中国凉水塔防腐项目投资可行性研究报告
- 中国中锰项目投资可行性研究报告
- 2025年部队体能理论题库及答案
- 心血管衰老的分子机制探索
- 变配电二次部分培训课件
- 入院患者评估课件
- 2025年艺术职称考试题库
- 圆明园概况讲解
- 新疆村医管理办法
- 2025年校招心理测试题目及答案
- 2025年综合基础知识题库(含答案)
- 超声引导下膀胱残余尿测定
- 字节跳动管理学案例
- 充电桩知识培训课件
评论
0/150
提交评论