大学生毕业设计 基于TEA5767和单片机的数字FM收音机设计

合集下载

基于TEA5767的数字式收音机设计报告

基于TEA5767的数字式收音机设计报告

大学物理与电子学院课程设计报告基于TEA5767的数字调频收音机报告人:王世威专业:通信工程设计小组成员:王世威、何康目录前言 (3)一、主要器材介绍 (4)1.1 STC89C52单片机 (4)1.2 TEA5767收音模块儿 (4)1.3 1602LCD显示屏 (5)1.4 LM386音频功率放大器 (6)二、系统原理及功能介绍 (7)2.1数字FM收音机基本原理 (7)2.2系统功能介绍 (7)三、元件清单 (9)四、制作过程 (10)4.1 前期准备 (10)4.2 实物图 (10)4.3焊接过程中遇到的问题和注意事项 (12)五、程序 (13)六、结论 (23)前言十九世纪无线电通讯技术的发明,使通信摆脱了依赖导线的传统方式,是通信技术上的一次飞跃,也是人类科技史上的一个重要成就。

作为无线电通信的的杰出成果,收音机的发明极改变了人们的生活方式,给人们的生活带来了无穷的乐趣。

随着科技的发展,技术不断地更新换代,收音机也沿着矿石收音机、电子管收音机、晶体管收音机、集成电路收音机的轨道不断进步着。

近年来,随着DSP技术的发展,采用DSP技术研发的收音机芯片的出现,“硬件无线电”由“软件无线电”代替,大大降低了收音机制造业的门槛。

2006年凯隆电子与美国芯科实验室合作,开发出世界上第一台数字收音机。

数字技术收音机的问世,标志着传统模拟收音机将逐渐退出历史舞台。

收音机的数字时代已经到来。

数字调频收音机就是无线电模拟信号由天线感应后接收后,在同一块儿芯片里放大,然后转化为数字信号,再对数字信号进行处理,然后还原成模拟音频信号输出。

数字调频收音机体积小、重量轻、寿命长、频率稳定、操作简便等优点,使其在市场上越来越受欢迎。

本次项目设计,我们对数字调频收音机的原理在理论上进行了充分的了解,基于其基本理论,我们制作了一台数字调频收音机。

一、主要器材介绍本系统主要由STC89C52单片机、1602LCD显示屏、LM386音频功率放大器、TEA5767收音模块儿、电阻电容等组成。

基于单片机和TEA5767HN的FM收音机系统的设计

基于单片机和TEA5767HN的FM收音机系统的设计

在当前数字信息技术和网络技术高速发展的PC时代。

嵌入式技术越来越同人们的生活紧密相关。

其中掌上嵌入式电子产品更是给人们的生活带来了很大方便和很多快乐。

尽管生活方式不断发生变化,但无线电仍然很流行。

因此,本文针对TEA5767HN数字收音机芯片的控制机理,阐述了通过该芯片和C51单片机来将FM数字收音机嵌入智能电子产品的设计方法。

1 系统整体设计思路本立体声FM数字收音机的设计目标是通过单片机AT89S52来控制FM接收芯片TEA5767HN,从而实现可自动搜索并存储10多个电台节目(也可手动搜索并存储电台节目)。

所收听电台的频率和台号及时钟可在显示模块中的LCD上显示,音量则可通过音量加、减按键自主控制,并能存储关机时设定的数据以及闹钟功能。

具体系统设计框图如图1所示。

本系统主要由单片机AT89S52控制模块、TEA5767HN收音模块、音量控制模块、ROM存储模块、显示模块、按键模块和电源模块七部分组成。

本系统硬件设计的关键则在于FM接收、音频处理等模拟部分;软件设计的关键在于控制模块与收音模块之间的通信。

从图1中可以看出,控制模块仅仅通过I2C总线与收音模块连接并控制收音机工作。

本设计使用单片机P3口的两个I/O脚来模拟I2C总线的SDA和SCL时序并与TEA5767HN 通信;TEA5767HN输出的左右声道音频信号可通过音量控制模块进行前级放大及音量控制,然后输入到TDA7057进行后级功率放大,最后输出到扬声器。

单片机可通过I2C总线进行音量调节;ROM存储模块主要用于存储电台数据、音量数据和时钟数据,为存储和读取数据带来方便。

系统可通过按键进行操作,通过MCU检测按键信号并经单片机实现手动搜台、自动搜台、音量控制、时钟调整等功能,各项操作提示和操作结果均可通过LCD显示出来。

稳压电源模块产生的5 V和3.3 V电压可分别为各个模块器件供电。

2 硬件系统电路设计由于本系统硬件设计的关键在于FM接收、音频处理等模拟电路部分,其余电路均为常规电路,因而其硬件系统的设计着重分析收音模块、音量控制模块这两部分电路。

单片机控制的TEA5767高性能FM收音机DIY

单片机控制的TEA5767高性能FM收音机DIY

[分享]单片机控制的TEA5767高性能FM收音机DIY(含原理图,源代码)Post By:2007-10-10 11:41:57本帖向大家介绍新型FM收音机的设计及制作。

想想当年我们是什么做收音机的。

高放混频,解调,立体声解码,锁相等好几个芯片,线路焊好了,但痛苦才开始。

有设备还好些,没有更苦。

为了找谐振点,不停的调电容电感,不停的换电容电感······终于有声音,但始终都没那么好。

现在,痛苦终于过去。

因为有了新一代的芯片TEA5767。

TEA5767 ,零调整。

线路又极其简单。

一个晶振,一个电感,几个电容完了。

通过I2C 接口送几个字节的数据进去就ok。

此主题相关图片如下:此主题相关图片如下:源代码:可以存台的版本。

本文用到的收音模块可到:/参考// WINAVR GCC// ATmega8// clock: internal 1Mhz#include <avr/io.h>#include <avr/interrupt.h>#include <avr/signal.h>#include <avr/delay.h>#include <avr/eeprom.h>#include '3310LCD_function.c'#define uchar uint8_t#define uint uint16_t#define SLA_W 0b11000000 #define SLA_R 0b11000001uchar senddata[5] ;uchar readdata[5] ;uchar search = 0;uchar search_up = 0;uchar mode = 1;uchar station = 0;uint pll = 0x29da; // 88Mhz uint fre = 8750;//-------------------------------// 延时void delay_ms(uint ms){uint i;for(i=0;i<ms;i++)_delay_loop_2(250);}//I2C主机模式输出void set5767(void){uchar i = 0;TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); // SEND START SIGNAL while (!(TWCR & (1<<TWINT))); // WAIT FOR START SIG//if ((TWSR & 0xF8) != START) ERROR();TWDR = SLA_W; // send addressTWCR = (1<<TWINT) | (1<<TWEN);while (!(TWCR & (1<<TWINT)));//if ((TWSR & 0xF8) !=MT_SLA_ACK) ERROR();for ( i = 0; i < 5; i++ ){TWDR = senddata;TWCR = (1<<TWINT) | (1<<TWEN); // send datawhile (!(TWCR & (1<<TWINT)));// if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR();}TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); //SEND STOP SIGNAL//LCD_write_english_string(60,3,'sOK');}//I2C主机模式输入void read5767(void){uchar i = 0;TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); // SEND START SIGNAL while (!(TWCR & (1<<TWINT))); // WAIT FOR START SIG//if ((TWSR & 0xF8) != START) ERROR();TWDR = SLA_R; // send addressTWCR = (1<<TWINT) | (1<<TWEN);while (!(TWCR & (1<<TWINT)));for ( i = 0; i < 5; i++ ){TWCR = (1<<TWINT) | (1<<TWEN); // read datawhile (!(TWCR & (1<<TWINT)));readdata = TWDR ;// if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR();}TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); //SEND STOP SIGNAL//LCD_write_english_string(10,3,'rOK');}void show_frequency(void){uint32_t nPLL =0; //Decuint32_t frequency = 0; //Khzuchar display_bit[5];uchar tbTmp1=readdata[1];uchar tbTmp2=readdata[0];tbTmp2&=0x3f;nPLL=pll ;//tbTmp2*256+tbTmp1;// calculate searched station frequencyif(senddata[2]&0x10)frequency =(unsigned long)(nPLL*82/10-225);elsefrequency =(unsigned long)(nPLL*82/10+225);display_bit[0] = frequency / 100000 ;if ( display_bit[0] == 0 ) display_bit[0] = 0x20;else display_bit[0] += 0x30;display_bit[1] = (frequency / 10000)%10 +0x30;display_bit[2] = (frequency / 1000)%10 +0x30;display_bit[3] = (frequency / 100)%10 +0x30; display_bit[4] = (frequency / 10)%10 +0x30; LCD_write_english_string(0,2,' ' );LCD_write_char(display_bit[0]);LCD_write_char(display_bit[1]);LCD_write_char(display_bit[2]);LCD_write_english_string(30,2,'.' );LCD_write_char(display_bit[3]);LCD_write_char(display_bit[4]);LCD_write_english_string(48,2,' MHz' );}void show_frequency2(void){uchar display_bit[5];display_bit[0] = fre / 10000 ;if ( display_bit[0] == 0 ) display_bit[0] = 0x20; else display_bit[0] += 0x30;display_bit[1] = (fre / 1000)%10 +0x30; display_bit[2] = (fre / 100)%10 +0x30;display_bit[3] = (fre/10) %10 +0x30;display_bit[4] = fre%10+0x30;LCD_write_english_string(0,2,' ' );LCD_write_char(display_bit[0]);LCD_write_char(display_bit[1]);LCD_write_char(display_bit[2]);LCD_write_english_string(30,2,'.' );LCD_write_char(display_bit[3]);LCD_write_char(display_bit[4]);LCD_write_english_string(48,2,' MHz' );}void show_rx_power(void){uchar temp;temp = (readdata[3]>>4);LCD_write_english_string(60,0,' ');LCD_write_char((temp/10)%10 + 0x30 ); LCD_write_char(temp%10 + 0x30 );}void show_rx_power_blank(void){LCD_write_english_string(60,0,' ');}void calculate_pll(void){uint32_t temp;temp = fre;pll = (uint)( ( (temp*10-225)*4000)/32768);}void init(void){DDRB = 0XFF;PORTB = 0XFF;DDRD = 0B11100000;PORTD = 0XFF;DDRC = 0B00000000;PORTC = 0Xff; // IO initdelay_nms(250);delay_nms(250);delay_nms(250);delay_nms(250);//TWITWBR = 12;TWCR = (1<<TWEN); //SEND STOP SIGNALOSCCAL=0x9d; // 8M系统内部时钟校准//设置MCU的I/O口DDRB |= LCD_RST | LCD_DC | LCD_CE | SPI_MOSI | SPI_CLK;SPSR |= (1<<SPI2X); // 设置SPI时钟倍速SPCR |= (1<<SPE)|(1<<MSTR); // 使能SPI接口,主机模式,4M时钟LCD_init(); //初始化液晶}//////////////////////////////////////////////////////////////////int main(void){init();uint x;senddata[0] = pll/256; //load 100MHz pllsenddata[1] = pll%256; // away's low side injection senddata[2] = 0b00100000;senddata[3] = 0b10010000;senddata[4] = 0b01000000;readdata[0] = senddata[0];readdata[1] = senddata[1];LCD_write_english_string(0,0,'FM STEREO' );//LCD_write_english_string(0,5,' stereo' );//LCD_write_english_string(0,2,' 99.1Mhz' );show_frequency();LCD_write_inverse_string(0,5,' UP ');LCD_write_inverse_string(48,5,' DOWN ');station = eeprom_read_byte(22);fre = eeprom_read_word( station *2);calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);//delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);while(1){start:if ( (PIND&0x0c) == 0x04){delay_nms(50);if ( (PIND&0x0c) == 0x04){LCD_write_english_string(48,5,' DOWN ' );delay_nms(200);x= 0;while(bit_is_clear(PIND, 3)){x++;if ( x > 65530 ) //判断是否长按{if ( mode ){mode = 0; //改变模式LCD_write_english_string(0,4,'SET CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);}else{mode = 1; //改变模式LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);LCD_write_english_string(24,4,' ' );eeprom_write_word(station*2,fre);}loop_until_bit_is_set(PIND, 3);LCD_write_inverse_string(48,5,' DOWN '); goto start;}}//LCD_write_english_string(0,4,'KEY1 press' ); LCD_write_inverse_string(48,5,' DOWN ');if ( mode ){station --;if ( station < 1 ) station = 10; eeprom_write_byte( 22,station);//*pst = station *2;fre = eeprom_read_word( station *2); calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' ); LCD_write_char(station/10 +0x30); LCD_write_char(station%10 +0x30); }else{fre -=5;if ( fre <= 8750 ) fre = 10800;calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();}}if ( (PIND&0x0c) == 0x08){delay_nms(50);if ( (PIND&0x0c) == 0x08){LCD_write_english_string(0,5,' UP ');delay_nms(200);if ( mode ){loop_until_bit_is_set(PIND, 2);LCD_write_inverse_string(0,5,' UP ');station ++;if ( station >= 11 ) station = 1;eeprom_write_byte( 22,station);//*pst = station *2;fre = eeprom_read_word( station *2); calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' ); LCD_write_char(station/10 +0x30); LCD_write_char(station%10 +0x30); }else{fre +=5;if ( fre >= 10800 ) fre = 8750;calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();//loop_until_bit_is_set(PIND, 2);LCD_write_inverse_string(0,5,' UP ');}}}}}。

基于TEA5765收音模块制作可显示频率的FM收音机相关文件

基于TEA5765收音模块制作可显示频率的FM收音机相关文件

TEA5767的总线接口和控制寄存器可编程芯片必须要由单片机通过控制总线向芯片内的寄存器写入控制字才能正常工作。

TEA5767的控制总线有I2C和3-wire两种,引脚BUSMODE为低时选用I2C总线,引脚BUSMODE 为高时选用3-wire总线。

这里以I2C总线为例说明控制字的写入和读出。

1.TEA5767的I2C总线TEA5767 I2C总线的地址是CO,是可收发的从器件结构,无内部地址。

最大低电平是0.2 VCCD,最大高电平是0.45VCCD。

向TEA5767 写入数据时,地址的最低位是0,即写地址是C0。

读出数据时地址的最低位是1,即读地址是C1。

TEA5767的控制寄存器要写入5个字节,每次写入数据时必须严格按照下列顺序进行:地址、字节1、字节2、字节3、字节4、字节5。

每个字节的最高位首先发送。

在时钟的下降沿后写入的数据生效。

上电复位后,设置为静音,所有其它位均被置低,必须写入控制字初始化芯片。

表1 I2C写模式TEA5767遵守通用的I2C总线通信协议,写模式和读模式的格式分别见表1和表2。

2.写数据TEA5767内部有一个5个字节的控制寄存器,在IC上电复位后必须通过总线接口向其中写入适当的控制字,它才能够正常工作。

每个数据字节各位的功能含义见表4到表14。

表3 写模式数据序列表4 数据字节1的格式表5 数据字节1各位的说明表6 数据字节2的格式表7 数据字节2各位的说明表10 搜索停止电平设定3.读数据和写数据类似,从TEA5767 读出数据时,也要按照“地址、字节1、字节2、字节3、字节4、字节5”这样的顺序读出,读地址是C1。

读出的5个字节的含义见表16到表25中的说明。

表15 读模式表16 字节1的格式表17 字节1的说明表19 字节2的说明表20 字节3的格式下面是用来计算PLL控制字的C语言程序:static void AssembleFrequencyWord(void){UINT16 twPLL =0; //DecUINT32 tdwPresetVCO =gdwPresetVCO; //KhzBYTE tbTmp1;BYTE tbTmp2;// calcu1ate frequency dataword bits from given station frequency BCD:if(FlagHighInjection)twPLL =(unsigned int)((float)((tdwPresetVCO+225)*4)/(float)REFERENCE_FREQ);elsetwPLL=(unsigned int)((float)((tdwPresetVCO -225)*4)/(float)REFERENCE_FREQ);//convert word to byte f.tbTmp1 =(unsigned char)(twPLL%256); //6789=Hex1A85 -->133=Hex85tbTmp2 =(unsigned char)(twPLL/256); // -->26=Hex1AWriteDataWord[0]=tbTmp2; //high block WriteDataWord[1]=tbTmp1;}其中频率的单位均为KHz,计算的结果是2字节的二进制数。

单片机控制的TEA5767高性能FM收音机DIY

单片机控制的TEA5767高性能FM收音机DIY

[分享]单片机控制的 TEA5767高性能FM 收音机 DIY (含原理图,源代码 ) Post By : 2007-10-10 11:41:57本文用到的收音模块可到: / 参考本帖向大家介绍新型 FM 收音机的设计及制作。

想想当年我们是什么做收音机的。

高放混频,解调,立体声解码,锁相等好几个芯片,线路焊好了,但痛苦才开始。

有设备还好些,没有更苦。

为了找谐振点,不 停的调电容电感,不停的换电容电感••…终于有声音,但始终都没那么好。

现在,痛苦终于过去。

因为有了新一代的芯片 TEA5767。

TEA5767 ,零调整。

线路又极其简单。

一个晶振,一个电感,几个电容完了。

通过 接口送几个字节的数据进去就ok 。

I 弓此主题相关图片如下:电子・CNC 爱好看源动力|二1此主题相关图片如下: 电子・CNC 爱好者■源动力源代码:可以存台的版本。

I2C 磁动力论坛bbs 磁动力论坛bbs.cdle. net// WINAVR GCC// ATmega8// clock: internal 1Mhz#include <avr/io.h>#include <avr/interrupt.h>#include <avr/signal.h>#include <avr/delay.h>#include <avr/eeprom.h>#include '3310LCD_function.c'#define uchar uint8_t#define uint uint16_t#define SLA_W 0b11000000 #define SLA_R 0b11000001uchar senddata[5] ;uchar readdata[5] ;uchar search = 0;uchar search_up = 0;uchar mode = 1;uchar station = 0;uint pll = 0x29da; // 88Mhzuint fre = 8750;//// 延时void delay_ms(uint ms){uint i;for(i=0;i<ms;i++)_delay_loop_2(250);}//I2C 主机模式输出void set5767(void){uchar i = 0;TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); // SEND START whileSIGNAL (!(TWCR & (1<<TWINT))); // WAIT FOR START SIG //if ((TWSR & 0xF8) != START) ERROR();TWDR = SLA_W; // send addressTWCR = (1<<TWINT) | (1<<TWEN);while (!(TWCR & (1<<TWINT)));//if ((TWSR & 0xF8) !=MT_SLA_ACK) ERROR();for ( i = 0; i < 5; i++ ){TWDR = senddata;TWCR = (1<<TWINT) | (1<<TWEN); // send datawhile (!(TWCR & (1<<TWINT)));// if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR();}TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); //SEND STOP SIGNAL // if ((TWSR & 0xF8) != MT_DATA_ACK) ERROR();}//LCD_write_english_string(60,3,'sOK');}//I2C 主机模式 输入void read5767(void){uchar i = 0;TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); // SEND START while (!(TWCR & (1<<TWINT))); // WAIT FOR START SIG //if ((TWSR & 0xF8) != START) ERROR();TWDR = SLA_R; // send addressTWCR = (1<<TWINT) | (1<<TWEN);while (!(TWCR & (1<<TWINT)));for ( i = 0; i < 5; i++ ){TWCR = (1<<TWINT) | (1<<TWEN); // read datawhile (!(TWCR & (1<<TWINT)));readdata = TWDR ;SIGNALTWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); //SEND STOP SIGNAL//LCD_write_english_string(10,3,'rOK');}void show_frequency(void){uint32_t nPLL =0; //Decuint32_t frequency = 0; //Khzuchar display_bit[5];uchar tbTmp1=readdata[1];uchar tbTmp2=readdata[0];tbTmp2&=0x3f;nPLL=pll ;//tbTmp2*256+tbTmp1;// calculate searched station frequency if(senddata[2]&0x10)frequency =(unsigned long)(nPLL*82/10-225); elsefrequency =(unsigned long)(nPLL*82/10+225);display_bit[0] = frequency / 100000 ;if ( display_bit[0] == 0 ) display_bit[0] = 0x20; else display_bit[0] += 0x30;display_bit[1] = (frequency / 10000)%10 +0x30;display_bit[2] = (frequency / 1000)%10 +0x30;display_bit[3] = (frequency / 100)%10 +0x30;display_bit[4] = (frequency / 10)%10 +0x30;LCD_write_english_string(0,2,' ' );LCD_write_char(display_bit[0]);LCD_write_char(display_bit[1]);LCD_write_char(display_bit[2]);LCD_write_english_string(30,2,'.' );LCD_write_char(display_bit[3]);LCD_write_char(display_bit[4]);LCD_write_english_string(48,2,' MHz' );}void show_frequency2(void){uchar display_bit[5];display_bit[0] = fre / 10000 ;if ( display_bit[0] == 0 ) display_bit[0] = 0x20;else display_bit[0] += 0x30;display_bit[1] = (fre / 1000)%10 +0x30; display_bit[2] = (fre / 100)%10 +0x30; display_bit[3] = (fre/10) %10 +0x30;display_bit[4] = fre%10+0x30;LCD_write_english_string(0,2,' ' );LCD_write_char(display_bit[0]);LCD_write_char(display_bit[1]);LCD_write_char(display_bit[2]);LCD_write_english_string(30,2,'.' );LCD_write_char(display_bit[3]); LCD_write_char(display_bit[4]);LCD_write_english_string(48,2,' }void show_rx_power(void){uchar temp;temp = (readdata[3]>>4);LCD_write_english_string(60,0,'LCD_write_char((temp/10)%10 LCD_write_char(temp%10 + } void show_rx_power_blank(void) {LCD_write_english_string(60,0,' }void calculate_pll(void){uint32_t temp;temp = fre;MHz' );');+ 0x30 ); 0x30 );');pll = (uint)( ( (temp*10-225)*4000)/32768);void init(void){DDRB = 0XFF;PORTB = 0XFF;DDRD = 0B11100000;PORTD = 0XFF;DDRC = 0B00000000;PORTC = 0Xff; // IO initdelay_nms(250);delay_nms(250);delay_nms(250);delay_nms(250);//TWITWBR = 12;TWCR = (1<<TWEN); //SEND STOP SIGNALOSCCAL=0x9d; // 8M 系统内部时钟校准// 设置MCU 的I/O 口DDRB |= LCD_RST | LCD_DC | LCD_CE | SPI_MOSI| SPI_CLK;SPSR |= (1<<SPI2X); // 设置SPI 时钟倍速SPCR |= (1<<SPE)|(1<<MSTR); // 使能SPI 接口,主机模式,4M 时钟LCD_init(); // 初始化液晶////////////////////////////////////////////////////////////////// int main(void){init();uint x;senddata[0] = pll/256; //load 100MHz pllsenddata[1] = pll%256; // away's low side senddata[2] = 0b00100000;senddata[3] = 0b10010000;senddata[4] = 0b01000000;readdata[0] = senddata[0];readdata[1] = senddata[1];LCD_write_english_string(0,0,'FM STEREO' //LCD_write_english_string(0,5,' stereo' );//LCD_write_english_string(0,2,' 99.1Mhz' ); show_frequency();LCD_write_inverse_string(0,5,' UP ');LCD_write_inverse_string(48,5,' DOWN '); station = eeprom_read_byte(22);injection );fre = eeprom_read_word( station *2); calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);//delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);while(1){start:if ( (PIND&0x0c) == 0x04){delay_nms(50);if ( (PIND&0x0c) == 0x04){LCD_write_english_string(48,5,' DOWN ' );delay_nms(200);x= 0;while(bit_is_clear(PIND, 3))x++;if ( x > 65530 ) //判断是否长按{if ( mode ){mode = 0; // 改变模式LCD_write_english_string(0,4,'SET CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);}else{mode = 1; // 改变模式LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);LCD_write_english_string(24,4,' ' );eeprom_write_word(station*2,fre);loop_until_bit_is_set(PIND,3);LCD_write_inverse_string(48,5,' DOWN '); goto start;}//LCD_write_english_string(0,4,'KEY1 press' );LCD_write_inverse_string(48,5,' DOWN ');if ( mode ){station --;if ( station < 1 ) station = 10;eeprom_write_byte( 22,station);//*pst = station *2;fre = eeprom_read_word( station *2); calculate_pll(); show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);}else{fre -=5;if ( fre <= 8750 ) fre = 10800;calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();}}if ( (PIND&0x0c) == 0x08){delay_nms(50);if ( (PIND&0x0c) == 0x08){LCD_write_english_string(0,5,'delay_nms(200);UP ');if ( mode ){loop_until_bit_is_set(PIND, LCD_write_inverse_string(0,5,' station ++;if ( station >= 11 ) station 2);UP '); = 1;eeprom_write_byte( 22,station);//*pst = station *2;fre = eeprom_read_word( station *2);calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767();show_frequency2();show_rx_power();LCD_write_english_string(0,4,'CH' );LCD_write_char(station/10 +0x30);LCD_write_char(station%10 +0x30);}else{fre +=5;if ( fre >= 10800 ) fre = 8750;calculate_pll();show_rx_power_blank();senddata[0] = pll/256;senddata[1] = pll%256;set5767();delay_nms(200);delay_nms(200);read5767(); show_frequency2(); show_rx_power();} }//loop_until_bit_is_set(PIND,LCD_write_inverse_string(0,5,' UP ');2);。

《网络与信息》基于TEA5767的数字收音机设计

《网络与信息》基于TEA5767的数字收音机设计

一、总体方案设计 1、FM接收频率范围:88MHz~108MHz。

2、设计硬件控制电路和单片机控制程序完成对FM收音模块的操作。

3、有电台自动搜索功能,能够控制电台搜索方向,搜索到电台信号后即可收听电台播音。

4、有电台频率显示功能,电台存储功能二、软硬件的系统设计(一)、硬件结构及各部分功能:单片机根据键盘输入,通过I2C对5767模块的控制寄存器进行读写操作,以实现5767模块的自动手动搜索功能,音频信号经过由TDA2822构成的功放电路放大处理由扬声器输出。

并将从5767模块中读取的频率字换算后显示在LCD上。

按存储键时,单片机将频率字写入24c02实现存台功能,按读取键即可收听所存电台。

总体框图:(二)、软件流程图三、测试给收音机上电后频率跳到初始设定值(91.8MHz),按手动搜索(上、下),可实现0.1MHz步进;按自动搜索键(上、下),可搜出最近的符合设定信号清晰度的频道;按存台键,可以将即时频率存入24c02中;按读取键即可调出该频率所对应的电台。

手动搜索时,从低端频率88MHz(PLL控制字是2A11H),每按一次手动搜索按钮,频率增加100kHz,读搜到电台标志位RF(读模式字节1的B7)为1时搜到电台,否则未搜到。

当搜索到波段尽头时,BLF(读模式字节1的B6)为1,如果再按手动搜索按钮,则从低端频率重新开始搜索。

自动搜索时,可以用静音搜索模式,搜索开始前静音位(写模式字节1的B7)置1,若从波段的低端频率88MHz开始搜索,采用向上搜索方式(写模式字节3的B7=1),反复读取控制字的RF标志位,若RF=1,则表明搜到电台。

接着检测STEREO位(读字节3的B7)为1,说明是立体声信号。

再检测BLF标志位,若BLF=1,说明已经搜到波段尽头,这时需将搜索的起始频率设为高端频率108MHz(PLL控制字是339BH),搜索方向设为向下搜索。

若BLF=0,说明未搜索到波段尽头,这时注意再按下自动搜索按钮时,应将当前停止位置的频率增加100kHz,然后继续搜索,否则程序可能停留在第一个搜到的电台频率上。

基于单片机的数字FM收音机设计与实现

基于单片机的数字FM收音机设计与实现
基于单片机的数字FM收音机设计与实现
基于51单片机的数字FM收音机
设计与实现
摘 要
关键词:数字调频;STC89C52;TEA5767;TDA2030
ABSTRACT
Nowadays peopleusually use the radio for manual FM accept , it is much trouble, and because the rx sensitivity is not high, the frequency band received is very narrow。TEA5767 has high-performance RF AGC circuit, high sensitivity receiving, reference frequency selection flexible and it can be the realization of automatic search platform。So inthis designingI will use the STC89C52 single-chip microcomputer and TEA5767 as the core components of digital FM radio system andUse the I2C communication to connect between STC89C52 and TEA5767 chip。Through the software written and using single chip computer control TEA5767 achieve manually live to be automatic FM, received signal through the TAD2030 amplifier amplification device, then use the speaker output the signal。In the process of FM the frequency of the signal can be checked by LCD1602。

基于TEA5767模块的数字FM收音机设计

基于TEA5767模块的数字FM收音机设计

基于TEA5767模块的数字FM收音机设计姓名:指导老师:摘要本设计是一个数字调频收音机(FM),就是接受频率调制的无线电信号,经过解调还原成原信号的电子设备,利用单片机控制有FM功能的专用芯片,设计一个收音机系统。

本设计采用模块化设计,整个系统由控制模块,FM音频模块,电源模块和功放模块组成。

未处理系统采用单片机控制。

单片机自从20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

STC89C52单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

本设计另一核心采用的是TEA5767芯片,它是由PHILIPS 公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767芯片内集成了完整的IF频率选择和鉴频系统,就可实现FM收音机的全部功能。

设计的液晶屏采用的是Nokia5110,该液晶屏的性价比高,接口简单,速度快,适合便携式供电设备。

本设计主要是体现单片机系统的自动控制能力,更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

关键词:STC89C52 Nokia5110 TEA5767AbstractThe design is a digital FM radio (FM), It is to receive the frequency modulated radio signals, electronic equipment restored to the original signal after demodulation,the use of dedicated chip MCU control FM functions, design a radio system. The system consists of the control module, FM audio module, power module and power amplifier module. The Themicro-processing system microcontroller.The singlechip has come out since the 1970s, compared to is valued people's and the attention by the extremely high performance price, therefore the application is very broad, the development is very quick.STC89C52 Monolithic integrated circuit's characteristic is the volume is small, the integration rate is high, the weight is light, antijamming ability, is not high to the environment request, the low in price, the reliability is high, the flexibility is good, the development is easier. What this design uses is the TEA5767 chip, it is promotes by PHILIPS Corporation in view of the low voltage application single chip digit harmonious FM stereophonic receiver chip. In the TEA5767 chip integrated the complete IF frequency selection and the frequency discrimination system, only need the very few low cost periphery part, be possible to realize the FM radio's complete function.The design of the LCD screen is Nokia5110, The LCD screen have high cost , simple interface, fast, and suitable for portable power supply equipment. A more vital significance was monolithic integrated circuit's application changed the control system tradition design concept and the method.Keywords:STC89C52 , Nokia5110 , TEA5767目录摘要 (2)Abstract (2)目录 (3)绪论 ................................................................................................................ 错误!未定义书签。

论文:基于单片机控制的FM收音机,赠送电子制作套件

论文:基于单片机控制的FM收音机,赠送电子制作套件

为了广交朋友,展示学生开放实验室一位师兄写的电子制作小论文,请鉴赏,另外,为了广交朋友,开放实验室对外赠送电子入门套件。

赠送对象:对本网站朋友,想电子入门者,赠送部分入门套件包(受赠者负担邮费)。

焊接工具自己买或到自己学校实验室找老师借用,有疑问就问(点击可以聊天)。

支持本论坛,斑竹辛苦了!为广交本论坛之网友赠送部分器材:a、电子门铃制作,b、简易循环小彩灯(用PCB板做),c、LED“手电筒”制作。

具体说明见本文最后。

---------------------------------------------------------------------------------------------------------------------单片机课程设计之基于单片机控制的FM收音机目录摘要: (1)0 前言 (1)1课题分析 (2)总体分析 (2)主要技术分析 (2)2 FM收音机程序流程图 (7)3 FM收音机电路图 (8)4 FM收音机实物图 (8)5 FM收音机核心程序 (9)6 项目拓展 (13)7 结论 (13)参考文献 (13)基于单片机控制的FM收音机摘要:单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。

在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。

我们可以开发利用单片机系统以获得很高的经济效益。

更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。

基于单片机的数字FM收音机设计

基于单片机的数字FM收音机设计

摘要现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。

TEA5767具有高性能的RF AGC电路,其接收灵敏度高、参考频率选择灵活、可实现自动搜台。

本课题采用STC89C52单片机和TEA5767为核心器件,用I2C通信方式联接单片机与TEA5767,实现数字FM 收音机系统。

通过编写软件利用单片机控制TEA5767实现手动活自动调频,收到的信号通过TAD2030功放器件放大后,再用扬声器输出信号。

在调频的过程中可以通过LCD1602液晶显示屏来随时查看信号的频率。

关键词:数字调频; STC89C52; TEA5767; TDA2030ABSTRACTNowadays people usually use the radio for manual FM accept , it is much trouble, and because the rx sensitivity is not high, the frequency band received is very narrow。

TEA5767 has high-performance RF AGC circuit, high sensitivity receiving, reference frequency selection flexible and it can be the realization of automatic search platform。

So in this designing I will use the STC89C52 single-chip microcomputer and TEA5767 as the core components of digital FM radio system and Use the I2C communication to connect between STC89C52 and TEA5767 chip。

基于单片机的数字FM收音机(毕业设计)

基于单片机的数字FM收音机(毕业设计)

基于单片机的数字FM收音机设计摘要:本文在具体分析了STC89C52单片机的技术特点与数字FM收音机的基础上,提出了采用单片机控制收音机实现数字调频的方法,并给出了具体的软硬件设计。

该系统利主要由STC89C52单片机、液晶显示器、按键、调频收音模块TEA5767、功放LM386组成[1]。

实际运行时,用TEA5767搜索频率,利用单片机STC89C52控制处理,经LM386芯片放大音频功率同时再通过液晶显示器显示频率,最终实现87.5MHz~108MHz调频广播的接收。

相关的功能验证实验表明,本系统达到了既定的设计目标。

关键词:单片机技术;收音机;频率搜索;液晶显示The Design of Digital FM Radio Which Based on Single ChipMicrocomputerAbstract:This paper mainly proposes the method of using single chip computer to control digital FM radio . It gives the specific hardware and software design which based on a detailed analysis on of the technical characteristics of STC89C52 SCM and digital FM radio. The system uses STC89C52 SCM as CPU for overall control, mainly composed of STC89C52 SCM, LCD display, keypad, FM radio module TEA5767 and LM386 amplifier. When it operates, firstly you should use the TEA5767 display to show the search frequency. Then, control and process it with STC89C52 SCM. By the way magnify the audio power through LM386 chip. The LCD display frequency. Ultimatel y, it’ll reach a broadcast reception range from 87.5MHz to 108MHz FM. Some related functional verification experiments show that the system achieves the established design goals.Keywords:SCM technology; Radio; Frequency search;Liquid-crystal display目录序言 (1)第1章课题分析与方案论证 (2)1.1 课题任务分析 (2)1.2 方案论证 (2)第2章硬件电路 (5)2.1主控电路 (5)2.2音频输出电路 (9)2.3FM收音电路 (12)2.4LCD1062液晶屏模块 (15)2.5按键电路 (16)2.6I2C总线简介 (16)2.7电路装配注意事项 (18)第3章软件设计 (19)3.1主程序设计 (19)3.2液晶屏显示控制子程序 (21)3.3收音机控制子程序 (23)第4章系统测试 (25)4.1硬件测试 (25)4.2软件测试 (25)4.3整机调试 (26)4.4调试结果 (26)结束语 (27)参考文献 (28)致谢 (29)附录 (30)附录1 程序清单 (30)附录2 硬件原理图 (42)附录3 硬件实物图 (43)附录4 外文资料原文 (44)外文资料译文 (50)序言当前时代,虽然电视、手机、互联网等媒体和各种便携式娱乐设备已经普及到千家万户,但传统的收音机在丰富的娱乐媒介中任然占有重要地位。

基于TEA5767的智能收音机的开题报告

基于TEA5767的智能收音机的开题报告

基于TEA5767的智能收音机的开题报告郑州大学西亚斯国际学院本科生毕业论文(设计)开题报告题目名称基于单片机和TEA5767模块智能收音机的设计学生姓名张晓宇专业自动化学号20101523341指导教师姓名周伟所学专业自动化职称讲师完成期限2014年2月27日至2014年5月20日一、选题的目的意义:随着社会科技的发展,各种数字电子产品进入我们的生活,虽然智能手机、智能电视已经变得越来越普遍、但是收音机在丰富的娱乐媒介和广大司机朋友,老人及各位观众听友们里还是占有很重要的地位。

现在大都电子产品都在向数字化、集成化发展而且成本越来越低,使得广大厂商在各种设备中嵌入收音机诸如MP3,智能手机,便携式video播放器等电子产品中嵌入FM部分。

这是因为飞利浦公司研发的TEA5768设计的数字FM收音机使这种低成本的实现可能,它可以实现手动、自动、搜台和存台、带有I2C 和3-Wire 两个总线接口, 最小供电电压为2.5V, 外围只需要少量元器件即可实现FM收音机功能, 具有体积小、功耗低、频率稳定性好、高灵敏度、高保真等特点。

EA5767HN芯片是PHILIPS公司推出的针对低电压应用的单芯片数字谐调FM立体声收音机芯片。

它采用创新的收音机架构取代了外部的无源器件与复杂的线路,芯片内集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能,硬件系统完全不需要调试。

EA5767HN 芯片前端具有高性能的RF AGC电路,其接收灵敏度高,并且兼容欧洲、美国和日本FM频段;参考频率选择灵活,可通过寄存器设臵选择32.768kHz和13MHz的晶体振荡器或者6.5MHz的外部时钟参考频率;可通过IIC系统总线进行各种功能控制并通过IIC总线输出7位IF计数值;立体声解调器完全免调,可用软件控制SNC、HCC、暂停和静音功能;具有两个可编程I/O口,可用于系统的其他相关功能;由于其软件设计简单,再加上小尺寸的封装,使得它非常适合应用于电路板空间相当有限的设计上;可集成到便携式数码消费产品的设计中,如移动电话、MP3播放器、便携式CD 机、玩具等众多产品,使它们具有FM收音功能。

基于单片机的FM收音机设计

基于单片机的FM收音机设计

ELECTRONIC ENGINEERING & PRODUCT WORLD2022.4电子产品世界基于单片机的FM收音机设计Design of home internet detection system based on STM32许可嘉,杨晓军 (成都大学电子信息与电气工程学院,成都610106)摘 要:该设计是单片机控制电路与TEA5767模块电路及音频功率放大电路共同组成的FM收音机电路,用来实现频道接收、保存、播放等功能。

系统采用STC89C52为主控,TEA5767作为数字信号处理器,I2C总线协议为主控与数字信号处理器之间的通信协议,可以实现频道自动搜索、接收、保存、播放等功能。

通过LCD显示器实时显示当下操作及相应频道所在频率。

最终测试结果表明:该设计可以实现频率在87.5 MHz~108 MHz调频广播的接收,本设计能够达到了既定的设计目标。

关键词:单片机;FM收音机;TEA5767;I2C总线随着现代科学技术的不断发展,电子产品也不断更新换代,单片机的广泛应用使用使现在的电子产品设计越来越方便、功能越来越好,而单片机是所有微处理器中性价比最高的一种,它的功能不断完善,种类不断增加,因此它的应用领域也不断扩大,本文我们将单片机与FM收音机芯片综合运用起来,设计了一款可以实现调频、存台的FM收音机系统。

1 系统方案1.1 系统总体设计该系统设计采用模块化设计,主要由存储模块,主控制器,数字处理芯片和音频功率放大器组成。

系统工作原理框图如图1所示,由主控制器接收按键信号进行人机交互,通过I2C总线,主控制器作为主机,TEA5767为从机,双机通信,TEA5767芯片输出音频信号经LM386放大后通过耳机或扬声器播放,系统运行时,收听电台的频率可在LCD显示器上实时显示,通过按键手动控制频率搜台,或切换至自动搜台模式,音频输出设备音量可由电位器调节[8]。

2 系统硬件设计该系统的硬件设计部分分为TEA5767数字处理电路、主控制器电路和音频功放电路。

利用TEA5767收音模块DIY调频立体声FM收音机

利用TEA5767收音模块DIY调频立体声FM收音机

= CHANNEL_MIN; = STATE_SEARCH;
// 开关健(PD7)
#define POWER_ON() #define POWER_OFF()
SET_BIT(DDRD,DDD7);CLR_BIT(PORTD,PD7);
// 闪烁控制变量的最大值 #define BLINK_COUNTER_MAX 10
可能好多朋友说一个买收音机也就几块钱,何必花这么大精力鼓捣这个烂玩意,如果真有这个想法的朋友请打住,不要在往下面看了。之前也一直认为 TEA5767 较差, 实际中发觉选择大厂的模块出来的音频经放大器推动后还是很有震撼力,大大超出我的预期。不过前提是使用好模块,而不是现在满淘宝卖的那种 5-7 块左右的那种简装 版咯。
{ ulong pll = (ulong)(((Freq-225)*4000)/32768); return pll;
}
// 由 PLL 计算频率(频率单位为 KHZ)
ulong TEA5767_GetFreqFromPLL(ulong Pll) {
ulong Freq = (ulong)(((float)Pll)*((float)8.192)+225); return Freq; }
// 初始化 TEA5767(频率单位为 KHZ) void TEA5767_Init(ulong Freq,uchar Mono);
// 调整频率、声道 void TEA5767_Adjust(ulong Freq,uchar Mono,uchar MuteControl);
// 信号强度 uchar TEA5767_GetLevel();
TWI_MasterSendBytes(TEA5767_TWI_ADDR,5,data);

TEA5767收音机设计

TEA5767收音机设计

摘要随着我国经济的高速发展,微电子技术、无线电通信技术和自动控制技术也得到了迅速发展,锁相环和频率合成技术已经进入一个崭新的时代,其应用越来越广。

而收音机作为现代的娱乐工具,与人们的生活紧密相关,随着人们对其要求的提高,收音机得到了快速发展,传统的电容、电感调台收音机已经向数字化收音机发展。

本文在已有的收音机模块的基础上,采用A T89S52微控制器对收音机进行控制,由 1602液晶模块作显示,用TEA5767的高灵敏度,低电压和低功耗的全集成的优点作收音模块芯片,通过合理设计,制作了一款完善的数字调谐收音机,并增加了传统收音机所不具备的功能,使之达到了较为理想的效果。

关键词:微控制器, TEA5767,收音机ABSTRACTWith the development of the economy, microelectronic technology, radio communication technology and the automatic theory are developed rapidly, the compound frequency technology has been in a new state. It's application is becoming more and more widely. But the radio as an important pastime tools , it also has developed quickly with the improving requirement of the people .It's radio technology has developed from tradition capacitance or inductance to digital .The article is based on the now-being general radio module, using A T89S52 microcontroller to control the radio, by 1602 for liquid crystal display modules, with TEA5767 the high sensitivity, low voltage and low power consumption of all the advantages of integrated chips for the radio module. the reliability is improved and the feeling of comfort is better through the reasonable design, so the function of radio is more powerful compared with tradition one .Keywords: Microcontroller, TEA5767,Radio目录摘要 (I)ABSTRACT (II)第1章引言 (1)1.1背景 (1)1.2研究内容 (1)第2章芯片介绍 (2)2.1TEA5767收音芯片概述 (2)2.1.1 TEA5767的特点 (2)2.1.2 管脚说明 (3)2.1.3 I2C总线说明 (3)2.1.4 数据传输 (4)2.21602液晶模块介绍 (6)2.2.1技术参数 (7)2.2.2 接口信号说明 (7)2.2.3制器接口时序说明(HD4478及兼容芯片) (7)2.2.4 控制器接口时序说明 (10)2.3FM62429芯片介绍 (11)2.4AT89S52片机模块介绍 (12)第3章硬件电路设计 (16)3.1系统组成 (16)3.2收音模块 (17)3.3音量控制模块 (17)3.4LCD1602模块 (18)3.5按键模块 (18)3.6AT89S52微控制模块 (19)第4章软件设计部分 (21)4.1主程序流程图 (21)4.2按键控制 (22)4.3收音机控制 (22)4.4LCD显示控制 (23)第5章结束语 (24)致谢 (25)参考文献 (26)附录源代码 (27)第1章引言1.1背景收音机诞生到现在已有80年的历史了,在此期间经历了60年代从电子管到晶体管的革命,80年代从晶体管到集成电路的革命,目前正面临着数字化革命。

论文:基于单片机控制的FM收音机,赠送电子制作套件

论文:基于单片机控制的FM收音机,赠送电子制作套件

为了广交朋友,展示学生开放实验室一位师兄写的电子制作小论文,请鉴赏,另外,为了广交朋友,开放实验室对外赠送电子入门套件。

赠送对象:对本网站朋友,想电子入门者,赠送部分入门套件包(受赠者负担邮费)。

焊接工具自己买或到自己学校实验室找老师借用,有疑问就问(点击可以聊天)。

支持本论坛,斑竹辛苦了!为广交本论坛之网友赠送部分器材:a、电子门铃制作,b、简易循环小彩灯(用PCB板做),c、LED“手电筒”制作。

具体说明见本文最后。

---------------------------------------------------------------------------------------------------------------------单片机课程设计之基于单片机控制的FM收音机目录摘要: (1)0 前言 (1)1课题分析 (2)1.1 总体分析 (2)1.2 主要技术分析 (2)2 FM收音机程序流程图 (7)3 FM收音机电路图 (8)4 FM收音机实物图 (8)5 FM收音机核心程序 (9)6 项目拓展 (13)7 结论 (13)参考文献 (13)基于单片机控制的FM收音机摘要:单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。

在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。

我们可以开发利用单片机系统以获得很高的经济效益。

更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。

51单片机+TEA5767+数码管的FM收音机制作电路图+程序

51单片机+TEA5767+数码管的FM收音机制作电路图+程序

51单片机+TEA5767+数码管的FM收音机制作电路图+程序展开全文现在网上很多网友都在做和TEA5767有关的东东,今天找到个MP4的尸体,屏碎了,打开一看刚好有能用的TEA5767,验证了一下这个东西的实用性,用手上刚好有的51单片机开发板和lm386,为这个集成模块搭建了一个测试平台,下面是试验图片,如果在西安的朋友,肯定知道我手的那个电台了,哈哈!图片一:这个图可以看到整体结构了,其实硬件电路很简单,看看pdf文档完全可以搭建出来,单片机实验板是以前开发的商品。

图片二:这一部分是主要部分了,中间上面那个就是拆下来的TEA5767,它右边是LM386,做功率放大的,下面的扬声器是从一个笔记本里边拆下来的(太败家了,衰!)。

下面的程序可以直接运行了,绝对没问题的,这个也是参考了几个网站的程序,做了些修改,可以手动自动调台了,手动调台有问题,算法好像不对,但是出来的频率问题不大,自动搜索的结果是正确的,我要提醒大家一点,自动搜台的效果和接受强度,也就是天线,有很大的关系,我的天线是一截不到15mm的软导线,good luck!1./*********************************************************** ****************************************2.TEA5767采用I2C接口控制,单片机用AT89S52.晶振11.0592Mhz。

采用四位LED显示。

3.TEA5767采用I2C接口控制.TEA5767读写数据都是5个字节,其中PLL参数14位. Fosc =11.0592Mhz.4.************************************************************ ****************************************/5.#include "regx52.h"6.#include "intrins.h"7./*********************************************************** ************************/8.#define max_freq 108000 //108Mhz9.#define min_freq 87500 //87.5Mhz10.#define max_pll 0x339b //108MHz时的pll.11.#define min_pll 0x299d //87.5MHz时的pll.12.#define Add_Freq 113.#define Dec_Freq 014.#define REFERENCE_FREQ 32.76815.#define ATIIcxxDriverAddressW 0xC016.#define ATIIcxxDriverAddressR 0xC117.#define _Nop()_nop_(),_nop_(),_nop_(),_nop_(),_nop_() /*定义空指令*/18.#define LED P019.void Initialization(void);20.void Get_Pll(void);21.void Get_Frequency(void);22.void Search(unsigned char mode);23.void Auto_Search(unsigned char mode);24.unsigned char GetKey();25.void Delay(unsigned char Time);26.void Led_Display(unsigned long i);27.void DelayD(unsigned char Time);28.unsigned char GetKey();29.void Delay(unsigned char Time);30.void ATIICxx_PWrite(unsigned char *McuAddress,unsigned char count);31.void ATIICxx_PRead(unsigned char *McuAddress,unsigned char count);32.void I2C_Send_Byte(unsigned char sendbyte);33.unsigned char I2C_Receive_Byte(void);34.void I2C_Start(void);35.void I2C_Stop(void);36.void I2C_Ack(void);37.void I2C_Noack(void);38.39./******************************************************** *************/40./* IIC读写程序芯片型号*/41.sbit I2C_SCK=P3^0; /*实时时钟时钟线引脚 */42.sbit I2C_SDA=P3^1; /*实时时钟数据线引脚 */43.sbit k1=P1^7;44.sbit k2=P1^6;45.sbit k3=P1^5;46.sbit k4=P1^4;47./******************************************************** *************/48./******************************************************** ****************/49.sbit ge=P2^3;50.sbit shi=P2^2;51.sbit bai=P2^1;52.sbit qan=P2^0;53.unsigned char tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳54.//0, 1, 2 3 4 5 6 7 8 955./******************************************************** ****************/56.unsigned char radio_write_data[5]={0x2d,0x56,0x20,0x11,0x00}; //初始化写入TEA5767的数据(FM89.8Mhz)57.unsigned char radio_read_data[5];58.unsigned int Pll_Data;59.unsigned long Frequency_Data;60./******************************************************** ***************************/61.void Initialization(void)62.{63.TMOD = 0x11;64.TH0 = 0x5d;65.TL0 = 0x3d;66.TR0 = 0; //25ms67.TH1 = 0x5d;68.TL1 = 0x3d;69.TR1 = 0; //25ms70.T2CON = 0x30;71.T2MOD = 0x00;72.RCAP2H = 0xFE;73.TH2 = RCAP2H;74.RCAP2L = 0xFB;75.TL2 = RCAP2L;76.TR2 = 0; //2400bps77.PCON = 0x00;78.SCON = 0xD0;79.IP = 0x14;80.EX0 = 1;81.IT0 = 1;82.ET0 = 1;83.EX1 = 1;84.IT1 = 1;85.ES = 0;86.EA = 0;87.}88.89./******************************************************** ***************************/90.//读TEA5767状态,并转换成频率91.void Radio_Read(void)92.{93.unsigned char temp_l,temp_h;94.Pll_Data = 0;95.96.ATIICxx_PRead(&radio_read_data[0],5);97.98.temp_l = radio_read_data[1];99.temp_h = radio_read_data[0];100.temp_h &= 0x3f;101.Pll_Data = temp_h*256+temp_l;102.Get_Frequency();103.}104.105./******************************************************** ***************************/106.//由PLL计算频率107.void Get_Frequency(void)108.{109.unsigned char hlsi;110.unsigned int npll = 0;111.112.npll = Pll_Data;113.hlsi = radio_read_data[2]&0x10;114.if (hlsi)115.Frequency_Data = (unsigned long)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25-225); //频率单位:KHz116.else117.Frequency_Data = (unsigned long)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25+225); //频率单位:KHz118.}119.120./******************************************************** ***************************/121.//由频率计算PLL122.void Get_Pll(void)123.{124.unsigned char hlsi;125.126.hlsi = radio_read_data[2]&0x10;127.if (hlsi)128.Pll_Data = (unsigned int)((float)((Frequency_Data+225)*4)/(float)REFERENCE_FREQ); //频率单位:k129.else130.Pll_Data = (unsigned int)((float)((Frequency_Data-225)*4)/(float)REFERENCE_FREQ); //频率单位:k131.}132.133./******************************************************** ***************************/134.//手动设置频率,mode=1,+0.1MHz; mode="0:-0".1MHz ,不用考虑TEA5767用于搜台的相关位:SM,SUD135.void Search(unsigned char mode)136.{137.Radio_Read();138.139.if(mode)140.{141.Frequency_Data += 100;142.if(Frequency_Data > max_freq)143.Frequency_Data = min_freq;144.}145.else146.{147.Frequency_Data -= 100;148.if(Frequency_Data < min_freq)149.Frequency_Data = max_freq;150.}151.152.Get_Pll();153.radio_write_data[0] = Pll_Data/256;154.radio_write_data[1] = Pll_Data%256;155.radio_write_data[2] = 0x41;156.radio_write_data[3] = 0x11;157.radio_write_data[4] = 0x40;158.ATIICxx_PWrite(&radio_write_data[0],5);159.}160.161./******************************************************** ***************************/162.//自动搜台,mode=1,频率增加搜台; mode="0:频率减小搜台".163.void Auto_Search(unsigned char mode)164.{165.Radio_Read();166.Get_Pll();167.if(mode)168.{169.radio_write_data[2] = 0xb1;170.if(Pll_Data > max_pll)171.{172.Pll_Data = min_pll;173.}174.}175.else176.{177.radio_write_data[2] = 0x41;178.if(Pll_Data < min_pll)179.{180.Pll_Data = max_pll;181.}182.}183.184.radio_write_data[0] = Pll_Data/256+0x40;185.radio_write_data[1] = Pll_Data%256;186.radio_write_data[3] = 0x11;187.radio_write_data[4] = 0x40;188.ATIICxx_PWrite(&radio_write_data[0],5);189.Radio_Read();190.while(!(radio_read_data[0]&0x80)) //RF电台就绪标志191.{192.Radio_Read();193.}194.}195.196./******************************************************** ***************************/197.void main(void)198.{199.//0x2d,0x56,0x20,0x11,0x00200.unsigned long temp;201.Initialization();202.radio_write_data[0] =0x2A;203.radio_write_data[1] =0xB6;204.radio_write_data[2] =0x41;205.radio_write_data[3] =0x11;206.radio_write_data[4] =0x40;207.ATIICxx_PWrite(&radio_write_data[0],5);//初始化TEA5767(89.8Mhz)208.Frequency_Data = 89800;209.210.while(1)211.{ temp= Frequency_Data;212.Led_Display(Frequency_Data);213.214.if( k1 == 0)215.{ DelayD(2);216.while(k1 == 0);//等待键松开217.Search(Add_Freq);218.}219.if( k2 == 0)220.{ DelayD(2);221.while(k2 == 0);//等待键松开222.Search(Dec_Freq);223.}224.if( k3 == 0)225.{ DelayD(2);226.while(k3 == 0);//等待键松开227.Auto_Search(Add_Freq);228.}229.if( k4 == 0)230.{ DelayD(2);231.while(k4 == 0);//等待键松开232.Auto_Search(Dec_Freq);233.}234.235.}236.}237.238./******************************************************** *************/239.struct bytedata_2240.{241.unsigned char ByteH;242.unsigned char ByteL;243.};244.245.union int2byte246.{247.unsigned int IntData;248.struct bytedata_2 ByteData;249.};250./******************************************************** *************/251.//启动I2C总线,退出时SCL为低252.void I2C_Start(void)253.{254.I2C_SDA=1; /*发送起始条件的数据信号*/255._Nop();256.I2C_SCK=1;257._Nop();_Nop();_Nop();_Nop();_Nop();/*起始条件建立时间大于4.7us,延时*/258.I2C_SDA=0; /*发送起始信号*/259._Nop();_Nop();_Nop();_Nop();_Nop(); /* 起始条件锁定时间大于4μs*/260.I2C_SCK=0; /*钳住I2C总线,准备发送或接收数据 */261._Nop();_Nop();_Nop();_Nop();_Nop();/*起始条件建立时间大于4.7us,延时*/262.}263.//*停止I2C总线264.void I2C_Stop(void)265.{266.I2C_SCK=0;267.I2C_SDA=0; /*发送结束条件的数据信号*/268._Nop(); /*发送结束条件的时钟信号*/269.I2C_SCK=1; /*结束条件建立时间大于4μs*/270._Nop();_Nop();_Nop();_Nop();_Nop();271.I2C_SDA=1; /*发送I2C总线结束信号*/272.}273.//MCU等待应答位(返回0表示应答)274.bit I2C_WaitAck(void)275.{276.unsigned char ucErrTime = 200; //因故障接收方无ACK,超时值。

00-110903-0007-基于51单片机IIC的收音机毕业设计论文

00-110903-0007-基于51单片机IIC的收音机毕业设计论文

摘要单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。

在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。

我们可以开发利用单片机系统以获得很高的经济效益。

更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。

例如,本文所要论述的通过单片机来控制TEA5767HN芯片及驱动LED数码管实现FM收音并显示频率。

现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。

本设计采用的是TEA5767HN芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767HN芯片内集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能。

另外,它具有高性能的RF AGC电路,其接收灵敏度高;参考频率选择灵活;可实现自动搜台。

关键词:单片机;FM收音机; IICAbstractSCM since the 1970s, with extremely high since the advent of performance to price is people's attention and concern, so it is widely used, are developing very quickly. SCM is characteristic of small volume, light weight, high, integration, strong anti-jamming capability of environmental demand is not high, low price, high reliability, flexibility is good, develop relatively easy. Because there are so many advantages microcontroller, so widely, its application field, almost to the point of pervasive. In our country, the SCM has been widely applied in industrial automation control, automatic detection of intelligent instruments, intelligent household appliances, aerospace and defense military, sophisticated weapons and other aspects. We can develop using single-chip microcomputer system to obtain high economic performance. The more important significance is MCU application change control system of traditional design ideas and methods. Using a hardware circuit implementation before most of the control function, are using single-chip microcomputer through software methods to achieve. This software combines hardware or replace hardware and can improve the system performance control technology, called micro control technology. For example, this paper tries to paper through a singleship controlling TEA5767HN chip and drive LED digital display realize FM radio tube and frequency. Nowadays people often use radio for manual FM accept Taiwan, use more trouble, and because the rx sensitivity is not high, receives a narrow band. This design USES is TEA5767HN chip, it is launched by PHILIPS company for low voltage application of single chip digital tuning FM stereo radio chip. TEA5767HN chip has integrated complete IF within frequency selective and popularly used system, requires very little low cost peripheral components, can realize FM radio fully functional. In addition, it has high-performance RF AGC circuit, its reception high sensitivity; Reference frequency selection flexible; Can achieve automatic channel surfing.Keywords: SCM; FM radio; IIC目录摘要 (1)目录 (3)1 绪论 (4)2 基于单片机IIC的收音机方案总体分析 (5)2.1 系统总体分析 (5)2.2 主要技术分析 (5)3 单片机IIC收音机主要器件简介 (6)3.1 收音模块TEA5767HN的功能介绍 (6)3.1.1 TEA5767HN的IIC总线说明 (6)3.1.2 TEA5767HN写数据 (7)3.1.3 TEA5767HN读数据 (8)3.2 主控制器AT89S51 (10)3.2.1 MSC-51芯片资源简介 (10)3.2.2 单片机的引脚说明 (12)4 基于单片机IIC的收音机总体设计 (13)4.1 系统硬件设计 (13)4.1.1 单片机最小系统设计 (13)4.1.2 收音模块硬件设计 (15)4.1.3 电源电路 (15)4.1.4 液晶显示模块电路 (16)4.2 系统软件设计 (19)4.2.1 FM收音机软件流程图 (19)4.2.2 收音模块PLL频率算法子程序 (20)4.2.3 单片机IIC收音机程序清单 (20)5 结束语 (21)致谢 (22)参考文献 (23)附录1:总体电路图 (24)附录2:程序清单 (25)1 绪论本设计研究FM收音机分为硬件电路和程序设计两个方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本设计是一个数字调频收音机(FM),就是接受频率调制的无线电信号,经过解调还原成原信号的电子设备,利用单片机控制有FM功能的专用芯片,设计一个基于TEA5767模块的数字FM收音机。

本设计采用模块化设计,整个系统由控制模块,FM音频模块和功放模块组成。

本设计核心采用的是TEA5767芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767芯片内集成了完整的IF频率选择和鉴频系统,就可实现FM收音机的全部功能。

采用的是Lcd1602液晶显示屏,实现单片机的频率值与模块内部的寄存器(PLL值)之间的相互转换,从而带动功放的工作。

功能:自动收台,手动收台,液晶显示。

采用主要模块有:(1)STC89C52单片机模块。

(2)Lcd1602显示模块。

(3)TEA5767收音机模块。

关键词:STC89C52 Lcd1602 TEA5767模块目录摘要 (2)1.绪论 (5)1.1 课题背景 (5)1.2 课题概述 (5)2.设计要求与思路 (5)2.1 收音机的设计要求 (5)2.2 系统设计整体思路 (5)3.主要电路模块的实现方案比较及选择 (6)3.1 控制模块方案选择 (7)3.2 液晶显示模块方案选择 (7)3.3 无线芯片方案选择 (7)4.系统电路图 (8)4.1 微控制器模块 (8)4.2 FM模块 (9)4.2.1 FM模块介绍 (9)4.3 工作原理 (10)4.3.1串行总线工作模式 (10)4.3.2 串行总线基本操作 (10)4.3.3数据传送 (12)4.3.4、三线总线工作模式 (12)5.系统软件设计 (13)5.1 主程序设计 (13)5.2 流程图 (14)6.硬件电路测试与检测 (14)6.1 硬件装配 (14)6.2 系统测试 (14)7.结束语 (15)8.参考文献 (15)9.致谢 (15)10.附录 (16)10.1 电路原理图 (16)10.2 电路PCB图 (16)10.3 电路实物图 (17)10.3 元器件清单 (18)11.操作框图 (19)程序框图 (20)12.程序 (21)12.1 主程序 (21)12.2 I2C总线 (26)12.3 Lcd1602程序 (29)基于TEA5767模块的数字FM收音机设计一.绪论1.1课题背景随着科学技术的不断发展,新颖的调频收音机的不断出现,技术不断的提高,设计出来的收音机外型精致和小巧。

从分离元件到集成电路,这标志着收音机的内部电路简单。

用一个集成块就能完成所有的工作。

从早期的调幅收音机到现在的调频收音机,我们可以想象收音机的不断的改进和不断创新,使收音机的发展空间愈来愈大。

现在,出现了新一代高科技产品——数字调频收音机,功能强大,性能优良,设计精巧耐用。

1.2课题概述收音机的接收原理就是把从天线接收到的高频信号经检波(解调)还原成音频信号,送到耳机变成音波。

由于广播事业发展,天空中有了很多不同频率的无线电波。

如果把这许多电波全都接收下来,音频信号就会象处于闹市之中一样,许多声音混杂在一起,结果什么也听不清了。

为了设法选择所需要的节目,在接收天线后,有一个选择性电路,它的作用是把所需的信号(电台)挑选出来,并把不要的信号“滤掉”,以免产生干扰,这就是我们收听广播时,所使用的“选台”按钮。

选择性电路的输出是选出某个电台的高频调幅信号,利用它直接推动耳机(电声器)是不行的,还必须把它恢复成原来的音频信号,这种还原电路称为解调,把解调的音频信号送到耳机,就可以收到广播。

二.设计要求与思路2.1收音机的设计要求:可对无线接收机的频率进行控制。

通过键盘可以设置接收频率,接收频率在88-108MHz内自选20M的带宽。

2.2系统设计整体思路(1)硬件部分:整体由52单片机控制,组成由液晶显示屏、功放模块、TEA5767收音机模块、按键。

如下图所示:图为:系统方案设计框图三、主要电路模块的实现方案比较及选择AM:改变载波的振幅称振幅调制。

AM是指对信号进行幅度调制。

一般做法就是先在原信号上叠加一个直流信号以保证信号f(t)+A>0,然后乘上一个高频的余弦信号,即得到g(t)=[f(t)+A]coswt。

在频域上的效果就是将原信号的频谱移动到w处,以适合信道传输的最佳频率范围。

g(t)的包络线即f(t)+A,用一个简单的包络检测电路就可以接收并还原信号了。

FM:改变载波的频率称频率调制。

音频信号的改变往往是周期性的。

与“FM 无线电波”相同,“FM合成理论”同样也有着发音体(载体)和调制体两个元素。

发音体或称载波体,是实际发出声音的频率振荡器;调制体或称调制器.本次方案选用的是FM调制。

理由有以下几点:1)在同样的频率、功率等条件下,用调频方式传输信号比调幅方式要远得多。

因为调幅方式的载频电平要高出噪声电平三四十分贝才能得到良好的图像指标,而调频方式只要高出噪声电平几分贝即可。

2)调频比调幅抗干扰能力强:外来的各种干扰、加工业和天电干扰等,对已调波的影响主要表现为产生寄生调幅,形成噪声。

调频制可以用限幅的方法,消除干扰所引起的寄生调幅。

而调幅制中已调幅信号的幅度是变化的,因而不能采用限幅,也就很难消除外来的干扰。

3)另外,信号的信噪比愈大,抗干扰能力就愈强。

而解调后获得的信号的信噪比与调制系数有关,调制系数越大,信噪比越大。

由于调频系数远大于调幅系数,因此,调频波信噪比高,调频广播中干扰噪声小。

4)调频波比调幅波频带宽。

3.1控制模块方案选择:方案:控制核心选择STC89C52单片机,该单片机有一个8位的微处理器,与通用的微处理器基本相同,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

优势为结构简单,价格不高,易于购买。

缺点为缺少AD转换功能,运行速度较慢。

由于方案的单片机使用较为广泛,功能较为了解。

故采用此方案作为控制模块。

3.2液晶显示模块方案选择:方案:用Lcd1602显示屏,该显示屏具有2行16个字符。

Lcd1602具有体积小、重量轻、功耗低、寿命长、无辐射、无污染等优点,低压、微功耗极低的工作电压,只要2V-3V即可工作,而工作电流仅几个微安即每个显示字符只有几个微安。

优势为结构简单,价格不高,易于购买。

实际中应用到的机会比较大。

通过自己所掌握的知识与能力,由于对Lcd1602的使用比较了解。

故采用此次模块。

3.3无线芯片方案选择:TEA5767芯片,通过I2C接口与单片机进行通信。

单片机按键对TEA5767进行初始化输入接收频段的频率,TEA5767内部对信号滤波、放大、解调处理,输出信号经过功放进行放大,插上耳麦即可收听到电台节目,接收频率为87M~108MHz。

方案(1)采用无线芯片TEA5767,自己设计外围电路。

方案(2)采用相关厂家生产的TEA5767模块来实现。

很显然,第一种方案需要自己设计电路、画PCB和焊接,而TEA5767采用的是FVQFN40(耐热的薄型四脚扁平封装)封装,在短时间内和有限的条件下实现硬件功能的难度相当大。

所以本设计采用第二种选择方案——使用现成的模块。

四、系统电路图4.1微控制器模块单片机是控制单元的核心,起着控制收音机所有运行状态的作用。

单片机控制模块使用的是STC89C52,使用该芯片很容易实现对其他模块的控制。

通过对单片机STC89C52写入程序,可以方便的用软件来控制整个过程。

STC89C52单片机,支持USB口或者是串口两种下载程序方式,不用另买烧写器,编程器等产品,可以方便的烧写程序到单片机里;单片机内部有P0、P1、P2、P3个八位双向I/O口,外设与这些端口可以直接相接,无需另外的接口芯片。

P0-P3既可以按字节输入或输出,也可以按进位进行输入输出,共32条口线,其控制十分灵活方便。

单片机特点:(1)集成度高,体积小,可靠性高(2)控制功能强(3)低电压,低功耗(4)性价比高图4.1单片机最小系统P1口负责控制LCD液晶显示。

通过软件模拟SPI总线控制显示内容。

P2.6接TEA5767模块的DAT线。

P2.7接TEA5767模块的CLK线。

RET接复位端的RSTP3.0接下载线的RXDP3.1接下载线的TXDP3口负责扫描按键。

P3.2接按键1。

P3.3接按键2。

P3.4接按键3。

P3.5接按键4。

P3.6接按键5。

P3.7接按键6。

4.2FM模块图4.2 FM模块原理图DAT线接微控制器模块P2.6引脚。

CLK线接微控制器模块P2.7引脚。

DAT和CLK线组成IIC总线与微控制器通信。

OUTL输出左声道。

OUTR输出右声道。

4.2.1 FM模块介绍在方案设计时就已经确定FM部分采用按照datasheet推荐的应用设计电路图生产的模块。

本设计FM模块采用B20C封装的完整版收音机模块,外接引脚只有10个,开发者只需要关注引脚而不需要关注模块的内部结构,开发方便简单,使用过程简单。

4.3 工作原理:由于TEA5767收音机模块,必须要由单片机通过控制总线向芯片内的寄存器写入控制字才能正常工作。

而TEA5767收音机模块的控制总线有I2C和3-wire 两种。

在设计过程中,我们把模块的8脚(MODE)接地,因此,我们采用I2C 总线方式。

我们通过往单片机写入相关程序,然后通过I2C总线,实现单片机与TEA5767模块之间的双向转。

利用不同的按键操作,实现频率的各种改变。

在手动搜索模式下,通过按键的操作,增加(减少)频率值,然后通过I2C总线,传送数组到模块的寄存器中,转化为内PLL值。

而在自动搜索模式中,我们通过按键控制模块内部PLL值的增加(减少),然后通过读取模块内部的数组,通过计算,得出频率值,显示在数码管上,以带动蜂鸣器的工作。

4.3.1.串行总线工作模式:串行总线在传送数据过程中共有三种类型信号,它们分别是:开始信号,结束信号和应答信号。

开始信号:CLOCK为高电平时,DATA由高电平向低电平跳变,开始传送数据;结束信号:CLOCK为高电平时,DATA由低电平向高电平跳变,结束传送数据;应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

4.3.2 串行总线基本操作:⑴串行规程运用主/从双向通讯。

器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。

主器件和从器件都可以工作于接收和发送状态。

总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟 CLOCK 控制总线传输方向,并产生起始条件和停止条件。

DATA线上的数据状态仅在CLOCK 为低电平的期间才能改变,CLOCK为高电平的期间,DATA状态的改变被用来表示起始和停止条件。

相关文档
最新文档