×
单片机 > 单片机程序设计 > 详情

矩阵键盘的检测及使用

发布时间:2020-06-05 发布时间:
|

基于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 }





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计