188bet uedbet 威廉希尔 明升 bwin 明升88 bodog bwin 明升m88.com 18luck 188bet unibet unibet Ladbrokes Ladbrokes casino m88明升 明升 明升 m88.com 188bet m88 明陞 uedbet赫塔菲官网 365bet官网 m88 help

Casino论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

casino
搜索
查看: 90685|回复: 406
打印 上一主题 下一主题
收起左侧

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

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

大体描述下:
1、TEA5767模块,没有采用网络流传的收台方法,我是直接按PLL步进的方式手动收台,估计是最精准的方式了。没有加入自动收台功能。
2、12864点阵屏,ST7920控制,使用了自定义字符(天线、摄氏度)。按键开启背光,10秒无动作自动关闭。
3、DS1302/DS18B20,网络流传的控制程序。
4、PT2257调音,I2C控制,多级音量控制。
5、TDA2822M,双声道模式,但是只用了一个扬声器(1W)。可外接功放(不通过调音器,降噪)
6、按键,采用中断扫描的方式,4键,长按短按区分。
7、电台存储15个,断电自动记忆上次使用的频道。使用内部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, 下载次数: 2513)

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

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

评分

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

查看全部评分

沙发
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};	 		//收音频率显示缓存	   格式  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(完全掉电后进行参数更新)
	TEA5767_Init();					  	//初始化TEA5767,写入预置参数
	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论坛有你更精彩
地板
小艺 发表于 2013-6-24 11:22 | 只看该作者
想请教一下楼主,我见你的一段程序写得很好,在液晶显示字符时都没有用得上字符转换软件来做,请问程序的原理是什么呢?
void LCD_Display(void)
{
        switch (Work_Mode)
                {
                        case 0:
                                LCD_Display_String(0,2,"调频收音");                                 //当前状态
                                

“LCD_Display_String(0,2,"调频收音");”在程序上直接打中文,液晶就能显示出来的?因为我查过你的程序,都没有用字符软件转换出相关的字符串……是不是用带字库的屏,都能学你哪样写程序的?
5#
T29 发表于 2013-6-28 16:09 | 只看该作者
谢谢楼主!!!此贴必火!!!!
6#
yizanduandian 发表于 2013-6-29 21:39 | 只看该作者
回复 小艺
想请教一下楼主,我见你的一段程序写得很好,在液晶显示字符时都没有用得上字符转换软件来做,请问程序的原理是什么呢?
void lcd_display(void)
{
switch (work_mode)
{
case 0:
lcd_display_string(0,2,"调频收音");  //当前状态
“lcd_display_string(0,2,"调频收音");”在程序上直接打中文,液晶就能显示出来的?因为我查过你的程序,都没有用字符软件转换出相关的字符串……是不是用带字库的屏,都能学你哪样写程序的?
-----------------------------------------------------------------------

用的是ST7920 带中文字库的屏,所以,没有字符转换。
7#
明升88 发表于 2013-7-2 16:34 | 只看该作者
您好,昨天我也用TEA5767模块做了一个收音机。现在是灵敏度很低,接几米的线当天线,在室内一个台都收不到(用手机的收音机在室内可以收到电台),以为是没调好,但是跑上楼顶却能收到台了(这样就排除了软件问题吧)。  对这个问题可以给点思路吗?  谢谢。  

另,可以发一份到我邮箱吗。3543-0042 @qq.com

期待您的回复。
8#
陈令顺 发表于 2013-7-4 21:25 | 只看该作者
楼主有没有试过TDA2822M的BTL接法?我照着手册上的电路接了一个,输入电阻改成了1K,音源是VS1003B,中间加了一外10uF的无极性电容,供电用的是5V的线性电源,怎么调都有问题,杂音很大,芯片发烫。。。。。。。
9#
陈令顺 发表于 2013-7-4 21:31 | 只看该作者
另外问下 怎么我编译不成功,还有就是楼主可以上传PCB文件吗,我想用热转印法制块板子玩玩
10#
zhengguang 发表于 2013-7-4 23:42 | 只看该作者
很好的程序编写方式啊,学习了,楼主的程序功底看起来真不错;
刚刚那个6楼的,12864带字库,就可以直接用字符串表示了,直接显
11#
 楼主| l5151 发表于 2013-7-7 18:05 | 只看该作者
陈令顺 发表于 2013-7-4 21:31
另外问下 怎么我编译不成功,还有就是楼主可以上传PCB文件吗,我想用热转印法制块板子玩玩

请问有什么编译错误?请用Keil c51 v4,导入STC器件,用官方提供的STC12C5620AD头文件,还有注意下包含路径。

PCB是双层的,热转印不好做。要的话,我可以送你个样板。

打样了10块,现在还剩下8块,要的可以拿去,出个邮费就好。qq短信给我
12#
 楼主| l5151 发表于 2013-7-7 18:09 | 只看该作者
左左右右 发表于 2013-7-2 16:34
您好,昨天我也用TEA5767模块做了一个收音机。现在是灵敏度很低,接几米的线当天线,在室内一个台都收不到 ...

附件可直接下载 51hei论坛好像没有限制的啊,另外我已经发送到你的邮箱了.
13#
51hei_kmee 发表于 2013-7-9 16:55 | 只看该作者
太强大了!
14#
longlong899 发表于 2013-7-16 17:16 | 只看该作者
现在好东西起来越多了,支持一个,要继续加油哇
15#
wuhaisheng258 发表于 2013-7-17 11:09 | 只看该作者
高人作品
16#
liangqin1573 发表于 2013-7-19 00:45 | 只看该作者
很好很强大
17#
zxgpy 发表于 2013-7-21 10:33 | 只看该作者
好东东,多谢!!!!!!!!!
18#
guoqing24 发表于 2013-7-21 21:39 | 只看该作者
一定 要学习一下!!
19#
ydsf16 发表于 2013-7-21 23:11 | 只看该作者
真是牛人啊
20#
qw789 发表于 2013-7-22 18:39 | 只看该作者
谢谢分享
21#
明升m88.com 发表于 2013-7-23 15:12 | 只看该作者
好贴,必须顶。
22#
liaows 发表于 2013-7-23 16:41 | 只看该作者
谢谢LZ的共享,很好的学习材料,谢谢!
23#
扬帆远航 发表于 2013-8-3 15:39 | 只看该作者
强大,
24#
扬帆远航 发表于 2013-8-4 14:29 | 只看该作者
好资料
25#
啵~~ 发表于 2013-8-5 10:28 | 只看该作者
谢谢楼主分享啊
26#
何必919 发表于 2013-8-6 18:29 | 只看该作者
相当给力,感谢你的共享!
27#
wwxaimql 发表于 2013-8-9 16:33 | 只看该作者
很给力啊!
28#
aimei 发表于 2013-8-9 22:05 | 只看该作者
发现没 币了
29#
少林寺大神父 发表于 2013-8-10 21:38 | 只看该作者
高人作品 赶快下载 看看学习一下 玩了好几天的收音机 终于找到点能用的资料了
30#
ggsimida 发表于 2013-8-16 20:03 | 只看该作者
牛叉   楼主
31#
qw789 发表于 2013-8-18 10:20 | 只看该作者
我手头有一块TEA5767,但没有STC12C5620AD,可惜!
32#
wuyutian51hei 发表于 2013-8-25 21:54 | 只看该作者
写得很不错!值得学习!
33#
为爱努力 发表于 2013-9-6 14:40 | 只看该作者
初学者,打算自己也模仿做一个,希望能成功,
34#
jinchouxing 发表于 2013-10-3 21:11 | 只看该作者
好东东
35#
huyin 发表于 2013-10-4 21:32 | 只看该作者
不错,很好
36#
淡漠的记忆 发表于 2013-10-6 11:00 | 只看该作者
看看,资料怎样
37#
淡漠的记忆 发表于 2013-10-6 11:02 | 只看该作者
资料很好,谢谢了
38#
★箛獨№牛弟 发表于 2013-10-13 17:43 | 只看该作者
谢谢作者,很好的资料,你的编程方式值得学习!
39#
13620819446 发表于 2013-10-13 22:07 | 只看该作者
#在这里快速回复#真是不错的资料
40#
475345347 发表于 2013-10-18 23:18 | 只看该作者
学习学习啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Casino论坛 |51HeiCasino16群 联系QQ:125739409;技术交流QQ群7344883

Powered by Casino教程网

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