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

📄 adjust.c

📁 用KEIL开发的出租车计费系统
💻 C
字号:
/**************************************************************************
  
						Adjust Operation
  
	File Name:		Adjust.c
	Author:			Lin Qian
	Created:		2008/04/28
	Modified:		NO
	Revision: 		1.0
  
***************************************************************************/

#define __ADJUST
#include "INC\\main.h"
#undef __ADJUST


// 装载默认值 ******************************
#if LoadDefault_en
void LoadDefault (void)
{
	if( MenuMode == MENU_MAIN )		// 本操作只在主画面下调用
	{
		Dist = 0;		// 里程数清零
		Total = 0;		// 总价清零

		// 停车计时清零
		StopSec = 0;
		StopMin = 0;
		StopHour = 0;

		// 实时时钟装载默认值
		ClockHour = CLOCK_HOUR;
		ClockMin = CLOCK_MIN;
		ClockSec = CLOCK_SEC;
		SaveRTC();		// 将默认实时时钟写入EEPROM

		// 单价装载默认值
		DayPrice = DAY_PRICE;	// 白天单价(默认)
		NightPrice = NIGHT_PRICE;	// 夜晚单价(默认)
		SavePrice();

		LoadMenu_Main();	// 装载主画面
	}
}
#endif

// "+"操作 ******************************
#if Plus_en
void Plus (void)
{
	switch( MenuMode )		// 根据画面模式选择相应的"+"操作
	{
		case MENU_ADJUST_DAY_PRICE:	// 调整白天单价
			DayPrice++;
			if( DayPrice >= 1000 )	// 单价限制在$0~99.9
				DayPrice = 0;
			break;

		case MENU_ADJUST_NIGHT_PRICE:	// 调整夜晚单价
			NightPrice++;
			if( NightPrice >= 1000 )	// 单价限制在$0~99.9
				NightPrice = 0;
			break;

		case MENU_ADJUST_CLOCK_HOUR:	// 调整实时时钟Hour
			ClockHour++;
			if( ClockHour >= 24 )	// 实时时钟Hour限制在$0~23
				ClockHour = 0;
			break;

		case MENU_ADJUST_CLOCK_MIN:		// 调整实时时钟Min
			ClockMin++;
			if( ClockMin >= 60 )	// 实时时钟Min限制在$0~59
				ClockMin = 0;
			break;

		default:	break;
	}
}
#endif

// "-"操作 ******************************
#if Minus_en
void Minus (void)
{
	switch( MenuMode )		// 根据画面模式选择相应的"-"操作
	{
		case MENU_ADJUST_DAY_PRICE:	// 调整白天单价
			DayPrice--;
			if( DayPrice >= 1000 )	// 单价限制在$0~99.9
				DayPrice = 999;
			break;

		case MENU_ADJUST_NIGHT_PRICE:	// 调整夜晚单价
			NightPrice--;
			if( NightPrice >= 1000 )	// 单价限制在$0~99.9
				NightPrice = 999;
			break;

		case MENU_ADJUST_CLOCK_HOUR:	// 调整实时时钟Hour
			ClockHour--;
			if( ClockHour >= 24 )	// 实时时钟Hour限制在$0~23
				ClockHour = 23;
			break;

		case MENU_ADJUST_CLOCK_MIN:		// 调整实时时钟Min
			ClockMin--;
			if( ClockMin >= 60 )	// 实时时钟Min限制在$0~59
				ClockMin = 59;
			break;

		default:	break;
	}
}
#endif

// 确定操作 ******************************
#if Confirm_en
void Confirm (void)
{
	switch( SysStatus )		// 根据当前系统状态选择确认操作
	{
		case ADJUST_DAY_PRICE:		// 调整白天价格
		case ADJUST_NIGHT_PRICE:	// 调整夜晚价格
			SavePrice();	// 存储单价
			break;

		case ADJUST_CLOCK_HOUR:		// 调整实时时钟Hour
			// 存储实时时钟Hour
			x24c02_Write(X24C02_0, EEPROM_CLOCK_HOUR, ClockHour);
			DelayXms(5);
			break;

		case ADJUST_CLOCK_MIN:		// 调整实时时钟Min
			// 存储实时时钟Min
			x24c02_Write(X24C02_0, EEPROM_CLOCK_MIN, ClockMin);
			DelayXms(5);
			break;

		default:	break;
	}

	SysStatus = lastSysStatus;	// 恢复系统状态
	MenuMode = MENU_MAIN;		// 回主画面
}
#endif

// 调整实时时钟Hour ******************************
#if AdjustClockHour_en
void AdjustClockHour (void)
{
	if( SysStatus != ADJUST_CLOCK_HOUR )
	{
		// 更改系统状态
		if( MenuMode == MENU_MAIN )		// 只有当从主画面切换时, 才更新前一系统状态
			lastSysStatus = SysStatus;
		SysStatus = ADJUST_CLOCK_HOUR;

		// 更改画面模式
//		lastMenuMode = 	MenuMode;
		MenuMode = MENU_ADJUST_CLOCK_HOUR;
	}
}
#endif

// 调整实时时钟Min ******************************
#if AdjustClockMin_en
void AdjustClockMin (void)
{
	if( SysStatus != ADJUST_CLOCK_MIN )
	{
		// 更改系统状态
		if( MenuMode == MENU_MAIN )		// 只有当从主画面切换时, 才更新前一系统状态
			lastSysStatus = SysStatus;
		SysStatus = ADJUST_CLOCK_MIN;

		// 更改画面模式
//		lastMenuMode = 	MenuMode;
		MenuMode = MENU_ADJUST_CLOCK_MIN;
	}
}
#endif

// 调整白天单价 ******************************
#if AdjustDayPrice_en
void AdjustDayPrice (void)
{
	if( SysStatus != ADJUST_DAY_PRICE )
	{
		// 更改系统状态
		if( MenuMode == MENU_MAIN )		// 只有当从主画面切换时, 才更新前一系统状态
			lastSysStatus = SysStatus;

		// 更改画面模式
		SysStatus = ADJUST_DAY_PRICE;
		MenuMode = MENU_ADJUST_DAY_PRICE;
	}
}
#endif

// 调整夜晚单价 ******************************
#if AdjustNightPrice_en
void AdjustNightPrice (void)
{
	if( SysStatus != ADJUST_NIGHT_PRICE )
	{
		// 更改系统状态
		if( MenuMode == MENU_MAIN )		// 只有当从主画面切换时, 才更新前一系统状态
			lastSysStatus = SysStatus;
		SysStatus = ADJUST_NIGHT_PRICE;

		// 更改画面模式
//		lastMenuMode = 	MenuMode;
		MenuMode = MENU_ADJUST_NIGHT_PRICE;
	}
}
#endif

//************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -