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

📄 keydeal.c

📁 16路巡检仪 该仪表采用c语言编写
💻 C
📖 第 1 页 / 共 2 页
字号:
#include"	Head.h"
#include "AT89X52.H"
extern	int		xdata	kadat;
extern	int		xdata	mimat;	
extern	uchar	xdata	fundat;			
extern	uchar	xdata	inputdat;
extern	uchar	xdata	typdat[16];
extern	uchar	xdata	dot[16];
extern	float	xdata	rangeL[16];
extern	float	xdata	rangeH[16];
extern	uchar	xdata	warmd;
extern	float	xdata	warmL[16];
extern	float	xdata	warmH[16];
extern	uchar	xdata	warmdown[16];
extern	uchar	xdata	warmscd[16];
extern	float	xdata	filt;
extern	uchar	xdata	drt;
extern	int		xdata	xjtime;
extern	uchar	xdata	collt;
extern	uchar	xdata	rady;
extern	uchar	xdata	bps;
extern	float	xdata	t0;
extern	float	xdata	mv;	
extern	float	xdata	bsdatH;
extern	float	xdata	bsdatL;
extern	float	xdata	AR[16];
extern	float	xdata	IR[16];
extern	float	xdata	VR[16];
extern	uchar	si[4];
extern	uint	xdata	TMing2;
extern	uint	xdata	port[road];
uchar	portt=0;
uchar	keyn=0,TMing1=0;
uchar	xdata LEDbuf[8];
uchar	Chose=zcdisplay;
float	code	dotdat[4]={1.0,0.1,0.01,0.001};
float	code	RdatH[4]={9999.0,999.9,99.99,9.99};
float	code	RdatL[4]={-999.0,-99.9,-9.99,-0.999};
extern	bit tq;
extern	uint	pvdat[4];
extern	uchar	VFport;
bit		writen,writen1;				//写使能位
bit		automic;					//手动和自动控制位;当该位为1时,手动控制,反之,则自动控制
extern	uint	xdata	TMing2;
extern	uchar	tt,KEYbuf[4],kcout,jitter,jiasu;
extern	uchar	count;
void	KEYdeal()
{	uchar 	kr,portl,wk,wt;
	uint	leng,sysleng,funleng;
	float	adatt;
	uchar	kt=0;
	wk=inputdat-1;
	sysleng=wk*16;
	wt=warmd-1;
	funleng=wt*16;
	portl=portt*12;
	if(keyn!=0)
		{	adatt=dotdat[dot[wk]];
			if(keyn==SET)
				TMing1++;
			else
				TMing1=0;
			if(keyn==SET)
				{	
					switch(Chose)
					{
						case zcdisplay:	if(TMing1>20)
											{
												Chose=mimadisplay;
												kr=2;
												leng=0;
												TMing1=0;
												Hex2Bcd(0,si);
											}
						break;
						case  mimadisplay:if(kadat==mimat)
											{
												Chose=mimasetdisplay;
												kr=2;
												leng=4;
												mimat=0;
											}
											else if(mimat==10)
											{
												Chose=jianyandisplay;
												kr=3;
												leng=96+portl;
												mimat=0;
											}
											else	
												kt=1;
											Hex2Bcd(mimat,si);
						break;
						case mimasetdisplay:	Chose=setdisplayst;
												kr=2;
												leng=8;
												Hex2Bcd(kadat,si);
						break;
						case	setdisplayst:	Chose=setdisplaysp;
												kr=2;
												leng=12;
												if(writen==1)
												flashtW(&kadat, 5, 1);
												Hex2Bcd(fundat,si);
						break;
						case	setdisplaysp:	Chose=mimasetdisplay;
												kr=2;
												leng=4;
												if(writen==1)
												flashWB(&fundat, 7, 1);
						break;
						case	syscsdisplay:	Chose=syscs1;
												kr=2;
												leng=20;
												Hex2Bcd(inputdat,si);
						break;
						case		syscs1:		Chose=syscs2;
												kr=2;
												leng=24+sysleng;
												Hex2Bcd(typdat[wk],si);
						break;
						case		syscs2:		Chose=syscs3;
												kr=2;
												leng=28+sysleng;
												if(writen==1)
												flashWB(typdat, 9, 16);
												Hex2Bcd(dot[wk],si);
						break;
						case		syscs3:		Chose=syscs4;
												kr=2;
												leng=32+sysleng;
												if(writen1==1)
												{
												rangeL[wk]=0.0;
												rangeH[wk]=0.0;
												flashWB(dot, 10, 16);
												}
												floatToBCD(rangeL[wk],si);
						break;
						case		syscs4:		Chose=syscs5;
												kr=2;
												leng=36+sysleng;
												if(writen==1)
												flashW(rangeL, 11,16);
												floatToBCD(rangeH[wk],si);
						break;
						case		syscs5:		Chose=syscsdisplay;
												kr=2;
												leng=16;
												if(writen==1)
												flashW(rangeH, 12, 16);
						break;
						case	fundisplay:		if(fundat==2)
												{
												Chose=fun1;
												kr=2;
												leng=284+funleng;
												Hex2Bcd(warmd,si);
												}
												else
													kt=1;
						break;
						case		fun1:		Chose=fun2;
												kr=2;
												leng=288+funleng;
												floatToBCD(warmH[wt],si);
						break;
						case		fun2:		Chose=fun3;
												kr=2;
												leng=292+funleng;
												if(writen==1)
												flashW(warmH, 15, 16);
												floatToBCD(warmL[wt],si);
						break;
						case		fun3:		Chose=fun4;
												kr=2;
												leng=296+funleng;
												if(writen==1)
												flashW(warmL, 14, 16);
												Hex2Bcd(warmdown[wt],si);
						break;
						case		fun4:		Chose=fun5;
												kr=2;
												leng=300+funleng;
												if(writen==1)
												flashWB(warmdown, 16, 16);
												Hex2Bcd(warmscd[wt],si);
						break;
						case		fun5:		Chose=fundisplay;
												kr=2;
												leng=280;
												if(writen==1)
												flashWB(warmscd, 17, 16);
						break;
						case  teshucsdisplay:	Chose=teshucs1;
												kr=3;
												leng=36;
												 floatToBCD(filt, si);
						break;
						case		teshucs1:	Chose=teshucs2;
												kr=3;
												leng=40;
												if(writen==1)
												flashW(&filt, 18, 1);
												Hex2Bcd(drt,si);
						break;
						case		teshucs2:	Chose=teshucs3;
												kr=3;
												leng=44;
												if(writen==1)
												flashWB(&drt, 19, 1);
												Hex2Bcd(xjtime,si);
						break;
						case		teshucs3:	Chose=teshucs4;
												kr=3;
												leng=48;
												if(writen==1)
												flashtW(&xjtime, 20,1);
												Hex2Bcd(collt,si);
						break;
						case		teshucs4:	Chose=teshucs5;
												kr=3;
												leng=52;
												if(writen==1)
												flashWB(&collt, 21, 1);
												Hex2Bcd(rady,si);
						break;
						case		teshucs5:	Chose=teshucs6;
												kr=3;
												leng=56;
												if(writen==1)
												flashWB(&rady, 22, 1);
												Hex2Bcd(bps,si);
						break;	
						case		teshucs6:	Chose=teshucsdisplay;
												kr=3;
												leng=32;
												if(writen==1)
												flashWB(&bps, 23, 1);
						break;
						case	jianyandisplay:	Chose=jianyan1;
												kr=3;
												leng=64;
						break;
						case		jianyan1:	Chose=jianyan2;
												kr=3;
												leng=68;
												if(writen==1)
												flashW(&t0, 24, 1);
						break;
						case		jianyan2:	Chose=jianyan3;
												kr=3;
												leng=72;
												if(writen==1)
												flashW(&mv, 25, 1);
						break;
						case		jianyan3:	Chose=jianyan4;
												kr=3;
												leng=76;
												if(writen==1)
												flashW(&bsdatH, 26, 1);
						break;
						case		jianyan4:	Chose=jianyan5;
												kr=3;
												leng=80;
												if(writen==1)
												flashW(&bsdatL, 26, 1);
						break;
						case		jianyan5:	Chose=jianyan6;
												kr=3;
												leng=84+portl;
						break;
						case		jianyan6:	Chose=jianyan7;
												kr=3;
												leng=88+portl;
												if(writen==1)
												flashW(AR, 29, 16);
						break;
						case		jianyan7:	Chose=jianyan8;
												kr=3;
												leng=92+portl;
												if(writen==1)
												flashW(IR, 30, 16);
						break;
						case		jianyan8:	Chose=jianyandisplay;
												kr=3;
												leng=96+portl;
												if(writen==1)
												flashW(IR, 31, 16);
						break;
						default:;
				}
					writen=0;
					writen1=0;
					automic=0;
				
			}
			else if(keyn==ADDdata)
				{	switch(Chose)
					{
						case	mimasetdisplay:	Chose=teshucsdisplay;
												kr=3;
												leng=32;
						break;
						case	syscsdisplay:	Chose=mimasetdisplay;
												kr=2;
												leng=4;
						break;
						case	fundisplay:		Chose=syscsdisplay;
												kr=2;
												leng=16;
						break;
						case	teshucsdisplay:	Chose=fundisplay;
												kr=2;
												leng=280;
						break;
						case	mimadisplay:	if(mimat<9999)
													mimat++;
												Hex2Bcd(mimat,si);
												kt=1;
						break;
						case	setdisplayst:	if(kadat<9999)
													kadat++;
												Hex2Bcd(kadat,si);
												writen=1;
												kt=1;
						break;
						case	setdisplaysp:	if(fundat<2)
													fundat++;	
												Hex2Bcd(fundat,si);
												writen=1;
												kt=1;
						break;
						case		syscs1:		if(inputdat<road)
													inputdat++;
												Hex2Bcd(inputdat,si);
												writen=1;
												kt=1;
						break;
						case		syscs2:		if(typdat[wk]<type)
													typdat[wk]++;
												Hex2Bcd(typdat[wk],si);
												writen=1;
												kt=1;
						break;
						case		syscs3:		if(dot[wk]<3)
													dot[wk]++;
												Hex2Bcd(dot[wk],si);
												writen1=1;
												kt=1;
						break;
						case		syscs4:		if(rangeL[wk]<=RdatH[dot[wk]])
													rangeL[wk]+=adatt;
												floatToBCD(rangeL[wk],si);
												writen=1;
												kt=1;
						break;
						case		syscs5:		if(rangeH[wk]<=RdatH[dot[wk]])
													rangeH[wk]+=adatt;
												floatToBCD(rangeH[wk],si);
												writen=1;
												kt=1;
						break;

⌨️ 快捷键说明

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