|
記得我做收音機(jī)還是在讀小學(xué)時(shí),用一個(gè)二極管接一條長(zhǎng)長(zhǎng)的電線再接一個(gè)耳機(jī),幾乎聽(tīng)不到什么東西。但是覺(jué)得很神奇,想知道得更多些,從此愛(ài)上電子技術(shù)。當(dāng)然那時(shí)候也喜歡航模什么的,超喜歡一本雜志是《中學(xué)科技》,還有《電子世界》《無(wú)線電》,里面介紹了很多電子知識(shí)?赡芤?yàn)榭炊嗔耍芏嚯娐贩矫娴脑矶际亲约何虺鰜?lái)的。裝的第一臺(tái)7管收音機(jī)是在讀高二時(shí),在雜志上看到有黃河741套件,就買(mǎi)回來(lái)裝了。想想是三十年 前了的事情了。當(dāng)時(shí)聽(tīng)到收音響起來(lái)有多激動(dòng)。
重新想起收音機(jī)是幾個(gè)月前的事。不知道為什么,只是突然想聽(tīng)收音機(jī)了,就在網(wǎng)上搜相關(guān)資料。之前看到的數(shù)字收音都只是加了數(shù)字顯示功能。收音電路部分還是模擬的,并沒(méi)有什么吸引我的。但看到DSP收音后才知道,原來(lái)通信技術(shù)真的發(fā)展到軟件通信階段了;旧纤泄δ芏纪ㄟ^(guò)單片機(jī)運(yùn)算實(shí)現(xiàn),已經(jīng)成了一臺(tái)計(jì)算機(jī)了,真太神奇了。這又激起了我的興趣。想著自己裝一臺(tái),再自己定制界面,沒(méi)事再改改程序,好爽啊。在礦壇里看到sudywolf大牛的帖子,所有資料都共享出來(lái),太好了,非常感謝這些無(wú)私的人。只是sudywolf大牛當(dāng)時(shí)給出的是觸摸屏控制的代碼。我手頭只有按鍵和1602。完全用他的代碼不行。就根據(jù)他給出的資料改成現(xiàn)在這個(gè)樣子。用著感覺(jué)挺好。以后還可以再增加功能,很好玩。先發(fā)出來(lái)給大家看看。
代碼也發(fā)出來(lái),只有2個(gè)文件,有需要可以下載參考。里面有注釋?zhuān)芎枚。功能不多,只有向前搜臺(tái),音量增減。讀懂后可以斷續(xù)增加其他功能。
制作出來(lái)的實(shí)物圖如下:
現(xiàn)在的樣子
和老收音機(jī)合個(gè)影
單片機(jī)源程序如下:
- #include <Arduino.h>
- #include <EEPROM.h>
- #include <Wire.h>
- #include <LiquidCrystal.h>
- #include "akc6955.h"
- AKC6955_RADIO radio;
- //設(shè)置針腳。音量用芯片上電位器控制電路
- //byte pinSS=8; //自動(dòng)搜所有臺(tái)并保存按鍵
- byte pinNext=10; //下一個(gè)臺(tái)按鍵
- byte pinPrev=11; //上一個(gè)臺(tái)按鍵
- //byte pinBand=9; //波段按鍵
- byte pinVoldec=12; //音量減
- byte pinVoladd=8; //音量加
- byte val;
- void setup(void)
- {
- lcd.begin(16,2);
- radio.Initialize();
- //pinMode(pinSS,INPUT_PULLUP);//掃描全部并保存。INPUT_PULLUP使用內(nèi)部上拉電阻
- pinMode(pinNext,INPUT_PULLUP);//next
- pinMode(pinPrev,INPUT_PULLUP);//prev
- //pinMode(pinBand,INPUT_PULLUP);//band
- pinMode(pinVoldec,INPUT_PULLUP);
- pinMode(pinVoladd,INPUT_PULLUP);
- }
- void loop()
- {
- val=digitalRead(pinNext);
- if (val==LOW)
- {
- delay(80);
- if (val==LOW) radio.Seek(1);//搜索下一個(gè)臺(tái)
- }
- val=digitalRead(pinPrev);
- if (val==LOW)
- {
- delay(80);
- if (val==LOW) radio.Seek(0); //搜索下一個(gè)臺(tái)
- } //搜索上一個(gè)臺(tái)
- /* val=digitalRead(pinBand);
- if (val==LOW) //下一個(gè)波段
- {
- delay(80);
- if (val==LOW)
- {while(bcount++>3) bcount=0;
- radio.band_cursor = (++ radio.band_cursor) % BAND_COUNT ;
- radio.switchBand(radio.band_cursor);
- }
- } */
- val=digitalRead(pinVoldec);
- if(val==LOW)
- {
- delay(80);
- if (val==LOW&&(radio.reg6.sound_volume-23) >= 1) //音量減少
- radio.setVolume(--radio.reg6.sound_volume);
- }
- val=digitalRead(pinVoladd);
- if(val==LOW)
- {delay(80);
- if (val==LOW&&(radio.reg6.sound_volume-23) < 40) //音量增加
- radio.setVolume(++radio.reg6.sound_volume);
- }
- delay(100);
- }
復(fù)制代碼
部分程序下載(不完整):
My6955.zip
(6.07 KB, 下載次數(shù): 67)
2020-1-31 09:48 上傳
點(diǎn)擊文件名下載附件
收音機(jī)代碼
|
|