折腾了两天,昨晚上调试成功,今天整了一份Kicad的图纸,带自己随便画的一个小板图,还有程序全套。
制作出来的实物图如下:
电路原理图如下:
单片机源程序如下:
/*---------------数字调频收音机------------------*//* 学习之用,请勿商用 */ /* 转载请注明:数字收音机RDAV1.0 */ /*-----------------------------------------------*/ #include<rda.h> #include<ec11.h> #include<i2c.h> #include<5807.h> #include<oled.h> #include<bmp.h> void main() { u8 keynum; u32 rxfreq=9480,vol=2,tn,vol1,xfreq,yfreq; oledinit(); oledbmp(0,0,128,4,BMP1); rdainit(); //RDA5807 初始化 freqset(rxfreq); //频率设置 volset(vol); //音量设置 seeset(6); //搜台灵敏度设置,灵敏度太高会导致杂音,越小灵敏度越高,最大15。 seektion(1); delay_ms(3000); oledclr(); oledchine(0,0,0); oledchine(16,0,1); oledchar(40,0,'-',16); oledchar(72,0,'.',16); oledstr(88,0,"MHz-",16); oledchine(0,2,2); oledchine(16,2,3); oledchar(64,2,'-',16); oledchar(88,2,'-',16); while(1) { keynum=kpass(); switch(keynum) { case 0: break; case 1: rxfreq+=10; //频率+ if(rxfreq>10800) rxfreq=10800; freqset(rxfreq); break; case 2: rxfreq-=10; //频率- if(rxfreq<8830) rxfreq=8830; freqset(rxfreq); break; case 3: vol+=1; //音量+ if(vol>15) vol=15; volset(vol); break; case 4: vol-=1; //音量- if(vol<1) vol=1; volset(vol); break; } if(tn!=rxfreq|vol1!=vol) { tn=rxfreq; vol1=vol; xfreq=rxfreq/100; yfreq=rxfreq/10%10; olednum(72,2,vol,2,16); olednum(48,0,xfreq,3,16); olednum(80,0,yfreq,1,16); } } }
复制代码