- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
*? 晶振:8M
*/
#include reg52.h
#include string.h
#define ChannelCount???? ?50????????? //最多支持多少个台,因为常驻内存,多了RAM放不下
#define uchar?? unsigned char
#define uint?? unsigned int
typedef struct
{
?uchar Freq;
?uchar Rssi;
}ChannelInfo;
sbit SDA? = P2^0;
sbit SCL? = P2^1;
sbit key1 = P3^4;
sbit key2 = P2^7;
sbit key3 = P2^6;
sbit key4 = P2^5; // P3^7;
sbit LcdEn = P3^4;
sbit LcdRs = P3^5;
uchar Channel? = 0;
uchar FreqTune = 0;
const uint MinFreq?? = 870;?? //起始频率 * 100KHz
const uint MaxFreq?? = 1080;? //最高频率 * 100KHz
const uchar FmAddr?? = 0×22;? //FM模块IIC 地址
const uchar EpAddr?? = 0xA0;? //24C02 EPPRom 的地址
uchar RSSI???? = 0;?????????? //信号强度
uchar ChannelTune[ChannelCount];
uchar code LevlChar[5][8] =
{{0x1F,0×11,0x0A,0×04,0×04,0×04,0×04,0×04},
{0×00,0×00,0×00,0×00,0×00,0×00,0×06,0x1E},
{0×00,0×00,0×00,0×00,0×06,0x1E,0x1E,0x1E},???? //显示型号强度的自定义字符
{0×00,0×00,0×06,0x1E,0x1E,0x1E,0x1E,0x1E},
{0×06,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E}};?
uchar vol? ?= 0×8;? //音量0~0xF
uchar Func?? ?= 0×0;?? //当前功能号
bit AutoScan ?= 0;???? //标记当前是不是在自动搜台
bit Mute? ?= 0;? //标记是否被静音
uchar KeyNumber = 0;
void OpenIIC();
void CloseIIC();
void IICWrite(uchar uaddr, uchar romaddr, uint rdata,bit _i6b);
void IICWriteByte( uchar byte );
uint IICRead(uchar uaddr, uchar romaddr,bit _i6b);
uchar IICReadByte(bit next);
void FM_SetFreq();
void FM_SetVolume();
uint FM_ReadReg(uchar regAddr);???? //读取FM模块的寄存器
void FM_WriteReg(uchar regAddr,uint dat); //写FM模块的寄存器
uchar FM_GetRSSI();????????? ???? //获取当前的信号强大
void Delay(uint c);
bit KeyScan();
void BeginScan();
void Lcd_DispNumber(uint number);
void Lcd_Init();
void Lcd_Comm(uchar cmd);
void Lcd_Data(uchar dat);
void Lcd_String(char* dat);
void Lcd_DispRssi();
void Lcd_DispFreq();
void Lcd_Refresh();
void Lcd_DispDiscript();
void Eprom_LoadInitData();
uint Eprom_Read(uchar addr,bit _16bit);
void Eprom_Write(uchar addr,uint dat,bit _16bit);
void main()
{
?? ?P3 = 0xff;
?P2 = 0xff;
?
?Delay(10000);?????????????? //延时,等待外部FM模块的启动
?Eprom_LoadInitData();???????? //从Ep
您可能关注的文档
- PMP试题加答案(五).doc
- PN结正向特性研究讲义_.doc
- PLC课程设计 四层电梯控制.doc
- PLC自动控制供水系统-论文.doc
- P-R管施工安装验收规范PP-R管施工安装验收规范.doc
- PP:一种新型的项目融资方式PPP:一种新型的项目融资方式.doc
- PPT,要你好看PPT,要你好看.doc
- PTS测评问卷问题文件PPTS测评问卷问题文件.doc
- PowerDesigner连接Oracle并且导出数据.doc
- PPT 刘金雨PPT 刘金雨.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)