欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    SI4730 收音机芯片资料与程序.doc

    • 资源ID:4142790       资源大小:23.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SI4730 收音机芯片资料与程序.doc

    SI4730 收音机芯片资料与程序2010-03-06 12:50/*在网上看到关于这个SI4730的收音机芯片的资料比较少,所以现在特发上来,共有缘人参考,如有不对之处,请指出。!晶振:24MHz单片机:at89s52注:转载请注明出处,否则追究法律责任!日期:2010-03-06版本:v1.0设计者:swsSI4730资料下载地址:*/#include"reg52.h"#include"intrins.h"typedef unsigned char uchar;typedef unsigned int uint;#define HIGH 1#define LOW 0#define SI4730_HIGH    /4730选择地址定义/#define SI4730_LOW#define Max_freq_FM 10800      /108MHz#define Min_freq_FM 8750   /87.5MHz#define max_freq_AM 1701 /1701KHz#define min_freq_AM 531 #define    FM_RECEIVER 0x20 /FM调谐频率 page.52#define    FM_TRNSMITTER 0x30#define    AM_RECEIVER 0x40 /AM调谐频率#define    TX_TUNE_MEASURE 0x32uint Frequency_fm=875;uint Frequency_am=531;bit Mode = 0;sbit KEY_UP = P22;   /向上搜台sbit KEY_DW = P23;   /向下搜台sbit FM_AM_Choose = P24; /FM与AM选择bit FM_AM_ = 0;/*START condition:SCLK: -|_       SDIO:-|_       1 |   2 | 3STOP condition:SCLK: _|-       SDIO:_|-1 | 2   |   3DATA:SCLK:_|-|_|-|_       SDIO:_|-|_|-   |<=>|RESET:SENB:_|-SDIO:_|-RST: _|-SCLK:_|-       |    1    |      2               |   3*/sbit Si4730_Reset = P13;sbit Si4730_SCLK = P12;sbit Si4730_SDIO = P11;/如果SI4730的第六脚(SEN)接高电平那么地址是0x23,0x22/如果SI4730的第六脚(SEN)接低电平那么地址是0xc7,0xc6/#if 0 /address switch#ifdef SI4730_LOW#define READ_ADDR   0x23#define WRITE_ADDR 0x22#endif#ifdef SI4730_HIGH#define READ_ADDR   0xc7#define WRITE_ADDR 0xc6#endif#define SCLK_HIGH Si4730_SCLK = HIGH#define SCLK_LOW Si4730_SCLK = LOW#define SDIO_HIGH Si4730_SDIO = HIGH#define SDIO_LOW Si4730_SDIO = LOW#define READ_SDIO Si4730_SDIO/=FM START=void _NOP()_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();void Si4730_Delay(unsigned char k)uchar i,j;for(i=150;i>0;i-)   for(j=k;j>0;j-);#define I2C_CLK_Delay() _NOP()void ResetSi47XX_2w()   Si4730_Reset = LOW;   SCLK_HIGH;   Si4730_Delay(100);   SDIO_HIGH;   Si4730_Delay(250);   Si4730_Reset = HIGH;  void Si4730_start()    SDIO_HIGH;    I2C_CLK_Delay();    SCLK_HIGH;    I2C_CLK_Delay();    SDIO_LOW;    I2C_CLK_Delay();    SCLK_LOW;void Si4730_ack()    SDIO_LOW;    I2C_CLK_Delay();    SCLK_HIGH;    I2C_CLK_Delay();    SCLK_LOW;    I2C_CLK_Delay();    SDIO_HIGH;void Si4730_stop()    SDIO_LOW;    I2C_CLK_Delay();    SCLK_HIGH;    I2C_CLK_Delay();    SDIO_HIGH;    I2C_CLK_Delay();    SCLK_LOW;void Si4730_writebyte(uchar write_data)   uchar i;for(i=8;i!=0;i-)    / 循环移入8个位   READ_SDIO = (bit)(write_data & 0x80);   SCLK_HIGH;   I2C_CLK_Delay();   SCLK_LOW; /SDA数据线上数据变化   write_data <<= 1;   /调整发送位void Operation_Si4730_Write(uchar *data1,uchar numByte)uchar j;Si4730_start();Si4730_writebyte(WRITE_ADDR);/器件地址 0xc6Si4730_ack();I2C_CLK_Delay();for(j=LOW;j<numByte;j+,*data1+)   Si4730_writebyte(*data1);   Si4730_ack();   I2C_CLK_Delay();Si4730_stop(); /发送结束void Si4730_Power_Up_FM_AM_Choose(unsigned char mod) /fm,am选择 unsigned char write_buf3=0x01,0xd0,0x05;switch(mod)   case FM_RECEIVER:        /si4730      write_buf1 = 0xd0; /使用时钟晶振,32.768khz ,FM模式      write_buf2 = 0x05; /模拟L/R输出        break;         case AM_RECEIVER:           /si4730       write_buf1 = 0xd1; /使用时钟晶振,32.768khz ,AM模式       write_buf2 = 0x05; /模拟L/R输出       break;ResetSi47XX_2w();Operation_Si4730_Write(&(write_buf0), 3);/need wait >=300mSSi4730_Delay(250);Si4730_Delay(250);Si4730_Delay(120); void Si4730_Tune(char mod,unsigned short Channel_Freq)unsigned char write_buf5;write_buf0= mod; write_buf1= 0x00;write_buf2 = Channel_Freq >> 8;   /写入高字节write_buf3 = Channel_Freq;     /写入低字节write_buf4= 0x00;   Operation_Si4730_Write(&(write_buf0), 5);  void Search_FM()   /调用手动FM 频率调整子程序 menu = 15    if(Mode)       Frequency_fm += 10;   /步进+0.1MHz    if(Frequency_fm > Max_freq_FM)     Frequency_fm = Min_freq_FM;      else        Frequency_fm -= 10;   /步进-0.1MHz    if(Frequency_fm < Min_freq_FM)     Frequency_fm = Max_freq_FM;   / Si4730_Power_Up(FM_RECEIVER); /向上搜台Si4730_Tune(FM_RECEIVER,Frequency_fm); /FM收音芯片数据刷新一次 /=fm end=/=am start=void Si4730_Tune_AM(char mod,unsigned short Channel_Freq)unsigned char write_buf6;write_buf0= mod; write_buf1= 0x00;write_buf2 = Channel_Freq >> 8;   /写入高字节write_buf3 = Channel_Freq;     /写入低字节write_buf4= 0x00;write_buf5= 0x00;   Operation_Si4730_Write(&(write_buf0), 6);  void Search_AM()   /调用手动FM 频率调整子程序 menu = 95   if(Mode)       Frequency_am += 9;   /步进+9KHz    if(Frequency_am > max_freq_AM)     Frequency_am = min_freq_AM;      else        Frequency_am -= 9;   /步进-9KHz    if(Frequency_am < min_freq_AM)     Frequency_am = max_freq_AM;   / Si4730_Power_Up(AM_RECEIVER); /向上搜台Si4730_Tune_AM(AM_RECEIVER,Frequency_am); /AM收音芯片数据刷新一次 /=am end=/=main start=void main()Si4730_Delay(250);Si4730_Power_Up_FM_AM_Choose(FM_RECEIVER); /默认选择fmwhile(1)   if(!FM_AM_Choose)       Si4730_Delay(100);    if(!FM_AM_Choose)          FM_AM_ = FM_AM_;      if(!FM_AM_)               Si4730_Power_Up_FM_AM_Choose(FM_RECEIVER); /fm选择             else if(FM_AM_)               Si4730_Power_Up_FM_AM_Choose(AM_RECEIVER ); /am选择                       if(!FM_AM_)       / ResetSi47XX_2w();    if(!KEY_UP)          Si4730_Delay(100);      if(!KEY_UP)               Mode = HIGH; /向上搜台      Search_FM();                if(!KEY_DW)          Si4730_Delay(100);      if(!KEY_DW)               Mode = LOW; /向下搜台      Search_FM();                 else if(FM_AM_)       / ResetSi47XX_2w();    if(!KEY_UP)          Si4730_Delay(100);      if(!KEY_UP)               Mode = HIGH; /向上搜台      Search_AM();                if(!KEY_DW)          Si4730_Delay(100);      if(!KEY_DW)               Mode = LOW; /向下搜台      Search_AM();             /=main end=

    注意事项

    本文(SI4730 收音机芯片资料与程序.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开