#include "reg51.h"
sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
typedef unsigned char u16;
typedef unsigned int u8;
sbit LED1=P2^0;
#define KEY1_PRESS 1;
#define KEY2_PRESS 2;
#define KEY3_PRESS 3;
#define KEY_UNPRESS 0;
void delay_10us(u8 ten_us)
{
while(ten_us--);
}
u16 key_scan(u16 mode)
{
static u16 key=1;
if(mode)key=1;
if(key=1&&(KEY1==0||KEY2==0||KEY3==0))
{
delay_10us(1000);
key=0;
if(KEY1==0)
return KEY1_PRESS;
else if(KEY2==0)
return KEY2_PRESS;
else if(KEY3==0)
return KEY3_PRESS;
}
else if(KEY1==1&&KEY2==1&&KEY3==1)
{
key=1;
}
return KEY_UNPRESS;
}
void main()
{
u16 key=0;
while(1)
{
key=key_scan(0);
if (key==KEY1_PRESS)
LED1=!LED1;
}
}
anjian.c(32): error C141: syntax error near 'else', expected '__asm'
anjian.c(57): error C141: syntax error near ';', expected ','
anjian.c(57): error C141: syntax error near ')', expected '__asm'
anjian.c - 4 Error(s), 0 Warning(s).
|