本方案采用89S52做为主控芯片,LC72131+LA1845N做为收音模块,支持按键控制,红外线遥控控制,也可通过串口上位机控制,可以通过计算机并口更新单片机软件程序。

音量用两块DS1804控制,频率信息用一块1602液晶显示。





单面板,飞线很多,呵呵。





硬件方案.rar(Protel99)
PC端控制软件.rar(VC++7.1,即Visual Stdio .Net 2003)

本方案的单片机软件使用C语言编写(Keil uVision3),LC72131芯片的驱动稍微麻烦,他使用SPI总线与单片机芯片通讯:  

//SPI 总线数据传输     
// 首先发送高位 , 延时必须大于 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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐