数字收音机参考程序

上传人:飞*** 文档编号:54163518 上传时间:2018-09-08 格式:PDF 页数:11 大小:55.38KB
返回 下载 相关 举报
数字收音机参考程序_第1页
第1页 / 共11页
数字收音机参考程序_第2页
第2页 / 共11页
数字收音机参考程序_第3页
第3页 / 共11页
数字收音机参考程序_第4页
第4页 / 共11页
数字收音机参考程序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数字收音机参考程序》由会员分享,可在线阅读,更多相关《数字收音机参考程序(11页珍藏版)》请在金锄头文库上搜索。

1、数字收音机参考程序1 /* / 功能:以LCD1602为显示的TEA5767模块的收音机/ 编译软件: KELI C #include #include #define uchar unsigned char #define uint unsigned int #define DELAY5US _nop_();_nop_();_nop_();_nop_();_nop_(); /*TEA5767模块接线方法 * sbit SDA=P27; sbit SCL=P26; /*频率调节按键接线* sbit Key1=P32; sbit Key2=P33; /=LCD1602接口连接方法 = /*- |

2、DB0-P0.0 | DB4-P0.4 | RW-P2.3 | |DB1-P0.1 | DB5-P0.5 | RS-P2.4 | |DB2-P0.2 | DB6-P0.6 | E-P2.2 | |DB3-P0.3 | DB7-P0.7 | -*/ /=*/ #define LCM_Data P0 /LCD1602 数据接口#define Busy 0x80 / 用于检测LCM状态字中的Busy标识sbit LCM_RW = P12; / 读写控制输入端,LCD1602的第五脚sbit LCM_RS = P11; / 寄存器选择输入端,LCD1602的第四脚sbit LCM_E = P13; /

3、 使能信号输入端,LCD1602的第 6 脚/*参数定义 * unsigned long int FM_FREQ; / 频率unsigned short int FM_PLL; /PLL uchar idata sbuf5; / 数据发送缓冲区uchar idata numbyte; uchar idata numbyte_AMP; uchar idata ADDRESS_AMP; uchar idata ADDRESS_SEND; / 7发送地址uchar idata ADDRESS_RECEIVE; / 7接收地址uchar idata rbuf5; / 数据接收缓冲区uchar idat

4、a ampint5; uchar bdata PLL_HIGH; uchar bdata PLL_LOW; / 设定用于搜索和预设的可编程频率合成器uchar bdata I2C_byte1;/ 发送的五字节7可位寻址的设置值uchar bdata I2C_byte2; uchar bdata I2C_byte3; 数字收音机参考程序2 uchar bdata I2C_byte4; uchar bdata I2C_byte5; sbit MUTE =I2C_byte17;/ 如果 MUTE=1,则左右声道被静音;MUTE=0,左右声道正常工作sbit SM = I2C_byte16; /SM=

5、1, 则处于搜索模式;SM=0,不处于搜索模式sbit SUD=I2C_byte37; /SUD=1,增加频率搜索;SUD=0,减小频率搜索uchar byte1; uchar byte2; uchar byte3; uchar byte4; uchar byte5; uchar num1,num2,num3,num4; uchar tab1=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F; bit bdata NACK; / 错误标志位/*相关函数声明* void init(void); /TEA5767 初始化void delay600ms(void); / 延迟 600m

6、s void delay100ms(void); / 延迟 100ms void delay10ms(); void delay1ms(void); / 延迟 1ms void sendnbyte(uchar idata *sla, uchar n);/与 sendbyte 函数构成I2C数据发送函数void I2C_start(void); /I2C 传输开始void sendbyte(uchar idata *ch); void checkack(void); / 检查应答讯号void stop(void); /I2C 传输结束void AMP_sendnbyte(uchar idata

7、*sla,uchar numbyte_AMP); void key_scan(void);/ 键扫描void search_up(void); / 接收频率向上加void search_down(void); / 接收频率向下减void setByte1Byte2(void); / 设置第一第二字节频率void LCMInit(void);/LCD 初始void DelayMs(uint Ms);/1MS基准延时程序void WriteDataLCM (uchar WDLCM);/LCD 模块写数据void WriteCommandLCM (uchar WCLCM,BuysC); /LCD模块

8、写指令uchar ReadStatusLCM(void);/读 LCD模块的忙标void DisplayOneChar(uchar X,uchar Y ,uchar ASCII);/ 在第 X+1行的第 Y+1位置显示一个字符void LCDshow(void); void DelayMs(uint Ms); /*主程序 * void main(void) numbyte = 5; numbyte_AMP=5; ADDRESS_SEND = 0xC0;/ TEA5767 写地址1100 0000 数字收音机参考程序3 ADDRESS_RECEIVE=0XC1;/读地址1100 0001 ADD

9、RESS_AMP=0X8E; init(); / 初始化 TEA5767 LCMInit();/LCD 初始LCDshow(); while(1) key_scan(); / 键扫描 /*按键扫描程序 * void key_scan(void) if(Key1=0) delay10ms(); if(Key1=0) while(Key1=0); search_up(); / 频率向上LCDshow(); delay600ms(); if(Key2=0) delay10ms(); if(Key2=0) while(Key2=0); search_down(); / 频率向下LCDshow(); d

10、elay600ms(); /*LCD1602显示程序 * void LCDshow(void) num1=FM_FREQ/100000000; num2=(FM_FREQ%100000000)/10000000; num3=(FM_FREQ%10000000)/1000000; num4=(FM_FREQ%1000000)/100000; 数字收音机参考程序4 DisplayOneChar(0, 4,F);/ DisplayOneChar(0, 5,M);/ DisplayOneChar(0, 6,R);/ DisplayOneChar(0, 7,a);/ DisplayOneChar(0,

11、8,d);/ DisplayOneChar(0, 9,i);/ DisplayOneChar(0, 10,o);/ DisplayOneChar(1, 4, tab1num1); DisplayOneChar(1, 5, tab1num2); DisplayOneChar(1, 6, tab1num3); DisplayOneChar(1, 7, .); DisplayOneChar(1, 8, tab1num4); DisplayOneChar(1, 9,M);/ DisplayOneChar(1, 10,H);/ DisplayOneChar(1, 11,Z);/ /*= LCM 初始化=

12、*/ void LCMInit(void) LCM_Data = 0; WriteCommandLCM(0x38,0); / 三次显示模式设置,不检测忙信号DelayMs(5); WriteCommandLCM(0x38,0); DelayMs(5); WriteCommandLCM(0x38,0); DelayMs(5); WriteCommandLCM(0x38,1); / 显示模式设置 ,开始要求每次检测忙信号WriteCommandLCM(0x08,1); / 关闭显示WriteCommandLCM(0x01,1); / 显示清屏WriteCommandLCM(0x06,1); / 显示光标移动设置WriteCommandLCM(0x0C,1); / 显示开及光标设置DelayMs(100); /=LCD1602显示子程序= / 写数据函数 : E =高脉冲RS=1 RW=0 /=*/ void WriteDataLCM(uchar WDLCM) ReadStatusLCM(); /检测忙LCM_Data = WDLCM; LCM_RS = 1; 数字收音机参考程序5 LCM_RW = 0; LCM_E = 0; /若晶振速度太高可以在这后加小的延时LCM_E = 0; /延时LCM_E = 1; /*=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号