⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface.c

📁 此程序为出租车计价器
💻 C
📖 第 1 页 / 共 2 页
字号:
//======================================================
// 文件名称:	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 + -