找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9804|回復(fù): 24
收起左側(cè)

達成小時候的想法,半個指頭大的收音機制作成功 單片機+RDA5807源程序

  [復(fù)制鏈接]
ID:687694 發(fā)表于 2020-7-24 16:19 | 顯示全部樓層 |閱讀模式
上次假期實驗了一個收音機,感覺蠻好的,但是挺簡陋,小時候總喜歡小而精致的東西,于是這次就打板做了個小小的收音機。
鋰電供電,0.91oled,可充電,撥輪開關(guān),左右撥動自動搜臺,按下功能切換,二級設(shè)置菜單,手動搜臺,音量調(diào)整,重低音,頻段等,中鍵長按關(guān)機,長按(1.5秒)開機。電池電量檢測,當(dāng)然還有優(yōu)化的地方,慢慢來吧,但是但是已經(jīng)可以用了!上圖看看吧。

306bfd98897cd5d16c4a0e243715634.jpg

比一塊89c52小點,旁邊是做好的空板。
4645d2b30eeec13ba842d6a109f0838.jpg
開始調(diào)試
4fcc913315386d3ab35afa38f392f60.jpg


基本完工的樣子,燒錄引腳引出腳還在。

51hei瀏覽器截圖20200724160807.jpg


電路圖
51hei瀏覽器截圖20200724161112.jpg

畫好的PCB,用的立創(chuàng)eda
51hei瀏覽器截圖20200724161228.jpg 51hei瀏覽器截圖20200724161257.jpg

正面背面
下面是部分代碼
---------------------------------------------------------------又亂又長,沒優(yōu)化------------------------------------------------------------
#include<rda.h>
#include<ec11.h>
#include<i2c.h>
#include<5807.h>
#include<oled.h>
#include<bmp.h>

u8 keynum,see=4,seen,zz=0,zz1,tt1,Bs=1,Bsn=1,bass=1,bassn=1;
u32 rxfreq=9480,vol=2,tn=0,vol1,xfreq,yfreq,drs,drss,txt,fh=0,fh1=0,adcdat=0,adcdat1=1;
u8 nk=0,nk1=1,//功能鍵狀態(tài)判斷
   nsk=0,nsk1=5;//次級功能鍵判斷

void adcint()
{
        P1ASF=0x01;
        ADC_RES=0;
        ADC_CONTR=0xe0;//復(fù)位
}

u32 adcget()
{        
u32 temp;
ADC_CONTR|=0x08;
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&0x10));
ADC_CONTR=0xe0;//復(fù)位清除轉(zhuǎn)換完成標(biāo)志
temp=(ADC_RES*33)>>8;
return temp;
}

void ztxs()//上電初始化
{
        adcint();
        oledinit();        
        rdainit();  //RDA5807 初始化
        freqset(rxfreq);  //頻率設(shè)置
        volset(vol);
        seeset(see); //搜臺靈敏度設(shè)置 0~15 默認(rèn)是 7 越低接受到的電臺越多
        seektion(1); // 搜臺方向 1 向上搜索 0 向下搜索
        delay_ms(300);        
        oledclr();
        oledbmp(0,0,7,1,BMP2);
        if(nk==0)
        {               
        oledchar(32,2,'<',16);
        oledchar(64,2,'.',16);
        oledstr(88,2,"MHz>",16);
        }
        oledstr(76,-1,"Bass",8);               
}

void guanji()
{
                        oledoff();//關(guān)閉顯示
                        FMen(0);//關(guān)閉收音機
                        INT_CLKO|=0x10;//開啟中斷INT02
                        EA=1;//中斷使能
                        PCON=0x02;//掉電
                        _nop_();
                        _nop_();
                        delay_ms(1000);        
                        oledon();
                        FMen(1);
                        freqset(rxfreq);        
}

void kkpass()
{
        keynum=kpass();
    if(keynum!=0)
        {
                fh=0;
                fh1=0;
                if(keynum==6)//長按關(guān)機開外部中斷
                {
                guanji();
                }
                if(keynum==10)//特殊情況P3.3重啟進入boot
                        IAP_CONTR=0x60;

--------------------------------------------代碼又亂又長,有附件各位慢慢看。-----------------------------------------------------------------------
eba58a0301163de8624850000c55919.jpg

。。!
247627cf65e68c1975bd4f8b8da7637.jpg
51hei.png

rdAv0.rar

128.06 KB, 下載次數(shù): 205, 下載積分: 黑幣 -5

代碼

評分

參與人數(shù) 3黑幣 +125 收起 理由
王朗的誘惑 + 15 漂亮
jialishoushi + 10 共享資料的黑幣獎勵!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:64089 發(fā)表于 2020-7-24 20:26 | 顯示全部樓層
支持DIY,給樓主無私分享點贊!
回復(fù)

使用道具 舉報

ID:770211 發(fā)表于 2020-7-25 11:27 | 顯示全部樓層
不錯,就是會硬件不會編程。
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2020-7-26 16:04 | 顯示全部樓層
鷹的翅膀 發(fā)表于 2020-7-25 11:27
不錯,就是會硬件不會編程。

編程我也不在行,在學(xué)習(xí)中。
回復(fù)

使用道具 舉報

ID:754921 發(fā)表于 2020-8-5 17:03 | 顯示全部樓層
請問顯示屏型號是多少?有規(guī)格書嗎?詳細(xì)的物料清單能分享一下嗎?,自己也想做一個來學(xué)習(xí),我現(xiàn)在是做硬件方面的,對軟件這方面很感興趣,萬分感謝!
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2020-8-7 00:00 | 顯示全部樓層
lisx 發(fā)表于 2020-8-5 17:03
請問顯示屏型號是多少?有規(guī)格書嗎?詳細(xì)的物料清單能分享一下嗎?,自己也想做一個來學(xué)習(xí),我現(xiàn)在是做硬件 ...

顯示屏,中景園的0.91oled,128*32.物料清單在sch里面可以直接導(dǎo)出
回復(fù)

使用道具 舉報

ID:669677 發(fā)表于 2020-8-7 11:47 | 顯示全部樓層
感謝樓主分享點贊!
回復(fù)

使用道具 舉報

ID:754921 發(fā)表于 2020-8-12 11:20 | 顯示全部樓層
lovexulu 發(fā)表于 2020-8-7 00:00
顯示屏,中景園的0.91oled,128*32.物料清單在sch里面可以直接導(dǎo)出

SCH的文件我打不開,是用哪個軟件?kicad里面所有文件我都打不開,我用的是PADS
回復(fù)

使用道具 舉報

ID:601214 發(fā)表于 2020-8-19 22:25 | 顯示全部樓層
請教,自動收臺頻率不準(zhǔn),聲音不清楚 。有什么辦法能夠手動微調(diào)?
回復(fù)

使用道具 舉報

ID:88256 發(fā)表于 2020-8-19 23:27 | 顯示全部樓層
找個合適的運動手腕外殼改裝進去
回復(fù)

使用道具 舉報

ID:233015 發(fā)表于 2020-8-21 11:20 | 顯示全部樓層
樓主 你好在嗎? 請教一下, 我按照你的資料自己畫的板多次檢查沒有發(fā)現(xiàn)問題, 顯示都是正常的,就是沒有電臺聲音? 請問會是那些方面導(dǎo)致的呢?
回復(fù)

使用道具 舉報

ID:233015 發(fā)表于 2020-8-21 11:30 | 顯示全部樓層
樓主, 你好, 我按照你的資料仿制了一個,只是自己畫的板,顯示都是正常的,就是插入耳機沒有聲音,多次檢查也沒有發(fā)現(xiàn)問題,晶振也是起振的(頻率32.768KHz),還有你的電路圖中的R3電阻我沒有安裝,不然插入耳機屏幕就顯示不正常了。 插入耳機沒有聲音,也沒有電臺這是會哪些因素導(dǎo)致的呢?
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2020-8-22 13:10 | 顯示全部樓層
brave_ruan 發(fā)表于 2020-8-21 11:30
樓主, 你好, 我按照你的資料仿制了一個,只是自己畫的板,顯示都是正常的,就是插入耳機沒有聲音,多次檢 ...

有個預(yù)留電阻是為了檢測是否插入耳機,如果沒聲音,要檢查5807是否被啟動,檢查i2c通訊引腳對不對,如果顯示正常,嘗試控制芯片,看下功能是否正常,目前我在外地沒辦法幫到太多
回復(fù)

使用道具 舉報

ID:686858 發(fā)表于 2021-8-29 22:01 | 顯示全部樓層
請問一下為什么我用stc12c5a60s2,要注析掉ADCINT后才能顯示,但就不顯示頻率只顯示<   .MHZ>,不顯示頻率了void ztxs()//上電初始化
{
        //adcint();
        oledinit();       
        rdainit();  //RDA5807 初始化
        freqset(9200);  //頻率設(shè)置
        volset(15);
        seeset(8); //搜臺靈敏度設(shè)置 0~15 默認(rèn)是 7 越低接受到的電臺越多
        seektion(1); // 搜臺方向 1 向上搜索 0 向下搜索
        delay_ms(300);       
        oledclr();
        oledbmp(0,0,7,1,BMP2);
        //if(nk==1)
        {               
        oledchar(32,2,'<',16);
        oledchar(64,2,'.',16);
        oledstr(88,2,"MHz>",16);
        }
        oledstr(76,-1,"Bass",8);       
回復(fù)

使用道具 舉報

ID:285416 發(fā)表于 2021-8-30 20:14 來自手機 | 顯示全部樓層
還是有點大應(yīng)該可以再小一些,像間諜那種。007專用。
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2021-8-31 11:21 | 顯示全部樓層
winsinzhao 發(fā)表于 2021-8-29 22:01
請問一下為什么我用stc12c5a60s2,要注析掉ADCINT后才能顯示,但就不顯示頻率只顯示<   .MHZ>,不顯示頻率了v ...

應(yīng)該是mcu型號不同,adc初始化,還有i2c接口初始化不一樣,請參考官方的手冊。
回復(fù)

使用道具 舉報

ID:430492 發(fā)表于 2021-8-31 13:00 | 顯示全部樓層
有創(chuàng)意,很牛B的說!體積好小。
回復(fù)

使用道具 舉報

ID:686858 發(fā)表于 2021-9-1 08:14 | 顯示全部樓層
winsinzhao 發(fā)表于 2021-8-29 22:01
請問一下為什么我用stc12c5a60s2,要注析掉ADCINT后才能顯示,但就不顯示頻率只顯示<   .MHZ>,不顯示頻率了v ...

請問一下按鍵部分程序用的是拔動開關(guān),還是EC11編碼,開關(guān),開關(guān)的接法,是KA接編碼開關(guān)的A腳,KB接編碼開關(guān)B腳,KC是不是接三腳中的中間腳,KXX是不是就接兩腳那邊的一個腳,另一個腳接地。程序是否上電就自動開,收音初始化是沒有問題的,       rdainit();  //RDA5807 初始化
        freqset(9200);  //頻率設(shè)置
        volset(15); freqset(9200)
回復(fù)

使用道具 舉報

ID:686858 發(fā)表于 2021-9-1 08:19 | 顯示全部樓層
請問一下按鍵的接法,按鍵用的是編碼開關(guān),還是MP3那種拔動開關(guān),程序里的KA是不是就EC11三排腳那排的A腳,KB是不是就EC11三排腳那排的B腳,KC是不是就EC11三排腳那排的中間腳,KXX是不接另外一排兩排腳其中一腳,另外一腳接地,程序是不是上電就自動開機的,現(xiàn)在收音初始化是沒問題的,  rdainit();  //RDA5807 初始化
        freqset(9200);  //頻率設(shè)置 收音是有電臺聲音輸出的就顯示不正常。
回復(fù)

使用道具 舉報

ID:964308 發(fā)表于 2021-9-9 08:31 來自手機 | 顯示全部樓層
lisx 發(fā)表于 2020-8-5 17:03
請問顯示屏型號是多少?有規(guī)格書嗎?詳細(xì)的物料清單能分享一下嗎?,自己也想做一個來學(xué)習(xí),我現(xiàn)在是做硬件 ...

看樣子是0.9x寸的OLED顯示屏
回復(fù)

使用道具 舉報

ID:804975 發(fā)表于 2021-10-5 21:23 | 顯示全部樓層
我也想做一個。不知道程序要多少SRAM和空間才可以。256bytes的SRAM,8K空間可以做不?
回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2021-10-6 16:05 | 顯示全部樓層
和我一樣,我小時候也喜歡收音機,夢想也是靈敏度高立體FM收音機,手工刻畫線路板也干過,那時候沒什么愛好發(fā)展,不像現(xiàn)在電子產(chǎn)品到處都是,孩子沉迷電腦游戲,手機,
回復(fù)

使用道具 舉報

ID:360457 發(fā)表于 2022-5-9 14:32 | 顯示全部樓層

你這個MCU是16腳的 28腳的可以用嗎     STC15W408AS  28腳的可以用嗎
回復(fù)

使用道具 舉報

ID:360457 發(fā)表于 2022-5-9 16:46 | 顯示全部樓層
下載的文件 里面的原理圖不是這個版本
回復(fù)

使用道具 舉報

ID:399893 發(fā)表于 2023-9-6 10:31 | 顯示全部樓層
程序里沒看到外部中斷初始化,能好用嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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