找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7599|回复: 24
打印 上一主题 下一主题
收起左侧

达成小时候的想法,半个指头大的收音机制作成功 单片机+RDA5807源程序

  [复制链接]
跳转到指定楼层
楼主
上次假期实验了一个收音机,感觉蛮好的,但是挺简陋,小时候总喜欢小而精致的东西,于是这次就打板做了个小小的收音机。
锂电供电,0.91oled,可充电,拨轮开关,左右拨动自动搜台,按下功能切换,二级设置菜单,手动搜台,音量调整,重低音,频段等,中键长按关机,长按(1.5秒)开机。电池电量检测,当然还有优化的地方,慢慢来吧,但是但是已经可以用了!上图看看吧。



比一块89c52小点,旁边是做好的空板。

开始调试



基本完工的样子,烧录引脚引出脚还在。




电路图


画好的PCB,用的立创eda


正面背面
下面是部分代码
---------------------------------------------------------------又乱又长,没优化------------------------------------------------------------
#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,//功能键状态判断
   nsk=0,nsk1=5;//次级功能键判断

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

u32 adcget()
{        
u32 temp;
ADC_CONTR|=0x08;
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&0x10));
ADC_CONTR=0xe0;//复位清除转换完成标志
temp=(ADC_RES*33)>>8;
return temp;
}

void ztxs()//上电初始化
{
        adcint();
        oledinit();        
        rdainit();  //RDA5807 初始化
        freqset(rxfreq);  //频率设置
        volset(vol);
        seeset(see); //搜台灵敏度设置 0~15 默认是 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();//关闭显示
                        FMen(0);//关闭收音机
                        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)//长按关机开外部中断
                {
                guanji();
                }
                if(keynum==10)//特殊情况P3.3重启进入boot
                        IAP_CONTR=0x60;

--------------------------------------------代码又乱又长,有附件各位慢慢看。-----------------------------------------------------------------------


!!!!

247627cf65e68c1975bd4f8b8da7637.jpg (121.21 KB, 下载次数: 170)

247627cf65e68c1975bd4f8b8da7637.jpg

51hei.png (11.06 KB, 下载次数: 148)

51hei.png

rdAv0.rar

128.06 KB, 下载次数: 189, 下载积分: 黑币 -5

代码

评分

参与人数 3黑币 +125 收起 理由
王朗的诱惑 + 15 漂亮
jialishoushi + 10 共享资料的黑币奖励!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏32 分享淘帖 顶8 踩
回复

使用道具 举报

沙发
ID:64089 发表于 2020-7-24 20:26 | 只看该作者
支持DIY,给楼主无私分享点赞!
回复

使用道具 举报

板凳
ID:770211 发表于 2020-7-25 11:27 | 只看该作者
不错,就是会硬件不会编程。
回复

使用道具 举报

地板
ID:687694 发表于 2020-7-26 16:04 | 只看该作者
鹰的翅膀 发表于 2020-7-25 11:27
不错,就是会硬件不会编程。

编程我也不在行,在学习中。
回复

使用道具 举报

5#
ID:754921 发表于 2020-8-5 17:03 | 只看该作者
请问显示屏型号是多少?有规格书吗?详细的物料清单能分享一下吗?,自己也想做一个来学习,我现在是做硬件方面的,对软件这方面很感兴趣,万分感谢!
回复

使用道具 举报

6#
ID:687694 发表于 2020-8-7 00:00 | 只看该作者
lisx 发表于 2020-8-5 17:03
请问显示屏型号是多少?有规格书吗?详细的物料清单能分享一下吗?,自己也想做一个来学习,我现在是做硬件 ...

显示屏,中景园的0.91oled,128*32.物料清单在sch里面可以直接导出
回复

使用道具 举报

7#
ID:669677 发表于 2020-8-7 11:47 | 只看该作者
感谢楼主分享点赞!
回复

使用道具 举报

8#
ID:754921 发表于 2020-8-12 11:20 | 只看该作者
lovexulu 发表于 2020-8-7 00:00
显示屏,中景园的0.91oled,128*32.物料清单在sch里面可以直接导出

SCH的文件我打不开,是用哪个软件?kicad里面所有文件我都打不开,我用的是PADS
回复

使用道具 举报

9#
ID:601214 发表于 2020-8-19 22:25 | 只看该作者
请教,自动收台频率不准,声音不清楚 。有什么办法能够手动微调?
回复

使用道具 举报

10#
ID:88256 发表于 2020-8-19 23:27 | 只看该作者
找个合适的运动手腕外壳改装进去
回复

使用道具 举报

11#
ID:233015 发表于 2020-8-21 11:20 | 只看该作者
楼主 你好在吗? 请教一下, 我按照你的资料自己画的板多次检查没有发现问题, 显示都是正常的,就是没有电台声音? 请问会是那些方面导致的呢?
回复

使用道具 举报

12#
ID:233015 发表于 2020-8-21 11:30 | 只看该作者
楼主, 你好, 我按照你的资料仿制了一个,只是自己画的板,显示都是正常的,就是插入耳机没有声音,多次检查也没有发现问题,晶振也是起振的(频率32.768KHz),还有你的电路图中的R3电阻我没有安装,不然插入耳机屏幕就显示不正常了。 插入耳机没有声音,也没有电台这是会哪些因素导致的呢?
回复

使用道具 举报

13#
ID:687694 发表于 2020-8-22 13:10 | 只看该作者
brave_ruan 发表于 2020-8-21 11:30
楼主, 你好, 我按照你的资料仿制了一个,只是自己画的板,显示都是正常的,就是插入耳机没有声音,多次检 ...

有个预留电阻是为了检测是否插入耳机,如果没声音,要检查5807是否被启动,检查i2c通讯引脚对不对,如果显示正常,尝试控制芯片,看下功能是否正常,目前我在外地没办法帮到太多
回复

使用道具 举报

14#
ID:686858 发表于 2021-8-29 22:01 | 只看该作者
请问一下为什么我用stc12c5a60s2,要注析掉ADCINT后才能显示,但就不显示频率只显示<   .MHZ>,不显示频率了void ztxs()//上电初始化
{
        //adcint();
        oledinit();       
        rdainit();  //RDA5807 初始化
        freqset(9200);  //频率设置
        volset(15);
        seeset(8); //搜台灵敏度设置 0~15 默认是 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);       
回复

使用道具 举报

15#
ID:285416 发表于 2021-8-30 20:14 来自手机 | 只看该作者
还是有点大应该可以再小一些,像间谍那种。007专用。
回复

使用道具 举报

16#
ID:687694 发表于 2021-8-31 11:21 | 只看该作者
winsinzhao 发表于 2021-8-29 22:01
请问一下为什么我用stc12c5a60s2,要注析掉ADCINT后才能显示,但就不显示频率只显示<   .MHZ>,不显示频率了v ...

应该是mcu型号不同,adc初始化,还有i2c接口初始化不一样,请参考官方的手册。
回复

使用道具 举报

17#
ID:430492 发表于 2021-8-31 13:00 | 只看该作者
有创意,很牛B的说!体积好小。
回复

使用道具 举报

18#
ID:686858 发表于 2021-9-1 08:14 | 只看该作者
winsinzhao 发表于 2021-8-29 22:01
请问一下为什么我用stc12c5a60s2,要注析掉ADCINT后才能显示,但就不显示频率只显示<   .MHZ>,不显示频率了v ...

请问一下按键部分程序用的是拔动开关,还是EC11编码,开关,开关的接法,是KA接编码开关的A脚,KB接编码开关B脚,KC是不是接三脚中的中间脚,KXX是不是就接两脚那边的一个脚,另一个脚接地。程序是否上电就自动开,收音初始化是没有问题的,       rdainit();  //RDA5807 初始化
        freqset(9200);  //频率设置
        volset(15); freqset(9200)
回复

使用道具 举报

19#
ID:686858 发表于 2021-9-1 08:19 | 只看该作者
请问一下按键的接法,按键用的是编码开关,还是MP3那种拔动开关,程序里的KA是不是就EC11三排脚那排的A脚,KB是不是就EC11三排脚那排的B脚,KC是不是就EC11三排脚那排的中间脚,KXX是不接另外一排两排脚其中一脚,另外一脚接地,程序是不是上电就自动开机的,现在收音初始化是没问题的,  rdainit();  //RDA5807 初始化
        freqset(9200);  //频率设置 收音是有电台声音输出的就显示不正常。
回复

使用道具 举报

20#
ID:964308 发表于 2021-9-9 08:31 来自手机 | 只看该作者
lisx 发表于 2020-8-5 17:03
请问显示屏型号是多少?有规格书吗?详细的物料清单能分享一下吗?,自己也想做一个来学习,我现在是做硬件 ...

看样子是0.9x寸的OLED显示屏
回复

使用道具 举报

21#
ID:804975 发表于 2021-10-5 21:23 | 只看该作者
我也想做一个。不知道程序要多少SRAM和空间才可以。256bytes的SRAM,8K空间可以做不?
回复

使用道具 举报

22#
ID:72088 发表于 2021-10-6 16:05 | 只看该作者
和我一样,我小时候也喜欢收音机,梦想也是灵敏度高立体FM收音机,手工刻画线路板也干过,那时候没什么爱好发展,不像现在电子产品到处都是,孩子沉迷电脑游戏,手机,
回复

使用道具 举报

23#
ID:360457 发表于 2022-5-9 14:32 | 只看该作者

你这个MCU是16脚的 28脚的可以用吗     STC15W408AS  28脚的可以用吗
回复

使用道具 举报

24#
ID:360457 发表于 2022-5-9 16:46 | 只看该作者
下载的文件 里面的原理图不是这个版本
回复

使用道具 举报

25#
ID:399893 发表于 2023-9-6 10:31 | 只看该作者
程序里没看到外部中断初始化,能好用吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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