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

📄 main.c

📁 此程序为出租车计价器
💻 C
字号:
//======================================================
//	The information contained herein is the exclusive property of
//	Sunnnorth Technology Co. And shall not be distributed, reproduced,
//	or disclosed in whole in part without prior written permission.
//	(C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//	ALL RIGHTS RESERVED
//	The entire notice above must be reproduced on all authorized copies.
//========================================================
//============================================================
//	工程名称:	Taxi
//	功能描述:	实现现行出租车计价器的基本功能
//	涉及的库:	CMacro.lib
//            	SACMV26e.lib
//	组成文件:	main.c, ConstValues.c, ConstValues.h,
//				Cal.c, Cal.h, Cost.c, Cost.h, Distance.c, Distance.h,
//				InterFace.c, InterFace.h, PicResource.c, PicResource.h, Speed.c, Speed.h
//				DataOSforLCD.asm, SPLC501Driver_IO.asm, SPLC501User.c, SPLC501User.h, SPLC501Driver_IO.inc
//				DrvKEY.c, DrvKey.h, KEY.c, KEY.h
//				hardware.asm, PlaySnd.c, PlaySnd.h, PlayService.c, PlayService.h
//				isr.asm, SetInterruptStatus.asm, SetInterruptStatus.h, spce061a.h, spce061a.inc
//				FloatToBin.asm, FloatToBin.h, TypeOS.h
//	硬件连接:	
//				SPLC501液晶模组			61板
//				D0 ~ D7			  <-->	IOA8 ~ IOA 15
//				A0				  <-->	IOB3
//				R/W				  <-->	IOB4
//				EP				  <-->	IOB5
//
//				将61板的IOB2与IOB9相连
//	维护记录:	2006-10-12	v1.0	by lijian
//===============================================
#include ".\KEY\Key.h"
#include "Cal.h"
#include "Cost.h"
#include "Speed.h"
#include "InterFace.h"
#include "PlayService.h"
#include "SetInterruptStatus.h"
#include "Distance.h"
#include "PlaySnd.h"

Status SysStatus;									//	系统状态
													//	Status结构体在InterFace.h中定义
//=============================================================
// 语法格式:	int main(void)
// 实现功能:	主函数
// 参数:		无
// 返回值:		无
//=============================================================
int main()
{
	unsigned int Key, KeyType;
	SysStatus = IDLE;
	KeyScan_Init();
	SetINTStatus(C_IRQ5_2Hz);
	SetINTStatus(C_IRQ4_1KHz);
	__asm("IRQ ON");
	InterFace_Init();								//	初始化用户界面
	InterFace_Normal();								//	显示常规界面
	InterFace_UpdateStatus(SysStatus);				//	显示当前系统状态(空车)
	while(1)
	{
		Key = KeyScan_GetKey(&KeyType);				//	按键扫描
		switch(Key)
		{
			case C_StartStopKey:
				if(C_SReleaseKeyState == KeyType)
				{
					if(IDLE == SysStatus)
					{
						SysStatus = RUN;			//	如果是空车状态,则进入行驶状态
						Cost_StartRunning();		//	启动计费
						InterFace_UpdatePrice();
						InterFace_UpdateStatus(SysStatus);//	更新显示
						PlaySnd(Cal_GetHello(Cal_GetHour()) + VOICE_MORNING, NO_WAIT);
						PlaySnd(VOICE_WELCOM, WAIT_OTHER_END);		//	播放提示音
					}
					else if (RUN == SysStatus)
					{
						SysStatus = IDLE;
						Cost_StopRunning();			//	如果是行驶状态,则停止计费
						InterFace_UpdatePrice();
						InterFace_UpdateStatus(SysStatus);
						PlaySnd(VOICE_BYE1, NO_WAIT);		//	播放提示音
						PlayDistance();				//	播放行驶里程
						PlaySnd(VOICE_BYE2, WAIT_OTHER_END);
						PlayCost();		//	播放费用
						PlaySnd(VOICE_BYE3, WAIT_OTHER_END);
					}
				}
				break;
			case C_ModeKey:
				if(C_SReleaseKeyState == KeyType)
				{
					if(IDLE == SysStatus)
					{
						SysStatus = SYSSET;			//	如果是空车状态,则进入日期时间设定模式
						InterFace_UpdateStatus(SysStatus);
						InterFace_SystemSet();		//	显示系统设定界面,并对日期时间进行设定
						SysStatus = IDLE;			//	设定结束,回到空车状态
						InterFace_UpdateStatus(SysStatus);
					}
					else if(RUN == SysStatus)
					{
						Speed_Down(10);
					}
				}
				break;
			case C_SetKey:
				if(C_SReleaseKeyState == KeyType)
				{
					if(IDLE == SysStatus)
					{
						Cost_ClearCost();			//	清除计费记录
						InterFace_UpdateWaitTime();	//	更新显示
						InterFace_UpdateDistance();
						InterFace_UpdateCost();
						InterFace_UpdateStatus(SysStatus);
					}
					else if(RUN == SysStatus)
					{
						Speed_Up(10);
					}
				}
				break;
			default:
				break;
		}
		InterFace_UpdateTime();						//	更新时间显示
		InterFace_TimeFlash();						//	秒闪烁,同时更新低速等待时间
		if(RUN == SysStatus)
		{
			Cost_ServiceLoop();						//	计费服务程序(用于监测行驶速度)
			InterFace_UpdateDistance();				//	实时显示行驶里程
			InterFace_UpdatePrice();
			InterFace_UpdateCost();					//	实时显示费用
		}
	}
	return 0;
}

⌨️ 快捷键说明

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