|
給你改了,對(duì)比一下就知道哪里錯(cuò)了。
- #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 那一行不可以加;
- #define KEY2_PRESS 2 //; <----#define 那一行不可以加;
- #define KEY3_PRESS 3 //; <----#define 那一行不可以加;
- #define KEY_UNPRESS 0 //; <----#define 那一行不可以加;
- 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;
-
-
- }
- }
-
復(fù)制代碼 |
|