#include<string.h> (引用定義頭文件,本頭文件為單片機內部自帶,無需編寫,后面帶有<XXXX>代表引用單片機內部頭文件) #include "Lcd1602.h"(引用定義頭文件,本頭文件需要自己編寫,后面帶有”XXXX”代表自定義頭文件) #include "config.h" #include "ds1302.h" #include "eeprom.h" #include "key.h" #include "Time.h" #include "AD.h" #include "PWM.h" extern unsigned char step; unsigned char str[20];
bit flag200ms=1; // 聲明flag_200ms 的位型變量,并賦初值為1。 void InitTimer1(void) { TMOD&= 0x0F; //按位與,把 TMOD的最右邊的二進制4位留著不變,其它位全部清0。 TMOD|= 0x10; //把剛才留下的4位里最右1位二進制設為1。 TH1 = 0xD4; //0xD4賦值給TH1 TL1 = 0xCD; //0xCD賦值給TL1 EA = 1; //總中斷開啟 ET1 = 1; //定時計數器1溢出中斷允許控制位 TR1 = 1; //啟動定時器T1 } void Sys_Init() { InitTimer1(); //初始化定時器1 InitLcd1602(); //初始化LCD1602 InitDS1302(); //初始化DS1302 PWM_init(); //初始化PWM InitADC(); //初始化ADC } unsigned int numbertime=0; void main(void) {
EA=1; //總中斷開啟 Sys_Init(); //系統初始化 showInit(); //顯示初始化 while(1) //循環語句 {
KeyDriver(); //按鍵程序 if(step==0&&flag200ms==1) { flag200ms=1; //200ms標志位
refreshDs1302(); //定時DS1302頁面刷新 refreshAD(); //定時AD頁面刷新 } } }
void InterruptTimer1() interrupt 3 //定時器中斷1產生中斷時執行 { static unsigned intcnt=0,cnt1=0; TL1=0X67; //0X67賦值TL1 TH1=0XFC; //0XFC賦值給TH1 cnt++; cnt1++; //cnt加1 if(cnt1>1000) { numbertime++; //numbertime加1 cnt1=0; //cnt1賦值0 } KeyScan(); //按鍵檢測 if(cnt>=200) //如果cnt>=200 { flag200ms=1; //200ms標志位=1 cnt=0; //cnt=0 } }
右邊的那些注釋,有沒有大佬能不能幫我看看有沒有問題,要怎么改。。
|