?? kb.c
字號:
#include <absacc.h>
#include <intrins.h>
#include "variable.h"
#include "main.h"
#include "lcd.h"
#include "kb.h"
#include "i2c.h"
#include "ad.h"
#include "screen.h"
void KB_Proc(void)
{
static bit F_L=0;
DA_C=0;
if((DA_C&0XF0)!=0XF0)
{
delay(5000);
if(((DA_C&0XF0)==0XF0)||F_L) return;
F_L=1;
DA_C=0XFE;
switch(DA_C&0XF0)
{
case 0xE0: Key_Num(1);break;
case 0xD0: Key_Num(4);break;
case 0xB0: Key_Num(7);break;
case 0x70: Key_Num(0);break;
}
DA_C=0XFD;
switch(DA_C&0XF0)
{
case 0xE0: Key_Num(2); break;
case 0xD0: Key_Num(5); break;
case 0xB0: Key_Num(8); break;
case 0x70: Key_Next_Page(); break;
}
DA_C=0XFB;
switch(DA_C&0XF0)
{
case 0xE0: Key_Num(3); break;
case 0xD0: Key_Num(6); break;
case 0xB0: Key_Num(9); break;
case 0x70: Key_Pre_Page(); break;
}
DA_C=0XF7;
switch(DA_C&0XF0)
{
case 0xE0: Key_Set_Enter(); break;
case 0xD0: Key_Next_Bit(); break;
case 0xB0: Key_Pre_Bit(); break;
case 0x70:
{
Key_Test();
if(Connect_ok)
{
unsigned char r;
ES=0;
SBUF=0x22;
while(!TI);
TI=0;
for(r=0;r<12;r++)
{
IntToByte(Test_Data[r]);
}
ES=1;
}
} break;
}
}
if(((DA_C&0XF0)==0XF0)&&F_L) F_L=0;
}
void Key_Set_Enter(void)
{
IO_B=0xFF;
DA_Convert(0);
SetK_Flag=!SetK_Flag;
LCD_Clear();
if(SetK_Flag==1)
{
//Screen_Setting();
Page_Val=1;
}
else
{
//Screen_Test();
Page_Val=0;
//Ini_Read();
}
Screen_Setting(Page_Val);
Screen_Read(Page_Val);
}
void Key_Num(unsigned char i)
{
static unsigned char SetC_Flag=0;
static bit SetV_Flag=0,SetR_Flag=0,Adjust_Flag=0;
unsigned char z;
if(SetK_Flag==1)
{
LCD_CmdWrite(0x10,0x0B);
switch(Page_Val)
{
case 1:
{
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,i);
SetP_Data[Dis_X]=i;
GotoXY(Set_X_1[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
Unit_Addr_L=z;
} break;
case 2:
{
if((Dis_Y==2)&&(i==1))
{
if(Dis_X==0)
{
SetC_Flag++;
if(SetC_Flag==3) SetC_Flag=0;
if(SetC_Flag==0)
{
SetP_Data[0]=1;
SetP_Data[1]=0;
SetP_Data[2]=0;
}
if(SetC_Flag==1)
{
SetP_Data[0]=0;
SetP_Data[1]=1;
SetP_Data[2]=0;
}
if(SetC_Flag==2)
{
SetP_Data[0]=0;
SetP_Data[1]=0;
SetP_Data[2]=1;
}
WRITEDATAARRAY(3,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(z=0;z<Num_Now;z++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(z=0;z<Num_Now;z++) Dis_X--;
}
else if(Dis_X==3)
{
SetR_Flag=!SetR_Flag;
if(SetR_Flag) SetP_Data[Dis_X]=10;//1A
else SetP_Data[Dis_X]=12; //1C
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data[Dis_X]);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
Unit_Addr_L=z;
}
}
else if((Dis_Y==2)&&(i!=1)) ;
else
{
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,i);
SetP_Data[Dis_X]=i;
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
Unit_Addr_L=z;
}
} break;
case 3:
{
if((Dis_Y==4)&&(i==1))
{
SetV_Flag=!SetV_Flag;
if(SetV_Flag)
{
SetP_Data[0]=2;
SetP_Data[1]=4;
}
else
{
SetP_Data[0]=1;
SetP_Data[1]=2;
}
WRITEDATAARRAY(2,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
GotoXY(Set_X_3[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(z=0;z<Num_Now;z++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(z=0;z<Num_Now;z++) Dis_X--;
}
else if((Dis_Y==4)&&(i!=1)) ;
else
{
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,i);
SetP_Data[Dis_X]=i;
GotoXY(Set_X_3[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
Unit_Addr_L=z;
}
} break;
case 4:
{
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,i);
SetP_Data[Dis_X]=i;
GotoXY(Set_X_4[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
Unit_Addr_L=z;
} break;
case 7:
{
if((Dis_Y==1)&&(Dis_X==0)&&(i==1))
{
Adjust_Flag=!Adjust_Flag;
if(Adjust_Flag==1) SetP_Data[0]=16;//+
else SetP_Data[0]=17;//-
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data[0]);
GotoXY(Adjust[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
//Comp_Data_T[4]=SetP_Data[0];
}
else if((Dis_Y==1)&&(Dis_X==0)&&(i!=1)) ;
else
{
z=Unit_Addr_L;
Unit_Addr_L+=Dis_X;
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,i);
SetP_Data[Dis_X]=i;
GotoXY(Adjust[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
if(Dis_Y==0)
{
Unit_Addr_L=86;
READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
Comp_Data[22]=SetP_Data[0]*1000+SetP_Data[1]*100+SetP_Data[2]*10+SetP_Data[3];
DA_Convert(Comp_Data[22]*4.095/(2.4*MULTI_V));
}
Unit_Addr_L=z;
}
} break;
}
}
}
void Key_Next_Bit(void)
{
unsigned char i;
if(SetK_Flag==1)
{
switch(Page_Val)
{
case 1:
{
if(Dis_X==0) READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);//white
GotoXY(Set_X_1[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
Dis_X++;
if(Dis_X==8) Dis_X=0;
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_1[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
} break;
case 2:
{
if(Dis_X==0) READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
if(Num_Now==3) Num_Now=1;
if((Dis_X==4)&&(Dis_Y==2))
{
Dis_X=0;
Dis_Y=0;
Unit_Addr_L=8;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
if(Dis_X==8)
{
Dis_X=0;
Dis_Y++;
if(Dis_Y<2)
{
Unit_Addr_L+=8;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
else
{
Unit_Addr_L=82;
READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
Num_Now=3;
}
}
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(i=0;i<Num_Now;i++) Dis_X--;
} break;
case 3:
{
if(Dis_X==0) READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);
GotoXY(Set_X_3[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
if(Num_Now==2) Num_Now=1;
if((Dis_X==2)&&(Dis_Y==4))
{
Dis_X=0;
Dis_Y=0;
Unit_Addr_L=24;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
if(Dis_X==8)
{
Dis_X=0;
Dis_Y++;
if(Dis_Y<4)
{
Unit_Addr_L+=8;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
else
{
Unit_Addr_L=80;
READDATAARRAY(2,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
Num_Now=2;
}
}
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_3[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(i=0;i<Num_Now;i++) Dis_X--;
} break;
case 4:
{
if(Dis_X==0) READDATAARRAY(6,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);//white
GotoXY(Set_X_4[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
Dis_X++;
if(Dis_X==6)
{
Dis_X=0;
Dis_Y++;
Unit_Addr_L+=6;
if(Dis_Y==4)
{
Dis_Y=0;
Unit_Addr_L=56;
}
READDATAARRAY(6,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_4[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
} break;
case 7:
{
if(Dis_X==0) READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);//white
GotoXY(Adjust[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
Dis_X++;
if(Dis_X==4)
{
Dis_X=0;
Dis_Y++;
Unit_Addr_L+=4;
if(Dis_Y==2)
{
Dis_Y=0;
Unit_Addr_L=86;
}
READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
LCD_CmdWrite(0x10,0x0B);
GotoXY(Adjust[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
} break;
}
}
}
void Key_Pre_Bit(void)
{
unsigned char i;
if(SetK_Flag==1)
{
switch(Page_Val)
{
case 1:
{
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);//white
GotoXY(Set_X_1[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
Dis_X--;
if(Dis_X>7) Dis_X=7;
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_1[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
LCD_DataWrite(Display_Code[SetP_Data[Dis_X]]);
delay(200);
} break;
case 2:
{
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(i=0;i<Num_Now;i++) Dis_X--;
if(Num_Now==3) Num_Now=1;
if(Dis_X!=0)//&&(Dis_Y==0)))
{
Dis_X--;
if((Dis_X==2)&&(Dis_Y==2))
{
Dis_X=0;
//Dis_Y=0;
Num_Now=3;
//Unit_Addr_L=8;
//READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
}
else if(Dis_Y==0)
{
Dis_X=3;
Dis_Y=2;
Unit_Addr_L=82;
READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
else
{
Dis_Y--;
if(Dis_Y<1)
{
Dis_X=7;
Unit_Addr_L-=8;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
else if(Dis_Y==1)
{
Dis_X=7;
Unit_Addr_L=16;
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
}
}
/*else
{
Dis_X=3;
Dis_Y=2;
Unit_Addr_L=82;
READDATAARRAY(4,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
//Num_Now=3;
}*/
//}
LCD_CmdWrite(0x10,0x0B);
GotoXY(Set_X_2[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(i=0;i<Num_Now;i++) Dis_X--;
} break;
case 3:
{
READDATAARRAY(8,0xA0,Unit_Addr_H,Unit_Addr_L,SetP_Data);
LCD_CmdWrite(0x10,0x2B);
GotoXY(Set_X_3[Dis_Y][Dis_X],Loc_Y[Dis_Y]);
for(i=0;i<Num_Now;i++)
{
LCD_DataWrite(Display_Code[SetP_Data[Dis_X++]]);
delay(200);
}
for(i=0;i<Num_Now;i++) Dis_X--;
Dis_X--;
if(Num_Now==2) Num_Now=1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -