📄 keydeal.c
字号:
#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 + -