您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > TEA5767完整收音机程序
/*tea5767ÍêÕû³ÌÐò*///****************************************************************************************************/#includereg52.h#includeintrins.h/***********************************************************************************/#definemax_freq108000//108Mhz#definemin_freq87500//87.5Mhz#definemax_pll0x339b//108MHzʱµÄpll.#definemin_pll0x299d//87.5MHzʱµÄpll.#defineAdd_Freq1#defineDec_Freq0#defineREFERENCE_FREQ32.768#defineATIIcxxDriverAddressW0xC0#defineATIIcxxDriverAddressR0xC1#define_Nop()_nop_(),_nop_(),_nop_(),_nop_(),_nop_()/*¶¨Òå¿ÕÖ¸Áî*/#defineLEDP0voidInitialization(void);voidGet_Pll(void);voidGet_Frequency(void);voidSearch(unsignedcharmode);voidAuto_Search(unsignedcharmode);unsignedcharGetKey();voidDelay(unsignedcharTime);voidLed_Display(unsignedlongi);voidDelayD(unsignedcharTime);unsignedcharGetKey();voidDelay(unsignedcharTime);voidATIICxx_PWrite(unsignedchar*McuAddress,unsignedcharcount);voidATIICxx_PRead(unsignedchar*McuAddress,unsignedcharcount);voidI2C_Send_Byte(unsignedcharsendbyte);unsignedcharI2C_Receive_Byte(void);voidI2C_Start(void);voidI2C_Stop(void);voidI2C_Ack(void);voidI2C_Noack(void);/*********************************************************************//*IIC¶Áд³ÌÐòоƬÐͺÅ*/sbitI2C_SCK=P3^0;/*ʵʱʱÖÓʱÖÓÏßÒý½Å*/sbitI2C_SDA=P3^1;/*ʵʱʱÖÓÊý¾ÝÏßÒý½Å*/sbitk1=P1^7;sbitk2=P1^6;sbitk3=P1^5;sbitk4=P1^4;/*********************************************************************//************************************************************************/sbitge=P2^3;sbitshi=P2^2;sbitbai=P2^1;sbitqan=P2^0;unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//¹²Ñô//0,1,23456789/************************************************************************/unsignedcharradio_write_data[5]={0x2d,0x56,0x20,0x11,0x00};//³õʼ»¯Ð´ÈëTEA5767µÄÊý¾Ý(FM89.8Mhz)unsignedcharradio_read_data[5];unsignedintPll_Data;unsignedlongFrequency_Data;/***********************************************************************************/voidInitialization(void){TMOD=0x11;TH0=0x5d;TL0=0x3d;TR0=0;//25msTH1=0x5d;TL1=0x3d;TR1=0;//25msT2CON=0x30;RCAP2H=0xFE;TH2=RCAP2H;RCAP2L=0xFB;TL2=RCAP2L;TR2=0;//2400bpsPCON=0x00;SCON=0xD0;IP=0x14;EX0=1;IT0=1;ET0=1;EX1=1;IT1=1;ES=0;EA=0;}/***********************************************************************************///¶ÁTEA5767״̬,²¢×ª»»³ÉƵÂÊvoidRadio_Read(void){unsignedchartemp_l,temp_h;Pll_Data=0;ATIICxx_PRead(&radio_read_data[0],5);temp_l=radio_read_data[1];temp_h=radio_read_data[0];temp_h&=0x3f;Pll_Data=temp_h*256+temp_l;Get_Frequency();}/***********************************************************************************///ÓÉPLL¼ÆËãƵÂÊvoidGet_Frequency(void){unsignedcharhlsi;unsignedintnpll=0;npll=Pll_Data;hlsi=radio_read_data[2]&0x10;if(hlsi)Frequency_Data=(unsignedlong)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25-225);//ƵÂʵ¥Î»:KHzelseFrequency_Data=(unsignedlong)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25+225);//ƵÂʵ¥Î»:KHz}/***********************************************************************************///ÓÉƵÂʼÆËãPLLvoidGet_Pll(void){unsignedcharhlsi;hlsi=radio_read_data[2]&0x10;if(hlsi)Pll_Data=(unsignedint)((float)((Frequency_Data+225)*4)/(float)REFERENCE_FREQ);//ƵÂʵ¥Î»:kelsePll_Data=(unsignedint)((float)((Frequency_Data-225)*4)/(float)REFERENCE_FREQ);//ƵÂʵ¥Î»:k}/***********************************************************************************///ÊÖ¶¯ÉèÖÃƵÂÊ,mode=1,+0.1MHz;mode=0:-0.1MHz,²»Óÿ¼ÂÇTEA5767ÓÃÓÚËÑ̨µÄÏà¹Øλ:SM,SUDvoidSearch(unsignedcharmode){Radio_Read();if(mode){Frequency_Data+=100;if(Frequency_Datamax_freq)Frequency_Data=min_freq;}else{Frequency_Data-=100;if(Frequency_Datamin_freq)Frequency_Data=max_freq;}Get_Pll();radio_write_data[0]=Pll_Data/256;radio_write_data[1]=Pll_Data%256;radio_write_data[2]=0x41;radio_write_data[3]=0x11;radio_write_data[4]=0x40;ATIICxx_PWrite(&radio_write_data[0],5);}/***********************************************************************************///×Ô¶¯ËÑ̨,mode=1,ƵÂÊÔö¼ÓËÑ̨;mode=0:ƵÂʼõСËÑ̨.voidAuto_Search(unsignedcharmode){Radio_Read();Get_Pll();if(mode){radio_write_data[2]=0xb1;if(Pll_Datamax_pll){Pll_Data=min_pll;}}else{radio_write_data[2]=0x41;if(Pll_Datamin_pll){Pll_Data=max_pll;}}radio_write_data[0]=Pll_Data/256+0x40;radio_write_data[1]=Pll_Data%256;radio_write_data[3]=0x11;radio_write_data[4]=0x40;ATIICxx_PWrite(&radio_write_data[0],5);Radio_Read();while(!(radio_read_data[0]&0x80))//RFµç̨¾ÍÐ÷±êÖ¾{Radio_Read();}}/***********************************************************************************/voidmain(void){//0x2d,0x56,0x20,0x11,0x00unsignedlongtemp;Initialization();radio_write_data[0]=0x2A;radio_write_data[1]=0xB6;radio_write_data[2]=0x41;radio_write_data[3]=0x11;radio_write_data[4]=0x40;ATIICxx_PWrite(&radio_write_data[0],5);//³õʼ»¯TEA5767(89.8Mhz)Frequency_Data=89800;while(1){temp=Frequency_Data;Led_Display(Frequency_Data);if(k1==0){DelayD(2);while(k1==0);//µÈ´ý¼üËÉ¿ªSearch(Add_Freq);}if(k2==0){DelayD(2);while(k2==0);//µÈ´ý¼üËÉ¿ªSearch(Dec_Freq);}if(k3==0){DelayD(2)
本文标题:TEA5767完整收音机程序
链接地址:https://www.777doc.com/doc-5485247 .html