zoukankan      html  css  js  c++  java
  • 51单片机按键扫描C程序

     
        大二上学期做过8051单片机的按键程序,当时项目要求实现按键控制LED屏显示并且接收GPRS传来的数据。当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的拼接成128*16的。做完之后虽然可以运行,但是很勉强,尤其是按键扫描程序没有下面这位哥写得简洁缜密,所以就贴过来,以后用到的时候直接研究:
     
    unsigned char key,key_h,kpush;
    unsigned int key_l;

    //按键连接到p1.0、p1.1、p1.2

    void int_t0(void) interrupt 1 {
     unsigned char dd,i;
     TL0=TL0+30;TH0=0xfb; //800
     /* 按键判别 */
     if ((P1&0x7)==0x7) {
      if ((key_l>30)&&(key_l<800)&&(key_h>30)) {  //释放按键,如果之前按键时间少于1秒,读入键值
       key=kpush;
      }
      if ((++key_h)>200) key_h=200;
      key_l=0;
      if (key>=0x80) key=0;     //如果之前的按键为长按1秒,清除键值
     } else {
      kpush=P1&0x7;
      key_l++;
      if ((key_l>800)&&(key_h>30)) {    //如果按键超过1秒,键值加0x80标志长按键
       key=kpush|0x80;
       key_h=0;
       key_l=0;
      }
     }
    }
    void main(void) {
     TMOD=0x1;TR0=1;ET0=1;EA=1;
     while (1) {
      while (!key) {}
      switch (key) {
      case 1:break;
      case 2:break;
      }
     }
    }
  • 相关阅读:
    字符串中部分字符替换
    斐波那契数列
    单列模式--代码
    selenium基础知识
    关于页面元素不能定位,通过Js进行处理
    Linux性能监控工具命令--top
    java实现selenium jquery滑动解锁
    PHP学习(三)——连接MySQL数据库理论
    PHP学习(二)
    PHP学习(一)
  • 原文地址:https://www.cnblogs.com/buffer/p/1280277.html
Copyright © 2011-2022 走看看