📄 4io_10key.c
字号:
/**************************************
4个IO接10个按键的方法
***************************************/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit KeyPort0 =P2^0;
sbit KeyPort1 =P2^1;
sbit KeyPort2 =P2^2;
sbit KeyPort3 =P2^3;
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;
//-------------------------------------------------------------------------------
unsigned char KeyScan()
{
uchar _keyvalue;
P2 |= 0xff;
_keyvalue=0;
if( !KeyPort0 )
_keyvalue = 1;
else if( !KeyPort1 )
_keyvalue = 2;
else if( !KeyPort2 )
_keyvalue = 3;
else if( !KeyPort3 )
_keyvalue = 4;
else
{
KeyPort0 =0;
if( !KeyPort1 )
_keyvalue = 5;
else if( !KeyPort2 )
_keyvalue = 6;
else if( !KeyPort3 )
_keyvalue = 7;
else
{
KeyPort1 =0;
if( !KeyPort2 )
_keyvalue = 8;
else if( !KeyPort3 )
_keyvalue = 9;
else
{
KeyPort2 =0;
if( !KeyPort3 )
_keyvalue = 10;
}
}
}
return _keyvalue;
}
//-------------------------------------------------------------------------------
void main ()
{
while(1)
{
switch(KeyScan())
{
case 1: P1=0x01; break;//key1 00
case 2: P1=0x02; break;//key2 01
case 3: P1=0x04; break;//key3 02
case 4: P1=0x08; break;//key4 03
case 5: P1=0x10; break;//key5 04
case 6: P1=0x20; break;//key6 05
case 7: P1=0x40; break;//key7 06
case 8: P1=0x80; break;//key8 07
default: break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -