• 矩阵键盘的检测及使用


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

     1 #include <reg52.h>
     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 }

    弄了一天晕晕乎乎的一遍遍的修改看效果终于出来了,呵呵,庆祝下

  • 相关阅读:
    再提一个建议,不过就要辛苦dudu了
    项目中的小项目实现在望
    Visual Studio.Net 技术Tip
    IQueryable与foreach的困惑?
    [转贴]浅析大型网站的架构
    [原创]WCF入门级使用教程(转载请注明出处)
    [原创]在msmq3.0中使用http协议发送消息
    [转贴][WCF Security] 4. 用户名/密码身份验证
    [转贴][WCF Security] 1. 基本概念
    [转]在SQL Server2005中进行错误捕捉
  • 原文地址:https://www.cnblogs.com/lilongjiang/p/1795988.html
Copyright © 2020-2023  润新知