矩阵键盘的检测及使用

电子元件 2年前 (2022) aysz01
0

基于TX-1C开发板,电路连接图如下:

 

1 #include

2 #define uint unsigned int

3 #define uchar unsigned char

4 sbit dula=P2^6; //段选

5 sbit wela=P2^7; //位选

6

7 uchar code tab[]={

8 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

9 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

10 };

11 void display(uchar);

12 void main()

13 {

14 uchar row,col,sum;

15 dula=1;

16 P0=0x00;

17 dula=0;

18 P0=0xFF;

19

20 wela=1;

21 P0=0xC0;

22 wela=0;

23

24 while (1)

25 {

26 P3=0X0f;

27 row=P3; //行

28

29 P3=0Xf0;

30 col=P3; //列

31 sum=row+col;//读取到的键盘值

32 switch(sum)

33 {

34 case 0xee:display(0);

35 break;

36 case 0xde:display(1);

37 break;

38 case 0xbe:display(2);

39 break;

40 case 0x7e:display(3);

41 break;

42 case 0xed:display(4);

43 break;

44 case 0xdd:display(5);

45 break;

46 case 0xbd:display(6);

47 break;

48 case 0x7d:display(7);

49 break;

50 case 0xeb:display(8);

51 break;

52 case 0xdb:display(9);

53 break;

54 case 0xbb:display(10);

55 break;

56 case 0x7b:display(11);

57 break;

58 case 0xe7:display(12);

59 break;

60 case 0xd7:display(13);

61 break;

62 case 0xb7:display(14);

63 break;

64 case 0x77:display(15);

65 break;

66 }

67 }

68 }

69 void display(uchar num)

70 {

71 dula=1;

72 P0=tab[num];

73 dula=0;

74 }

版权声明:aysz01 发表于 2022-08-06 8:58:35。
转载请注明:矩阵键盘的检测及使用 | 鳌游电工

暂无评论

暂无评论...