#include<head.h>
#define LCDADDR XBYTE[0x98ff] /*选LCD控制8D触发器地址 S3*/
#define LCDDATA XBYTE[0x88ff] /*选LCD数据8D触发器地址 S1*/
void WRInstrLef(uchar x)
{//LCDADDR=0xe0;
LCDADDR=0xe1; /*片选、写、rs=0、E使能高电平*/
LCDDATA=x; /*写入控制器*/
// _nop_();
// LCDADDR=0xe1; /*E为低电平*/
// _nop_();
LCDADDR=0xe0;
}
//write code programme(mid)
void WRInstrMID(uchar x)
{//LCDADDR=0xe8;
LCDADDR=0xe9; /*片选、写、rs=0、E使能高电平*/
LCDDATA=x; /*写入控制器*/
// _nop_();
// LCDADDR=0xe9; /*E为低电平*/
// _nop_();
LCDADDR=0xe8;
}
//write code programme(right)
void WRInstrRig(uchar x)
{LCDADDR=0xf1; /*片选、写、使能高电平*/
LCDDATA=x; /*写入控制器*/
// _nop_();
// LCDADDR=0xf1; /*E为低电平*/
// _nop_();
LCDADDR=0xf0;
}
//write display data(left)
void WRDATALef(uchar x)
{LCDADDR=0xe5; /*片选、写、rs=1、E使能高电平*/
LCDDATA=x; /*输入数据*/
// _nop_();
// LCDADDR=0xe5; /*E变低*/
// _nop_();
// _nop_();
LCDADDR=0xe4;
// _nop_();
}
//write display data(mid)
void WRDATAMID(uchar x)
{LCDADDR=0xed; /*片选、写、D/I=1、E使能高电平*/
LCDDATA=x; /*输入数据*/
// _nop_();
// LCDADDR=0xed; /*E变低*/
// _nop_();
// _nop_();
LCDADDR=0xec;
}
//write display data(right)
void WRDATARig(uchar x)
{LCDADDR=0xf5; /*片选、写、D/I=1、E使能高电平*/
LCDDATA=x; /*输入数据*/
// LCDADDR=0xf5; /*E变低*/
LCDADDR=0xf4;
}
//inital display
void Init(void)
{uchar com;
com=0xc0; /*设置显示起始行为第一行*/
WRInstrLef(com);
WRInstrMID(com);
WRInstrRig(com);
com=0x3e; /*关显示设置*/
WRInstrLef(com);
WRInstrMID(com);
WRInstrRig(com);
com=0x3f; /*开显示设置*/
WRInstrLef(com);
WRInstrMID(com);
WRInstrRig(com);
}
void ClearZero(void)
{uchar i,j;
for(i=184;i<192;i++)
{WRInstrLef(i); /*页面设置*/
WRInstrMID(i);
WRInstrRig(i);
WRInstrLef(64); /*列地址设置*/
WRInstrMID(64);
WRInstrRig(64);
for(j=0;j<64;j++)
{WRDATALef(0); /*写入零*/
WRDATAMID(0);
WRDATARig(0);
}
}
}
void ClearZero1(uchar x,uchar y,uchar z)//清空指定的位置
{uchar i,j;
for(i=x;i<y;i++)
{WRInstrLef(i); /*页面设置*/
WRInstrMID(i);
WRInstrLef(72); /*列地址设置*/
for(j=0;j<56;j++)
{WRDATALef(0); /*写入零*/
}
WRInstrMID(64);
for(j=0;j<z;j++)
{//WRDATALef(0); /*写入零*/
WRDATAMID(0);
}
}
}
void ClearZero2(uchar x)
{uchar i,j;
for(i=x;i<x+2;i++)
{//WRInstrLef(i); /*页面设置*/
//WRInstrMID(i);
WRInstrRig(i);
// WRInstrLef(64); /*列地址设置*/
// WRInstrMID(64);
WRInstrRig(64);
for(j=0;j<64;j++)
{//WRDATALef(0); /*写入零*/
//WRDATAMID(0);
WRDATARig(0);
}
}
}
void ClearZero3(uchar x)
{uchar i,j;
for(i=x;i<x+2;i++)
{//WRInstrLef(i); /*页面设置*/
//WRInstrMID(i);
WRInstrLef(i);
// WRInstrLef(64); /*列地址设置*/
// WRInstrMID(64);
WRInstrLef(64);
for(j=0;j<48;j++)
{//WRDATALef(0); /*写入零*/
//WRDATAMID(0);
WRDATALef(0);
}
}
}
void ClearZero4(uchar x)
{uchar i,j;
for(i=x;i<x+2;i++)
{//WRInstrLef(i); /*页面设置*/
//WRInstrMID(i);
WRInstrRig(i);
// WRInstrLef(64); /*列地址设置*/
// WRInstrMID(64);
WRInstrRig(64);
for(j=0;j<48;j++)
{//WRDATALef(0); /*写入零*/
//WRDATAMID(0);
WRDATARig(0);
}
}
}
/*
void count_value(uchar x)
{//static uchar jj;
uchar j,j1,ii;
uchar k[4];
uint dd;
uchar c,cc;
float aux;
if(x==3||x==7)
{k[3]=89;}
else k[3]=88;
ii=k[3]-1;
k[0]=93;
// jj=x;
k[1]=94;
k[2]=90;
// aa
aa[0]=data_off[0].off_dayh[2][19]*60+data_off[0].off_daym[2][19];
aa[1]=data_off[0].off_dayh[5][20]*60+data_off[0].off_daym[5][20];
aa[2]=data_off[0].off_dayh[8][22]*60+data_off[0].off_daym[8][22];
aa[3]=data_off[0].off_dayh[11][21]*60+data_off[0].off_daym[11][21];
if(aa[1]>=aa[0])
{b_t=(aa[1]-aa[0])/93;
aux=data_off[0].off_daym[2][19];
for(j=20;j<31;j++)//3
{//dd=(unsigned char)(b_t*(j-19))+data_off[0].off_daym[2][19];
aux=b_t+aux;
dd=(unsigned char)aux;
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[2][j]=data_off[0].off_dayh[2][19]+c;
data_off[x].off_daym[2][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<30;j++)//4
{aux=b_t+aux;
dd=(uchar)aux;
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[3][j]=data_off[0].off_dayh[2][19]+c;
data_off[x].off_daym[3][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<31;j++)//5
{aux=b_t+aux;
dd=(uchar)aux;
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[4][j]=data_off[0].off_dayh[2][19]+c;
data_off[x].off_daym[4][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<20;j++)//6
{aux=b_t+aux;
dd=(uchar)aux;
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[5][j]=data_off[0].off_dayh[2][19]+c;
data_off[x].off_daym[5][j]=cc;
WDT_CONTR=0X36;
}
}
else
{b_t=(aa[0]-aa[1])/93;
aux=data_off[0].off_daym[5][20];
for(j=20;j>0;j--)//6
{j1=j-1;
aux=b_t+aux;
dd=(uchar)(aux);
//dd=(uchar)(b_t*(20-j1))+data_off[0].off_daym[5][20];
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[5][j1]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[5][j1]=cc;
WDT_CONTR=0X36;
}
for(j=31;j>0;j--)//5
{j1=j-1;
aux=b_t+aux;
dd=(uchar)(aux);
//dd=(uchar)(b_t*(51-j1))+data_off[0].off_daym[5][20];
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[4][j1]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[4][j1]=cc;
WDT_CONTR=0X36;
}
for(j=30;j>0;j--)//4
{j1=j-1;
aux=b_t+aux;
dd=(uchar)(aux);
//dd=(uchar)(b_t*(81-j1))+data_off[0].off_daym[5][20];
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[3][j1]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[3][j1]=cc;
WDT_CONTR=0X36;
}
for(j=30;j>19;j--)//3
{
//dd=(uchar)(b_t*(112-j))+data_off[0].off_daym[5][20];
aux=b_t+aux;
dd=(uchar)(aux);
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[2][j]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[2][j]=cc;
WDT_CONTR=0X36;
}
}
if(aa[2]>=aa[1])
{b_t=(aa[2]-aa[1])/94;
aux=data_off[0].off_daym[5][20];
for(j=21;j<30;j++)//6
{//dd=(uchar)(b_t*(j-20))+data_off[0].off_daym[5][20];
aux=aux+b_t;
dd=(uchar)(aux);
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[5][j]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[5][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<31;j++)//7
{//dd=(uchar)(b_t*(j+10))+data_off[0].off_daym[5][20];
aux=aux+b_t;
dd=(uchar)(aux);
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[6][j]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[6][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<31;j++)//8
{//dd=(uchar)(b_t*(j+41))+data_off[0].off_daym[5][20];
aux=aux+b_t;
dd=(uchar)(aux);
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[7][j]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[7][j]=cc;
WDT_CONTR=0X36;
}
for(j=0;j<22;j++)//9
{//dd=(uchar)(b_t*(j+72))+data_off[0].off_daym[5][20];
aux=aux+b_t;
dd=(uchar)(aux);
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[8][j]=data_off[0].off_dayh[5][20]+c;
data_off[x].off_daym[8][j]=cc;
WDT_CONTR=0X36;
}
}
else
{b_t=(aa[1]-aa[2])/94;
aux=data_off[0].off_daym[8][22];
for(j=22;j>0;j--)//9
{j1=j-1;
aux=aux+b_t;
dd=(uchar)(aux);
// dd=(uchar)(b_t*(22-j1))+data_off[0].off_daym[8][22];
c=dd/60;
cc=dd%60;
data_off[x].off_dayh[8][j1]=data_off[0].off_dayh[8]