/* 星期映射表 */
unsigned char * code p[7] = {"Sun.","Mon.","Tue.","Wed.","Thur.","Fri.","Sat."};
/* 定義標志 0:年 1:月 2:日 3:周 4:時 5:分*/
unsigned char flag_adjust = 0;
/** @brief 時間顯示函數
* @param 無
* @reval 無
*/
void Time_Display(void){
DS1302_ReadTime(); // 讀取實時時間
lcd_w_cmd(0x82);
lcd_w_nums(TIM[0],2); // 年
lcd_w_cmd(0x85);
lcd_w_nums(TIM[1],2); // 月
lcd_w_cmd(0x88);
lcd_w_nums(TIM[2],2); // 日
lcd_w_cmd(0x8E);
lcd_w_num(flag_adjust); // 調整位
lcd_w_cmd(0xC0);
lcd_w_nums(TIM[4],2); // 時
lcd_w_cmd(0xC3);
lcd_w_nums(TIM[5],2); // 分
lcd_w_cmd(0xC6);
lcd_w_nums(TIM[6],2); // 秒
lcd_w_cmd(0xCF);
lcd_w_str(" ");
lcd_w_cmd(0xCB);
lcd_w_str(p[TIM[3]-1]); // 星期英文縮寫
}
/** @brief 時間列表調整函數
* @param char i 1 自加 -1 自減
* @reval 無
*/
void time_adjust(char i){
int temp = TIM[flag_adjust];
if(i==1 || i==-1)temp+=i;
switch(flag_adjust){
case 0: // 年
if(temp<0)
temp=99;
else if(temp>99)
temp=0;
break;
case 1: // 月
if(temp<=0)
temp=12;
else if(temp>=13)
temp=1;
break;
case 2: // 日
if(temp<=0)
temp=31;
else if(temp>31)
temp=1;
break;
case 3: // 周
if(temp<1)
temp=7;
else if(temp>7)
temp=1;
break;
case 4: // 時
if(temp<0)
temp=23;
else if(temp>=23)
temp=0;
break;
case 5: // 分
if(temp<0)
temp=59;
else if(temp>=60)
temp=0;
break;
}
temp = ((temp/10)<<4)|(temp%10); // 將數字轉化為BCD碼
TIM[flag_adjust] = temp; // 將對應的BCD碼填入表格中
}
/** @brief 按鍵處理函數
* @param 無
* @reval 無
*/
void key_pro(void){
unsigned char key = 0; // 存儲按鍵值
key = key_scanf(0); // 獲取按鍵值
switch(key){
case 1: flag_adjust++;if(flag_adjust>5)flag_adjust=0;break;
case 2: time_adjust(1);break;
case 3: time_adjust(-1);break;
default:break;
} // 按鍵處理
if(key==2||key==3){
DS1302_WriteData(0X8E,0x00);
DS1302_WriteData(RTC_WRITE_ADDR[flag_adjust],TIM[flag_adjust]);
DS1302_WriteData(0X8E,0x80);
} // 把按鍵更新的數據寫進對應寄存器里
}
/** @brief 主函數
* @param 無
* @reval 無
*/
void main(void){
lcd_int(); // 液晶初始化
DS1302_Init(); // DS302初始化
lcd_w_str("2019-10-19");
lcd_w_cmd(0xC0);
lcd_w_str("15:38:30"); // 顯示
while(1){
Time_Display(); // 刷新時間
key_pro(); // 按鍵處理
}
}
DS1302.jpg (182.54 KB, 下載次數: 28)
下載附件
2019-10-19 14:23 上傳
DS1302.rar
(1.65 MB, 下載次數: 19)
2019-10-19 14:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|