📄 lcd.h
字号:
* 入口参数:无
* 出口参数:无
* 说明 : 时间数组 BCD 码形式
****************************************************************************/
void Lcd_Week( uchar week )
{
Lcd_Character_16X16( 1, 6, 16, week_logo[7] ); //”星“字显示
Lcd_Character_16X16( 1, 6, 32, week_logo[8] ); //期
Lcd_Character_16X16( 1, 6, 48, week_logo[ week & 0x0f ] );
}
/******************************************************************************
* 函数名称: Lcd_Clock( uchar *clock_time )
* 功能: 显示时钟
* 入口参数: 时钟地址,调用了日期和时间显示函数;
* 出口参数: 无
********************************************************************************/
void Lcd_Clock( uchar * clock_time )
{
Lcd_Data( clock_time ); //显示日期
Lcd_Time( clock_time ); //显示时间
}
/******************************************************************************
* 名称: void Lcd_Lunar_Calendar( uchar * lunch_calendar )
* 功能: 显示农历
* 入口参数: 农力指针
* 出口参数: 无
*******************************************************************************/
void Lcd_Lunar_Calendar( uchar * lunar_canlendar )
{
uchar i;
//显示“农历“汉字
Lcd_Character_16X16( 1, 4, 16, lunar_calendar_logo[0] );
Lcd_Character_16X16( 1, 4, 32, lunar_calendar_logo[1] );
//year-mongth-day
i= * lunar_canlendar >> 4;
Lcd_Character_16X8( 1, 4, 96, letter_logo[i] ); //农历天的高位
i= * lunar_canlendar & 0x0f;
Lcd_Character_16X8( 1, 4, 104, letter_logo[i] ); //农历天的低位
Lcd_Character_16X8( 1, 4, 88, letter_logo[11] ); //-
lunar_canlendar ++;
i= * lunar_canlendar >> 4;
Lcd_Character_16X8( 1, 4, 72, letter_logo[i] ); //农历月的高位
i= * lunar_canlendar & 0x0f;
Lcd_Character_16X8( 1, 4, 80, letter_logo[i] ); //农历月的低位
Lcd_Character_16X8( 1, 4, 64, letter_logo[11] ); //-
lunar_canlendar ++;
i= * lunar_canlendar >> 4;
Lcd_Character_16X8( 1, 4, 48, letter_logo[i] ); //农历年的高位
i= * lunar_canlendar & 0x0f;
Lcd_Character_16X8( 1, 4, 56, letter_logo[i] ); //农历年的地位
}
/***************************************************************************
*名称 :Lcd_Set_Clock( uchar bit_flag, uchar *point )
*功能 :显示调整的时间
*入口参数:指针
*出口参数:无
*说明 :
****************************************************************************/
void Lcd_Set_Clock( uchar temp, uchar *point )
{
bit year_flag = 1;//修黑显示
bit month_flag = 1;
bit day_flag = 1;
bit hour_flag =1;
bit minute_flag = 1;
bit second_flag = 1;
uchar i;
if( temp == 1 ) //滚动到 second
second_flag = 0;
if( temp == 2 ) //滚动到 minute
minute_flag = 0;
if( temp == 3 ) //滚动到 hour
hour_flag = 0;
if( temp == 4 ) //滚动到 day
day_flag = 0;
if( temp == 5 ) //滚动到 month
month_flag = 0;
if( temp == 6 ) //滚动到 year
year_flag = 0;
//日期
Lcd_Character_16X16( 1, 2, 0 , data_time_logo[0] );
Lcd_Character_16X16( 1, 2, 16, data_time_logo[1] );
point += 5; //指向年
//year
i = *point >> 4;
Lcd_Character_16X8( year_flag, 2, 40, letter_logo[i] );
i = *point & 0x0f;
Lcd_Character_16X8( year_flag, 2, 48, letter_logo[i] );
//-
Lcd_Character_16X8( 1, 2, 56, letter_logo[11] );
point --; //指向月
//month
i = *point >>4;
Lcd_Character_16X8( month_flag, 2, 64, letter_logo[i] );
i = *point & 0x0f;
Lcd_Character_16X8( month_flag, 2, 72, letter_logo[i] );
//-
Lcd_Character_16X8( 1, 2, 80, letter_logo[11] );
point --; //指向日
//day
i = *point >>4;
Lcd_Character_16X8( day_flag, 2, 88, letter_logo[i] );
i = *point & 0x0f;
Lcd_Character_16X8( day_flag, 2, 96, letter_logo[i] );
//时间
Lcd_Character_16X16( 1, 4, 0, data_time_logo[2] );
Lcd_Character_16X16( 1, 4, 16, data_time_logo[3] );
point -- ; //指向时
//hour
i = *point >>4;
Lcd_Character_16X8( hour_flag, 4, 40, letter_logo[i] );
i = *point & 0x0f;
Lcd_Character_16X8( hour_flag, 4, 48, letter_logo[i] );
//:
Lcd_Character_16X8( 1, 4, 56, letter_logo[10] );
point -- ; //指向分
//minnute
i = *point >>4;
Lcd_Character_16X8( minute_flag, 4, 64, letter_logo[i] );
i = *point & 0xff;
Lcd_Character_16X8( minute_flag, 4, 72, letter_logo[i] );
//:
Lcd_Character_16X8( 1, 4, 80, letter_logo[10] );
point --; //指向秒
//second
i = *point >> 4;
Lcd_Character_16X8( second_flag, 4, 88, letter_logo[i] );
i = * point & 0x0f;
Lcd_Character_16X8( second_flag, 4, 96, letter_logo[i] );
}
/**************************************************************************************
* 名称: Lcd_Function( uchar temp )
* 功能: 滚动显示 时间设置 闹钟设置
* 入口参数: 滚动位置
* 出口参数: 无
**************************************************************************************/
void Lcd_Function( uchar temp )
{
bit time_flag = 1;
bit alarm_flag = 1;
if( temp == 2 ) //滚动到 时间设置
time_flag = 0;
if( temp == 1 ) //滚动到 闹钟设置
alarm_flag = 0;
//时间设置
Lcd_Character_16X16( time_flag, 2, 32, function_logo[0] );
Lcd_Character_16X16( time_flag, 2, 48, function_logo[1] );
Lcd_Character_16X16( time_flag, 2, 64, function_logo[2] );
Lcd_Character_16X16( time_flag, 2, 80, function_logo[3] );
//闹钟设置
Lcd_Character_16X16( alarm_flag, 4, 32, function_logo[4] );
Lcd_Character_16X16( alarm_flag, 4, 48, function_logo[5] );
Lcd_Character_16X16( alarm_flag, 4, 64, function_logo[6] );
Lcd_Character_16X16( alarm_flag, 4, 80, function_logo[7] );
}
/************************************************************************************
* 名称: Lcd_Alarm( uchar * alarm_time )
* 功能: 闹钟调整画面显示
* 入口参数: 闹钟地址
* 出口参数: 无
************************************************************************************/
void Lcd_Alarm( uchar temp, uchar * alarm_time )
{
uchar i;
bit hour_flag = 1;
bit minute_flag = 1;
if( temp == 1 )
minute_flag = 0;
if( temp == 2 )
hour_flag = 0;
Lcd_Character_16X16( 1, 0, 0, alarm_logo[0] ); //显示闹钟标志
//" 小时:分钟" 汉字显示;
Lcd_Character_16X16( 1, 0, 16, alarm_logo[1] );
Lcd_Character_16X16( 1, 0, 32, alarm_logo[2] );
Lcd_Character_16X8( 1, 0, 48, letter_logo[10] );
Lcd_Character_16X16( 1, 0, 56, alarm_logo[3] );
Lcd_Character_16X16( 1, 0, 72, alarm_logo[4] );
i = ( *( alarm_time + 1 ) ) / 10;
Lcd_Character_16X8( hour_flag, 2, 32, letter_logo[i] ); //显示时的高位
i = ( *(alarm_time + 1 ) ) % 10;
Lcd_Character_16X8( hour_flag, 2, 40, letter_logo[i] ); //显示时的低位
Lcd_Character_16X8( 1, 2, 48, letter_logo[10] ); //:
i = ( * ( alarm_time ) ) / 10;
Lcd_Character_16X8( minute_flag, 2, 56, letter_logo[i] ); //显示分的高位
i = ( * ( alarm_time ) ) % 10;
Lcd_Character_16X8( minute_flag, 2, 64, letter_logo[i] ); //显示分的低位
}
/********************************************************************************
*名称:LCD_ERSHI(uchar temp)**************************
*功能:24节气显示函数*************************************
********************************************************************************/
void LCD_ERSHI( uchar temp )
{
switch(temp)
{
case 1 :{
Lcd_Character_16X16( 1, 6, 80, ershi_logo[0] ); //小寒
Lcd_Character_16X16( 1, 6, 96, ershi_logo[1] );
}
break;
case 2: {
Lcd_Character_16X16( 1, 6, 80, ershi_logo[2] ); //大寒
Lcd_Character_16X16( 1, 6, 96, ershi_logo[1] );
}
break;
case 3: {
Lcd_Character_16X16( 1, 6, 80, ershi_logo[3] ); //立春
Lcd_Character_16X16( 1, 6, 96, ershi_logo[4] );
}
break;
case 4: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[5] ); //雨水
Lcd_Character_16X16( 1, 6, 96, ershi_logo[6] );
}
break;
case 5: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[7] ); //惊蛰
Lcd_Character_16X16( 1, 6, 96, ershi_logo[8] );
}
break;
case 6: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[4] ); //春分
Lcd_Character_16X16( 1, 6, 96, ershi_logo[9] );
}
break;
case 7: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[10] ); //清明
Lcd_Character_16X16( 1, 6, 96, ershi_logo[11] );
}
break;
case 8: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[12] ); //谷雨
Lcd_Character_16X16( 1, 6, 96, ershi_logo[5] );
}
break;
case 9: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[3] ); //立夏
Lcd_Character_16X16( 1, 6, 96, ershi_logo[13] );
}
break;
case 10: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[0] ); //小满
Lcd_Character_16X16( 1, 6, 96, ershi_logo[14] );
}
break;
case 11: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[15] ); //芒种
Lcd_Character_16X16( 1, 6, 96, ershi_logo[16] );
}
break;
case 12: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[13] ); //夏至
Lcd_Character_16X16( 1, 6, 96, ershi_logo[17] );
}
break;
case 13: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[0] ); //小暑
Lcd_Character_16X16( 1, 6, 96, ershi_logo[18] );
}
break;
case 14: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[2] ); //大暑
Lcd_Character_16X16( 1, 6, 96, ershi_logo[18] );
}
break;
case 15: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[3] ); //立秋
Lcd_Character_16X16( 1, 6, 96, ershi_logo[19] );
}
break;
case 16: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[20] ); //处暑
Lcd_Character_16X16( 1, 6, 96, ershi_logo[18] );
}
break;
case 17: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[21] ); //白露
Lcd_Character_16X16( 1, 6, 96, ershi_logo[22] );
}
break;
case 18: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[19] ); //秋分
Lcd_Character_16X16( 1, 6, 96, ershi_logo[9] );
}
break;
case 19: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[1] ); //寒露
Lcd_Character_16X16( 1, 6, 96, ershi_logo[22] );
}
break;
case 20: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[23] ); //霜降
Lcd_Character_16X16( 1, 6, 96, ershi_logo[24] );
}
break;
case 21: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[3] ); //立冬
Lcd_Character_16X16( 1, 6, 96, ershi_logo[25] );
}
break;
case 22: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[0] ); //小雪
Lcd_Character_16X16( 1, 6, 96, ershi_logo[26] );
}
break;
case 23: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[2] ); //大雪
Lcd_Character_16X16( 1, 6, 96, ershi_logo[26] );
}
break;
case 24: { Lcd_Character_16X16( 1, 6, 80, ershi_logo[25] ); //冬至
Lcd_Character_16X16( 1, 6, 96, ershi_logo[17] );
}
break;
break;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -