51單片機(jī)控制的FM收音機(jī)_第1頁(yè)
51單片機(jī)控制的FM收音機(jī)_第2頁(yè)
51單片機(jī)控制的FM收音機(jī)_第3頁(yè)
51單片機(jī)控制的FM收音機(jī)_第4頁(yè)
51單片機(jī)控制的FM收音機(jī)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、專業(yè)綜合課程設(shè)計(jì)基于單片機(jī)控制的FM收音機(jī)班級(jí):通信(三)班 成績(jī): 基于單片機(jī)控制的FM收音機(jī)摘 要:?jiǎn)纹瑱C(jī)自20世紀(jì)70年代問世以來,以極其高的性能價(jià)格比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機(jī)的特點(diǎn)是體積小、集成度高、重量輕、抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開發(fā)較為容易。正因?yàn)閱纹瑱C(jī)有如此多的優(yōu)點(diǎn),因此其應(yīng)用領(lǐng)域之廣,幾乎到了無孔不入的地步。在我國(guó),單片機(jī)已被廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀表、智能化家用電器、航空航天系統(tǒng)和和國(guó)防軍事、尖端武器等各個(gè)方面。我們可以開發(fā)利用單片機(jī)系統(tǒng)以獲得很高的經(jīng)濟(jì)效益。更重要的意義是單片機(jī)的應(yīng)用改變了控

2、制系統(tǒng)傳統(tǒng)的設(shè)計(jì)思想和方法。以前采用硬件電路實(shí)現(xiàn)的大部分控制功能,正在用單片機(jī)通過軟件方法來實(shí)現(xiàn)。這種以軟件結(jié)合硬件或取代硬件并能提高系統(tǒng)性能的控制技術(shù)稱為微控制技術(shù)。例如,本文所要論述的通過單片機(jī)來控制TEA5767HN芯片及驅(qū)動(dòng)LCD1602液晶屏實(shí)現(xiàn)FM收音并顯示頻率?,F(xiàn)在人們常使用的收音機(jī)為手動(dòng)調(diào)頻收臺(tái),使用較為麻煩,而且由于接收靈敏度不高,所接收的頻段較窄。本設(shè)計(jì)采用的是TEA5767HN芯片,它是由PHILIPS公司推出的針對(duì)低電壓應(yīng)用的單芯片數(shù)字調(diào)諧FM立體聲收音機(jī)芯片。TEA5767HN芯片內(nèi)集成了完整的IF頻率選擇和鑒頻系統(tǒng),只需很少的低成本外圍元件,就可實(shí)現(xiàn)FM收音機(jī)的全部

3、功能。另外,它具有高性能的RF AGC電路,其接收靈敏度高;參考頻率選擇靈活;可實(shí)現(xiàn)自動(dòng)搜臺(tái)。關(guān)鍵詞: 89C52單片機(jī);TEA5767HN芯片;2822功率放大器 AbstractThis test constitute with stc89c52 singlechip micyoco, tea5767 model,2822 power amplifier,1602 and peripheral circuit.In the design process,we used modular design for several types,such as searching model,disp

4、lay model,storage model and some ancillary function.STC series singlechip has very good control ability and stable level to meet the requirements.前言: 本設(shè)計(jì)研究FM收音機(jī)分為硬件電路和程序設(shè)計(jì)兩個(gè)方面。從硬件電路來說,主要是實(shí)現(xiàn)所需電壓值、穩(wěn)壓、搜臺(tái)、控制和頻率顯示等方面;從系統(tǒng)程序來說,主要是如何將電臺(tái)頻率換算出PLL控制字寫入TEA5767HN,以及PLL控制字轉(zhuǎn)換成頻率送顯示。意義: 隨著單片機(jī)技術(shù)的不斷發(fā)展,單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越

5、來越廣泛,TEA5767HN芯片可通過IIC系統(tǒng)總線進(jìn)行各種功能控制,并通過IIC總線輸出7位IF計(jì)數(shù)值;立體聲解調(diào)器完全免調(diào),可用軟件控制SNC、HCC、暫停和靜音功能;具有兩個(gè)可編程I/O口,可用于系統(tǒng)的其他相關(guān)功能,又由于其小尺寸的封裝,使得它非常適合用于電路板空間相當(dāng)有限的設(shè)計(jì)上。1課題分析1.1 總體分析 課題研究分為兩部分:硬件電路和程序。硬件電路包括主控制器、調(diào)頻模塊、喇叭(耳機(jī))接收和頻率顯示四部分。主控制器采用的是單片機(jī)AT89S51,調(diào)頻模塊采用的是TEA5767HN芯片,顯示電路采用FPB9742芯片和LCD液晶屏直讀顯示。程序部分用C語(yǔ)言編寫包括設(shè)定89.6MHZ電臺(tái)、

6、TEA5767HN寫入和讀出、PLL控制字轉(zhuǎn)換為頻率送顯示和IIC總線操作子程序包。通過設(shè)計(jì)電路圖和電路焊接,編寫程序并調(diào)試,使系統(tǒng)達(dá)到設(shè)計(jì)要求。1.2主要技術(shù)分析:1.2.1調(diào)頻廣播收音機(jī)的原理:一個(gè)典型的調(diào)頻廣播收音機(jī)的電路原理圖如下:自動(dòng)增益控制高頻放大器混頻器中頻放大器限幅器鑒頻器音頻放大器調(diào)諧器本地振蕩器1.2.2 本設(shè)計(jì)用到的TEA5767HN的功能介紹:(1)具有集成的高靈敏度低噪聲射頻輸入放大器;(2)具有射頻自動(dòng)增益控制電路RF AGC;(3)LC調(diào)諧振蕩器采用廉價(jià)的固定片式電感;(4)具有內(nèi)部實(shí)現(xiàn)的FM中頻選擇性;(5)具有完全集成的FM鑒頻器,無需外部解調(diào);(6)可選擇3

7、2.768kHZ或13MHZ的晶體參考頻率振蕩器,也可使用外部 6.5MHZ的參考頻率; (7)采用PLL合成器調(diào)諧系統(tǒng);(8)引腳BUSMODE可選擇IIC和3-wire總線;(9)總線可輸出7位中頻計(jì)數(shù)器;(10)總線可輸出4位信號(hào)電平信息;(11)具有軟件靜音功能;(12)具有免調(diào)整立體聲解調(diào)功能;(13)具有電臺(tái)自動(dòng)搜索功能; 1.2.3 TEA5767HN的IIC總線說明: TEA5767HN的IIC總線地址是C0H,是可收發(fā)的從器件結(jié)構(gòu),無內(nèi)部地址。最大低電平是0.2VCCD,最大高電平是0.45VCCD。 當(dāng)使用IIC總線時(shí),引腳BUSMODE必須接地。因總線的最高時(shí)鐘頻率是40

8、0kHZ,故芯片的時(shí)鐘頻率不能高于該值。 當(dāng)向TEA5767HN寫入數(shù)據(jù)時(shí),地址的最低位是0,即寫地址是C0H。當(dāng)從TEA5767HN讀出數(shù)據(jù)時(shí),地址的最低位是1,即讀地址是C1H。TEA5767HN遵守通用的IIC總線通信協(xié)議,IIC總線的寫模式和讀模式格式分別為: IIC寫模式開始位寫地址應(yīng)答位數(shù)據(jù)字節(jié)應(yīng)答位停止位 IIC讀模式開始位讀地址應(yīng)答位數(shù)據(jù)字節(jié)1 1.2.4寫數(shù)據(jù): TEA5767HN內(nèi)部有一個(gè)5字節(jié)的控制寄存器,在IIC上電復(fù)位后,必須先通過總線接口向其寫入適當(dāng)控制字,TEA5767HN才能正常工作。寫入控制字應(yīng)按照以下順序: 地址,字節(jié)1,字節(jié)2,字節(jié)3,字節(jié)4,字節(jié)5 首先

9、發(fā)送每個(gè)字節(jié)的最高位。在時(shí)鐘下降沿后寫入的數(shù)據(jù)才有效。 寫模式字節(jié)1格式 位7(MSB)位6位5位4位3位2位1位0(LSB)MUTESMPLL13PLL12PLL11PLL10PLL9PLL8 寫模式字節(jié)1各位說明位符號(hào) 說明7MUTE左右聲道靜音設(shè)置。1:左右聲道靜音;0:左右聲道非靜音6SM搜索模式設(shè)置。1:搜索模式;0:非搜索模式50PLL138預(yù)置或搜索電臺(tái)的頻率數(shù)據(jù)高6位 寫模式字節(jié)2格式位7(MSB)位6位5位4位3位2位1位0(LSB)PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0 寫模式字節(jié)2各位說明位符號(hào)說明70PLL70預(yù)置或搜索電臺(tái)的頻率數(shù)據(jù)低8位 寫

10、模式字節(jié)3格式位7(MSB)位6位5位4位3位2位1位0(LSB)SUDSSL1SSL0HLSIMSMLMRSWP1 寫模式字節(jié)3各位說明位符號(hào)說明7SUD上下搜索設(shè)置。1:向上搜索;0:向下搜索6,5SSL10設(shè)定搜索停止電平,見下表4HLSI設(shè)定高低本振。1:高端本振注入;0:低端本振注入3MS單聲道或立體聲設(shè)置。1:強(qiáng)制單聲道;0:開立體聲2ML左靜音設(shè)置。1:左聲道靜音強(qiáng)制單聲道;0:左聲道非靜音1MR右靜音設(shè)置。1:右聲道靜音強(qiáng)制單聲道;0:右聲道非靜音0SWP1軟件可編程輸出口1設(shè)置。1:SWPOR1為高;0:SWPOR1為低 搜索停止電平設(shè)置SSL1SSL0搜索停止電平00不搜索

11、01低電平,ADC輸出值為510中電平,ADC輸出值為711高電平,ADC輸出值為10 (本設(shè)計(jì)用的是第三種)1.2.5讀數(shù)據(jù)讀地址為C1H。 讀模式字節(jié)1格式位7(MSB)位6位5位4位3位2位1位0(LSB)RFBLFPLL13PLL12PLL11PLL10PLL9PLL8 讀模式字節(jié)1各位說明位符號(hào)說明7RFReady標(biāo)志。1:發(fā)現(xiàn)了一個(gè)電臺(tái)或搜索到頭;0:未搜索到頭6BLF波段到頭標(biāo)志。1:搜索到頭;0:未搜索到頭50PLL138搜索或預(yù)置的電臺(tái)頻率值的高6位(需換算) 讀模式字節(jié)2格式位7(MSB)位6位5位4位3位2位1位0(LSB)PLL7PLL6PLL5PLL4PLL3PLL2

12、PLL1PLL0讀模式字節(jié)2各位說明位符號(hào)說明70PLL70搜索或預(yù)置的電臺(tái)頻率值的低8位(需換算) 讀模式字節(jié)3格式位7(MSB)位6位5位4位3位2位1位0(LSB)STEREOIF6IF5IF4IF3IF2IF1IF0 讀模式字節(jié)3各位說明位符號(hào)說明7STEREO立體聲標(biāo)志。1:立體聲;0:?jiǎn)温暤?0IF60中頻計(jì)數(shù)結(jié)果 1.2.6 根據(jù)電臺(tái)頻率換算出PLL控制字寫入以及根據(jù)PLL控制字換算出電臺(tái)頻率讀出。TEA5767HN的中頻f固定為225khz,參考頻率與所使用的晶振有關(guān),具體數(shù)值如下: XTAL是寫模式控制字第4字節(jié)的位4,PLLREF是寫模式控制字第5字節(jié)的7位 。 FM收音機(jī)

13、參考頻率XTALPLLREF參考頻率振蕩頻率003000HZ13MHZ013000HZ6.5MHZ1032768HZ32.768KHZ1132768HZ32.768KHZfRF=(NDEC*fREFS)/4-(+)fIF 式中,fRF為收到的電臺(tái)頻率,NDEC為控制字的十進(jìn)制值,fIF為中頻頻率,fREFS為參考頻率。當(dāng)采用高本振時(shí),公式用減號(hào),當(dāng)采用低本振時(shí),公式用加號(hào)。本設(shè)計(jì)用的參考頻率是32768HZ,低本振,計(jì)算公式為: fRF=NDEC*8192+225000(HZ) 2 FM收音機(jī)流程圖:3 FM收音機(jī)電路圖:器件清單:器件規(guī)格件數(shù)電解電容1F2電解電容1000F1電解電容47F4

14、普通電容0.1F1電阻10k2TDA28221喇叭14 FM收音機(jī)實(shí)物圖:5.FM收音機(jī)核心程序:#include #include #include #include #include #define max_freq 108000#define min_freq 87500sbit KEY11=P30;sbit KEY22=P31;sbit KEY1=P32;sbit KEY2=P33;unsigned char radio_write_data5=0x2a,0xb6,0x40,0x11,0x40; /要寫入TEA5767的數(shù)據(jù)unsigned char radio_read_data5;

15、 /TEA5767讀出的狀態(tài)unsigned int default_pll=0x301d; /0x29f9; /默認(rèn)存臺(tái)的pll,95.8MHzunsigned int max_pll=0x339b; /108MHz時(shí)的pll,unsigned int min_pll=9000; /70MHz時(shí)的pllunsigned long frequency;unsigned int pll;unsigned long FM;/*void delay(unsigned int time) while(time-);*/void delay1ms (unsigned int b)/1ms for(b;b

16、0;b-) unsigned int i; for(i=0;i300;i+) ; #includesbit RS = P24; /定義端口 sbit RW = P23;sbit EN = P22;sbit P20=P20;/定義鎖存使能端口 段鎖存sbit P21=P21;/ 位鎖存sbit P35 = P35;/這是為了關(guān)閉開發(fā)板上的點(diǎn)陣實(shí)際應(yīng)用去掉#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#defin

17、e DataPort P1/*- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí) 長(zhǎng)度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t) while(-t);/*- mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編-*/void DelayMs(unsigned char

18、t) while(t-) /大致延時(shí)1mS DelayUs2x(245); DelayUs2x(245); /*- 判忙函數(shù)-*/ bit LCD_Check_Busy(void) DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80); /*- 寫入命令函數(shù)-*/ void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); /忙則等待 RS_CLR; RW_CLR; EN_SET; DataPort= com;

19、_nop_(); EN_CLR; /*- 寫入數(shù)據(jù)函數(shù)-*/ void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙則等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; /*- 清屏函數(shù)-*/ void LCD_Clear(void) LCD_Write_Com(0x01); DelayMs(5); /*- 初始化函數(shù)-*/ void LCD_Init(void) LCD_Write_Com(0x38); /*顯示模式設(shè)置*/ DelayMs(5);

20、 LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*顯示關(guān)閉*/ LCD_Write_Com(0x01); /*顯示清屏*/ LCD_Write_Com(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ DelayMs(5); LCD_Write_Com(0x0C); /*顯示開及光標(biāo)設(shè)置*/ /1602顯示void DISP_FM() unsigned char j; j=(radio_read_data3&0xf0)4; LCD_W

21、rite_Com(0x8e); LCD_Write_Data(0+(j/10); LCD_Write_Data(0+(j%10); LCD_Write_Com(0x8c); LCD_Write_Data(S); LCD_Write_Data(:); FM=frequency; LCD_Write_Com(0x80); LCD_Write_Data(F); LCD_Write_Data(M); LCD_Write_Data( ); LCD_Write_Data(R); LCD_Write_Data(a); LCD_Write_Data(d); LCD_Write_Data(i); LCD_Wri

22、te_Data(o); LCD_Write_Com(0xc2);if(FM/100000) LCD_Write_Data(0+FM/100000);else LCD_Write_Data( );LCD_Write_Com(0xc3); LCD_Write_Data(0+(FM%100000)/10000);LCD_Write_Com(0xc4); LCD_Write_Data(0+(FM%10000/1000);LCD_Write_Com(0xc5); LCD_Write_Data(.);LCD_Write_Com(0xc6); LCD_Write_Data(0+(FM%1000)/100);

23、LCD_Write_Com(0xc7); LCD_Write_Data(0+(FM%100)/10);LCD_Write_Com(0xc8); LCD_Write_Data(0+(FM%10);LCD_Write_Com(0xc9); LCD_Write_Data( );LCD_Write_Com(0xca); LCD_Write_Data(M);LCD_Write_Com(0xcb); LCD_Write_Data(H);LCD_Write_Com(0xcc); LCD_Write_Data(Z); void radio_write(void) unsigned char i; iic_st

24、art(); iic_write8bit(0xc0); /TEA5767寫地址 if(!iic_testack() for(i=0;i5;i+) iic_write8bit(radio_write_datai); iic_ack(); iic_stop(); /由頻率計(jì)算PLLvoid get_pll(void) unsigned char hlsi; unsigned int twpll=0; hlsi=radio_write_data2&0x10; /HLSI位 if (hlsi) pll=(unsigned int)(float)(frequency+225)*4)/(float)32.

25、768); /頻率單位:k else pll=(unsigned int)(float)(frequency-225)*4)/(float)32.768); /頻率單位:k/由PLL計(jì)算頻率void get_frequency(void) unsigned char hlsi; unsigned int npll=0; npll=pll; hlsi=radio_write_data2&0x10; if (hlsi) frequency=(unsigned long)(float)(npll)*(float)8.192-225); /頻率單位:KHz else frequency=(unsign

26、ed long)(float)(npll)*(float)8.192+225); /頻率單位:KHzvoid radio_read(void) unsigned char i; unsigned char temp_l,temp_h; pll=0; iic_start(); iic_write8bit(0xc1); /TEA5767讀地址 if(!iic_testack() for(i=0;imax_freq) frequency=min_freq; else frequency-=100; if(frequencymax_freq) frequency=min_freq; else freq

27、uency-=100; if(frequencymin_freq) frequency=max_freq; get_pll(); if(mode) radio_write_data2=0xb1; else radio_write_data2=0x41; radio_write_data0=pll/256+0x40; /加0x40是將SM置為1 為自動(dòng)搜索模式 radio_write_data1=pll%256; radio_write_data3=0x11; /SSL1和SSL0控制搜索停止條件 radio_write_data4=0x40; radio_write(); radio_read

28、(); while(!(radio_read_data0&0x80) /搜臺(tái)成功標(biāo)志 radio_read(); DISP_FM(); UART_Put_Num(frequency); if(radio_read_data0&0x40)=0x40)BLF=1; else BLF=0; get_pll(); if(radio_read_data2&0x80)radio_write_data2=0xb1; else radio_write_data2=0x41; radio_write_data0=pll/256; radio_write_data1=pll%256; radio_write_da

29、ta3=0x11; radio_write_data4=0x40; radio_write(); radio_read(); DISP_FM(); void main(void) P3=0xFF;P1=0x00;/這是為了關(guān)閉開發(fā)板上的數(shù)碼管實(shí)際應(yīng)用去掉P20=0; /這是為了關(guān)閉開發(fā)板上的數(shù)碼管實(shí)際應(yīng)用去掉P21=0; /這是為了關(guān)閉開發(fā)板上的數(shù)碼管實(shí)際應(yīng)用去掉P35=0; /這是為了關(guān)閉開發(fā)板上的點(diǎn)陣實(shí)際應(yīng)用去掉P1=0xFF;/P1口置1LCD_Init(); LCD_Clear();/清屏 UART_Init();/串口初始化 UART_Send_Str(調(diào)頻收音機(jī)n); radio_

30、write(); while(1) if(KEY1=0) delay1ms(15); /延時(shí)15ms if(KEY1=0) while(KEY1=0);/等待按鍵釋放 search(1); radio_read(); UART_Send_Str(目前頻率n); UART_Put_Num(frequency); UART_Send_Str(n);DISP_FM(); if(KEY2=0) delay1ms(15); /延時(shí)15ms if(KEY2=0) while(KEY2=0);/等待按鍵釋放 search(0); radio_read(); UART_Send_Str(目前頻率n); UART_Put_Num(frequency); UART_Send_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論