|
1金钱
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 value;
#define GPIO_KEY=P1
#define GPIO_DIG=P0
u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(u16 i)
{
while(i--);
}
void KeyDown(void)
{
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)
{
delay(1000);
GPIO_KEY=0x0f;
switch(GPIO_KEY)
{
case(0x07):
value=0;break;
case(0x0b):
value=1;break;
case(0x0d):
value=2;break;
case(0x0e):
value=3;break;
}
GPIO_KEY=0xf0;
switch(GPIO_KEY)
{
case (0x70):value=value+4;break;
case (0xb0):value=value+8;break;
case (0xd0):value=value+12;break;
case (0xe0):value=value+16;break;
}
}
}
void main()
{
while(1)
{
KeyDown();
GPIO_DIG=~smgduan[value];
}
}
|
最佳答案
#define宏定义写法有误。#define GPIO_KEY P1,把等号去掉才对
|
|