📄 lcd年月日星期时间.c
字号:
}
void display_hz( BYTE *chr, BYTE nRow, BYTE nCol )
{
BYTE i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<19;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
write_command(0xB8|nRow+1);
tmpCol=nCol;
for(i=0;i<19;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i+19],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i+19],0,1);
}
tmpCol++;
}
}
void display_16_16_icon( BYTE *chr, BYTE nRow, BYTE nCol )
{
BYTE i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<16;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
write_command(0xB8|nRow+1);
tmpCol=nCol;
for(i=0;i<16;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i+16],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i+16],0,1);
}
tmpCol++;
}
}
void display_char( BYTE *chr, BYTE nRow, BYTE nCol )
{
BYTE i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<5;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
}
//********************************************************************************i-2
// basictimer中断
//********************************************************************************
#pragma vector=BASICTIMER_VECTOR
__interrupt void INT_timer_basic(void)
//interrupt[BASICTIMER_VECTOR] void basic_timer(void)
{
//////////////////////////////
tmp_basictime_ok =1;
/////////////退出低功耗/////
LPM3_EXIT;
_NOP();
_NOP();
}
//********************************************************************************
//***************************************************************************************************
//***************************************************************************************************
//***************************************************************************************************
void main(void)
{
BYTE hAddr;
BYTE data;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
FLL_CTL0 |= XCAP14PF;
port_ini();
num=0;
BTCTL = 0xA6; //1s=0xa6
IFG2 &= ~BTIFG;
IE2 |= BTIE;
Cur_time.year = 0x06;
Cur_time.month = 0x03;
Cur_time.day = 0x14;
Cur_time.week =0x01;
Cur_time.hour = 00;
Cur_time.minute = 0x00;
Cur_time.second = 0x00;
write_command(0xC0);
write_command(0x3F);
clear_lcd();
//display_16_16_icon((BYTE *)&LSD_ICON[0],1,5); // 显示 LSD图标
display_hz((BYTE *)&Nianyueri[0][0],0,35); //显示 年
display_hz((BYTE *)&Nianyueri[1][0],0,69); //显示 月
display_hz((BYTE *)&Nianyueri[2][0],0,98); //显示 日
display_hz((BYTE *)&Nianyueri[3][0],3,5); //显示 星
display_hz((BYTE *)&Nianyueri[4][0],3,25); //显示 期
display_hz((BYTE *)&Nianyueri[5][0],6,5); //显示 时
display_hz((BYTE *)&Nianyueri[6][0],6,25); //显示 间
display_char((BYTE *)&CHAR_2[0],1,9); // 显示 2 2006年03月20日
display_char((BYTE *)&CHAR_0[0],1,15); // 显示 0
display_char((BYTE *)&Symbols[0][0],6,64); // 显示 :
display_char((BYTE *)&Symbols[0][0],6,85); // 显示 :
_EINT(); // Enable interrupts
while(1)
{
_BIS_SR(LPM3);
_NOP();
_NOP();
if(tmp_basictime_ok)
{
tmp_basictime_ok = 0;
////////////////////////////日历计算/////////////////////////////////////////1
if (Cur_time.second<59) Cur_time.second++;
else
{
Cur_time.second=0;
if (Cur_time.minute<59) Cur_time.minute++;
else
{
Cur_time.minute=0;
if (Cur_time.hour<23) Cur_time.hour++;
else
{
Cur_time.hour=0;
Cur_time.week++;
if (Cur_time.week>7) Cur_time.week =1;
if (Cur_time.week==7) Cur_time.week =8;
Cur_time.day++;
switch(Cur_time.month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: if(Cur_time.day > 31)
{
Cur_time.day = 1;
Cur_time.month++;
}break;
case 4:
case 6:
case 9:
case 11: if(Cur_time.day > 30)
{
Cur_time.day = 1;
Cur_time.month++;
}break;
case 2:
if(Cur_time.day > 28)
{
if((Cur_time.year%4==0 && Cur_time.year%100) || Cur_time.year%400 == 0)
{
if(Cur_time.day > 29)
{
Cur_time.day = 1;
Cur_time.month++;
}
}
else
{
if(Cur_time.day > 28)
{
Cur_time.day = 1;
Cur_time.month++;
}
}
}break;
}
if(Cur_time.month > 12)
{
Cur_time.month = 1;
Cur_time.year++;
}
} //HOUR
}
}
}
data = Cur_time.second%10;
display_char((BYTE *)&CHAR_X[data][0],6,99); //s_l
data = (Cur_time.second/10)%10;
display_char((BYTE *)&CHAR_X[data][0],6,92); //s_h
data = Cur_time.minute%10;
display_char((BYTE *)&CHAR_X[data][0],6,78); //m_l
data = (Cur_time.minute/10)%10;
display_char((BYTE *)&CHAR_X[data][0],6,71); //m_h
data = Cur_time.hour%10;
display_char((BYTE *)&CHAR_X[data][0],6,57); //h_l
data = (Cur_time.hour/10)%10;
display_char((BYTE *)&CHAR_X[data][0],6,50); //h_h
data = Cur_time.week%10;
display_char((BYTE *)&CHAR_X[data][0],3,50); //w
data = Cur_time.day%10;
display_char((BYTE *)&CHAR_X[data][0],1,99); //d_l
data = (Cur_time.day/10)%10;
display_char((BYTE *)&CHAR_X[data][0],1,92); //d_h
data = Cur_time.month%10;
display_char((BYTE *)&CHAR_X[data][0],1,64); //m_l
data = (Cur_time.month/10)%10;
display_char((BYTE *)&CHAR_X[data][0],1,57); //m_h
data = Cur_time.year%10;
display_char((BYTE *)&CHAR_X[data][0],1,27); //y_l
data = (Cur_time.year/10)%10;
display_char((BYTE *)&CHAR_X[data][0],1,21); //y_h
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -