keyscan.c
来自「主要在C8051F020的平台上实现对运放UA741的失调电压、失调电流」· C语言 代码 · 共 126 行
C
126 行
#include<c8051f020.h>
#include"delay.h"
#define uchar unsigned char
//#define uint unsigned int
uchar temp1;
extern uchar num;
uchar key_scan( )
{
num=0xff;
num=0;
P1=0xfe;
temp1=P1;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='0';
break;
case 0xd0: num='1';
break;
case 0xb0: num='2';
break;
case 0x70: num='3';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P1;
temp1=temp1&0xf0;
}
P1=0xfd;
temp1=P1;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='4';
break;
case 0xd0: num='5';
break;
case 0xb0: num='6';
break;
case 0x70: num='7';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P1;
temp1=temp1&0xf0;
}
P1=0xfb;
temp1=P1;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='8';
break;
case 0xd0: num='9';
break;
case 0xb0: num='A';
break;
case 0x70: num='B';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P1;
temp1=temp1&0xf0;
}
P1=0xf7;
temp1=P1;
temp1=temp1&0xf0;
if(temp1!=0xf0)
{
delay(10,300);
if(temp1!=0xf0)
{
switch (temp1)
{
case 0xe0: num='C';
break;
case 0xd0: num='D';
break;
case 0xb0: num='E';
break;
case 0x70: num='F';
break;
}
}
}
while(temp1!=0xf0)
{
temp1=P1;
temp1=temp1&0xf0;
}
return(num);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?