📄 key_big.c
字号:
return 0xff;
}
/*********************************************************************
*********************************************************************/
#define MAXNUM 10
uint16 num[MAXNUM];
fp32 XY;
fp32 ZLG7289_PressKey(void)
{// add user source code
uint8 i=0,k,n = 0,m,c,d;
XY = 0;
while(1){
k = ZLG7289_Key();
switch(k){
case 0x08:
num[i] = 1;
if(i==0){ // 1
ZLG7289_Download(0,7,0,1);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,1);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x10:num[i] = 4;
if(i==0){ //4
ZLG7289_Download(0,7,0,4);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,4);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x18:num[i] = 7;
if(i==0){ //7
ZLG7289_Download(0,7,0,7);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,7);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x01:num[i] = 0;
if(i==0){ //0
//如果还没有键按下,则按下0时显示0
ZLG7289_Download(0,7,0,0);
}
else { //如果0在小数点之后或者0不是第一个按下得键则可以显示多个0
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,0);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x09:num[i] = 2;
if(i==0){ //2
ZLG7289_Download(0,7,0,2);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,2);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x11:num[i] = 5;
if(i==0){ //5
ZLG7289_Download(0,7,0,5);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,5);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x19:num[i] = 8;
if(i==0){ //8
ZLG7289_Download(0,7,0,8);
ZLG7289_ShortDelay(2000000);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,8);
ZLG7289_ShortDelay(2000000);
}
i++;
break;
//小数点处理
case 0x00:
if(n == 0)
{
num[i] = 10;
ZLG7289_Download(0,7,1,num[i-1]);
i++; //标记小数点是否被按下
n = 1;
}
ZLG7289_ShortDelay(2000000);
break;
case 0x0A:num[i] = 3;
if(i==0){ //3
ZLG7289_Download(0,7,0,3);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,3);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x12:num[i] = 6;
if(i==0){ //6
ZLG7289_Download(0,7,0,6);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,6);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x1A:num[i] = 9;
if(i==0){ //9
ZLG7289_Download(0,7,0,9);
}
else{
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,9);
}
ZLG7289_ShortDelay(2000000);
i++;
break;
case 0x02:if(num[i-1] == 10 )
{
n = 0;
ZLG7289_Download(0,7,0,num[i-2]);
}
else
{
ZLG7289_SHR();
}
ZLG7289_ShortDelay(2000000);
i--;
num[i] = 0;
break;//make sure the input data
case 0x03: ZLG7289_Reset();
for(i=0;i<MAXNUM;i++) //Reset
{
num[i] = 0;
XY = 0;
}
ZLG7289_ShortDelay(500000);
i = 0;
n = 0;
break;
case 0x0B:
for(m = 0;m < MAXNUM ; m++)
{
if(num[m] == 0x0A)
d = m;
}
for(c = 0;c < i; c++)
{
if(d == 0)
{
XY += num[c]*pow(10,(i- 1- c));
}
else if( c < d )
{
XY += num[c]*pow(10,(i- 2- c));
}
else if( (c >= d) && (d!=0))
{
XY += num[c+1]*pow(10,(i- 2- c));
}
}
if(d!=0)
{
XY = XY / pow(10,(i-1- d));
}
for(i=0;i<MAXNUM;i++) //Reset
{
num[i] = 0;
}
i = 0;
n = 0;
ZLG7289_Reset();
ZLG7289_ShortDelay(500000);
return XY;
break;
default : break;
}
}
}
char Data[10] ;
void ShowData(uint32 MyData)
{
ZLG7289_Reset();
Data[0] = MyData /1000;
ZLG7289_Download(0,7,0,Data[0] );
Data[1] = MyData % 1000 /100;
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,Data[1]);
Data[2] = '.';
ZLG7289_Download(0,7,1,Data[1]);
Data[3] = MyData % 1000 % 100 /10;
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,Data[3]);
Data[4] = MyData % 1000 % 100 %10;
ZLG7289_cmd(0xA0);
ZLG7289_Download(0,7,0,Data[4]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -