|
小白寫子函數寫不下去了,網上找的仿真圖,每個按鍵亮對應位置的段碼燈,有大哥指導一下思路嗎?
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
#define key P1
#define dmg1 P2
#define dmg2 P3
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
uchar Keys()
{
uchar Keym;
key=0xf0;
if(key!=0xf0)
{
delay(10);
if(key!=0xf0)
{
key=0xfe;
if(key!=0xfe)
{
Keym=key;
delay(10);
while(key!=0xfe);
return Keym;
}
}
key=0xfd;
if(key!=0xf0)
{
delay(10);
if(key!=0xfd)
{
Keym=key;
delay(10);
while(key!=0xfd);
return Keym;
}
}
key=0xfb;
if(key!=0xfb)
{
delay(10);
if(key!=0xfb)
{
Keym=key;
delay(10);
while(key!=0xfb);
return Keym;
}
}
key=0xf7;
if(key!=0xf7)
{
delay(10);
if(key!=0xf7)
{
Keym=key;
delay(10);
while(key!=0xf7);
return Keym;
}
}
}
return 0xff;
}
uchar Keyz()
{
uchar i;
switch(Keys())
{
case 0x7e:return dmg1;break;
case 0x7d:return dmg1;break;
case 0x7b:return dmg1;break;
case 0x77:return dmg1;break;
case 0xbe:return dmg1;break;
case 0xbd:return dmg1;break;
case 0xbb:return dmg1;break;
case 0xb7:return dmg1;break;
case 0xde:return dmg2;break;
case 0xdd:return dmg2;break;
case 0xdb:return dmg2;break;
case 0xd7:return dmg2;break;
case 0xee:return dmg2;break;
case 0xed:return dmg2;break;
case 0xeb:return dmg2;break;
case 0xe7:return dmg2;break;
}
}
|
|