久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2489|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

回轉(zhuǎn)掃描法取按鍵值的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:68618 發(fā)表于 2014-11-22 15:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
void Key_Check(void)
   {
       Key_Status=Scan_Store_Key();
      if((Key_Status>0)&&(Key_Status<13))
      {
          if(Key_Status==10)//*存包鍵
           {
                STORE_CLR;
                STORE_OUT;
                Delay_us(50);
                STORE_SET;
                Delay_us(100);
                STORE_CLR;//RISING一次,啟動(dòng)M64 INT6中斷
           }  
         else if(Key_Status==12)//#取包鍵
          {
                Code_Buf_Init();
                Time_Wait=0;//按鍵間隔時(shí)間5秒以上沒(méi)反應(yīng)退出
                Code_Buf[0]=0x03;
                SN=1;  
                LED_GREEN_OUT;
                LED_GREEN_ON;   
                while(1)
                 {
                         Key_Status0=Scan_Key();//2ms掃描一次
                        if((Key_Status0>0)&&(Key_Status0<13))
                         {
                               if((Key_Status0==10)||(Key_Status0==12))//*,#,直接退出
                                {
                                       Time_Wait=0;
                                       Code_Buf[SN]=0x41;
                                       //SPI_Send(Code_Buf[SN]);//M64里判斷如果有10出現(xiàn)則代表直接退出
                                       SN++;
                                       Code_Buf[SN]=0x06;
                                       //SPI_Send(Code_Buf[SN]);
                                       Check_Sum(&Code_Buf[0],&Check_Buf[0]);
                                      //SPI_Send(Check_Buf[0]);
                                      //SPI_Send(Check_Buf[1]);
                                        LED_RED_OUT;
                                        LED_RED_ON;
                                        Delay_ms(500);
                                        LED_RED_OFF;
                                        LED_GREEN_OFF;
                                        break;
                                    }  
                                  else if(Key_Status0==11)
                                    {
                                         Code_Buf[SN]=0x30;
                                         SN++;
                                         //SPI_Send(0x30);
                                         Time_Wait=0;
                                         if(SN>10)
                                          {
                                               Code_Buf[11]=0x06;//完整10位密碼
                                               Check_Sum(&Code_Buf[0],&Check_Buf[0]);
                                               //SPI_Send(Check_Buf[0]);
                                               //SPI_Send(Check_Buf[1]);
                                               LED_RED_OUT;
                                               LED_RED_ON;
                                               Delay_ms(1000);
                                               LED_RED_OFF;
                                               LED_GREEN_OFF;
                                               break;
                                             }
                                        }  
                                      else
                                        {
                                             Code_Buf[SN]=DEC_To_ASCII(Key_Status0);
                                             SN++;
                                             Time_Wait=0;
                                             //SPI_Send(Code_Buf[SN]);
                                             if(SN>10)
                                              {
                                                     Code_Buf[11]=0x06;//完整10位密碼
                                                     Check_Sum(&Code_Buf[0],&Check_Buf[0]);
                                                     //SPI_Send(Check_Buf[0]);
                                                     //SPI_Send(Check_Buf[1]);
                                                     LED_RED_OUT;
                                                     LED_RED_ON;
                                                     Delay_ms(1000);
                                                     LED_RED_OFF;
                                                     LED_GREEN_OFF;
                                                     break;
                                                 }
                                            }         
                                      }
                                    else
                                      {
                                             Time_Wait++;
                                      }
                                    if(Time_Wait>2500)
                                     {
                                            Code_Buf[SN]=0x06;//密碼輸入超時(shí)退出,M64判斷接收的數(shù)據(jù)是否有10位即可
                                            //SPI_Send(Code_Buf[SN]);
                                            Check_Sum(&Code_Buf[0],&Check_Buf[0]);
                                            //SPI_Send(Check_Buf[0]);
                                            //SPI_Send(Check_Buf[1]);
                                            LED_RED_OUT;
                                            LED_RED_ON;
                                            Delay_ms(2000);
                                            LED_RED_OFF;
                                            LED_GREEN_OFF;
                                            break;
                                      }         
                              }      
                       }
                     else
                       {
                              /*SPI_Send(0x03);//03,30,30,16,37,39,M64 LCD顯示請(qǐng)按存包鍵后存包,按取包鍵后手動(dòng)輸入
                                                                   數(shù)字密碼取包
                             SPI_Send(0x30);
                             SPI_Send(0x30);
                             SPI_Send(0x16);
                             SPI_Send(0x37);
                             SPI_Send(0x39);*/
                        }   
                }
         }         
采用了回轉(zhuǎn)掃描法取按鍵值,現(xiàn)在測(cè)試執(zhí)行下來(lái),基本功能都很正常,就是郁悶的取包鍵(#)那個(gè)功能,第一次按下去,如果5秒鐘沒(méi)鍵響應(yīng)或輸入滿10個(gè)密碼數(shù)字或按了*或#后都能正常退出WHILE循環(huán),但是第二次再按#后,測(cè)試下來(lái)發(fā)現(xiàn)程序居然直接工作了第一個(gè)IF判斷后馬上退出了WHILE循環(huán),紅色LED閃半秒,然后再按#,又正常如初,如果10位密碼數(shù)字沒(méi)輸入完,按了#中途退出,則再按#進(jìn)入密碼輸入狀態(tài)時(shí)無(wú)這種現(xiàn)象,郁悶,正在用LED測(cè)試大法進(jìn)行排除,看問(wèn)題到底是出在哪里?                                                                                             
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:26206 發(fā)表于 2014-11-22 18:02 | 只看該作者
學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品一区二区三区视频 | 国产目拍亚洲精品99久久精品 | 天天干天天干 | 亚洲成色777777在线观看影院 | av免费观看在线 | 国产黄色电影 | 成年人在线观看 | 久久精品免费观看 | 噜噜噜噜狠狠狠7777视频 | 欧美性jizz18性欧美 | 欧美成人一级视频 | www.天堂av.com| 91在线视频| 大香网伊人 | 伊人艹 | 日韩在线电影 | 在线观看黄视频 | 久久久久9999 | 视频1区2区 | 在线午夜 | 日干夜操 | 国产乱码精品1区2区3区 | 国产精品久久欧美久久一区 | 日韩精品一区二区三区中文字幕 | 中文字幕亚洲一区二区三区 | 99亚洲精品| 在线午夜 | 精品国产18久久久久久二百 | 一级毛片在线播放 | 91精品国产一区二区三区 | 亚洲国产成人av好男人在线观看 | 热re99久久精品国产99热 | 国产精品免费在线 | 精国产品一区二区三区四季综 | 亚洲视频国产视频 | aaaaaaa片毛片免费观看 | 黄色网址在线播放 | 国产又爽又黄的视频 | 日韩在线电影 | 亚洲a在线视频 | 九九热这里 |