📄 interface.c
字号:
//======================================================
// 文件名称: InterFace.c
// 功能描述: 用户界面绘制程序
// 维护记录: 2006-10-12 v1.0 by lijian
//======================================================
#include "InterFace.h"
#include "Cal.h"
#include "Cost.h"
#include "Distance.h"
#include "Speed.h"
#include "FloatToBin.h"
#include "BCD.h"
#include ".\KEY\Key.h"
#include "TypeOS.h"
unsigned int uiFlashFlag; // 0.5s计时标志,用于秒闪烁
//=============================================================
// 语法格式: void InterFace_Init(void)
// 实现功能: 用户界面初始化
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_Init(void)
{
LCD501_Init(0x00);
LCD501_SetPaintMode(PAINT_COVER);
LCD501_ClrScreen(0);
Cal_Init();
Dis_Init();
Speed_Init();
Cost_Init();
}
//=============================================================
// 语法格式: void InterFace_Normal(void)
// 实现功能: 绘制用户界面
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_Normal(void)
{
InterFace_DrawBaseInterFace();
InterFace_UpdateDate();
InterFace_UpdateTime();
InterFace_UpdateIcon();
InterFace_UpdatePrice();
InterFace_UpdateWaitTime();
InterFace_UpdateDistance();
InterFace_UpdateCost();
}
//=============================================================
// 语法格式: void InterFace_UpdateIcon(void)
// 实现功能: 绘制sunplus图标
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdateIcon(void)
{
LCD501_Bitmap(97, 0, (unsigned int *)encoding_00);
}
//=============================================================
// 语法格式: void InterFace_RevIcon(void)
// 实现功能: 绘制反色的sunplus图标
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_RevIcon(void)
{
LCD501_Bitmap(97, 0, (unsigned int *)encoding_01);
}
//=============================================================
// 语法格式: void InterFace_DrawBaseInterFace(void)
// 实现功能: 绘制用户界面固定不变的部分
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_DrawBaseInterFace(void)
{
// 日期间隔符
LCD501_PutChar(24, 0, '-');
LCD501_PutChar(42, 0, '-');
// 时间间隔符
LCD501_PutChar(78, 0, ':');
// 单价前导字符
LCD501_Bitmap(0, 8, (unsigned int *)encoding_2b); // 单
LCD501_Bitmap(12, 8, (unsigned int *)encoding_2c); // 价
LCD501_PutChar(24, 12, ':');
// 里程前导字符
LCD501_Bitmap(0, 20, (unsigned int *)encoding_15); // 里
LCD501_Bitmap(12, 20, (unsigned int *)encoding_16); // 程
LCD501_PutChar(24, 24, ':');
// 低速时间前导字符
LCD501_Bitmap(0, 32, (unsigned int *)encoding_22); // 行
LCD501_Bitmap(12, 32, (unsigned int *)encoding_23); // 驶
LCD501_Bitmap(24, 32, (unsigned int *)encoding_1d); // 时
LCD501_Bitmap(36, 32, (unsigned int *)encoding_1e); // 间
LCD501_PutChar(48, 36, ':');
// 金额前导字符
LCD501_Bitmap(0, 44, (unsigned int *)encoding_17); // 金
LCD501_Bitmap(12, 44, (unsigned int *)encoding_18); // 额
LCD501_PutChar(24, 48, ':');
}
//=============================================================
// 语法格式: void InterFace_UpdateYear(unsigned int Year)
// 实现功能: 更新年份显示
// 参数: Year - 年份
// 返回值: 无
//=============================================================
void InterFace_UpdateYear(unsigned int Year)
{
InterFace_In_DisNumber(0, 0, 4, Year);
}
//=============================================================
// 语法格式: void InterFace_UpdateMonth(unsigned int Month)
// 实现功能: 更新月份显示
// 参数: Month - 月份
// 返回值: 无
//=============================================================
void InterFace_UpdateMonth(unsigned int Month)
{
InterFace_In_DisNumber(30, 0, 2, Month);
}
//=============================================================
// 语法格式: void InterFace_UpdateDay(unsigned int Day)
// 实现功能: 更新日显示
// 参数: Day - 日
// 返回值: 无
//=============================================================
void InterFace_UpdateDay(unsigned int Day)
{
InterFace_In_DisNumber(48, 0, 2, Day);
}
//=============================================================
// 语法格式: void InterFace_UpdateDate(void)
// 实现功能: 更新日期显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdateDate(void)
{
unsigned int uiTemp;
if(Cal_DateChanged())
{
uiTemp = Cal_GetYear();
InterFace_UpdateYear(uiTemp);
uiTemp = Cal_GetMonth();
InterFace_UpdateMonth(uiTemp);
uiTemp = Cal_GetDay();
InterFace_UpdateDay(uiTemp);
}
}
//=============================================================
// 语法格式: void InterFace_UpdateHour(unsigned int Hour)
// 实现功能: 更新小时显示
// 参数: Hour - 小时
// 返回值: 无
//=============================================================
void InterFace_UpdateHour(unsigned int Hour)
{
InterFace_In_DisNumber(66, 0, 2, Hour);
}
//=============================================================
// 语法格式: void InterFace_UpdateHour(unsigned int Minute)
// 实现功能: 更新分钟显示
// 参数: Minute - 分钟
// 返回值: 无
//=============================================================
void InterFace_UpdateMinute(unsigned int Minute)
{
InterFace_In_DisNumber(84, 0, 2, Minute);
}
//=============================================================
// 语法格式: void InterFace_UpdateTime(void)
// 实现功能: 更新时间显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdateTime(void)
{
unsigned int uiTemp;
if(Cal_MinuteChanged())
{
uiTemp = Cal_GetHour();
InterFace_UpdateHour(uiTemp);
uiTemp = Cal_GetMinute();
InterFace_UpdateMinute(uiTemp);
}
}
//=============================================================
// 语法格式: void InterFace_TimeFlash(void)
// 实现功能: 时间闪烁显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_TimeFlash(void)
{
if(uiFlashFlag)
{
LCD501_SetPaintMode(PAINT_REV);
LCD501_PutChar(78, 0, ':');
LCD501_SetPaintMode(PAINT_COVER);
if(Cost_WaitOrNot())
{
InterFace_UpdateWaitTime();
}
uiFlashFlag = 0;
}
}
//=============================================================
// 语法格式: void InterFace_UpdatePrice(void)
// 实现功能: 更新价格显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdatePrice(void)
{
unsigned int uiTemp;
uiTemp = InterFace_In_DisFloat(30, 12, Cost_GetPrice());
LCD501_Bitmap(uiTemp, 8, (unsigned int *)encoding_19); // 元
LCD501_PutChar(uiTemp + 12, 8, ' ');
LCD501_PutChar(uiTemp + 12, 12, ' ');
LCD501_PutChar(uiTemp + 18, 8, ' ');
LCD501_PutChar(uiTemp + 18, 12, ' ');
}
//=============================================================
// 语法格式: void InterFace_UpdateDistance(void)
// 实现功能: 更新里程显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdateDistance(void)
{
unsigned int uiTemp;
uiTemp = InterFace_In_DisFloat(30, 24, Dis_GetDistance());
LCD501_Bitmap(uiTemp, 20, (unsigned int *)encoding_09); // 公
uiTemp += 12;
LCD501_Bitmap(uiTemp, 20, (unsigned int *)encoding_15); // 里
uiTemp += 12;
LCD501_PutChar(uiTemp, 20, ' ');
LCD501_PutChar(uiTemp, 24, ' ');
uiTemp += 6;
LCD501_PutChar(uiTemp, 20, ' ');
LCD501_PutChar(uiTemp, 24, ' ');
}
//=============================================================
// 语法格式: void InterFace_UpdateWaitTime(void)
// 实现功能: 更新低速等待时间显示
// 参数: 无
// 返回值: 无
//=============================================================
void InterFace_UpdateWaitTime(void)
{
unsigned long int lTemp;
unsigned int Hour;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -