RDA5807m+IIC收音機(jī)51單片機(jī)C程序_第1頁(yè)
RDA5807m+IIC收音機(jī)51單片機(jī)C程序_第2頁(yè)
RDA5807m+IIC收音機(jī)51單片機(jī)C程序_第3頁(yè)
RDA5807m+IIC收音機(jī)51單片機(jī)C程序_第4頁(yè)
RDA5807m+IIC收音機(jī)51單片機(jī)C程序_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、RDA5807rlE動(dòng)程序+ IIC程序5:AklI2CCHIPI2CCHIPADOR.E55ADOR.E55WAREGISTERREGISTERADDRESSADDRESSAREGISTERREGISTERBI.TAREGISTERREGISTERBlTZNANAiirOP國(guó)1010復(fù)合珞式在寫特義陽(yáng)1111篁含格丸i2i2。逢他戈CmCm w w lidlid viavia14M14MIH?IM*tewitewif 產(chǎn),* *; + +*i*i * *AK*AK*國(guó)2 2。O O:z zo o O OCA1ZZOCA1ZZO_ _n nfifi llllI II I | |i|i| | |

2、N NI IhidhidH H IIIII II I | |i|iH HI III I I I Illscsc“WW八ATTVfefe llllI II I J Jlili |j|jH HI Ih h | | |h hSTARTSTART addadd比七E E南ACKACK 3 3 H H用i i的區(qū)ACXACX出心krwkrwAUKAUK STOPSTOP STARTSTART*介紹:RD5807M收音機(jī)程序供電3.3v主控使用51單片機(jī)顯示使用LCD1602*胖子*時(shí)間:2021-1-5START12CCHIP12CCHIPADDRESSADDRESSREGIJTERREGIJTERAD

3、DRESSADDRESSSTARTSTARTI2CCHIPADDADD HESSHESS35TER35TERBITD 5GRECisreaRECisreaNANASTOP/*2121 1 1 12c12c接口等就乘時(shí)序*地點(diǎn):桂林電子科技大學(xué)*/#include #include #include #define uchar unsigned char#define uint unsigned int#define ulint unsigned long int#define lint long intuchar code xian44=123,4,5,6,7,8,9,10,11,12,13,

4、14,15,16;uchar code hang=0 xfe,0 xfd,0 xfb,0 xf7; /矩陣鍵盤掃描使用/RDA的存放器地址#define RDA_R00 0X00 /讀出16個(gè)位的ID =0X5800#define RDA_R02 0X02 /DHIZ15,DMUTE14靜音,MONO13聲道,BASS12重低音,SEEKUP9,SEEK8,SKMODE7,CLK_MODE6:4時(shí)鐘源選擇,SOFTRESET1軟復(fù)位,ENABLE0電源使能#define RDA_R03寬步長(zhǎng)0X03 /CHAN15:6,TUNE4,BAND3:2,SPACE1:0設(shè)置頻率#define RDA

5、_R04#define RDA_R050X04 STCIEN14,DE11,I2Senable6,0X05 /INT_MODE15,SEEKTH14:8(設(shè)定自動(dòng)搜索信號(hào)強(qiáng)度閥值工LNA_PORT_SEL7:6=0b10,LNA_ICSEL_BIT5:4,VOLUME3:0音量;#define RDA_R0A0X0A /STC14seek complete SF13seek fail readchan9:0當(dāng)前頻道#define RDA_R0B 0X0B /RSSI15:9,FM TRUE8當(dāng)前頻道是一個(gè)節(jié)目臺(tái)#define RDA_READ 0X23 /讀RDA5807#define RDA

6、_WRITE 0X22 /寫RDA5807/IO操作函數(shù)sbit SDA=P2A1;sbit SCL=P2A0;sbit RW =P1A1;sbit RS=P1A0;sbit EN=P2A5;uchar code a=FM:.;uchar code b=Vol: RSSI: uchar codeshu=0123456789; uchar num ;void delayms(uint x)/ 延遲程序uint i,j;for(i=x;i0;i-)for(j=113;j0;j-);/*/switch(gaowei)case 0 xe:y=0; break;case 0 xd:y=1; break;

7、case 0 xb:y=2; break;case 0 x7:y=3; break;while(temp!=0 xf0)temp=P3&0 xf0;return xianxy;return 0;*uchar ScanKey()返回值為零uint x,y;for(x=0;x250) CloseIIC();return 1; SCL=0;return 0;void IIC_Ack(void) /發(fā)送應(yīng)答信號(hào)SCL=0;SDA=0; /0 f ?6| e IIC_delayms();SCL=1;IIC_delayms();SCL=0;void IIC_NAck(void) /IIC非應(yīng)答信號(hào)

8、SCL=0;SDA=1;IIC_delayms();等待從機(jī)發(fā)送響應(yīng)信SCL=1;IIC_delayms();SCL=0;void IICsendByte(uchar txd)/IIC寫一個(gè)字節(jié)uchar t;SCL=0;for(t=0;t7)=1)SDA=1;elseSDA=0;txd=1;IIC_delayms();SCL=1;IIC_delayms();SCL=0;IIC_delayms(); uchar IICReadByte(unsigned char ack) /IIC讀一個(gè)字節(jié)unsigned char i,receive=0;SDA=1; /51單片機(jī)講引腳置高可設(shè)為輸入引腳f

9、or(i=0;i8;i+ ) SCL=0;IIC_delayms();SCL=1;receive=1;if(SDA=1)receive+;IIC_delayms(); if (!ack)IIC_NAck();elseIIC_Ack();return receive;uint ReadReg(uchar regAddr)/芯片讀存放器uint buf;OpenIIC();IICsendByte(RDA_WRITE); /發(fā)送芯片地址方向?yàn)閷慖IC_Wait_Ack();IICsendByte(regAddr); /發(fā)送存放器地址IIC_Wait_Ack();OpenIIC();IICsendBy

10、te(RDA_READ); /發(fā)送芯片地址方向?yàn)樽xIIC_Wait_Ack();buf = IICReadByte;buf = buf8);IIC_Wait_Ack();IICsendByte(val&0XFF);IIC_Wait_Ack();CloseIIC();void Vol_Set(uchar vol) /音量設(shè)置015uint temp=0;temp=ReadReg(RDA_R05);temp&=0 xfff0;WriteReg(0 x05,vol|temp); void Mute_Set(uchar mute) uint temp=0;temp=ReadReg(0X

11、02);if(!mute)temp|=114;else temp&=(114);WriteReg(0X02,temp);void Bass_Set(uchar bass)/頻帶設(shè)置uint temp=0;temp=ReadReg(0X02);if(bass)temp|=112;else temp&=(19)&0 x7f; return temp;void Seekth_Set(uint rssi)/自動(dòng)搜臺(tái)信號(hào)閾值強(qiáng)度015默認(rèn)為8數(shù)值越低搜到的臺(tái)越多uint temp;rssi = rssi & 0 xf;temp=ReadReg(0X05);temp&

12、;=(0 xf8);temp|= rssi8;WriteReg(0X05,temp);void Seek_direction(uchar direction)/搜臺(tái)方向1向上搜索0向下搜索uint temp;temp=ReadReg(RDA_R02);temp&=(19);indirection = 1)temp尸19;/ indirection = 0)/ temp尸02)&0 x03;spc=temp&0 x03;if(spc=0)spc=10;else if(spc=1)spc=20;else spc=5;if(band=0)fbtm=8700;else if(b

13、and=1|band=2)fbtm=7600; elsefbtm=ReadReg(0X53);fbtm*=10; if(freqfbtm)return;chan=(freq-fbtm)/spc;chan&=0X3FF;temp|=chan6;temp|=14;WriteReg(RDA_R03,temp);delayms(20);/while(ReadReg(0X0B)&(17)=0); unsigned int seek_channel(void) /半自 動(dòng)搜臺(tái)unsigned long temp;temp=ReadReg(RDA_R02);temp |= (18);Writ

14、eReg(RDA_R02,temp) ;/SEEK位置一 使能自動(dòng)搜臺(tái)while( (ReadReg(RDA_R0A)&(114) = 0 ) /等待STC位置一 表示搜索完成delayms(10);?o e 10mstemp = (ReadReg(RDA_R0A)&0 x3FF) * 100000 + 87000000)/10000 ; /獲取當(dāng)前頻return temp; /返回搜到電臺(tái)頻率單位是:10Khzvoid FM_enable(uchar flag) /1使能芯片0禁用芯片uint temp;temp=ReadReg(RDA_R02);if(flag =1 )te

15、mp |=1;if(flag = 0)temp &= 0 x1;WriteReg(RDA_R02,temp);void RDA_Init(void)/RDA3? c?一WriteReg(RDA_R02,0 x0002);/delayms(30);WriteReg(RDA_R02,0 xd081);/?i?e uSKMODE = 1?+? e i 1WriteReg(RDA_R03,0 x0000);亡?a87M108MWriteReg(RDA_R04,0 x0040);/?WriteReg(RDA_R05,0X8882);/FM_enable(1);Seekth_Set(8);的臺(tái)越多

16、void display_1602()write_com(0 x80);for(num=0;num34;num+)write_data(anum);delayms(5);write_com(0 x80+0 x40);for(num=0;num1000)Display_RSSI(Rssi_Get(); 顯示信號(hào)強(qiáng)度Key_num=ScanKey();switch(Key_num)case 1: if(RXFreq=8800)RXFreq=8800; 頻率減else RXFreq-=10;Freq_Set(RXFreq);DisplayFrq(RXFreq/100.0);while(0!=Scan

17、Key(); /按鍵釋放break; case 2:if(RXFreq=10800)RXFreq=10800;頻率力口else RXFreq+=10;Freq_Set(RXFreq); DisplayFrq(RXFreq/100.0); while(0!=ScanKey();/按鍵釋放break; case 5: /聲音減if(Vol=0) Vol=0; else Vol-=1; Vol_Set(Vol); DisplayVol(Vol);/顯示音量while(0!=ScanKey(); /按鍵釋放break; case 6: if(Vol=15)Vol=15;/聲音力口else Vol+=1

18、; Vol_Set(Vol); DisplayVol(Vol);/顯示音量while(0!=ScanKey(); /按鍵釋放break; case 7: if(mute=1)靜音 Mute_Set(1); Display_mute(); 顯示靜音while(0!=ScanKey(); /按鍵釋放mute=0; break; if(mute=0) Mute_Set(0); DisplayVol(Vol); /取消靜音顯示音量mute=1; while(0!=ScanKey(); break;case 9:搜索while(0!=ScanKey();Seek_direction(0);RXFreq = seek_channel();Freq_Set(RXFreq);DisplayFrq(RXFreq/100.0); break;case 10:搜索while(0!=ScanKey();Seek_direction;RXFreq = seek_channel()

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論