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

上传人:laozhun 文档编号:4142790 上传时间:2023-04-07 格式:DOC 页数:9 大小:23.50KB
返回 下载 相关 举报
SI4730 收音机芯片资料与程序.doc_第1页
第1页 / 共9页
SI4730 收音机芯片资料与程序.doc_第2页
第2页 / 共9页
SI4730 收音机芯片资料与程序.doc_第3页
第3页 / 共9页
SI4730 收音机芯片资料与程序.doc_第4页
第4页 / 共9页
SI4730 收音机芯片资料与程序.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《SI4730 收音机芯片资料与程序.doc》由会员分享,可在线阅读,更多相关《SI4730 收音机芯片资料与程序.doc(9页珍藏版)》请在三一办公上搜索。

1、SI4730 收音机芯片资料与程序2010-03-06 12:50/*在网上看到关于这个SI4730的收音机芯片的资料比较少,所以现在特发上来,共有缘人参考,如有不对之处,请指出。!晶振:24MHz单片机:at89s52注:转载请注明出处,否则追究法律责任!日期:2010-03-06版本:v1.0设计者:swsSI4730资料下载地址:*/#includereg52.h#includeintrins.htypedef unsigned char uchar;typedef unsigned int uint;#define HIGH 1#define LOW 0#define SI4730_H

2、IGH /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

3、=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

4、 | 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

5、 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=

6、150;i0;i-) for(j=k;j0;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 Si473

7、0_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 = (bi

8、t)(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=300mSSi4730_Delay(250);Si4730_Delay(250);Si473

9、0_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(

10、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 8; /写入高字节write_buf3 = Channel_Freq; /写入低字节write_buf4= 0x00;write_buf5= 0x00; Operation_Si4730_Write(&(write_buf0), 6);void Search_AM() /调用手动FM 频率调整子程序 men

11、u = 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

12、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_

13、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=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号