chinatwt1314

    1. 思路决定出路--键盘扫描详解 7/6783 单片机 2008-06-12
      我的按键是这样处理的 1.读健状态,与上次健状态比较,不同,更新健状态和当前时间,相同则时间不变(或者加一) 2.当前时间与最后一次更新按键时间比较,超出规定时间,则可以判断健已经稳定。 3.与以前比较,就可以进行健处理了。 缺点,用的RAM多,优点,不等待 #include #include void ReadKey(void) {         byte i,Temp0;         bit KeyFlag;         static byte Q0;                  P1 = 0xff;         Temp0 = ~P1;         if(Temp0 != Qsw0)         {                Qsw0 = Temp0;                 KeyTime = Time20ms;         }         else         {                 if(Time20ms - KeyTime > 3)                         {KeyFlag = 1;}                  }         if(KeyFlag)         {        KeyFlag = 0;                 i = Qsw0 &~Q0 & 0xbb; //健按下                 if(i)                 {                           if(i & 0x80)        {KeyValue = BryRightKey;}                         if(i & 0x20)        {KeyValue = AddRightKey;}                         if(i & 0x10)        {KeyValue = SubbRightKey;}                         if(i & 0x08)        {KeyValue = ReadPhotoRightKey;}                         if(i & 0x02)        {KeyValue = LgyRightKey;}                         if(i & 0x01)        {KeyValue = LightRightKey;}                 }                i = Q0 &~Qsw0  & 0xbb; //健松开                 if(i)                 {                    //健松开,处理代码;                 }                    Q0 = Qsw0;                  } }

最近访客

< 1/1 >

统计信息

已有48人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言