通过阅读作者的 main.c 文件,发现作者的代码风格很好,很值得我们学习.
#include "STC12C5620AD.H"
#include "RT12864M.H"
#include "delay.h"
#include "DS1302.H"
#include "DS18B20.H"
#include "System_Init.H"
#include "Time_Handle.H"
#include "Temperature_Handle.H"
#include "Radio.H"
#include "Key_Handle.H"
#include "Key_Scan.H"
#include "LCD_Display.H"
#include "Channel_Handle.H"
#include "Volume_Handle.H"
/********************** 声明外部变量**************************/
extern uchar Volume; //Volume_Handle.c
extern uchar Radio_Index; //From Channel_Handle.c
extern uint PLL; //From Radio.c
/********************** 定义变量 ***************************/
bit Flag_40ms; //40ms定时标志位
uchar data Work_Mode=0; //定义系统状态
uchar data Display_Time[9]={0x20,0x30,0x30,0x3a,0x30,0x30,0x3a,0x30,0x30}; //时间显示缓存 格式 12:12:12
uchar data Display_Date[11]={0x20,0x32,0x30,0x31,0x31,0x2f,0x30,0x30,0x2f,0x30,0x30};//日期显示缓存 格式 2011/04/07
uchar data Display_Day[3]={'M','O','N'}; //星期显示缓存 格式 MON,TUE,WED
uchar data Display_Temperature[5]={0x20,0x30,0x30,0x20,0x20}; //时间显示缓存 格式 -23
uchar data Display_Channel[5]={0x20,0x43,0x48,0x30,0x30}; //频道号显示缓存 格式 CH07
uchar data Display_FM[9]={0x30,0x30,0x30,0x2e,0x30,0x20,0x4d,0x48,0x7a}; //收音频率显示缓存 格式 101.71MHz
/********************** Timer0 Interrupt **************************/
void Timer0_Serves() interrupt 1 using 0
{
TH0 = 0xff; //设定定时器重装值
TL0 = 0xd8;
Flag_40ms=1;
}
/********** Main Function *************/
void main(void)
{
BEEP_DRV=0; //关闭蜂鸣器
LCD_BLK=0; //关闭LCD背光
System_Init(); //初始化MCU
LCD_Init(); //初始化RT12864M
//DS1302_Init(); //初始化 DS1302(完全掉电后进行参数更新)
TEA5767_Init(); //初始化TEA5767,写入预置参数
Radio_Index=EEPROM_Get_Index(); //获取上一次断电存储的电台序号
PLL=EEPROM_Get_PLL(Radio_Index); //获取当前序号PLL
TEA5767_Update_PLL(); //更新PLL
Volume_Init(); //初始化声音
while(1)
{
Time_Handle();
Temperature_Handle(); //获取温度信息
Key_Handle();
TEA5767_Display_Frequency();
LCD_Display(); //显示刷新
}
} |