📄 clock.c
字号:
#include "Clock.h"
///////////////////////////////////////////////////////////////////////////
// Constant
///////////////////////////////////////////////////////////////////////////
// Variable
BYTE bdata g_bfTimer;
sbit g_bfTimerMSec = g_bfTimer^0;
sbit g_bfTimerSec = g_bfTimer^1;
sbit g_bfTimerMin = g_bfTimer^2;
sbit g_bfTimerHr = g_bfTimer^3;
sbit g_bfTimerDay = g_bfTimer^4;
sbit g_bfTimerMon = g_bfTimer^5;
sbit g_bfTimerYear = g_bfTimer^6;
BYTE bdata g_bfDispClk;
sbit g_bfDispClkMSec = g_bfDispClk^0;
sbit g_bfDispClkSec = g_bfDispClk^1;
sbit g_bfDispClkMin = g_bfDispClk^2;
sbit g_bfDispClkHr = g_bfDispClk^3;
sbit g_bfDispClkDay = g_bfDispClk^4;
sbit g_bfDispClkMon = g_bfDispClk^5;
sbit g_bfDispClkYear = g_bfDispClk^6;
BYTE data g_bClkHr, g_bClkMin, g_bClkSec;
BYTE data g_bAdjHr, g_bAdjMin, g_bAdjSec;
//BYTE data g_bClkYear, g_bClkMon, g_bClkDay;
BYTE data g_bfAdjStatus=0;
///////////////////////////////////////////////////////////////////////////
// Function
void fnCLK_InitClock(void)
{
g_bClkHr = 23;
g_bClkMin = 59;
g_bClkSec = 58;
}
void fnCLK_Clock(void)
{
if(g_bfTimerSec){
g_bfTimerSec = 0;
g_bfDispClkSec = 1;
if(g_bClkSec >= 59){
g_bfTimerMin = 1;
g_bClkSec = 0;
}else{
g_bClkSec++;
}
} else if(g_bfTimerMin){
g_bfTimerMin = 0;
g_bfDispClkMin = 1;
if(g_bClkMin >= 59){
g_bfTimerHr = 1;
g_bClkMin = 0;
}else{
g_bClkMin++;
}
} else if(g_bfTimerHr){
g_bfTimerHr = 0;
g_bfDispClkHr = 1;
if(g_bClkHr >= 23){
//g_bfTimerDay = 1;
g_bClkHr = 0;
}else{
g_bClkHr++;
}
// } else if(g_bfTimerDay){
// g_bfTimerDay = 0;
// } else if(g_bfTimerMon){
// g_bfTimerMon = 0;
// } else if(g_bfTimerYear){
// g_bfTimerYear = 0;
} else{
g_bfTimer = 0;
return;
}
}
void fnCLK_DispClk(void)
{
if(g_bfDispClkSec){
g_bfDispClkSec = 0;
fnDISP_Str(LOCAL_11, ":");
if(g_bClkSec <= 9){
fnDISP_Str(LOCAL_12, "0");
fnDISP_Int(LOCAL_13, g_bClkSec);
} else {
fnDISP_Int(LOCAL_12, g_bClkSec);
}
} else if(g_bfDispClkMin) {
g_bfDispClkMin = 0;
fnDISP_Str(LOCAL_08, ":");
if(g_bClkMin <= 9){
fnDISP_Str(LOCAL_09, "0");
fnDISP_Int(LOCAL_10, g_bClkMin);
} else {
fnDISP_Int(LOCAL_09, g_bClkMin);
}
} else if(g_bfDispClkHr) {
g_bfDispClkHr = 0;
fnDISP_Str(LOCAL_01, "Time:");
//fnDISP_Str(LOCAL_05, ":");
if(g_bClkHr <= 9){
fnDISP_Str(LOCAL_06, "0");
fnDISP_Int(LOCAL_07, g_bClkHr);
} else {
fnDISP_Int(LOCAL_06, g_bClkHr);
}
if(g_bClkHr >=12){
fnDISP_Str(LOCAL_14, "PM");
} else {
fnDISP_Str(LOCAL_14, "AM");
}
//} else if(g_bfDispClkDay) {
// g_bfDispClkDay = 0;
//} else if(g_bfDispClkMon) {
// g_bfDispClkMon = 0;
//} else if(g_bfDispClkYear) {
// g_bfDispClkYear = 0;
}
}
void fnCLK_InitAdjClk(void)
{
g_bAdjHr = g_bClkHr;
g_bAdjMin = g_bClkMin;
g_bAdjSec = g_bClkSec;
}
void fnCLK_AdjClk(void)
{
if((g_bKeyValueOld >= 10) && (g_bKeyValueOld != 15)){
return;
}else if( g_bKeyValueOld == 15){
g_bfAdjStatus = ADJ_SET;
}
switch(g_bfAdjStatus)
{
case ADJHR_HI:
//fnDISP_SetAddr(LOCAL_09);
//fnDISP_CursorGleam();
if(g_bKeyValueOld <= 2){
g_bAdjHr = (g_bKeyValueOld * 10);
g_bfAdjStatus = ADJHR_LO;
fnDISP_Int(LOCAL_08, g_bKeyValueOld);
} else {
g_bAdjHr = g_bKeyValueOld;
g_bfAdjStatus = ADJMIN_HI;
fnDISP_Str(LOCAL_08, "0");
fnDISP_Int(LOCAL_09, g_bKeyValueOld);
fnDISP_Str(LOCAL_10, ":");
}
break;
case ADJHR_LO:
if(g_bKeyValueOld <= 3){
g_bAdjHr += g_bKeyValueOld;
g_bfAdjStatus = ADJMIN_HI;
fnDISP_Int(LOCAL_09, g_bKeyValueOld);
fnDISP_Str(LOCAL_10, ":");
}
break;
case ADJMIN_HI:
//fnDISP_SetAddr(LOCAL_12);
//fnDISP_CursorGleam();
if(g_bKeyValueOld <= 5){
g_bAdjMin = (g_bKeyValueOld * 10);
g_bfAdjStatus = ADJMIN_LO;
fnDISP_Int(LOCAL_11, g_bKeyValueOld);
} else {
g_bAdjMin = g_bKeyValueOld;
g_bfAdjStatus = ADJSEC_HI;
fnDISP_Str(LOCAL_11, "0");
fnDISP_Int(LOCAL_12, g_bKeyValueOld);
fnDISP_Str(LOCAL_13, ":");
}
break;
case ADJMIN_LO:
if(g_bKeyValueOld <= 9){
g_bAdjMin += g_bKeyValueOld;
g_bfAdjStatus = ADJSEC_HI;
fnDISP_Int(LOCAL_12, g_bKeyValueOld);
fnDISP_Str(LOCAL_13, ":");
}
break;
case ADJSEC_HI:
//fnDISP_SetAddr(LOCAL_15);
//fnDISP_CursorGleam();
if(g_bKeyValueOld <= 5){
g_bAdjSec = (g_bKeyValueOld * 10);
g_bfAdjStatus = ADJSEC_LO;
fnDISP_Int(LOCAL_14, g_bKeyValueOld);
} else {
g_bAdjSec = g_bKeyValueOld;
g_bfAdjStatus = ADJ_SET;
fnDISP_Str(LOCAL_14, "0");
fnDISP_Int(LOCAL_15, g_bKeyValueOld);
//fnDISP_Str(LOCAL_16, ":");
}
break;
case ADJSEC_LO:
if(g_bKeyValueOld <= 9){
g_bAdjSec += g_bKeyValueOld;
g_bfAdjStatus = ADJ_SET;
fnDISP_Int(LOCAL_15, g_bKeyValueOld);
//fnDISP_Str(LOCAL_16, ":");
}
break;
case ADJ_SET:
if(g_bKeyValueOld == 15){
g_bClkHr = g_bAdjHr;
g_bClkMin = g_bAdjMin;
g_bClkSec = g_bAdjSec;
g_bfAdjStatus = 0;
g_bSYS_MODE = MODE_CLK;
g_bfDispClk = 0x0E;
//fnDISP_WrCmd(CLR_DISP);
fnDISP_ClrDisp();
//fnDISP_WrCmd(DISP_CTRL | DC_DISP_ON);
fnDISP_TurnOnDisp();
}
break;
default:
break;
}
}
void fnCLK_DispAdjClk(void)
{
if(g_bAdjHr <= 9 ){
fnDISP_Str(LOCAL_08, "0");
fnDISP_Int(LOCAL_09, g_bAdjHr);
} else {
fnDISP_Int(LOCAL_08, g_bAdjHr);
}
if(g_bAdjMin <= 9 ){
fnDISP_Str(LOCAL_11, "0");
fnDISP_Int(LOCAL_12, g_bAdjMin);
} else {
fnDISP_Int(LOCAL_11, g_bAdjMin);
}
if(g_bAdjSec <= 9 ){
fnDISP_Str(LOCAL_14, "0");
fnDISP_Int(LOCAL_15, g_bAdjSec);
} else {
fnDISP_Int(LOCAL_14, g_bAdjSec);
}
/*
// if(g_bfAdjStatus){
switch(g_bfAdjStatus)
{
case ADJHR_HI:
//fnDISP_SetAddr(LOCAL_08);
if(g_bAdjHr <= 9 ){
fnDISP_Str(LOCAL_08, "0");
fnDISP_Int(LOCAL_09, g_bAdjHr);
} else {
fnDISP_Int(LOCAL_08, g_bAdjHr)
}
fnDISP_Str(LOCAL_10, ":");
break;
case ADJHR_LO:
//fnDISP_SetAddr(LOCAL_09);
if(g_bAdjHr <= 9 ){
fnDISP_Str(LOCAL_08, "0");
fnDISP_Int(LOCAL_09, g_bAdjHr);
} else {
fnDISP_Int(LOCAL_08, g_bAdjHr)
}
fnDISP_Str(LOCAL_10, ":");
break;
case ADJMIN_HI:
//fnDISP_SetAddr(LOCAL_11);
fnDISP_Int(LOCAL_11, g_bAdjMin);
break;
case ADJMIN_LO:
//fnDISP_SetAddr(LOCAL_12);
fnDISP_Int(LOCAL_11, g_bAdjMin);
break;
case ADJSEC_HI:
//fnDISP_SetAddr(LOCAL_14);
fnDISP_Int(LOCAL_14, g_bAdjSec);
break;
case ADJSEC_LO:
//fnDISP_SetAddr(LOCAL_15);
fnDISP_Int(LOCAL_14, g_bAdjSec);
break;
case ADJ_SET:
break;
default:
break;
}
// }
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -