📄 key.c
字号:
#include "REG51.h"
#include "Port.h"
#include "lcd.h"
#include "uart.h"
// ------ Private function prototypes ------------------------------
// ------ Private constants ----------------------------------------
#define CDaup 0x72
#define CDbup 0x73
#define CDcup 0x74
#define CDdup 0x61
//#define CDadown 0x82
//#define CDbdown 0x83
//#define CDcdown 0x84
//#define CDddown 0x62
//#define CDFF 0x60
//#define CDPP 0x90
#define CDok 0x91
#define CDbegin 0x70
#define CDend 0x80
#define CDlamp 0x63
#define CDauto 0x93
#define CDcut 0x92
#define CDP1D 0x71
#define CDWW 0x81
//#define CDset 0x91
//#define CDup 0x72
//#define CDdown 0x92
//#define CDdel 0x73
//#define CDright 0x83
//#define CDspace 0x93
//xdata int newST;
//extern int LcdST;
unsigned char SWkey ;
xdata unsigned char CEFF = 0;
xdata unsigned char DCEFF[10] = {0};
xdata unsigned char CESS=0;
xdata unsigned char CEPP=1;
xdata unsigned char CEPP_Sign = 0;
//xdata unsigned char DCEPP[16] = {0};
xdata unsigned char CElamp;
xdata unsigned char CEWW;
xdata unsigned char CEbegin;
xdata unsigned char CEend;
xdata unsigned char CEauto;
xdata unsigned char CEP1D;
xdata unsigned char CEcut;
xdata unsigned char DataBuffer[4] = {0};
//xdata unsigned char P1D_Sign=1;
xdata unsigned char P_Model_L;
xdata unsigned char P_Model_H;
xdata unsigned char LEDFF=0;
xdata char CEPP_39_= 1;
xdata unsigned char LEDPP = 0;
xdata unsigned char Uart_En = 1; //enable the uart
xdata unsigned char CDSSUart_En = 0;
xdata unsigned char StMemoryA = 0;
xdata unsigned char StMemoryB = 0;
xdata unsigned char StMemoryC = 0;
xdata unsigned char StMemoryD = 0;
xdata unsigned char UnMemory = 0;
xdata unsigned char StartEn=1;
xdata unsigned char SaveEn = 0;
/*------------------------------------------------------------------*/
void KEYPAD_Scan()
{
static unsigned char Old_Key;
static unsigned char KnbS;
unsigned int jjp;
unsigned char fpp;
unsigned char Key = 0x00;
KBB1 = 0; KBB2 = 1; KBB3 = 1; KBB4 = 1;//KBB5 = 1; // Scanning column 1
for(jjp=0;jjp<=200;jjp++)
{ fpp++; }
// if (KBA4 == 0) Key = 0x60;
if (KBA3 == 0) Key = 0x72;
if (KBA2 == 0) Key = 0x70;
if (KBA1 == 0) Key = 0x91;
KBB1 = 1; KBB2 = 0; KBB3 = 1; KBB4 = 1; //KBB5 = 1; // Scanning column 2
for(jjp=0;jjp<=200;jjp++)
{ fpp++; }
// if (KBA4 == 0) Key = 0x61;
if (KBA3 == 0) Key = 0x73;
if (KBA2 == 0) Key = 0x80;
if (KBA1 == 0) Key = 0x63;
KBB1 = 1; KBB2 = 1; KBB3 = 0; KBB4 = 1; //KBB5 = 1; // Scanning column 3
for(jjp=0;jjp<=200;jjp++)
{ fpp++; }
// if (KBA4 == 0) Key = 0x62;
if (KBA3 == 0) Key = 0x74;
if (KBA2 == 0) Key = 0x81;
if (KBA1 == 0) Key = 0x92;
KBB1 = 1; KBB2 = 1; KBB3 = 1; KBB4 = 0; //KBB5 = 1; // Scanning column 4
for(jjp=0;jjp<=200;jjp++)
{ fpp++; }
// if (KBA4 == 0) Key = 0x61;
if (KBA3 == 0) Key = 0x61;
if (KBA2 == 0) Key = 0x71;
if (KBA1 == 0) Key = 0x93;
// KBB1 = 1; KBB2 = 1; KBB3 = 1; KBB4 = 1; KBB5 = 0; // Scanning column 4
// for(jjp=0;jjp<=200;jjp++)
// { fpp++; }
// if (KBA4 == 0) Key = 0x64;
// if (KBA3 == 0) Key = 0x74;
// if (KBA2 == 0) Key = 0x84;
// if (KBA1 == 0) Key = 0x94;
KBB1 = 1; KBB2 = 1; KBB3 = 1; KBB4 = 1; // Scanning column 4
if (Key == 0x00)
{
// No key pressed (or just a function key)
Old_Key = 0x00;
// Last_valid_key_G = KEYPAD_NO_NEW_DATA;
SWkey = 0x00;
KnbS=0;
return ; // No new data
}
if(Key == Old_Key)
{
KnbS++;
if(KnbS>5)
{
SWkey=Old_Key;
KnbS=6;
}
return ;
}
// No new data
Old_Key = Key;
KnbS=0;
}
BuzDelay(unsigned int ms)
{
int i = 0;
for(;ms>0;ms--)
for (i =0; i<=100;i++)
{
;
}
}
/*
void OnBuz()
{
BZ = 0;
BuzDelay(130);
BZ= 1;
}
void Buz()
{
if(DCEFF[8]==1)
{
BZ = 0;
BuzDelay(130);
BZ= 1;
}
}
*/
/* *************************************************************
*** 函数 名: Select_Modle()
*** 功能说明:开机按键进入相应的参数设定 POWER ON /+P /+S /+LAMP /+AUTO+/上下
*** 返回参数:
************************************************************** */
void Select_Modle()
{
unsigned char model_key =0;
int i = 0;
P_Model_L = 1;
P_Model_H = 45;
for(i=0;i<100;i++)
{
KEYPAD_Scan();
}
model_key = SWkey;
if(model_key == CDauto)
{
P_Model_L = 46;
P_Model_H = 122;
}
if(model_key == CDok)
{
P_Model_L = 1;
P_Model_H = 175;
UnMemory = 1;
}
/* if(model_key == CDlamp)
{
P_Model_L = 176;
P_Model_H = 208;
}
if(model_key == CDauto)
{
P_Model_L = 209;
P_Model_H = 251;
} */
if(model_key ==CDaup)
{
ReadStMemory();
BuzDelay(10);
WritAlldata();
BuzDelay(100);
}
// OnBuz();
}
void BufferCEPP()
{
if(CEPP_Sign>=1)
{
DataBuffer[0] = CEbegin ;
DataBuffer[1] = CEend ;
DataBuffer[2] = CEWW ;
DataBuffer[3] = CEP1D ;
// DataBuffer[4] = CEPP ;
CEbegin = 0;
CEend = 0;
CEWW = 0;
CEP1D = 0;
// CEFF = 0;
}
else
{
CEbegin = DataBuffer[0] ;
CEend = DataBuffer[1] ;
CEWW = DataBuffer[2] ;
CEP1D = DataBuffer[3];
// CEPP = DataBuffer[4] ;
DataBuffer[0] = 0 ;
DataBuffer[1] = 0 ;
DataBuffer[2] = 0 ;
DataBuffer[3] = 0 ;
// DataBuffer[4] = 0 ;
}
}
void BufferCEFF()
{
if(CEFF>=1)
{
DataBuffer[0] = CEbegin ;
DataBuffer[1] = CEend ;
DataBuffer[2] = CEWW ;
DataBuffer[3] = CEP1D ;
// DataBuffer[4] = CEPP ;
CEbegin = 0;
CEend = 0;
CEWW = 0;
CEP1D = 0;
// CEPP = 0;
}
else
{
CEbegin = DataBuffer[0] ;
CEend = DataBuffer[1] ;
CEWW = DataBuffer[2] ;
CEP1D = DataBuffer[3];
// CEPP = DataBuffer[4] ;
DataBuffer[0] = 0 ;
DataBuffer[1] = 0 ;
DataBuffer[2] = 0 ;
DataBuffer[3] = 0 ;
// DataBuffer[4] = 0 ;
}
}
void KeyUp39(unsigned char TwoBit)
{
switch(CEPP_39_)
{
case 1: Data_PS[1] += TwoBit;break;//,<250
case 2: Data_PS[2] += TwoBit;break;//,<250
case 3: Data_PS[3] += TwoBit;break;//,<250
case 4: Data_PS[4] += TwoBit;break;//,<250
case 5: Data_PS[5] += TwoBit;break;//,<250
case 6: Data_PS[6] += TwoBit;break;//,<250
case 7: Data_PS[7] += TwoBit;break;//,<250
case 8: Data_PS[8] += TwoBit;break;//,<250
case 9: Data_PS[9] += TwoBit;break;//,<250
case 10: Data_PS[10] += TwoBit;break;//,<250
case 11: Data_PS[11] += TwoBit;break;//,<250
case 12: Data_PS[12] += TwoBit;break;//,<250
};
}
/************************************************************************
******* function name :void KeyAup()
*******
*******
*******
*************************************************************************/
void KeyUp(unsigned int FourBit,unsigned char ThreeBit,unsigned char TwoBit,unsigned char OneBit)
{
if(CEPP_Sign >= 1) //P 1---N FUNCTION ++
{
if(LEDPP == 1) //display data
{
switch(CEPP)
{
case 1 : Data_H += FourBit ;break; //50--9999
case 2 : Data_PSL += TwoBit;break;//1--100
case 3 : Data_CNR += ThreeBit;break;
case 4 : Data_N += FourBit; break; //50 --8000
case 5 : Data_V += FourBit;break; //50 --8000
case 6 : Data_B += FourBit; //50 --8000
case 7 :
{
if(ThreeBit == 10)
{
Data_S += 50;break; //50 --2000
}
if(ThreeBit == 100)
{
Data_S += 100;break;
}
break;
}
case 8 : Data_SLS += TwoBit;break;//0-99
case 9 : Data_A += FourBit;break;//50---8000
case 10 : Data_ACD += OneBit;break;//1 off 2 on
case 11 : Data_RVM += OneBit;//
case 12 : Data_SMS += OneBit;break;//1A/2M/3SU/4SD
case 13 : Data_TYS += OneBit;break; //1 CON /2:STP/3:TRM
case 14 : Data_SBT += OneBit;break; //1ON 2OFF
case 15 : Data_SBA += TwoBit;break; //0--15
case 16 : Data_SBB += TwoBit;break; //0--15
case 17 : Data_SBN += TwoBit;break;
case 18 : Data_BT1 += TwoBit;break; //0--15
case 19 : Data_BT2 += TwoBit;break; //0--15
case 20 : Data_SME += OneBit;break; //1A 2SU 3SD
case 21 : Data_EBT += OneBit;break; //1 ON,2 OFF
case 22 : Data_EBC += TwoBit;break; //1--15
case 23 : Data_EBD += TwoBit;break; //1--15
case 24 : Data_EBN += OneBit;break; //0--4
case 25 : Data_BT3 += TwoBit;break; //0--15
case 26 : Data_BT4 += TwoBit;break;//0--15
case 27 : Data_CT += ThreeBit;break; //0 --990
case 28 : Data_SB5 += OneBit; //ON OFF
case 29 : Data_SB9 += TwoBit;break;//0--99
case 30 : Data_BCC += OneBit;break;// on off
case 31 : Data_BCD += OneBit;break;//1A/2 M /3SU /4SD
case 32 : Data_BAR += OneBit;break;//1 ON 2 OFF
case 33 : Data_BRC += TwoBit;break; //0 --99
case 34 : Data_BRN += TwoBit;break; //0 --15
case 35 : Data_BT5 += TwoBit;break; //0--15
case 36 : Data_BT6 += TwoBit;break; // 0-15
case 37 : Data_BT7 += TwoBit;break; // 1AUTO 2 MANUAL
case 38 : Data_BT8 += TwoBit ;break; //1 ON //2 OFF
case 39 :
{
KeyUp39(TwoBit);
}
case 40 : Data_WON += OneBit;break;//1 ON ,0 OFF
case 41 : Data_TM += OneBit;break;// 1ON 0 OFF
case 42 : Data_CUD += OneBit;break; //0 NOP 1U/2D/3US/4UT/5DTS/
case 43 : Data_UD += FourBit;break;//0 --9999;
case 44 : Data_PN += FourBit;break; //0--9999
case 45 : Data_SP += OneBit;break;
case 46 : Data_DIR += OneBit;break;
case 47 : Data_MAC += TwoBit;break;// 0 - 91
case 48 : Data_N12 += OneBit;break; //0 OFF 1 ON
case 49 : Data_SPD += ThreeBit;break; //1-250MM
case 50 : Data_MPD += ThreeBit;break; //1-250MM
case 51 : Data_PL += OneBit;break;//0 OFF 1 ON
case 52 : Data_BT += ThreeBit;break;//150- 250 MS
case 53 : Data_POL += OneBit;break; //0 OFF ,1 ON
case 54 : Data_BK += OneBit ;break; //ON OFF
case 55 : Data_SRM += OneBit ;break; //ON OFF
case 56 : Data_SRA += ThreeBit;break; //1--360 degree
case 57 : Data_TRU += OneBit;break;//ON OFF
case 58 : Data_TR8 += ThreeBit;break; //1-360
case 59 : Data_M += FourBit;break; //LOW TO 8000SPM
case 60 : Data_L += ThreeBit;break; //50 --500
case 61 : Data_T += ThreeBit;break; //50 -- 500
case 62 : Data_HPM += OneBit;break;//0 ALT ,1 MON
case 63 : Data_FTP += OneBit;break;//0 M IS THE NORMAL SETING ,1 A
case 64 : Data_FO += FourBit;break; //0-990 MS
case 65 : Data_FC += TwoBit;break;//10--90%
case 66 : Data_FD += ThreeBit;break; //0 --990MS
case 67 : Data_FPM += OneBit ; //ON ,OFF
case 68 : Data_FP += FourBit;break;//0 -9900X 0.1 second
case 69 : Data_HD += ThreeBit;break; //0 -990 MS NUMBER 69
case 70 : Data_HHC += OneBit;break; //ON OFF
case 71 : Data_FL += OneBit ;break; //OFF ON
case 72 : Data_FHC += OneBit ;break; //ON /OFF
case 73 : Data_NTC += OneBit;break; // ON OFF
case 74 : Data_FRV += OneBit ;break;//on off
case 75 : Data_SFM += OneBit;break; // 0 N.C. N.O.
case 76 : Data_TCL += OneBit;break;//ON OFF
case 77 : Data_ILC += OneBit;break;//ON OFF
case 78 : Data_TRM += OneBit;break;//1 LK /2 RK /3 KA/4KB/5KC
case 79 : Data_LTM += OneBit;break; //1 T1, 2 T2,3 T3,4 T4,5 TK ,6 TS ,7 T7
case 80 : Data_LLM += OneBit;break; //L1,L2,L3 ,L4,LK,LS ,L7
case 81 : Data_TS += ThreeBit;break;//0-360 DEGREES
case 82 : Data_T1 += ThreeBit;break; //0 -990MS
case 83 : Data_T2 += ThreeBit;break;// 0 -990MS
case 84 : Data_TE += ThreeBit;break;//0 -360 degrees
case 85 : Data_LS += ThreeBit;break; //0 -360 degrees
case 86 : Data_L1 += ThreeBit;break; //0 --990 ms
case 87 : Data_L2 += FourBit;break; //0 --1500 MS
case 88 : Data_LE += ThreeBit;break; //0 --360 degrees
case 89 : Data_D1 += TwoBit;break;//0 --990MS
case 90 : Data_D2 += TwoBit;break; //0 --2500ms
case 91 : Data_D3 += FourBit;break;//0- 990MS
case 92 : Data_W1 += FourBit;break; //0 -980 MS
case 93 : Data_W2 += FourBit;break;//0 -9990MS
case 94 : Data_WF += ThreeBit;break; // 0 -990 MS
case 95 : Data_CSF += OneBit;break;//ON OFF
case 96 : Data_WN3 += TwoBit;break;//0 -99 STITCHES
case 97 : Data_TK3 += ThreeBit;break;//10-990MS
case 98 : Data_MST += OneBit;break;//0 T 1 C
case 99 : Data_SEN += OneBit;break;//ON OFF
case 100 : Data_SRS += TwoBit;break;// 0-99MS
case 101 : Data_CMS += TwoBit;break;//0-99MS,STITCHES
case 102 : Data_SE += ThreeBit;break;//1-999 STITCHES
case 103 : Data_SET += OneBit;break; //ON OFF
case 104 : Data_PSU += TwoBit;break; //1--99STICHES
case 105 : Data_PSD += TwoBit;break; // 1- 99 STITCHES
case 106 : Data_PSN += OneBit ;break;//ON OFF
case 107 : Data_S7U += OneBit;break;//ON /OFF
case 108 : Data_S7D += OneBit ;break;// ON OFF//
case 109 : Data_ROF += OneBit ;break;//ON OFF
case 110 : Data_TB += OneBit;break; // ON /OFF
case 111 : Data_COR += OneBit;break;//0/1
case 112 : Data_WMD += OneBit;break;//1W. 2,O,3AND,
case 113 : Data_DEG += ThreeBit;break;//5-180degrees
case 114 : Data_UEG += ThreeBit;break; //5 - 180 degrees
case 115 : Data_PMD += OneBit;break;// ON /OFF
case 116 : Data_DRU += ThreeBit;break;//1- 360 degrees
case 117 : Data_ER += OneBit;break;//10 SET FIFO
case 118 : Data_NOS += OneBit ;break;//ON OFF
case 119 : Data_DD += OneBit ; break;// ON OFF
case 120 : Data_FHM += OneBit;break;//1FU ;/2NU/ 3NO /4NUF/5EFF
case 121 : Data_ANU += OneBit;break;//ON OFF
case 122 : Data_HL += FourBit;break;//50 -9999 SPM
case 123 : Data_FASET = 0;break; //123
case 124 : Data_PG += OneBit;break;//1 NOP .2LOAD /3 SAVE
case 125 : Data_USM += OneBit;break;//1A ,2 B,3C, 4D ,5E ,6F,7G
case 126 : Data_USA += OneBit;break;//ON OFF
case 127 : Data_MAV = 0; break;
case 128 : Data_MIV = 0 ;break;
case 129 : Data_PV = 0 ;break;
case 130 : Data_OVD += ThreeBit;break; //170 -315 VAC
case 131 : Data_LVD += ThreeBit;break; // 70 --160 VAC
case 132 : Data_UPG += OneBit ;break; //0 -4
case 133 : Data_CHS += TwoBit;break;//1-99
case 134 : Data_KLK += OneBit;break;//ON OFF
case 135 : Data_TOT += ThreeBit;break;//1-168;
case 136 : Data_TM1 += ThreeBit;break;//1-250x0.1 s;
case 137 : Data_TM2 += ThreeBit;break; // 1-250X0.1S
case 138 : Data_UTD += OneBit ; break;//ON OFF
case 139 : Data_CK += OneBit;break;//
case 140 : Data_OSE += OneBit;break; // ON / OFF
case 141 : Data_BC3 += OneBit;break;//ON OFF
case 142 : Data_EFK += OneBit;break; //ON OFF
case 143 : Data_AT += OneBit; break;//ON OFF
case 144 : Data_IN1 += OneBit;break;//0 NOP ,1IO1,2S4,3CR
case 145 : Data_IN2 += OneBit;break;//0U 1USR.2NOP
case 146 : Data_IN3 += OneBit;break;//0HT 1WL
case 147 : Data_INA += OneBit;break;//0PSU 1BCR /2 NOP /3SPL
case 148 : Data_INC += OneBit;break; //0 SH/IO1/IO2/CW
case 149 : Data_IND += OneBit;break;//0TL/.1ES/2NOP
case 150 : Data_INE += OneBit;break;//0S7/ 1IO1/IO2/CW
case 151 : Data_INF += OneBit;break;//0F /HP
case 152 : Data_INI += OneBit;break;//0CRS /FAW
case 153 : Data_INK += OneBit;break;// HP /F
case 154 : Data_OA += OneBit ;break;//TM KS1
case 155 : Data_OB += OneBit;break; //WP/ML/FK
case 156 : Data_OD += OneBit;break; //ML/KS1/KS2/KS3/KS4/NCL
case 157 : Data_O1 += OneBit;break;//OT1/KS1/PUL/CSL
case 158 : Data_O3 += OneBit;break;//HP/KS1/KS2
case 159 : Data_O4 += OneBit;break;//BUZ/OT4
case 160 : Data_O5 += OneBit;break;//HPL/OT5
case 161 : Data_O6 += OneBit ;break;//STL/OT6 /..KDFJAKDFJAKSDFJAKSDJF
case 162 : Data_O7 += OneBit ;break;
case 163 : Data_BD += ThreeBit;break;//70 -990
case 164 : Data_MXI += TwoBit;break;// 5-19A
case 165 : Data_WKT += OneBit;break; //1--5
case 166 : Data_ACT += ThreeBit;break;//60--990
case 167 : Data_DCT += ThreeBit;break; //60-990
case 168 : Data_HKP += ThreeBit;break; //5--400
case 169 : Data_LKP += ThreeBit;break; //5--400
case 170 : Data_KP += ThreeBit;break;//5--400
case 171 : Data_KI += FourBit;break;//100-3000
case 172 : Data_PDW += TwoBit;break; //1-40
case 173 : Data_QSK += ThreeBit;break;//30 -999
case 174 : Data_QSP += ThreeBit;break; //50 -500
case 175 : Data_HV += OneBit;break;//ON OFF
};
}
if(LEDPP == 0){ LEDPP = 1 ;}
}
}
/************************************************************************
******* function name :void KeyUp_P_()
*******
*******
*******
*************************************************************************/
void KeyUp_P_(unsigned TwoBit)
{
if(CEP1D >= 1&&CEbegin== 0 &&CEend == 0)
{
KeyUp39(TwoBit);
Uart_En = 1;
}
}
/************************************************************************
******* function name :void KeyDown_P_()
*******
*******
*******
*************************************************************************/
void StmemoryZearo()
{
StMemoryA = 0;
StMemoryB = 0;
StMemoryC = 0;
StMemoryD = 0;
}
/*-------------------READKEY---------------------*/
NB2s()
{
long int ss2 = 40000;
KBB1 = 0;
while(KBA1 == 0)
{
ss2--;
if(ss2 == 0)
{
SaveEn = 1;
KBB1 = 1;
return;
}
}
}
void READKEY (void)
{
static bit PEaup,PEadown,PEbup,PEbdown,PEcup,PEcdown,PEdup,PEddown;
static bit PEFF, PEok, PEPP, PElamp, PEWW, PEbegin, PEend, PEcut,PEauto,PEP1D;
unsigned long Delay2s = 0;
if((PEaup==0)&&(SWkey==CDaup)) //A UP
{
// Buz();
if(CEPP == 39&&CEPP_Sign >= 1)
{
CEPP_39_++;
}
if(CEbegin == 1)
{
Data_SBA++;
// if(Data_SBA>15) { Data_SBA=0; }
Uart_En = 1;//enable Uartt();
}
if(CEWW == 1)
{
Data_WWWC+=10;
Uart_En = 1;//enable Uartt();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -