?? sz1302.bak
字號:
#include <reg52.h>
#include <DS1302.c>
#include <LED_595.c>
#define DISP_CHANGE_TIME 5 //循環時,顯示5秒,全大寫表示常量,小寫為變量
main()
{
unsigned char temp,disp_time_style=1,sec_bak,sec_counter=0;
Init_DS1302();
Read_DS1302_Clock();
sec_bak=time_sec;
while(1)
{
Read_DS1302_Clock();
switch(disp_time_style) //選擇時鐘,顯示狀態
{
case 1: //狀態1,顯示年和月
if(sec_bak!=time_sec) //檢測秒的變化,為了做穿過式的延時,比delay好,延時為顯示的時間,為5秒.用于顯示延時
{
sec_bak=time_sec; //秒備份重置
sec_counter++; //延時秒計數器加一
if(sec_counter>=DISP_CHANGE_TIME) //判斷是否到延時時間
{
sec_counter=0; //到延時時間,秒計數器清零
disp_time_style=2; //切換到下一個顯示狀態
}
disp_num(time_year*100+time_mon,2); //顯示年和月
P0=~0x01; //點亮年和月狀態顯示的指示燈
}
break;
case 2:
if(sec_bak!=time_sec)
{
sec_bak=time_sec;
sec_counter++;
if(sec_counter>=DISP_CHANGE_TIME)
{
sec_counter=0;
disp_time_style=3;
}
disp_num(time_date*100+time_day,2);
P0=~0x02;
}
break;
case 3:
if(sec_bak!=time_sec)
{
sec_bak=time_sec;
sec_counter++;
if(sec_counter>=DISP_CHANGE_TIME)
{
sec_counter=0;
disp_time_style=4;
}
disp_num(time_hour*100+time_min,2);
P0=~0x04;
}
break;
case 4:
if(sec_bak!=time_sec)
{
sec_bak=time_sec;
sec_counter++;
if(sec_counter>=DISP_CHANGE_TIME)
{
sec_counter=0;
disp_time_style=1;
}
disp_num(time_min*100+time_sec,2);
P0=~0x08;
}
break;
default:
disp_time_style=1;
break;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -