?? sz1302.c
字號(hào):
#include <reg52.h>
#include <DS-1302.c>
#include <LED_595.c>
#define DISP_CHANGE_TIME 5 //循環(huán)時(shí),顯示5秒,全大寫(xiě)表示常量,小寫(xiě)為變量
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) //選擇時(shí)鐘,顯示狀態(tài)
{
case 1: //狀態(tài)1,顯示年和月
if(sec_bak!=time_sec) //檢測(cè)秒的變化,為了做穿過(guò)式的延時(shí),比delay好,延時(shí)為顯示的時(shí)間,為5秒.用于顯示延時(shí)
{
sec_bak=time_sec; //秒備份重置
sec_counter++; //延時(shí)秒計(jì)數(shù)器加一
if(sec_counter>=DISP_CHANGE_TIME) //判斷是否到延時(shí)時(shí)間
{
sec_counter=0; //到延時(shí)時(shí)間,秒計(jì)數(shù)器清零
disp_time_style=2; //切換到下一個(gè)顯示狀態(tài)
}
disp_num(time_year*100+time_mon,2); //顯示年和月
P0=~0x01; //點(diǎn)亮年和月?tīng)顟B(tài)顯示的指示燈
}
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;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -