博客日历
2025年06月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
51单片机控制的收音机(带串口,遥控,芯片89S52+LC72131+LA1845N)
本方案采用89S52做为主控芯片,LC72131+LA1845N做为收音模块,支持按键控制,红外线遥控控制,也可通过串口上位机控制,可以通过计算机并口更新单片机软件程序。
音量用两块DS1804控制,频率信息用一块1602液晶显示。
单面板,飞线很多,呵呵。
硬件方案.rar(Protel99)
PC端控制软件.rar(VC++7.1,即Visual Stdio .Net 2003)
本方案的单片机软件使用C语言编写(Keil uVision3),LC72131芯片的驱动稍微麻烦,他使用SPI总线与单片机芯片通讯:
//SPI总线数据传输
//首先发送高位,延时必须大于1.5us。
//首先发送高位,延时必须大于1.5us。
void WriteLC72131(INT32 _DATA)
{
data INT8 i=0;
PIN_CE=0; //CE默认为低电平
PIN_CL=1; //CL默认为高电平
for(i=1;i<=32;i++)
{
PIN_CL=0; // CL产生下降沿
Delay_2CP(1);
if(_DATA & 0x80000000)
{
PIN_DI=1;
}
else
{
PIN_DI=0;
}
PIN_CL=1; // CL产生上升沿
Delay_2CP(1);
if(i==8)
{
PIN_CE=1;
Delay_2CP(1);
}
_DATA=_DATA<<1;
}
PIN_CE=0;
}
//封装了输入模式1的数据
extern idata union _IN1_DATA
{
INT32 _IN1_DATA_32;
struct _IN1_DATA_BITS
{
INT8 Address :8;
INT16 Frequency :16;
INT8 R3 :1;
INT8 R2 :1;
INT8 R1 :1;
INT8 R0 :1;
INT8 XS :1;
INT8 CTE :1;
INT8 DVS :1;
INT8 SNS :1;
}IN1_DATA_BITS;
}IN1_DATA;
//封装了输入模式2的数据
extern idata union _IN2_DATA
{
INT32 _IN2_DATA_32;
struct _IN2_DATA_BITS
{
INT8 Address :8;
//位域:对于每个独立的位,C语言要求低位写在前边;
//字节顺序不受影响,仍然是高字节在前。
INT8 B04 :1;
INT8 B03 :1;
INT8 B02 :1;
INT8 B01 :1;
INT8 IO2 :1;
INT8 IO1 :1;
INT8 IOC2 :1;
INT8 IOC1 :1;
INT8 DZ1 :1;
INT8 DZ0 :1;
INT8 UL1 :1;
INT8 UL0 :1;
INT8 DOC2 :1;
INT8 DOC1 :1;
INT8 DOC0 :1;
INT8 DNC :1;
INT8 TEST2 :1;
INT8 TEST1 :1;
INT8 TEST0 :1;
INT8 IFS :1;
INT8 DLC :1;
INT8 TBC :1;
INT8 GT1 :1;
INT8 GT0 :1;
}IN2_DATA_BITS;
}IN2_DATA;
完整源代码:单片机软件.rar
备注:该方案是学习51单片机时的习作。
推荐一个这方面的技术大牛:Ningpanda工作室 http://ningpanda.21ic.org
http://blog.21ic.com/user1/2339/archives/2008/52580.html
上一篇: Windows脚本命令行版
下一篇: 正在用的简单扬声器保护电路
分类:嵌入式/电子 查看次数:16865 发布时间:2009/5/16 18:27:42