www.pudn.com > HT1621Control.rar > kbd_task.i
#line 1 "Task\kbd_task.c" /0
#line 1 "system\reg51.h" /0
sfr P0 = 0x80;
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
sbit P0_4 = P0^4;
sbit P0_5 = P0^5;
sbit P0_6 = P0^6;
sbit P0_7 = P0^7;
sfr P1 = 0x90;
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;
sbit P1_5 = P1^5;
sbit P1_6 = P1^6;
sbit P1_7 = P1^7;
sfr P2 = 0xA0;
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit P2_4 = P2^4;
sbit P2_5 = P2^5;
sbit P2_6 = P2^6;
sbit P2_7 = P2^7;
sfr P3 = 0xB0;
sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
sbit P3_2 = P3^2;
sbit P3_3 = P3^3;
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
sbit CY = 0xD7;
sbit AC = 0xD6;
sbit F0 = 0xD5;
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;
sbit OV = 0xD2;
sbit P = 0xD0;
sbit TF1 = 0x8F;
sbit TR1 = 0x8E;
sbit TF0 = 0x8D;
sbit TR0 = 0x8C;
sbit IE1 = 0x8B;
sbit IT1 = 0x8A;
sbit IE0 = 0x89;
sbit IT0 = 0x88;
sbit EA = 0xAF;
sbit ES = 0xAC;
sbit ET1 = 0xAB;
sbit EX1 = 0xAA;
sbit ET0 = 0xA9;
sbit EX0 = 0xA8;
sbit PS = 0xBC;
sbit PT1 = 0xBB;
sbit PX1 = 0xBA;
sbit PT0 = 0xB9;
sbit PX0 = 0xB8;
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;
sbit SM0 = 0x9F;
sbit SM1 = 0x9E;
sbit SM2 = 0x9D;
sbit REN = 0x9C;
sbit TB8 = 0x9B;
sbit RB8 = 0x9A;
sbit TI = 0x99;
sbit RI = 0x98;
#line 11 "Task\kbd_task.c" /0
#line 1 "system\compiler.h" /0
typedef unsigned char Byte;
typedef unsigned char Uchar;
typedef unsigned int Uint16;
typedef int Int16;
typedef float Float16;
typedef unsigned long int Uint32;
typedef long int Int32;
#line 12 "Task\kbd_task.c" /0
#line 1 "system\config.h" /0
#line 171 "system\config.h" /1
#line 177 "system\config.h" /0
#line 13 "Task\kbd_task.c" /0
#line 1 "driver\io_def.h" /0
#line 14 "Task\kbd_task.c" /0
#line 1 "TASK\KBD_TASK.H" /0
void ref_mode_task (void);
void kbd_task_init (void);
void kbd_task(void);
bit kbd_process (void);
void To_Vol_Dec (void);
void DelayX1ms(Byte count);
void dts_task(void);
void dts_AutoScan (void);
void dts_MemWriteFer (void);
void dts_MemReadFer (void);
void sch_scheduler_init (void);
bit Touch_PositionXY (void);
Byte Touch_PositionA (void);
extern idata Uint16 gl_act_tick;
extern bdata bit gl_key_press;
extern bdata bit gl_key_repeat;
extern bdata bit key_flag;
extern idata Byte gl_key;
extern data Byte gl_kbd_tick;
extern data Byte mode_state;
extern data Byte gl_repeat_tick;
extern data Byte disp_state;
extern data int vol_tick;
extern bdata bit vol_flag;
extern data Byte vol_value;
extern bdata bit DtsMen_flag ;
extern data Byte Mem_add;
extern data Byte touch_tick;
extern idata Byte TouchPad[5];
#line 15 "Task\kbd_task.c" /0
#line 1 "driver\kbd_drv.h" /0
void kbd_init (void);
void kbd_task (void);
Byte kbd_decode (void);
void dts_FerInc (void);
void I2c_WriteByte (Byte address, Byte bByte);
extern data Byte gl_kbd_tick;
extern bdata bit key_flag;
extern Byte code VOL_Step_Map[];
#line 16 "Task\kbd_task.c" /0
#line 1 "TASK\DTS_TASK.H" /0
void dts_divider (void);
void dts_task_init (void);
void dts_task(void);
void dts_FerInc (void);
void dts_FerDec (void);
void dts_GetFer (void);
void DelayX1ms(Byte count);
Byte I2c_ReadByte (Byte address);
void I2c_WriteByte (Byte address, Byte bByte);
int dts_scanByte(void);
void dts_IntToByte (Byte address,int bByte);
void dts_MemInit (void);
void dts_DispMem (void);
void HT1621_getdata(Byte address,Byte bByte);
extern Byte code ht1621disp_Map[];
extern idata char DTS_buffer[6];
extern idata int dts_frequency;
extern idata int Mem_frequency;
extern data Byte Mem_add;
extern bdata bit DtsMen_flag ;
#line 17 "Task\kbd_task.c" /0
static Byte kbd_state;
void kbd_task_init (void)
{
kbd_init();
}
void ref_mode_task (void)
{
kbd_process();
switch(gl_key)
{
case ((Byte)0x13):
if(kbd_process()){
if(vol_flag == 1) break;
dts_AutoScan();
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x0B):
if(kbd_process()){
if(vol_flag == 1) break;
if(P1_7){
if(!DtsMen_flag){
dts_FerInc();
dts_GetFer();
disp_state = 1;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
else {
dts_MemWriteFer();
}
}
}
break;
case ((Byte)0x07):
if(kbd_process()){
if(vol_flag == 1) break;
dts_FerDec();
dts_GetFer();
disp_state = 1;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x15):
if(kbd_process()){
P3_1 = ~P3_1;
if(P3_1) sch_scheduler_init();
vol_flag = 0;
disp_state = 1;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x0e):
if(gl_kbd_tick>30){
if(vol_value<32){
vol_value++;
I2c_WriteByte (0x88, VOL_Step_Map[vol_value]);
gl_kbd_tick = 0;
vol_tick = 0;
disp_state = 1;
vol_flag = 1;
}
}
if((vol_value == 32)&&(vol_flag == 0)){
vol_flag = 1;
disp_state = 1;
}
gl_key = ((Byte)0x1f);
break;
case ((Byte)0x0d):
if(gl_kbd_tick>30){
if(vol_value>0){
vol_value--;
I2c_WriteByte (0x88, VOL_Step_Map[vol_value]);
gl_kbd_tick = 0;
vol_tick = 0;
disp_state = 1;
vol_flag = 1;
}
}
if((vol_value == 0)&&(vol_flag == 0)){
vol_flag = 1;
disp_state = 1;
}
gl_key = ((Byte)0x1f);
break;
case ((Byte)0x1c):
if(kbd_process()){
if(vol_flag == 1) break;
if(P1_7){
dts_MemReadFer();
}
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x1B):
if(kbd_process()){
if(vol_flag == 1) break;
if(P1_7){
DtsMen_flag = ~DtsMen_flag;
disp_state = 1;
}
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x16):
if(kbd_process()){
P1_7 = 0;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x1a):
if(kbd_process()){
P1_7 = 1;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
case ((Byte)0x19):
if(kbd_process()){
P1_5 = ~P1_5;
gl_key_repeat = 1;
gl_key = ((Byte)0x1f);
}
break;
default : ;
}
}
void kbd_task (void)
{
kbd_task_init();
if(kbd_decode()) {
DelayX1ms(8);
}
if( kbd_decode()){
gl_key = kbd_decode();
}
else key_flag = 0;
ref_mode_task();
}
bit kbd_process (void)
{
if((key_flag == 0)&&(gl_key_repeat == 1)){
gl_key_repeat = 0;
return(0);
}
if((key_flag == 1)&&(gl_key_repeat == 0)){
return(1);
}
else return(0);
}