找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 18004|回復(fù): 25
打印 上一主題 下一主題
收起左側(cè)

閑在家沒(méi)事做了個(gè)單片機(jī)RDA5807M調(diào)頻收音機(jī) 附代碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
      不能隨便出去的時(shí)期,用手頭的零件做個(gè)數(shù)字收音機(jī),收音模塊5807M,IIC通訊,0.91寸OLED IIC通訊的,EC11,一對(duì)一編碼器,自帶一個(gè)按鍵,就用編碼器+自帶按鍵操作,單片機(jī)翻了翻盒子,發(fā)現(xiàn)兩片STC15W408AS,就這個(gè)了。
      折騰了兩天,昨晚上調(diào)試成功,今天整了一份Kicad的圖紙,帶自己隨便畫的一個(gè)小板圖,還有程序全套。

制作出來(lái)的實(shí)物圖如下:






電路原理圖如下:


單片機(jī)源程序如下:
  1. /*---------------數(shù)字調(diào)頻收音機(jī)------------------*/
  2. /*           學(xué)習(xí)之用,請(qǐng)勿商用                  */
  3. /*           轉(zhuǎn)載請(qǐng)注明:數(shù)字收音機(jī)RDAV1.0       */
  4. /*-----------------------------------------------*/

  5. #include<rda.h>
  6. #include<ec11.h>
  7. #include<i2c.h>
  8. #include<5807.h>
  9. #include<oled.h>
  10. #include<bmp.h>
  11. void main()
  12. {
  13.         u8 keynum;
  14.         u32 rxfreq=9480,vol=2,tn,vol1,xfreq,yfreq;
  15.         oledinit();       
  16.         oledbmp(0,0,128,4,BMP1);
  17.        
  18.         rdainit();  //RDA5807 初始化
  19.         freqset(rxfreq);  //頻率設(shè)置
  20.         volset(vol);      //音量設(shè)置
  21.         seeset(6); //搜臺(tái)靈敏度設(shè)置,靈敏度太高會(huì)導(dǎo)致雜音,越小靈敏度越高,最大15。
  22.         seektion(1);
  23.        
  24.         delay_ms(3000);
  25.         oledclr();
  26.         oledchine(0,0,0);
  27.         oledchine(16,0,1);
  28.         oledchar(40,0,'-',16);
  29.        
  30.         oledchar(72,0,'.',16);
  31.        
  32.         oledstr(88,0,"MHz-",16);
  33.         oledchine(0,2,2);
  34.         oledchine(16,2,3);
  35.         oledchar(64,2,'-',16);
  36.         oledchar(88,2,'-',16);
  37.        
  38.         while(1)
  39.         {
  40.         keynum=kpass();       
  41.                
  42.                 switch(keynum)
  43.                 {
  44.                         case 0:
  45.                                 break;
  46.                         case 1:
  47.                             rxfreq+=10;     //頻率+
  48.                                 if(rxfreq>10800)
  49.                                 rxfreq=10800;
  50.                                 freqset(rxfreq);
  51.                                 break;
  52.                         case 2:
  53.                                 rxfreq-=10;    //頻率-
  54.                                 if(rxfreq<8830)
  55.                                 rxfreq=8830;
  56.                                 freqset(rxfreq);
  57.                                 break;
  58.                         case 3:
  59.                                 vol+=1;       //音量+                               
  60.                                 if(vol>15)
  61.                                 vol=15;
  62.                                 volset(vol);  
  63.                                 break;
  64.                         case 4:
  65.                                 vol-=1;       //音量-
  66.                                 if(vol<1)
  67.                                 vol=1;
  68.                                 volset(vol);  
  69.                                 break;                               
  70.                 }       

  71.                     if(tn!=rxfreq|vol1!=vol)
  72.                 {
  73.                         tn=rxfreq;
  74.                         vol1=vol;
  75.                         xfreq=rxfreq/100;
  76.                         yfreq=rxfreq/10%10;
  77.                 olednum(72,2,vol,2,16);
  78.                 olednum(48,0,xfreq,3,16);
  79.                         olednum(80,0,yfreq,1,16);
  80.                 }
  81.                
  82.         }
  83. }
復(fù)制代碼

所有資料51hei提供下載:
rdAv0.1.7z (47.46 KB, 下載次數(shù): 308)


51hei截圖20200228173019.png (7.13 KB, 下載次數(shù): 167)

51hei截圖20200228173019.png

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:588044 發(fā)表于 2020-3-7 12:35 | 只看該作者
看你寫的5807的驅(qū)動(dòng)好簡(jiǎn)單哦,能用不?
回復(fù)

使用道具 舉報(bào)

板凳
ID:687694 發(fā)表于 2020-3-7 14:21 | 只看該作者
jun4052 發(fā)表于 2020-3-7 12:35
看你寫的5807的驅(qū)動(dòng)好簡(jiǎn)單哦,能用不?

必須可以用啊。5807也是I2C通訊,就是控制寄存器多了幾個(gè),用到的我就用用不到的默認(rèn)值就好了。
回復(fù)

使用道具 舉報(bào)

地板
ID:475993 發(fā)表于 2020-3-9 11:51 | 只看該作者
支持一下,就是程序沒(méi)啥注釋,格式也不美觀。
回復(fù)

使用道具 舉報(bào)

5#
ID:687694 發(fā)表于 2020-3-9 22:10 | 只看該作者
sad520ljh 發(fā)表于 2020-3-9 11:51
支持一下,就是程序沒(méi)啥注釋,格式也不美觀。

謝謝,還在學(xué)習(xí)中。
回復(fù)

使用道具 舉報(bào)

6#
ID:630491 發(fā)表于 2020-3-14 11:56 | 只看該作者
lovexulu 發(fā)表于 2020-3-7 14:21
必須可以用啊。5807也是I2C通訊,就是控制寄存器多了幾個(gè),用到的我就用用不到的默認(rèn)值就好了。

既然是iic,那么可以改成iic的12864吧?
回復(fù)

使用道具 舉報(bào)

7#
ID:687694 發(fā)表于 2020-3-23 18:45 | 只看該作者
1679079206 發(fā)表于 2020-3-14 11:56
既然是iic,那么可以改成iic的12864吧?

iic只是通訊協(xié)議,至于你想用什么類型的顯示屏,符合協(xié)議都可以用,但是對(duì)應(yīng)器件的寄存器地址命令格式不盡相同,按照顯示驅(qū)動(dòng)器件的數(shù)據(jù)手冊(cè)更改就行了。
回復(fù)

使用道具 舉報(bào)

8#
ID:84278 發(fā)表于 2020-4-16 12:15 | 只看該作者
不能調(diào)臺(tái),學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

9#
ID:564022 發(fā)表于 2020-7-24 22:48 | 只看該作者
為什么收不到電臺(tái)呢
回復(fù)

使用道具 舉報(bào)

10#
ID:804975 發(fā)表于 2021-10-5 21:04 | 只看該作者
sad520ljh 發(fā)表于 2020-3-9 11:51
支持一下,就是程序沒(méi)啥注釋,格式也不美觀。

能開(kāi)源,就是良心了,還要這么多的要求。
回復(fù)

使用道具 舉報(bào)

11#
ID:252807 發(fā)表于 2021-10-6 15:00 | 只看該作者
這個(gè)東東制作出來(lái)效果如何?
回復(fù)

使用道具 舉報(bào)

12#
ID:967119 發(fā)表于 2021-10-11 13:55 | 只看該作者
請(qǐng)問(wèn)這些頭文件能分享出來(lái)嗎?我準(zhǔn)備移植到PIC單片機(jī)試試。謝謝!
回復(fù)

使用道具 舉報(bào)

13#
ID:967119 發(fā)表于 2021-10-11 13:58 | 只看該作者
本帖最后由 cczjw 于 2021-10-11 14:23 編輯

請(qǐng)問(wèn)這些頭文件能分享出來(lái)嗎?我準(zhǔn)備移植到PIC單片機(jī)試試。謝謝!
回復(fù)

使用道具 舉報(bào)

14#
ID:385359 發(fā)表于 2022-4-7 07:33 | 只看該作者
感謝,用上了  
回復(fù)

使用道具 舉報(bào)

15#
ID:205485 發(fā)表于 2022-4-14 07:59 | 只看該作者
這個(gè)比較有意思
回復(fù)

使用道具 舉報(bào)

16#
ID:996773 發(fā)表于 2022-4-19 16:22 | 只看該作者


大家好,我是新來(lái)的,玩單片機(jī)沒(méi)多久,89c52加索尼v800原裝收音板。鎖相環(huán)控制
回復(fù)

使用道具 舉報(bào)

17#
ID:360457 發(fā)表于 2022-5-9 14:26 | 只看該作者
你這個(gè)MCU是16腳的 28腳的可以用嗎     STC15W408AS  28腳的
回復(fù)

使用道具 舉報(bào)

18#
ID:470485 發(fā)表于 2022-5-9 16:21 | 只看該作者
我也在玩RDA5807M小模塊
遇到一個(gè)問(wèn)題:
初始化后搜臺(tái)
Register[2] |= (1<<8);
FM_WR_Reg(REG_02,Register[2]);

檢查STC標(biāo)志
while((FM_RD_Reg(REG_0A) & (1<<14)) == 0 )            //等待STC位置為1 表示搜索完成
    delay_ms(10);                                       //延時(shí)10ms

獲取頻率
Chan = FM_RD_Reg(REG_0A) & 0x03FF;

問(wèn)題是,通過(guò)耳機(jī)能正常收音,立即獲取的頻率不正確,
加延時(shí),延時(shí)越長(zhǎng)越接近正確頻率。
回復(fù)

使用道具 舉報(bào)

19#
ID:1026132 發(fā)表于 2022-5-13 09:04 | 只看該作者
閑在家沒(méi)事做,也想做一個(gè)。
回復(fù)

使用道具 舉報(bào)

20#
ID:507641 發(fā)表于 2022-5-13 18:43 | 只看該作者
hi等你 發(fā)表于 2022-4-19 16:22
大家好,我是新來(lái)的,玩單片機(jī)沒(méi)多久,89c52加索尼v800原裝收音板。鎖相環(huán)控制

很好,希望分支享讓大家學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

21#
ID:998993 發(fā)表于 2023-8-1 22:53 | 只看該作者
看你寫的5807的驅(qū)動(dòng)好簡(jiǎn)單哦
回復(fù)

使用道具 舉報(bào)

22#
ID:1085441 發(fā)表于 2023-8-2 22:25 | 只看該作者
hi等你 發(fā)表于 2022-4-19 16:22
大家好,我是新來(lái)的,玩單片機(jī)沒(méi)多久,89c52加索尼v800原裝收音板。鎖相環(huán)控制

感嘆!看到LC72130了,大約十幾年前用過(guò)這個(gè)芯片,那時(shí)候DSP芯片見(jiàn)不到,這個(gè)算是電調(diào)主流了。
回復(fù)

使用道具 舉報(bào)

23#
ID:1131746 發(fā)表于 2024-9-10 17:49 | 只看該作者
你好,看到你有自己制作過(guò)單片機(jī)+RDA5807收音機(jī), 我想咨詢下,給你硬件圖,你能寫出程序嗎?我再網(wǎng)上買了一個(gè)DIY的,他們沒(méi)提供程序,我想自己也畫個(gè)硬件來(lái)玩,但是沒(méi)有程序。你能寫程序的話可以加我,咱聊聊。
回復(fù)

使用道具 舉報(bào)

24#
ID:1131746 發(fā)表于 2024-9-10 18:16 | 只看該作者
你好,能否按我的硬件來(lái)編寫個(gè)程序。硬件也是用STC15W408+RDA5807,用的是數(shù)碼管顯示。
回復(fù)

使用道具 舉報(bào)

25#
ID:373742 發(fā)表于 2024-11-1 11:52 | 只看該作者
零件都有了,整一個(gè)玩玩
回復(fù)

使用道具 舉報(bào)

26#
ID:58925 發(fā)表于 2025-3-4 15:33 | 只看該作者
RDA5807 的收音效果不怎樣,相對(duì)來(lái)說(shuō) SI4703 比RDA5807好些
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表