网站大量收购独家精品文档,联系QQ:2885784924

TEA5767收音机模块的C51单片机控制程序.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TEA5767收音机模块的C51单片机控制程序.doc

TEA5767收音机模块的C51单片机控制程序 这几天做个案子,用到飞利浦的TEA5767的收音机模块,在网上搜了下相关的内容,发现很多人都在问,可是提供编程指导的很少,可能是高手都不屑回答这些小问题吧,在这里我把我的部分程序及TEA5767的相关资料放上来吧,给需要的人一些参考.(PS:无锡硅动力的SP3767和TEA5767完全兼容,有中文资料) TEA5767采用I2C或者三线接口控制,我是用的I2C,单片机用STC89C52,带1K EEPROM,可以掉电存台,1602LCD显示. TEA5767读写数据都是5个字节,其中PLL参数14位,具体数据格式请看datasheet.以下程序中的函数可以直接在主程序中调用. #include iic.c #define max_freq 108000 #define min_freq 87500 unsigned char radio_write_data[5]={0x29,0xc2,0x20,0x11,0x00}; //要写入TEA5767的数据 unsigned char radio_read_data[5]; //TEA5767读出的状态 unsigned int default_pll=0x29c2;//0x29f9; //默认存台的pll,87.8MHz //unsigned int max_pll=0x339b; //108MHz时的pll, //unsigned int min_pll=9000; //70MHz时的pll void radio_write(void) { unsigned char i; iic_start(); iic_write8bit(0xc0); //TEA5767写地址 if(!iic_testack()) { for(i=0;i5;i++) { iic_write8bit(radio_write_data[i]); iic_ack(); } } iic_stop(); } //读TEA5767状态,并转换成频率 void radio_read(void) { unsigned char i; unsigned char temp_l,temp_h; pll=0; iic_start(); iic_write8bit(0xc1); //TEA5767读地址 if(!iic_testack()) { for(i=0;i5;i++) { radio_read_data[i]=iic_read8bit(); iic_ack(); } } iic_stop(); temp_l=radio_read_data[1]; temp_h=radio_read_data[0]; temp_h=0x3f; pll=temp_h*256+temp_l; get_frequency(); } //由频率计算PLL void get_pll(void) { unsigned char hlsi; unsigned int twpll=0; hlsi=radio_write_data[2]0x10; if (hlsi) pll=(unsigned int)((float)((frequency+225)*4)/(float)32.768); //频率单位:k else pll=(unsigned int)((float)((frequency-225)*4)/(float)32.768); //频率单位:k } //由PLL计算频率 void get_frequency(void) { unsigned char hlsi; unsigned int npll=0; npll=pll; hlsi=radio_write_data[2]0x10; if (hlsi) frequency=(unsigned long)((float)(npll)*(float)8.192-225); //频率单位:KHz el

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档