系列文章索引:Linux下C51入门教程索引
上一篇:Linux下C51入门教程03:按键控制LED灯
根据按键不同的位置显示不同的LED灯状态
先捕获按键的位置,比如一号按键。然后根据按键位置执行不同的LED灯显示模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include <mcs51/8051.h>
unsigned int key; void scan_key();
main() { while (1) { scan_key();
switch (key) { case 1: P2 = 0x01; break; case 2: P2 = 0x02; break; case 3: P2 = 0x04; break; case 4: P2 = 0x08; break; case 5: P2 = 0x10; break; case 6: P2 = 0x20; break; case 7: P2 = 0x40; break; case 8: P2 = 0x80; break; default:; } } }
void scan_key() { if (P0 == 0xfe) key = 1; if (P0 == 0xfd) key = 2; if (P0 == 0xfb) key = 3; if (P0 == 0xf7) key = 4; if (P0 == 0xef) key = 5; if (P0 == 0xdf) key = 6; if (P0 == 0xbf) key = 7; if (P0 == 0x7f) key = 8; }
|
按照图示进行接线
根据图片中的连接方法,将按键的16进制值传送到P0口,然后根据P0的值表示按键的位置。之后显示LED就是之前LED灯的按值显示。
效果如下:
Linux下C51开发3:8位按键 - B站
下一篇:Linux下C51入门教程04:按键控制继电器