单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:8419|回复:11
打印上一主题下一主题

我的第一台DSP收音机(AKC6955)

 [复制链接]
跳转到指定楼层
楼主
ID:688914发表于 2020-1-31 09:44|只看该作者回帖奖励
记得我做收音机还是在读小学时,用一个二极管接一条长长的电线再接一个耳机,几乎听不到什么东西。但是觉得很神奇,想知道得更多些,从此爱上电子技术。当然那时候也喜欢航模什么的,超喜欢一本杂志是《中学科技》,还有《电子世界》《无线电》,里面介绍了很多电子知识。可能因为看多了,很多电路方面的原理都是自己悟出来的。装的第一台7管收音机是在读高二时,在杂志上看到有黄河741套件,就买回来装了。想想是三十年 前了的事情了。当时听到收音响起来有多激动。
重新想起收音机是几个月前的事。不知道为什么,只是突然想听收音机了,就在网上搜相关资料。之前看到的数字收音都只是加了数字显示功能。收音电路部分还是模拟的,并没有什么吸引我的。但看到DSP收音后才知道,原来通信技术真的发展到软件通信阶段了。基本上所有功能都通过单片机运算实现,已经成了一台计算机了,真太神奇了。这又激起了我的兴趣。想着自己装一台,再自己定制界面,没事再改改程序,好爽啊。在矿坛里看到sudywolf大牛的帖子,所有资料都共享出来,太好了,非常感谢这些无私的人。只是sudywolf大牛当时给出的是触摸屏控制的代码。我手头只有按键和1602。完全用他的代码不行。就根据他给出的资料改成现在这个样子。用着感觉挺好。以后还可以再增加功能,很好玩。先发出来给大家看看。
代码也发出来,只有2个文件,有需要可以下载参考。里面有注释,很好懂。功能不多,只有向前搜台,音量增减。读懂后可以断续增加其他功能。
制作出来的实物图如下:


单片机源程序如下:
  1. #include< Arduino.h>
  2. #include< EEPROM.h>
  3. #include< Wire.h>
  4. #include< LiquidCrystal.h>
  5. #include "akc6955.h"

  6. AKC6955_RADIO radio;
  7. //设置针脚。音量用芯片上电位器控制电路
  8. //byte pinSS=8; //自动搜所有台并保存按键
  9. byte pinNext=10; //下一个台按键
  10. byte pinPrev=11; //上一个台按键
  11. //byte pinBand=9; //波段按键
  12. byte pinVoldec=12; //音量减
  13. byte pinVoladd=8;  //音量加
  14. byte val;
  15. void setup(void)
  16. {
  17.   lcd.begin(16,2);
  18.   radio.Initialize();
  19.   //pinMode(pinSS,INPUT_PULLUP);//扫描全部并保存。INPUT_PULLUP使用内部上拉电阻
  20.   pinMode(pinNext,INPUT_PULLUP);//next
  21.   pinMode(pinPrev,INPUT_PULLUP);//prev
  22.   //pinMode(pinBand,INPUT_PULLUP);//band  
  23.   pinMode(pinVoldec,INPUT_PULLUP);  
  24.   pinMode(pinVoladd,INPUT_PULLUP);
  25. }
  26. void loop()
  27. {  
  28.   val=digitalRead(pinNext);
  29.    if (val==LOW)
  30.    {
  31.    delay(80);
  32.    if (val==LOW) radio.Seek(1);//搜索下一个台
  33.    }
  34.    val=digitalRead(pinPrev);
  35.    if (val==LOW)
  36.    {
  37.    delay(80);
  38.    if (val==LOW) radio.Seek(0); //搜索下一个台
  39.    } //搜索上一个台  
  40.    /* val=digitalRead(pinBand);
  41.    if (val==LOW)       //下一个波段
  42.    {
  43.      delay(80);
  44.      if (val==LOW)
  45.      {while(bcount++>3) bcount=0;
  46.      radio.band_cursor = (++ radio.band_cursor)  % BAND_COUNT ;
  47.      radio.switchBand(radio.band_cursor);
  48.      }
  49.   }  */
  50.    val=digitalRead(pinVoldec);  
  51.    if(val==LOW)
  52.    {
  53.      delay(80);
  54.      if (val==LOW&&(radio.reg6.sound_volume-23) >= 1)   //音量减少
  55.        radio.setVolume(--radio.reg6.sound_volume);  
  56.    }
  57.    val=digitalRead(pinVoladd);
  58.    if(val==LOW)
  59.    {delay(80);
  60.      if (val==LOW&&(radio.reg6.sound_volume-23)< 40)  //音量增加
  61.          radio.setVolume(++radio.reg6.sound_volume);
  62.    }
  63.    delay(100);
  64. }
复制代码

部分程序下载(不完整):
My6955.zip(6.07 KB, 下载次数: 66)



沙发
ID:395930发表于 2020-3-23 18:08|只看该作者
我下载了好像程序接口定义不清楚,有接线图和新程序发一份多谢。
板凳
ID:143767发表于 2021-3-2 16:33|只看该作者
你好楼主,有接线原理图可否发附件一份,谢谢
地板
ID:795562发表于 2021-4-4 18:17|只看该作者
你可以写一个Arduino开发板控制si4732的程序吗?
5#
ID:795562发表于 2021-4-4 18:19|只看该作者
楼主你可以写一个Arduino开发板控制si4732芯片的收音机程序吗?
6#
ID:937433发表于 2021-6-14 18:06|只看该作者
Wow nice project... i needed it
7#
ID:138707发表于 2021-7-3 21:02|只看该作者
你好楼主,有接线原理图可否发附件一份,谢谢
8#
ID:780108发表于 2021-8-7 17:29|只看该作者
bfzy123 发表于 2021-4-4 18:19
楼主你可以写一个Arduino开发板控制si4732芯片的收音机程序吗?

阿二都落有现成的例子啊
9#
ID:370231发表于 2021-8-13 15:10|只看该作者
AKC6955

akc6955_V3.0_2015_3_2.pdf

1.45 MB, 下载次数: 37, 下载积分: 黑币 -5

10#
ID:1064915发表于 2023-5-9 08:48|只看该作者
有DSP收音机的keil c资料吗?
11#
ID:658914发表于 2023-5-12 13:20来自手机|只看该作者
同样的经历啊
12#
ID:1064915发表于 2023-7-2 15:43|只看该作者
BK1088E可以用吗?

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

Powered by 单片机教程网