找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11754|回复: 7
收起左侧

单片机rda5807收音机程序调试及原理图实物展示

  [复制链接]
ID:568565 发表于 2020-7-5 17:14 | 显示全部楼层 |阅读模式
包含1602和tft两个版本,第一版已调试完毕,问题记录在调试笔记里面了,第二版会接着完善
制作出来的实物图如下:
实物.jpg
PCB.png
原理图.png

单片机源程序如下:
  1. #include "RDA5807.h"   //RDA5807M

  2. void RDA5807Write(uchar addr,uint dat)                 //RDA5807M寄存器写入函数
  3. {
  4.     OpenIIC();
  5.         IICsendByte(RDA_WRITE);//输入器件地址。
  6.         IIC_Wait_Ack();
  7.         IICsendByte(addr);//寄存器地址
  8.         IIC_Wait_Ack();
  9.         IICsendByte(dat>>8);//输入数据高8位。
  10.         IIC_Wait_Ack();
  11.         IICsendByte(dat&0xff);//输入数据低8位。
  12.         IIC_Wait_Ack();
  13.         CloseIIC();
  14. }

  15. uint RDA5807Read(uchar addr)                  //RDA5807M寄存器读函数
  16. {
  17.         uint num;//读出数据的存放。
  18.         uchar temph,templ;
  19.         OpenIIC();
  20.         IICsendByte(RDA_WRITE);//发送要读取的器件。
  21.         IIC_Wait_Ack();
  22.         IICsendByte(addr);//发送寄存器地址。
  23.         IIC_Wait_Ack();
  24.         OpenIIC();
  25.         IICsendByte(RDA_READ);//发送器件地址,确定数据传输方向。
  26.         IIC_Wait_Ack();
  27.         temph=IICReadByte(1);//读取数据内容-高8位

  28.         templ=IICReadByte(0);//读取数据内容-低8位

  29.         CloseIIC();
  30.         num=(temph<<8)|templ;         //16位数据
  31.         return num;
  32. }

  33. void RDA5807Init()
  34. {
  35.    RDA5807Write(RDA_R02,0x0002);//软复位
  36.    delayms(50);
  37.    RDA5807Write(RDA_R02,0xD281);//立体声-向上扫描-到上下限时停止扫描-上电
  38.    delayms(500);
  39.    RDA5807Write(RDA_R03,0x0008);//band是76-108M步进100k
  40.    RDA5807Write(RDA_R04,0x0040);//基本配置75us去加重
  41.    RDA5807Write(RDA_R05,0x8882);//搜索阈值8 音量2
  42. }



  43. void Set_Freq(uint freq)                        //设置频率
  44. {
  45.         uint temp;
  46. //        uint a;
  47. //        freq=freq-870;
  48.         temp=RDA5807Read(RDA_R03);
  49.         delayms(10);

  50. //        a=temp>>6;

  51. //        freq=a+freq;

  52.         temp&=0x001f;

  53.         temp=(freq<<6)|temp;         //
  54. //        temp=freq<<6;
  55.         temp|=1<<4;
  56.         delayms(10);
  57. //        temp|=0x0010;
  58.         RDA5807Write(RDA_R03,temp);
  59.         delayms(20);
  60.         while((RDA5807Read(RDA_R0B)&(1<<7))==0);
  61. }


  62. void Set_Volume(uchar vol)                        //设置音量
  63. {
  64.         uint temp;
  65.         temp=RDA5807Read(RDA_R05);
  66.         delayms(10);
  67.         temp&=0xfff0;
  68.         temp=vol|temp;
  69.         delayms(10);
  70. //        temp|=0x0010;
  71.         RDA5807Write(RDA_R05,temp);
  72.         delayms(20);        
  73. }

  74. void Set_Mute(uchar mute)                         //设置静音
  75. {
  76.         uint temp;
  77.         temp=RDA5807Read(RDA_R02);
  78.         delayms(10);
  79.         temp&=0xbfff;
  80.         temp=(mute<<14)|temp;
  81.         delayms(10);
  82. //        temp|=0x0010;
  83.         RDA5807Write(RDA_R02,temp);
  84.         delayms(20);               
  85. }


  86. void Seek_FM_UP()                                //向上自动搜台
  87. {
  88.         uint temp;
  89.         temp=RDA5807Read(RDA_R02);
  90.         delayms(10);
  91.         temp=temp&0xfc7f;
  92.         temp=(6<<7)|temp;
  93.         RDA5807Write(RDA_R02,temp);
  94.         while((RDA5807Read(RDA_R0A)&(1<<14))==0);
  95. }

  96. void Seek_FM_DOWN()                          //向下自动搜台
  97. {
  98.         uint temp;
  99.         temp=RDA5807Read(RDA_R02);
  100.         delayms(10);
  101.         temp=temp&0xfc7f;
  102.         temp=(2<<7)|temp;
  103.         RDA5807Write(RDA_R02,temp);
  104.         while((RDA5807Read(RDA_R0A)&(1<<14))==0);
  105. }


复制代码
全部资料51hei下载地址:

调试笔记.doc (27 KB, 下载次数: 78)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:795562 发表于 2020-7-23 21:51 | 显示全部楼层
楼主,可以编写一个STC15W408AS芯片控制频合芯片LC72131,用于短波5-30Mhz和FM频段50-400Mhz的程序吗?
回复

使用道具 举报

ID:816553 发表于 2020-9-2 21:06 | 显示全部楼层
请问,原理图和PCB图没有吗?不是图片的
回复

使用道具 举报

ID:568565 发表于 2020-12-4 15:18 | 显示全部楼层
wszz. 发表于 2020-9-2 21:06
请问,原理图和PCB图没有吗?不是图片的

我博客里面有
回复

使用道具 举报

ID:568565 发表于 2020-12-4 15:19 | 显示全部楼层
wszz. 发表于 2020-9-2 21:06
请问,原理图和PCB图没有吗?不是图片的

有的,有时间上传一下
回复

使用道具 举报

ID:568565 发表于 2020-12-4 15:20 | 显示全部楼层
bfzy123 发表于 2020-7-23 21:51
楼主,可以编写一个STC15W408AS芯片控制频合芯片LC72131,用于短波5-30Mhz和FM频段50-400Mhz的程序吗?

没有尝试过
回复

使用道具 举报

ID:996264 发表于 2021-12-25 10:45 | 显示全部楼层
感谢分享,请问有详细电子件清单吗
回复

使用道具 举报

ID:996773 发表于 2022-4-6 13:59 | 显示全部楼层
bfzy123 发表于 2020-7-23 21:51
楼主,可以编写一个STC15W408AS芯片控制频合芯片LC72131,用于短波5-30Mhz和FM频段50-400Mhz的程序吗?

210731m29j2zjcjj524fpy.jpg 我有72131频合控制汇编程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表