zoukankan      html  css  js  c++  java
  • 矩形按键

      1 #include <reg52.h>
      2 #define uint unsigned int 
      3 #define uchar unsigned char
      4     uchar keynum=0;
      5 uchar duan[]={0xc0,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f,~0x77,~0x7c,~0x39,~0x5e,~0x79,~0x71};
      6 /*              0     1    2    3      4     5     6     7     8    9       A    B     C     D      E     F       */
      7 void delay()
      8 {
      9   int i=200;
     10     while(i--);
     11 }
     12 void key44scan(void)
     13 {
     14   uchar t;
     15     P2=0xfe;
     16     t=P2;
     17     t=t&0xf0;
     18     if(t!=0xf0)
     19     {
     20       delay();
     21         t=P2;
     22         t=t&0xf0;
     23     if(t!=0xf0)
     24     {
     25         t=P2;
     26         switch(t)
     27         {
     28             case 0xee:keynum=0;break;
     29             case 0xde:keynum=4;break;
     30           case 0xbe:keynum=7;break;
     31           case 0x7e:keynum=12;break;
     32      }
     33         P3=duan[keynum];
     34      while(t!=0xf0)
     35      {
     36      t=P2;
     37         t=t&0xf0;     
     38      }
     39  }
     40 }
     41 /* *************************************************************************************** */
     42   P2=0xfd;
     43     t=P2;
     44     t=t&0xf0;
     45     if(t!=0xf0)
     46     {
     47         delay();
     48         t=P2;
     49         t=t&0xf0;
     50     if(t!=0xf0)
     51     {
     52         t=P2;
     53         switch(t)
     54         {
     55           case 0xed:keynum=1;break;
     56             case 0xdd:keynum=5;break;
     57           case 0xbd:keynum=9;break;
     58           case 0x7d:keynum=13;break;
     59         }
     60       P3=duan[keynum];
     61         while(t!=0xf0)
     62         {
     63     t=P2;
     64     t=t&0xf0;
     65         }
     66     }
     67 }
     68 /* *************************************************************************************** */
     69   P2=0xfb;
     70     t=P2;
     71     t=t&0xf0;
     72     if(t!=0xf0)
     73     {
     74     delay();
     75     t=P2;
     76     t=t&0xf0;    
     77     if(t!=0xf0)
     78     {
     79         t=P2;
     80     switch(t)
     81     {
     82           case 0xeb:keynum=2;break;
     83             case 0xdb:keynum=6;break;
     84           case 0xbb:keynum=10;break;
     85           case 0x7b:keynum=14;break;

    86 }
     87       P3=duan[keynum];
     88         while(t!=0xf0)
     89         {
     90     t=P2;
     91     t=t&0xf0;
     92       }
     93    }
     94     }
     95 /* *************************************************************************************** */
     96     
     97   P2=0xf7;
     98     t=P2;
     99     t=t&0xf0;
    100     if(t!=0xf0)
    101     {
    102     delay();
    103     t=P2;
    104     t=t&0xf0;    
    105     if(t!=0xf0)
    106     {
    107     t=P2;
    108     switch(t)
    109     {
    110           case 0xe7:keynum=3;break;
    111             case 0xd7:keynum=7;break;
    112           case 0xb7:keynum=11;break;
    113           case 0x77:keynum=15;break;
    114       }
    115         P3=duan[keynum];
    116         while(t!=0xf0)
    117         {
    118             t=P2;
    119        t=t&0xf0;
    120             }
    121             }
    122         }
    123     }
    124 /* *************************************************************************************** */
    125     
    126     main()
    127     {
    128     
    129     while(1)
    130     {
    131         key44scan();
    132     }
    133 }
    134 
    135
    136 137 138 139 140 141 142 143 144 145 146 
    归去来兮
  • 相关阅读:
    numpy 广播
    jupyter notebook
    OpenCV ——双线性插值(Bilinear interpolation)
    历届试题 大臣的旅费
    历届试题 幸运数
    数字图像处理_读写和显示图像
    历届试题 买不到的数目
    历届试题 连号区间数
    历届试题 翻硬币
    历届试题 剪格子
  • 原文地址:https://www.cnblogs.com/zoute/p/7879265.html
Copyright © 2011-2022 走看看