1. <em id="3qmea"><ol id="3qmea"></ol></em>
    2. <em id="3qmea"></em>

      单片机论坛

       找回密码
       立即注册

      QQ登录

      只需一步,快速开始

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

      我的FM 收音机,51单片机+TEA5767+12864+DS1302+DS18B20+PT2257+TDA2822M

        [复制链接]
      跳转到指定楼层
      楼主
      使用半年多,运行稳定。现在基本每天下班都会开一个小时。分享给 51hei论坛的朋友们.
      第一次独立做一个东西,打样了两次。元器件也是优先选择当时现有的,所以还有很多可以继续改进的地方。
      里面很多东西都是参考了51hei论坛上的资料,相当于做了一次整理。在此表示?#34892;粇

      大体描述下:
      1、TEA5767模块,没有采用网络流传的收台方法,我是直接按PLL步进的方式手动收台,估计是最精准的方式了。没有加入自动收台功能。
      2、12864点阵屏,ST7920控制,使用了自定义?#22336;?#22825;线、摄氏度)。按键开启背光,10秒无动作自动关闭。
      3、DS1302/DS18B20,网络流传的控制程序。
      4、PT2257调音,I2C控制,多级音量控制。
      5、TDA2822M,双声道模式,但是只用了一个扬声器(1W)。可外接功放(不通过调音器,降噪)
      6、按键,采用中断扫描的方式,4键,长按短按区分。
      7、电台存储15个,断电自动记忆上?#38382;?#29992;的频道。使用内部EEPOM。
      8、电源使用DC12V变压器,内部组合为7808和78M05。
      9、控制器:STC12C5608AD


      (原文件名:正面.jpg)


      (原文件名:使用中.jpg)


      (原文件名:后面.jpg)


      (原文件名:右侧.jpg)


      (原文件名:左侧.jpg)


      (原文件名:PCB.jpg)


      (原文件名:TDA2822M和DS1302.jpg)


      (原文件名:TEA5767模块.jpg)


      (原文件名:按键和开关.jpg)


      (原文件名:7808和78M05.jpg)


      (原文件名:程序截图.jpg)

      程序按模块化写法,命名、注释等自认为还算规范,请用Keil u4打开。程序如下:
      点击此处下载 程序.rar (153.81 KB, 下载?#38382;? 2491)

      原理图是ORCAD画的,这边上传PDF格式。PCB是PADS版本,没多大_参考价值,这边就不上传了。
      点击此处下载 原理图.pdf (74.04 KB, 下载?#38382;? 1731)

      新手作品,还有很多地方可以继续改进,?#28909;紓?br /> 1、利用画图功能,做个性化的UI。
      2、加入按键的无线遥控。
      3、报时、闹铃、公历农历转换。
      4、外接功放音量可调。

      评分

      参与人数 15威望 +54 黑币 +112 收起 理由
      莫子栋 + 8 绝世好帖!
      泛星梦 + 1 赞一个!
      123.123.123 + 5 很给力!
      WSHENQION + 4 共享资料的黑币奖励!
      vvv64 + 5
      dzbj + 1 银子不多 意思意思
      单片机新手426 + 5 绝世好帖!
      1971417800 + 1 很?#19981;叮?#32473;我这个大一小白很好的启发
      ssfc + 5 赞一个!
      jiangyimfs + 5 很给力!
      liuyimao485812 + 5 很给力!
      红尘有你 + 12 很给力!
      madell + 5 很给力!
      lost + 4
      admin + 50 + 50 发布作品的奖励,大家多多发布可赚取M币

      查看全部评分

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

      使用道具 举报

      沙发
      admin 发表于 2013-6-23 04:08 | 只看该作者
      通过阅读作者的 main.c 文件,发现作者的代码风格很好,很值得我们学习.
      #include "STC12C5620AD.H"
      #include "RT12864M.H"
      #include "delay.h"
      #include "DS1302.H"
      #include "DS18B20.H"
      #include "System_Init.H"
      #include "Time_Handle.H"
      #include "Temperature_Handle.H"
      #include "Radio.H"
      #include "Key_Handle.H"
      #include "Key_Scan.H"
      #include "LCD_Display.H"
      #include "Channel_Handle.H"
      #include "Volume_Handle.H"
      /********************** 声明外部变量**************************/
      extern uchar Volume;					//Volume_Handle.c
      extern uchar Radio_Index;			  	 //From Channel_Handle.c
      extern uint PLL;  						//From Radio.c
      /**********************  定义变量 ***************************/
      bit Flag_40ms;		  					//40ms定时标志位
      uchar data Work_Mode=0;      			//定义系统状态
      uchar data Display_Time[9]={0x20,0x30,0x30,0x3a,0x30,0x30,0x3a,0x30,0x30};           //时间显示缓存        格式  12:12:12
      uchar data Display_Date[11]={0x20,0x32,0x30,0x31,0x31,0x2f,0x30,0x30,0x2f,0x30,0x30};//日期显示缓存        格式  2011/04/07
      uchar data Display_Day[3]={'M','O','N'};										     //星期显示缓存        格式  MON,TUE,WED
      uchar data Display_Temperature[5]={0x20,0x30,0x30,0x20,0x20};                        //时间显示缓存        格式	 -23
      uchar data Display_Channel[5]={0x20,0x43,0x48,0x30,0x30};                    	 	 //频道号显示缓存      格式	 CH07
      uchar data Display_FM[9]={0x30,0x30,0x30,0x2e,0x30,0x20,0x4d,0x48,0x7a};	 		//收音频?#27663;?#31034;缓存	   格式  101.71MHz			  
      /********************** Timer0 Interrupt **************************/
      void Timer0_Serves() interrupt 1 using 0
      {
      	TH0 = 0xff;		    //设定定时器重装值
      	TL0 = 0xd8;		    
      	Flag_40ms=1;
      }
      /********** Main Function *************/
      void main(void)
      {
      	BEEP_DRV=0;		    	   			//关闭蜂鸣器
      	LCD_BLK=0;				   		  	//关闭LCD背光
      	System_Init();						//初始化MCU
      	LCD_Init();							//初始化RT12864M
      	//DS1302_Init();					//初始化 DS1302(完全掉电后进行?#38382;?#26356;新)
      	TEA5767_Init();					  	//初始化TEA5767,写入预置?#38382;?
      	Radio_Index=EEPROM_Get_Index();  	//获取上一次断电存储的电台序号
      	PLL=EEPROM_Get_PLL(Radio_Index);	//获取当前序号PLL
      	TEA5767_Update_PLL();				//更新PLL
      	Volume_Init();						//初始化声音
      	while(1)
      		{
      			Time_Handle();
      			Temperature_Handle();				  	//获取温度信息
      			Key_Handle();
      			TEA5767_Display_Frequency();
      			LCD_Display();		           			//显示刷新
      		}
      }
      回复

      使用道具 举报

      板凳
      黑仔 发表于 2013-6-23 10:37 | 只看该作者
      这个是高人作品,51hei论坛有你更精彩
      回复

      使用道具 举报

      无效楼层,该帖已经被删除
      5#
      无效楼层,该帖已经被删除
      6#
      小艺 发表于 2013-6-24 11:22 | 只看该作者
      想请教一下楼主,我见你的一段程序写得很好,在液晶显示?#22336;?#26102;都没有用得?#29486;址?#36716;换软件来做,请问程序的原理是什么呢?
      void LCD_Display(void)
      {
              switch (Work_Mode)
                      {
                              case 0:
                                      LCD_Display_String(0,2,"调频收音");                                 //当前状态
                                      

      “LCD_Display_String(0,2,"调频收音");”在程序上直接打中?#27169;?#28082;晶就能显示出来的?因为我查过你的程序,都没有用?#22336;?#36719;件转换出相关的?#22336;?#20018;……是不是用带字库的屏,都能学你哪样写程序的?
      回复

      使用道具 举报

      7#
      无效楼层,该帖已经被删除
      8#
      无效楼层,该帖已经被删除
      9#
      无效楼层,该帖已经被删除
      10#
      无效楼层,该帖已经被删除
      11#
      无效楼层,该帖已经被删除
      12#
      无效楼层,该帖已经被删除
      13#
      无效楼层,该帖已经被删除
      14#
      无效楼层,该帖已经被删除
      15#
      无效楼层,该帖已经被删除
      16#
      无效楼层,该帖已经被删除
      17#
      无效楼层,该帖已经被删除
      18#
      无效楼层,该帖已经被删除
      19#
      无效楼层,该帖已经被删除
      20#
      无效楼层,该帖已经被删除
      21#
      无效楼层,该帖已经被删除
      22#
      无效楼层,该帖已经被删除
      23#
      无效楼层,该帖已经被删除
      24#
      无效楼层,该帖已经被删除
      25#
      无效楼层,该帖已经被删除
      26#
      无效楼层,该帖已经被删除
      27#
      无效楼层,该帖已经被删除
      28#
      无效楼层,该帖已经被删除
      29#
      无效楼层,该帖已经被删除
      30#
      无效楼层,该帖已经被删除
      31#
      无效楼层,该帖已经被删除
      32#
      无效楼层,该帖已经被删除
      33#
      无效楼层,该帖已经被删除
      34#
      无效楼层,该帖已经被删除
      35#
      无效楼层,该帖已经被删除
      36#
      无效楼层,该帖已经被删除
      37#
      无效楼层,该帖已经被删除
      38#
      无效楼层,该帖已经被删除
      39#
      无效楼层,该帖已经被删除
      40#
      无效楼层,该帖已经被删除
      您需要登录后才可以回帖 登录 | 立即注册

      本版积分规则

      QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机 联系QQ:125739409;技术交流QQ群582644647

      Powered by 单片机?#22363;?#32593;

      快速回复 返回顶部 返回列表
      青海11选5app下载

        
        
        1. <em id="3qmea"><ol id="3qmea"></ol></em>
        2. <em id="3qmea"></em>

            
            
            1. <em id="3qmea"><ol id="3qmea"></ol></em>
            2. <em id="3qmea"></em>
              搜狐彩票是真的吗 安徽体彩11选五规则 高频彩票不能买的原因 贵州快3跨度走势图带连线 香港六合彩博彩论坛 体彩福建36选7规则 时时彩刷5星漏洞 幸运农场实时开奖结果 体彩排列五500期走势图 中国体育彩票竞彩篮球混合过关 篮球规则大全半场 天津十一选五赵三刀 大乐透走势图预测 上海快上海快三开奖结果查询 安徽11选5网上购买投注