包含1602和tft兩個版本,第一版已調試完畢,問題記錄在調試筆記里面了,第二版會接著完善
制作出來的實物圖如下:
實物.jpg (190.44 KB, 下載次數: 87)
下載附件
2020-7-5 16:57 上傳
PCB.png (132.6 KB, 下載次數: 91)
下載附件
2020-7-5 16:57 上傳
原理圖.png (123.89 KB, 下載次數: 95)
下載附件
2020-7-5 16:57 上傳
單片機源程序如下:
- #include "RDA5807.h" //RDA5807M
- void RDA5807Write(uchar addr,uint dat) //RDA5807M寄存器寫入函數
- {
- OpenIIC();
- IICsendByte(RDA_WRITE);//輸入器件地址。
- IIC_Wait_Ack();
- IICsendByte(addr);//寄存器地址
- IIC_Wait_Ack();
- IICsendByte(dat>>8);//輸入數據高8位。
- IIC_Wait_Ack();
- IICsendByte(dat&0xff);//輸入數據低8位。
- IIC_Wait_Ack();
- CloseIIC();
- }
- uint RDA5807Read(uchar addr) //RDA5807M寄存器讀函數
- {
- uint num;//讀出數據的存放。
- uchar temph,templ;
- OpenIIC();
- IICsendByte(RDA_WRITE);//發送要讀取的器件。
- IIC_Wait_Ack();
- IICsendByte(addr);//發送寄存器地址。
- IIC_Wait_Ack();
- OpenIIC();
- IICsendByte(RDA_READ);//發送器件地址,確定數據傳輸方向。
- IIC_Wait_Ack();
- temph=IICReadByte(1);//讀取數據內容-高8位
- templ=IICReadByte(0);//讀取數據內容-低8位
- CloseIIC();
- num=(temph<<8)|templ; //16位數據
- return num;
- }
- void RDA5807Init()
- {
- RDA5807Write(RDA_R02,0x0002);//軟復位
- delayms(50);
- RDA5807Write(RDA_R02,0xD281);//立體聲-向上掃描-到上下限時停止掃描-上電
- delayms(500);
- RDA5807Write(RDA_R03,0x0008);//band是76-108M步進100k
- RDA5807Write(RDA_R04,0x0040);//基本配置75us去加重
- RDA5807Write(RDA_R05,0x8882);//搜索閾值8 音量2
- }
- void Set_Freq(uint freq) //設置頻率
- {
- uint temp;
- // uint a;
- // freq=freq-870;
- temp=RDA5807Read(RDA_R03);
- delayms(10);
- // a=temp>>6;
- // freq=a+freq;
- temp&=0x001f;
- temp=(freq<<6)|temp; //
- // temp=freq<<6;
- temp|=1<<4;
- delayms(10);
- // temp|=0x0010;
- RDA5807Write(RDA_R03,temp);
- delayms(20);
- while((RDA5807Read(RDA_R0B)&(1<<7))==0);
- }
- void Set_Volume(uchar vol) //設置音量
- {
- uint temp;
- temp=RDA5807Read(RDA_R05);
- delayms(10);
- temp&=0xfff0;
- temp=vol|temp;
- delayms(10);
- // temp|=0x0010;
- RDA5807Write(RDA_R05,temp);
- delayms(20);
- }
- void Set_Mute(uchar mute) //設置靜音
- {
- uint temp;
- temp=RDA5807Read(RDA_R02);
- delayms(10);
- temp&=0xbfff;
- temp=(mute<<14)|temp;
- delayms(10);
- // temp|=0x0010;
- RDA5807Write(RDA_R02,temp);
- delayms(20);
- }
- void Seek_FM_UP() //向上自動搜臺
- {
- uint temp;
- temp=RDA5807Read(RDA_R02);
- delayms(10);
- temp=temp&0xfc7f;
- temp=(6<<7)|temp;
- RDA5807Write(RDA_R02,temp);
- while((RDA5807Read(RDA_R0A)&(1<<14))==0);
- }
- void Seek_FM_DOWN() //向下自動搜臺
- {
- uint temp;
- temp=RDA5807Read(RDA_R02);
- delayms(10);
- temp=temp&0xfc7f;
- temp=(2<<7)|temp;
- RDA5807Write(RDA_R02,temp);
- while((RDA5807Read(RDA_R0A)&(1<<14))==0);
- }
復制代碼 全部資料51hei下載地址:
調試筆記.doc
(27 KB, 下載次數: 82)
2020-7-5 17:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
RDA5807-tft144-TEST.zip
(143.25 KB, 下載次數: 73)
2020-7-5 17:02 上傳
點擊文件名下載附件
tft代碼 下載積分: 黑幣 -5
RDA5807-1602-TEST.zip
(99.55 KB, 下載次數: 101)
2020-7-5 17:02 上傳
點擊文件名下載附件
1602代碼 下載積分: 黑幣 -5
radio.PDF
(522.54 KB, 下載次數: 74)
2020-7-5 17:02 上傳
點擊文件名下載附件
原理圖 下載積分: 黑幣 -5
另外,歡迎大家踩踩我的小論壇,希望管理大大不要介意,純屬搞著玩
游客,本帖隱藏的內容需要積分高于 1 才可瀏覽,您當前積分為 0
|