通過閱讀作者的 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(); //顯示刷新
}
} |