源码及实现
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include <stdio.h>
- #include "timer.h"
- #include "lcd1602.h"
- #include "key.h"
- #include "fm_TEA5767.h"
- char dis0[16];//存放显示数组0
- char dis1[16];
- u8 rekey = 0;//按键防止重复
- u8 disFlag=0;//显示标志
- u8 i;
- void LCDshow(void);
-
- int main(void)
- {
- delay_init(); //延时函数初始化
- uart_init(9600); //串口初始化为9600
- TIM3_Int_Init(499,7199);//50ms
- // LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //初始化按键
- Lcd_GPIO_init(); //初始化lcd引脚
- Lcd_Init(); //初始化lcd屏幕
- delay_ms(20);
- Lcd_Puts(0,0,(u8 *)" FMRadio "); //初始化显示
- init(); // 初始化TEA5767
-
- while(1)
- {
- if(disFlag == 1)
- {
- disFlag = 0;
- LCDshow();
- }
- if((key1==0)||(key2==1))//按键按下
- {
- {
- delay_ms(10);//消除抖动
- if(key1==0) //按键显示切换
- {
- rekey = 1;
- search_up(); //频率向上
- delay_ms(200);//消除抖动
- }
- else if(key2==0) //按键显示切换
- {
- rekey = 1;
- search_down(); //频率向上
- delay_ms(200);//消除抖动
- }
- }
- }
- }
- }
- //*********************LCD1602显示程序*********************
- void LCDshow(void)//lcd显示
- {
- num1=FM_FREQ/100000000; //提取频率值
- num2=(FM_FREQ%100000000)/10000000;
- num3=(FM_FREQ%10000000)/1000000;
- num4=(FM_FREQ%1000000)/100000;
- Lcd_1Put(4, 1, tab1[num1]);//显示具体数值
- Lcd_1Put(5, 1, tab1[num2]);
- Lcd_1Put(6, 1,tab1[num3]);
- Lcd_1Put(7, 1, '.');
- Lcd_1Put(8, 1, tab1[num4]);
- Lcd_1Put(9, 1,'M');//
- Lcd_1Put(10,1,'H');//
- Lcd_1Put(11,1,'Z');//
- }
复制代码
所有资料51hei提供下载:
程序.7z
(209.29 KB, 下载次数: 85)
|