- #include "reg52.h"
-
- sbit S7 = P3^0;
-
- sbit S6 = P3^1;
-
- sbit S5 = P3^2;
-
- sbit S4 = P3^3;
-
- void ScanKeys()
-
- {
-
- if(S7 == 0)
-
- {
-
- Delay(500);
-
- if(S7 == 0)
-
- {
-
- while(S7 == 0);
-
- }
-
- }
-
- if(S6 == 0)
-
- {
-
- Delay(500);
-
- if(S6 == 0)
-
- {
-
- while(S6 == 0);
-
- }
-
- }
-
- if(S5 == 0)
-
- {
-
- Delay(500);
-
- if(S5 == 0)
-
- {
-
- while(S5 == 0);
-
-
-
- }
-
- }
-
- if(S4 == 0)
-
- {
-
- Delay(500);
-
- if(S4 == 0)
-
- {
-
- while(S4 == 0);
-
-
-
- }
-
- }
-
- }
定义了四个位控制变量sbit
,分别对应P3口的不同引脚,用于检测四个按键的状态。
ScanKeys()
函数用于扫描四个按键的状态,具体实现如下:
在每个按键被检测到按下后,进入一个while
循环,等待按键释放,即等待按键不再处于按下状态。