📄 t.c
字号:
//writeB(0xcc);
writeB(0xbe);
temper[0][i]=readB();
temper[1][i]=readB();
readB();
readB();
readB();
readB();
readB();
readB();
readB();
key_clk=1;
}
void dectemper(uchar i) //温度转换程序//
{
uchar m=0;
if(temper[1][i]>=0xf8)
{
if(temper[0][i]==0){temper[0][i]=0xff;temper[1][i]=temper[1][i]-1;}
else temper[0][i]=temper[0][i]-1;
temper[0][i]=~temper[0][i];
temper[1][i]=~temper[1][i];
temper[1][i]=temper[1][i]<<4;
temper[1][i]+=(temper[0][i]&0xf0)>>4;
temper[0][i]=(temper[0][i]&0x0f);
if((temper[0][i]&0x01)==1)m=6;
if((temper[0][i]&0x02)==2)m+=13;
if((temper[0][i]&0x04)==4)m+=25;
if((temper[0][i]&0x08)==8)m+=50;
temper[0][i]=m;
flag[i]=0;
}
else
{
m=0;
temper[1][i]=temper[1][i]<<4;
temper[1][i]+=(temper[0][i]&0xf0)>>4;
temper[0][i]=(temper[0][i]&0x0f);
if((temper[0][i]&0x01)==1)m=6;
if((temper[0][i]&0x02)==2)m+=13;
if((temper[0][i]&0x04)==4)m+=25;
if((temper[0][i]&0x08)==8)m+=50;
temper[0][i]=m;
flag[i]=1;
}
rodcounter=i;
}
//**************************************************键盘读取程序****************************
void keyread(void) interrupt 0
{
uchar i;
key=0;
for(i=0;i<33;i++)
{
while(key_clk){};
if(i>0&&i<9)
{
key=key>>1;
if(key_data)key=key|0x80;
}
while(!key_clk){};
}
if(key==0xe0){
key=0;
while(key_clk){};
for(i=0;i<22;i++)
{while(key_clk){};
if(i>11&&i<20)
{
key=key>>1;
if(key_data)key=key|0x80;
}
while(!key_clk){};}
}
if(keycounter==0)keycounter=1;
else keycounter=0;
}
uchar keydec(void) //键盘键值处理程序//
{
uchar key_value;
switch(key)
{
case 0x70:key_value=0;
break;
case 0x69:key_value=1;
break;
case 0x72:key_value=2;
break;
case 0x7a:key_value=3;
break;
case 0x6b:key_value=4;
break;
case 0x73:key_value=5;
break;
case 0x74:key_value=6;
break;
case 0x6c:key_value=7;
break;
case 0x75:key_value=8;
break;
case 0x7d:key_value=9;
}
return(key_value);
}
//**************************************************************************************//
void inputbyte(unsigned char ucda)
{unsigned char i;
ACC=ucda;
t_rst=1;
for(i=8;i>0;i--)
{
t_io=bit0;
t_clk=0;
t_clk=1;
ACC=ACC>>1;
}
}
unsigned char outputbyte(void)
{ unsigned char i;
t_rst=1;
for(i=8;i>0;i--)
{ACC=ACC>>1;
t_io=1;
t_clk=1;
t_clk=0;
bit7=t_io;
}
return (ACC);
}
void wr_1302( unsigned char add,unsigned char ucda)
{t_rst=0;
t_clk=0;
t_rst=1;
inputbyte(add);
delay();
inputbyte(ucda);
delay();
t_rst=0;
t_clk=1;
}
unsigned char re_1302(unsigned char add)
{unsigned char ucda;
t_rst=0;
t_clk=0;
t_rst=1;
inputbyte(add);
delay();
ucda=outputbyte();
t_rst=0;
return(ucda);
}
void set_1302(unsigned char *pda)
{unsigned char i,j=0;
unsigned char add=0x80;
wr_1302(0x8e,0x00);
delay();
for(i=0;i<7;i++)
{wr_1302(add,*pda);
pda++;
add+=2;
}
wr_1302(0x8e,0x80);
}
void get_sec()
{
unsigned char sec;
sec=re_1302(0x81);
time[10]=sec>>4;
time[11]=sec&0x0f;
}
void get_min()
{unsigned char min;
min=re_1302(0x83);
time[8]=min>>4;
time[9]=min&0x0f;
}
void get_hr()
{unsigned char hr;
hr=re_1302(0x85);
time[6]=hr>>4;
time[7]=hr&0x0f;
}
void get_day()
{unsigned char day;
day=re_1302(0x87);
time[4]=day>>4;
time[5]=day&0x0f;
}
void get_moth()
{unsigned char mon;
mon=re_1302(0x89);
time[2]=mon>>4;
time[3]=mon&0x0f;
}
void get_week()
{unsigned char week;
week=re_1302(0x8b);
time[12]=week>>4;
time[13]=week&0x0f;
}
void get_year()
{unsigned char year;
year=re_1302(0x8d);
time[0]=year>>4;
time[1]=year&0x0f;
}
void liftpage1() //左面固定画面//
{
CS1=0;CS2=1;
lcdwrite_cmd(0xb8);
lcdwrite_cmd(0x58);
display(&NO[0][0]);
display(&NO[1][0]);
display(&NO[2][0]);
display(&number[1][0]);
lcdwrite_cmd(0xb9);
lcdwrite_cmd(0x58);
display(&NO[0][8]);
display(&NO[1][8]);
display(&NO[2][8]);
display(&number[1][8]);
lcdwrite_cmd(0xba);
lcdwrite_cmd(0x58);
display(&NO[0][0]);
display(&NO[1][0]);
display(&NO[2][0]);
display(&number[2][0]);
lcdwrite_cmd(0xbb);
lcdwrite_cmd(0x58);
display(&NO[0][8]);
display(&NO[1][8]);
display(&NO[2][8]);
display(&number[2][8]);
lcdwrite_cmd(0xbc);
lcdwrite_cmd(0x58);
display(&NO[0][0]);
display(&NO[1][0]);
display(&NO[2][0]);
display(&number[3][0]);
lcdwrite_cmd(0xbd);
lcdwrite_cmd(0x58);
display(&NO[0][8]);
display(&NO[1][8]);
display(&NO[2][8]);
display(&number[3][8]);
}
void liftpage2(void) //左面变动画面//
{
uchar i,j,counter;
CS1=0;CS2=1;
counter=2*rodcounter;
for(j=0;j<6;j++)
{
lcdwrite_cmd(0xb8+j);
lcdwrite_cmd(0x50);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
}
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x78);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x78);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
if(flag[rodcounter]==0)
{
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x78);
display(&set[31][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x78);
display(&set[31][8]);
}
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x50);
display(&flag_HL[2][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x50);
display(&flag_HL[2][8]);
lcdwrite_cmd(0xbe);
lcdwrite_cmd(0x58);
display(&number[time[2]][0]);
display(&number[time[3]][0]);
display(&set[31][0]);
display(&number[time[4]][0]);
display(&number[time[5]][0]);
lcdwrite_cmd(0xbf);
lcdwrite_cmd(0x58);
display(&number[time[2]][8]);
display(&number[time[3]][8]);
display(&set[31][8]);
display(&number[time[4]][8]);
display(&number[time[5]][8]);
}
void rightpage()//右面画面//
{
uchar m,i,counter=0;
CS1=1;CS2=0;
counter=2*rodcounter;
if(temper[1][rodcounter]>=100)
{
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x40);
display(&number[1][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x40);
display(&number[1][8]);
m=temper[1][rodcounter]-100;
}
else
{
m=temper[1][rodcounter];
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x40);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x40);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
}
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x48);
display(&number[m/10][0]);
display(&number[m%10][0]);
display(&NO[2][0]);
display(&number[temper[0][rodcounter]/10][0]);
display(&set[32][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x48);
display(&number[m/10][8]);
display(&number[m%10][8]);
display(&NO[2][8]);
display(&number[temper[0][rodcounter]/10][8]);
display(&set[32][8]);
lcdwrite_cmd(0xbe);
lcdwrite_cmd(0x48);
display(&number[time[6]][0]);
display(&number[time[7]][0]);
display(&set[33][0]);
display(&number[time[8]][0]);
display(&number[time[9]][0]);
lcdwrite_cmd(0xbf);
lcdwrite_cmd(0x48);
display(&number[time[6]][8]);
display(&number[time[7]][8]);
display(&set[33][8]);
display(&number[time[8]][8]);
display(&number[time[9]][8]);
}
void alarmcontorl()
{
uchar i,counter;
CS1=1;CS2=0;
counter=2*rodcounter;
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x78);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x78);
for(i=0;i<8;i++)lcdwrite_dat(0x00);
if(THL[0][rodcounter]<temper[1][rodcounter])
{alarmflag[rodcounter][0]=rodcounter;
for(i=0;i<8;i++)alarmflag[rodcounter][i]=time[4+i];
alarmflag[rodcounter][8]=THL[0][rodcounter];
alarmflag[rodcounter][9]=THL[1][rodcounter];
alarmflag[rodcounter][10]=temper[1][rodcounter];
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x78);
display(&flag_HL[0][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x78);
display(&flag_HL[0][8]);
}
if(THL[1][rodcounter]>temper[1][rodcounter])
{alarmflag[rodcounter][0]=rodcounter;
for(i=0;i<8;i++)alarmflag[rodcounter][i]=time[4+i];
alarmflag[rodcounter][8]=THL[0][rodcounter];
alarmflag[rodcounter][9]=THL[1][rodcounter];
alarmflag[rodcounter][10]=temper[1][rodcounter];
lcdwrite_cmd(0xb8+counter);
lcdwrite_cmd(0x78);
display(&flag_HL[1][0]);
lcdwrite_cmd(0xb9+counter);
lcdwrite_cmd(0x78);
display(&flag_HL[1][8]);
}
}
void set_time()
{
uchar m,n;
CS1=0;CS2=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -