精品word 可编辑资料
- - - - - - - - - - - - -
RDA5 8 0 7 m+ I I C 收 音
机 5 1 单 片 机 C 程 序
第 1 页,共 20 页
- - - - - - - - - -
精品word 可编辑资料
- - - - - - - - - - - - -
RDA5807m 驱动程序 + IIC 程序
/********************************************************************
********************
** 介绍 : RD5807M 收音机程序 供电 主控使用 51 单片机 显示使用
LCD1602
** 作者 : 胖子
第 2 页,共 20 页
- - - - - - - - - -
精品word 可编辑资料
- - - - - - - - - - - - -
** 时间 : 2021-1-5
** 地点 : 桂林电子科技高校
*********************************************************************
********************/
#include reg51.h
#include string.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
#define ulint unsigned long int
#define lint long int
uchar code xian[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
uchar code hang[]={0xfe,0xfd,0xfb,0xf7}; // 矩阵键盘扫描使用
//RDA 的寄存器地址
#define RDA_R00 0X00 //读出 16 个位的 ID =0X5800
#define RDA_R02 0X02 //DHIZ[15],DMUTE[14] 静音,MONO[13] 声道,BASS[12]重低音 ,SEEKUP[9],SEEK[8],SKMODE[7],CLK_MODE[6:4] 时钟源选择,SOFTRESET[1]软复位 ,ENABLE[0] 电源使能
#define RDA_R03 0X03
//CHAN[15:6],TUNE[4],BAND[3:2],SPACE[1:0] 设置频率 带宽 步长
#define RDA_R04 0X04 //STCIEN[14],DE[11],I2Senable[6],
#define RDA_R05 0X05 //INT_MODE[15],SEEKTH[14:8]〔 设定自动搜
索信号强度阀
值〕,LNA_PORT_SEL[7:6]=0b10,LNA_ICSEL_BIT[5:4],VOLUME[3:0] 音量;
#define RDA_R0A 0X0A //STC[14]seek complete SF[13]seek fail
readchan[9:0]当前频道
第 3 页,共 20 页
- - - - - - - - - -
精品word 可编辑资料
- - - - - - - - - - - - -
#define RDA_R0B 0X0B //RSSI[15:9],FM TRUE[8] 当前频道是一个节目台
#define RDA_READ 0X23 // 读 RDA5807
#define RDA_WRITE 0X22 //写 RDA5807
//IO 操作函数
sbit SDA=P2^1; sbit SCL=P2^0;
sbit RW =P1^1; sbit RS=P1^0; sbit EN=P2^5;
uchar code a[]=FM: . ; uchar code b[]=Vol: RSSI: ; uchar code shu[]=0123456789; uchar num ;
void delayms〔uint x〕 //推迟程序
{
uint i,j;
for〔i=x;i0;i--〕
for〔j=113;j0;j--〕;
}
/*********************************************** 矩阵键盘程序
********************************************************************/
uchar ScanKey〔〕 //矩阵键盘扫描 返回值是当前按键数值 如没按下就 返回值为零
{
uint x,
原创力文档

文档评论(0)