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

📄 19264cv0_1.c

📁 V型机LCD程序2005-11-5,V型机LCD程序2005-11-5
💻 C
📖 第 1 页 / 共 5 页
字号:
/***********************************************************************************
 Start date: 2004-06-15 
 mcu: STC89C516RD、STC89C516RD+
 ver:	0.8
 Writer: hujie
 Purpose: V type machine
------------------------------------------------------------------------------------
 NOTICE:
	1)STC89C512RD+内有1024BYTE XRAM,如用此IC 读写外部RAM:0X400以内地址需屏蔽
	   STC89C512RD 内有768YTE   XRAM,如用此IC 读写外部RAM:0X300以内地址需屏蔽

   	2)读写XRAM时候 A0-A15 、/WR、 /RD无输出。

 	3)更换虚拟XDATA不同的MCU后需修改以下函数:
    	   void disromdata(uchar hicode,uchar locode)//从ROM中读取汉字点阵数据
	   另,在对所有XDATA型数据的访问前,需执行p1tune(RAMCS)函数。
//------- MODIFY DATE:2004-10-19------------//



------包含电召模块------2004-12-13
//**********************************************************************************/
//#pragma SRC

#include  "regx52.h"//	 
#include  "lcd192.h"//
#include  <absacc.h>//
#include  <intrins.h>//
#include  "io_assign.h"//
#include  "IRrec.h"//
#include  "keyval_def.h"//
#include  "array_def.h"//
#include  "newmenu.h"//
#include  "x5045.h"//

//#include <hanshudef.h>

//#include <keytune.h>


#define     MAIN_COMM     1 //接收主机数据
#define     DGPS_COMM	  0 //接收GPS数据
/*
extern void Write8(unsigned char byt);//向5045写入8位数据
extern unsigned char Read8(void);//从5045读出8位数据
extern unsigned char rdsr_dog(void);//读5045状态寄存器
extern void wrsr_dog(unsigned char status_reg);//写5045状态寄存器
extern unsigned char wip_poll(void);////检验写操作是否结束。
//void wrdi_dog(void);//看门狗写禁止子程序
//void rest_dog(void);//喂狗
extern unsigned char byte_read(bit HiHalf,unsigned char Addr);//字节读
extern void byte_write(bit HiHalf,unsigned char Addr,unsigned char Data);//字节写
*/

  
//////////////////位标志定义///////////////////////
//////////原始位标志///////////////
bit gps_star;//
bit gps_rec_end;//
bit gps_dingw;//GPS定位标志
bit gps_write;//
bit MainRecBusy_flag;//接收或者发送主机数据后的状态延迟

uchar idata MainRecBusyTime;//接收或者发送主机数据后的状态延迟计时
uchar idata MainRecTimer;////接收主机数据计时器
				
//bit dispnews;//
bit fangsign;//
bit time1ssign,miao60sign,dispteleph;//
bit dispsign,comeingtelep;//,screen2;//
bit alarmsign,loudsign,lightsign,dismiaosign,testsign;//
bit nogpsdata1;//
bit nogpsdata;//"1"GPS定位状态“0”GPS无定位
bit bGSM_GPRS;//0:GSM状态 1:GPRS状态
//////////////////////////////新定义位标志///////////////
//bit newtel,news;//
bit flag_main_dgps;//接收主机与DGPS选择标志  
bit RxMain_head=FALSE;

bit readkeysign;//有键盘按下标志
bit volatile RecJoin;//接收主机数据字节高、低4位结合标志。1:结合
bit FlagOldComeTel;//上一次来电标志
bit bNewInfor;//有新短信标志
bit WaitingOver;//在主界面以及拨打电话、通话界面以外待机超过5分钟
bit NewAimFlag;//收到新标 标志
bit regingflag;//“密码验证成功但还未返回”标志 1:未返回 0已经:返回
bit FlagXram;//读取点阵时使用XDATA 0x0000--0x02ff标志。1:使用 0:未使用
bit TempFlag1, TempFlag2,TempFlag3;//电召部分暂用标志
////////////////////////////////////////////////////////
uchar data pic_temp;//上一状态号码
uchar data other_temp;
uchar data other1_temp; //上一状态号
uchar data keyval_temp; //上一键值
uchar data  TxPos;
//uchar idata  TxPos;
uchar data TxNum;
uchar data RxMain_star;
uchar data RxMain_end;
uint16 data RxMain_ptr;
uchar data COMM_OK;
uchar data KEYVAL_OK;

uchar data FinallyKeyVal;//最终键值。可作为KEYTUNE程序以外的用户程序使用的键值
			  //无论由LCD面板还是红外手柄输出的键值译码后都必须在此变量中备份
uchar idata sec5;//
uchar idata RegOK;// 登录标志
uchar idata CommCounter;//GPRS公共信息计数器
uchar idata SMScnt;//短信计数器
uchar idata CommTotal;//公共信息总数 包含公共信息计数器+短信计数器
uchar idata SchInforCnt;//调度信息计数器
uchar idata InforTotal;//总的信息条数
uchar idata InforListCnt;//信息显示列表计数器
uchar idata InforDispCnt;//信息内容显示计数器

uchar idata WaitingTimer;//待机定时器;单位:分钟
uchar xdata FlagNoHotTel;//无热线号码标志
uchar xdata FlagPortInput;//IP端口输入状态标志
bit AutoConnectionFlag;// 自动接听标志。1:自动 0:手动
bit SelectAutoConnection;//自动接听选择标志:1:自动 0:手动

uchar idata IRKeyVal;

uchar idata ComeTelTimer;//来电超时定时器
uchar idata TxCmdCnt;//发送除电话号码以外的命令数据的字节数
uchar xdata HotLineCnt;//热线条数
uchar idata ForntMID;//前一位是间隔符标志
uchar idata InforType;//收到新信息的类型标志
//0x10 电召 0x20 调度 0x30 GPRS 公共 OX40 短信
//0x11 0x21 0x31 0x41 表示信息已经显示
uchar idata RefushCommInfor;//刷新公共信息标志
uchar idata RefushCmdInfor;//刷新调度信息标志

uchar idata NoReadCmdCnt;// 未读调度信息计数器
uchar idata NoReadSmsCnt;// 未读短信信计数器
uchar idata NoReadGprsCommCnt;// 未读GPRS公共信息计数器
uchar idata NoReadInfoCnt;//未读信息计数器
uchar idata NewInforTimer;//新信息显示定时器

uchar idata ConveneInforCnt;//电召信息计数器
uchar idata NoReadConveneCnt;//未读电召信息计数器
uchar idata TotalWorkRec;//业务记录总条数
uchar idata ReinforceConveneNum;//填充标地的电召存储序号 如果最高位:1:有填充 0:无填充
//uchar idata ConveneOpt;//电召菜单操作状态

uchar idata REG_No;//当前登录驾驶员编号
uchar idata ModifyPsw_No;//当前更改登录密码的驾驶员编号
bit FlagOldOK;//旧密码验证OK
bit FinishRegModify;//完成登陆密码更改标志
bit FlagFinishReg;//登陆验证完成标志
//////////////////////////////////////////////////////////////
uchar idata  antenna;//USED GSM信号强度值。
uchar data  mcs138;
uchar idata  miaotime;
uchar idata  time_count_s;
uchar idata  time_10ms;
uchar idata command;
uchar idata time20mssign;
uchar idata KeyIntervalTime;//按键间隔时间
uchar idata BEEPtime;//蜂鸣器响闹时间
uint16 idata BLtime;//LCD背光时间
//uchar data tnumbnews;

uchar idata  jiannumb;//主界面问候语句序号
uchar data  gpstime;
uchar data seri_rx_prt;		       

uchar data hi_gb;				      
uchar data low_gb;
/***********************信息显示部分变量声明开始*********************/
uchar idata InforListCurser;//信息列表光标
uchar idata InforListPtr;//显示信息列表时的序号//以3递增递减
uchar idata InforScreenNum;//信息内容显示屏号
uchar idata InforScreenCnt;//信息内容屏数
uchar idata InforPubPtr;//=m+InforListPtr;//各种信息当前正在操作的存储通用指针
 
bit InforListClrScreen;//信息列表清屏标志
bit InforDispBuffering;//信息内容已经全部缓冲标志

uchar idata x5045data;//for debug

/*************************信息显示部分变量声明结束********************/

struct GprsInforStruct//GPRS方式发出信息的结构
{
	uchar ReadFlag;//是否阅读标志//0x2a未读、0x20已读//00表示废弃
	uchar InforNumber;//信息存储序号//0xff表示无用信息
	uchar CodeMode;//编码方式内码或UNICODE//0XF0内码、0XF8 UNICODE
	uchar BlockNumber;
	uchar BlockTotal;
	//uchar Tels[54];//电召及顾客电话									    
	uchar Text[512];//文本 
	uint16 TextLenth;//文本长度
};


struct 	E_ConveneStruct//电召信息结构//
{
	uchar TradeFlag;//交易标志//0x00:废标,0x01:收到标头,未读//0X02:抢标,还未回复
				  //0X03:已抢标成功,未收到标地//0X04:收到标地未读
				  //0X05:收到标地已读未载到客//00x06:收到标地载到客交易完成。
	uchar InforNumber;//信息序号
	uchar AimNumber[3];//标书编号
	uchar Timer;//等待定时 //大于0X80开始定时
	uchar HeaderLenth;// 标头文本长度
	uchar AimContentLenth;//标的文本长度
	
	uchar E_ConveneTel[24];//电召电话
	uchar BuyerTel[24];//顾客电话
	uchar AimHeader[90];//标头
	uchar AimContent[400];//标的

}; 


struct SMSstruct//短信的结构
{
	uchar ReadFlag;//是否阅读标志//10未读、80已读 //00表示废弃
	uchar InforNumber;//信息存储序号
	uchar CodeMode;//编码方式内码或UNICODE//0XF0内码、0XF8 UNICODE
	uchar Tel[24];//
	uchar Text[166];//文本 
	uchar TextLenth;//文本长度
};

struct ComeTelStruct//来电记录的结构
{
	uchar TalkFlag;//是否通话标志
	uchar ComeTelNumber;// 电话序号
	uchar ComeTel[22];//来电号码
	uchar ComeTelDate[24];//来电日期时间
	
};

struct ComeTelStruct xdata ComeTel[20] _at_  0x792c;//来电记录

struct GprsInforStruct xdata CmdInfor[20] _at_ 0x0e31; //调度信息

struct SMSstruct xdata SMSInfor[10] _at_ 0x36bd;//短信

struct GprsInforStruct xdata CommInfor[10] _at_ 0x6100;//公共信息

struct E_ConveneStruct xdata E_ConveneRec[10] _at_ 0x45d1;//电召记录

uchar data keytabindex;//菜单状态索引变量
typedef struct 
	{
		unsigned char KeyTab_MenuIndex; //当前状态索引号
		//unsigned int KeyTab_MaxItems; //本级菜单最大条目数
    		unsigned char KeyTab_PressOk;  	//按下"确认"键时转向的状态索引号
    		unsigned char KeyTab_PressEsc;	//按下"退出"键时转向的状态索引号
		unsigned char KeyTab_PressDEL;	//按下"DEL"键时转向的状态索引号
		unsigned char KeyTab_PressFUNC;	//按下"功能"键时转向的状态索引号
		unsigned char KeyTab_PressDown; //按下"下翻"键时转向的状态索引号
    		unsigned char KeyTab_PressUp;   //按下"上翻"键时转向的状态索引号
		unsigned char SubTotal;		//该级子菜单数//OXFF表示小于2
		unsigned char SubNum;		//该画面的子序号对应红外键值转向
		
		void    (code *CurrentOperate)();    //当前状态应该执行的功能操作
	}KeyTabStruct;
void    (code *KeyFuncPtr)();    //按键功能指针
KeyTabStruct code KeyTab[131];

///////////////////////////////////////////////////////
void  untogb(uchar hi_unicode,uchar low_unicode);
void Feedingdog(void);
void XdataInint(void);
//uchar AscToHex(uchar Asc);//ASCII转HEX
void CommProcess(uint16 p);//GPRS发送的公共信息处理//入口数据长度值
void ReturnOK(uchar token);//向串口发送接收OK。入口为命令字
void TxCommand(void);//向主机发送(除电话号码以外)数据的公共函数
void DialNum(void);//在待机界面显示数字以及* #,及在通话状态向主机发送键值
void SendTel(void);// 发送号码到主机
/////////菜单结构表内函数声明开始/////////////////////////////////////
void disp_halfline(uchar xpost,uchar * discodeprt,bit tempsign);
void RefushFace(void);//刷新主界面
void SendGprsInforListToDisBuf(struct GprsInforStruct *InforPtr,struct SMSstruct *SMS_Ptr,
				uchar ReverseLine);
void SendGprsInforContentToDisBuf(void); //将入口参数对应的GPRS
							//信息的当前屏的内容送显示缓冲
void DispCommError(void);//显示通讯异常
void owntel_number_in(void);//自定义电话:号码输入界面

void store_owntel(void);//自定义号码:存储界面

void SMScenter_number_in(void);//设置短信中心界面

void store_SMScenter(void);//存储短信中心号码

void SendSMS_CentTel(void);// 发送短信中心号码到主机

void GPRS_IPset(void);//GPRS IP设置界面

void GPRS_Pw(void);//GPRS设置密码输入

void Validate(void);//GPRS IP以及密码验证

void PwNotice(uchar xpos,uchar ypos,bit tempsign);//密码提示语句显示“请输入X位密码”

void TempDispFuc(uchar xpos,uchar ypos,bit tempsign);//从固定地址提取内码显示一行临时语句
      
void CommSMSProcess(uint16 p);//短信方式发送的公共信息处理

void ScheduleInforProcess(uint16 p);//GPRS发送的调度信息的处理

void ConveneInforProcess(uint16 p);//电召信息存储

void ScheduleInfor_Del_face(void);//GPRS调度信息删除询问界面

void ScheduleInfor_Del_Operate(void);//GPRS调度信息删除操作,无截面

///调度信息列表显示函数
void SendCmdInforListToDisBuf(struct E_ConveneStruct *pConveneInfor,struct GprsInforStruct *InforPtr,uchar ReverseLine);

void workRec_disp_face(void); //业务记录列表:显示详细业务记录 


void SendCmdInforContentToDisBuf(void);//调度信息的当前屏的内容送显示缓冲

void DispCurrentInfor(void);//显示当前收到的短信,全局变量入口:InforType为信息类型
				//0x10 电召 0x20 调度 0x30 GPRS 公共 OX40 短信
				//0x11 0x21 0x31 0x41 表示信息已经显示

SendComeTelListToDisBuf(struct ComeTelStruct *pComeTel,uchar ReverseLine);//显示来电记录列表

void NumberInput(uchar xpos,uchar LowBit,uchar HighBit);//从IRKEY输入数字的公共函数

void NumberInput_Separate(uchar xpos,uchar LowBit,uchar HighBit);//从IRKEY或者FACEBORD输入数字的公共函数

void store_config(void);//自动接听配置界面:手动

void auto_connection_face(void); //自动接听配置界面:自动 

void modify_psw_face1(void);      //"1#更改登录密码"

void modify_psw_face2(void);      //"2#更改登录密码"

void modify_psw_face3(void);      //"3#更改登录密码"

void Input_OldRegPsw(void);//更改登录密码--》旧密码输入

void RegPsw_Sure(void);    //输入新登陆密码以及确认

void often_list_feedback(void){;} //常用短语列表-》“2 反馈短语”
              
                                                              
void manual_connection_face(void){;}//自动接听配置界面:手动

//显示8*16的天线符号
void DispAntenna(uchar xpost,uchar ypost,bit tempsign);

void ComeTel_Del_Face(void);//删除来电列表询问界面

void ComeTel_Del_Operate(void);// 删除来电列表操作,无界面

void Dial_ComeTel(void);//拨打来电号码界面

void DispDetial_ComeTel(void);//显示来电号码以及时间等详细信息

void SendComeTelContentToDisBuf(void);//发送来电详细记录到显示缓冲

void InforIndexTune(uchar cnt);//信息目录显示的索引处理

//void SendConveneInforContentToDisBuf(void); //缓冲电召信息内容

void List_Dial_ConTel(void);       //拨打电召电话选项

void List_Dial_BuyerTel(void);  //拨打顾客电话选项

void Dial_InforTel(void);   //拨打信息中的电话

void LootAim(void);       //发送抢标命令选项

void putBmp16(uchar code *BmpPtr,uchar xpos,uchar ypos);//显示16*16图标

void SendSucJudge(void);//上传信息后的结果处理

void main_menu_CenterCstmWords(void); //由中心自定义短语项

void List_CenterCstmWords(void);//列表 中心定制短语

void Q_Send_CenterCstmWords(void);//发送中心定制短语

void A_Send_CenterCstmWords(void);//发送定制短语
void DisSendCstmWordsSuc(void);//显示发送定制短语才成功
void DispSendSucess(void);//显示发送成功

//列表自定义短语
void SendWordsInforListToDisBuf(uchar xdata *pCstmWords,uchar ReverseLine);
void CenterCstmWordsProcess(uint16 p);//处理从串口收到的中心定制短语


void TrafficSeverCancel(void); //交通信息服务-》取消
void NewsSeverCancel(void); //新闻--》取消
void WeatherSeverCancel(void); //天气预报-》取消
void IncreValSend(void); //发送增值服务代码到中心

void SysSet_PswCompare(void);//短信中心设置比较密码

void Disp_Dial(void);//显示拨出号码以及拨号提示语句


void mainface(void);//显示主界面

void main_menu_query();     //主菜单,光标停在“查询来电”栏

void main_menu_workinfo();   //主菜单,光标停在“业务信息”栏

//void main_menu_publicInfo();//主菜单,光标停在“公共信息”栏

void sub_menu_workinfo();  //业务信息列表,光标停在第一栏"车到侯客"
	
	
void sub_menu_help();     //求助信息列表,光标停在第一栏"塞 车"
	
	
void sub_menu_feedback();  //反馈信息列表光标停在第一栏"车内有事物"

		  	//以下三个是对应3个预留主菜单的内容显示结构
	
void read_sms_face();    //阅读短信界面,根据10状态的光标停留栏显示短信
	
	
void read_tel_face();     //阅读来电界面,根据11状态的光标停留栏显示来电
	
		                 //目前暂和11的功能一样--未使用
	
void send_workinfo_ask(); //发送业务信息询问界面
	
	
void send_help_ask();   //发送求助信息询问界面
	
	
void send_feedback_ask();   //发送反馈信息询问界面

void dispzi(uchar xpost,uchar ypost,uchar *discodeprt,bit tempsign);	
	
void gps_status();      //GPS定位状态。
	
void del_sms_face(void);  // DEL 短信无界面

void disp_send_success();

void workinfo_list_jdk();//业务信息光标停在2“接到客人”

void workinfo_list_kc();//业务信息3空车

void workinfo_list_wzdzcdd();//业务信息4未找到召车地点

void workinfo_list_zcdwk();//业务信息5召车地无客

void workinfo_list_wfasdd();//业务信息6无法按时到达

void workinfo_list_qlpc(); //业务信息7请另派车

	
void help_list_gz();    //求助信息2光标停在"故 障"栏

void help_list_sg();    //求助信息3光标停在"事 故"栏

void help_list_pm();	//求助信息4光标停在"抛 锚"栏

void help_list_qzsjyz();//求助信息5光标停在"请指示加油站"栏

void help_list_ylqz();  //求助信息6光标停在"医疗求助"栏

void help_list_mlqzswz();//求助信息7光标停在"迷路,请指示位置"栏

	
void feedback_list_cnwsw();	//反馈信息2车内有失物

void feedback_list_tcxx();  //反馈信息3停车休息

void feedback_list_cljy();  //反馈信息4车辆加油
	
void sys_list_ver();		//SYS信息光标停在4"版本信息"栏
	
void sys_list_gsm();      //SYS信息光标停在2"GSM信号标值"栏

⌨️ 快捷键说明

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