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

標(biāo)題: 關(guān)于單片機矩陣鍵盤多位數(shù)的輸入程序問題 [打印本頁]

作者: XLXUN    時間: 2021-9-18 21:39
標(biāo)題: 關(guān)于單片機矩陣鍵盤多位數(shù)的輸入程序問題
矩陣鍵盤多位數(shù)的輸入,有問題,大佬們幫忙看看
    while(1)
    {
         /*************判斷是不是連續(xù)掃描*****/
    conkey=Key_Scan();
        printf("%d\r",conkey);
   if(conkey==66)     //如果是66,進入連續(xù)掃描模式
  {
        flagsw=1;
      printf("進去了\r");
       while(conkey!=68)
         {  
             if(conkey!=420)
             {     
             printf("2進去了\r");
           chgkey[0]=Key_Scan();

              conkey=Key_Scan();
             }
           while(conkey!=68)
         {  
              printf("3進去了\r");
             if(conkey!=420)
             {
                 chgkey[1]=Key_Scan();
             conkey=Key_Scan();
             }
                while(conkey!=68)
         {   printf("4進去了\r");
             if(conkey!=420)
             {
                 chgkey[2]=Key_Scan();
              conkey=Key_Scan();
             }
                  while(conkey!=68)
         {  
             if(conkey!=420)
             chgkey[3]=Key_Scan();
              conkey=68;
                   }
                }
             }
           keysum=chgkey[0]*1000+chgkey[1]*100+chgkey[2]*10+chgkey[3]*1;
                printf("%d\r",keysum);         
              LCD_ShowString(188,120,"wrong",RED,WHITE,16,0);   
             LCD_ShowIntNum(188,140,keysum,4,GREEN,WHITE,16);   
         }
     }
            



作者: lkc8210    時間: 2021-9-19 01:43
請你說出有什么問題
方便我們找錯
作者: yzwzfyz    時間: 2021-9-19 08:48
說說你思路吧,看看你的思路是否清晰。
作者: xianfajushi    時間: 2021-9-19 10:22
矩陣鍵盤值只有1位數(shù)要多位數(shù)需要自己去合成
作者: xianfajushi    時間: 2021-9-19 10:24
那么多循環(huán)不怕邏輯混亂?
作者: xianfajushi    時間: 2021-9-19 10:25
keysum=chgkey[0]*1000+chgkey[1]*100+chgkey[2]*10+chgkey[3]*1;有必要*1?填鴨式學(xué)習(xí)!
作者: XLXUN    時間: 2021-9-19 11:15
yzwzfyz 發(fā)表于 2021-9-19 08:48
說說你思路吧,看看你的思路是否清晰。

如果,首先如果掃描的值是66,進入連續(xù)鍵盤,如果掃描的鍵不是68,如果不是亂碼(就是420),就寫入數(shù)組chgkey,固定數(shù)組為四位,最后,將四位乘以加權(quán),得到的數(shù)即是我定義的一個全局變量

作者: XLXUN    時間: 2021-9-19 11:16
xianfajushi 發(fā)表于 2021-9-19 10:25
keysum=chgkey[0]*1000+chgkey[1]*100+chgkey[2]*10+chgkey[3]*1;有必要*1?填鴨式學(xué)習(xí)!

只是為了,對稱好看
作者: yzwzfyz    時間: 2021-9-19 17:11
本帖最后由 yzwzfyz 于 2021-9-21 22:14 編輯

思路不清,假設(shè)是計算器鍵盤輸入,輸入的長短不定……
教你一個方法:
1、建立一個【輸入緩沖區(qū)】,長度需足夠用,如256個字節(jié)。當(dāng)然用一個256個字節(jié)的數(shù)組替代也可。
2、每個鍵的鍵值不要超過255,這樣最多可以適用256個不同的鍵。
3、建立兩個指針:PC_INPUT,PC_USED。單字節(jié)即可。
4、串口中斷(鍵入)時,將鍵值依PC_INPUT(0-255)指向【輸入緩沖區(qū)】的位置,并存入,每收存一個鍵值就將PC_INPUT+1,PC_INPUT循環(huán)使用(0-255),無需清0。僅在開機時清0。數(shù)據(jù)分析不要在中斷中做,以免運行時間太長。即中斷只存數(shù)據(jù)。
5、在主程序中,分析鍵入的數(shù)據(jù)。
取鍵值的方法:當(dāng)PC_INPUT <> PC_USED 時,就表示有新的鍵入了。
僅在開機時,讓PC_INPUT = PC_USED =0。
數(shù)據(jù)取自【輸入緩沖區(qū)】中,PC_USED所指的位置,每取一個鍵值就將PC_USED+1,PC_USED循環(huán)使用(0-255),無需清0。
當(dāng)PC_INPUT = PC_USED 時,就表示輸入的鍵值取完了。
6、何時開始。坑赡阕约憾,可以每輸入一個,取一個。也可以鍵入某個值(如“=”號鍵值)時,再開始取,反正鍵輸入全部在緩沖區(qū)中,跑不掉!有PC_INPUT和PC_USED定位,也不會混亂。
7、分析處理數(shù)據(jù),這時你可以自由發(fā)揮了。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费的黄色大片 | 四虎影院网站 | wwwxxx欧美| 精品一二区| 精品久久一区二区 | 激情久久久 | 欧美福利视频 | 久久五月婷 | 亚洲三级在线观看 | 超碰在线观看免费 | 国产一区精品视频 | 日韩在线欧美 | 久久久97 | 中文字幕一区二区三区乱码 | 欧美黄色片视频 | 色综合五月 | 成人欧美一区二区三区白人 | 成人精品在线观看 | 综合伊人久久 | 国产精品久久久国产盗摄 | 波多野结衣乳巨码无在线观看 | 久久99视频 | 欧美在线视频一区 | 国产精品久久久一区二区 | 日韩欧美国产精品 | 一起操在线 | 久久三级视频 | 青青综合| 日本一区二区不卡 | 死神来了4无删减版在线观看 | 福利在线观看 | 日韩精品在线一区 | 激情小说在线视频 | 日本天堂在线 | 永久免费看mv网站入口亚洲 | 欧美黄色片 | 亚洲激情在线观看 | 青青在线 | 黄色a一级 | 免费看黄色小视频 | 中文字幕在 |