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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3071|回復: 8
打印 上一主題 下一主題
收起左側

關于單片機矩陣鍵盤多位數的輸入程序問題

[復制鏈接]
回帖獎勵 5 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:849635 發表于 2021-9-18 21:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
矩陣鍵盤多位數的輸入,有問題,大佬們幫忙看看
    while(1)
    {
         /*************判斷是不是連續掃描*****/
    conkey=Key_Scan();
        printf("%d\r",conkey);
   if(conkey==66)     //如果是66,進入連續掃描模式
  {
        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);   
         }
     }
            


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2021-9-19 01:43 | 只看該作者
請你說出有什么問題
方便我們找錯
回復

使用道具 舉報

板凳
ID:123289 發表于 2021-9-19 08:48 | 只看該作者
說說你思路吧,看看你的思路是否清晰。
回復

使用道具 舉報

地板
ID:332444 發表于 2021-9-19 10:22 | 只看該作者
矩陣鍵盤值只有1位數要多位數需要自己去合成
回復

使用道具 舉報

5#
ID:332444 發表于 2021-9-19 10:24 | 只看該作者
那么多循環不怕邏輯混亂?
回復

使用道具 舉報

6#
ID:332444 發表于 2021-9-19 10:25 | 只看該作者
keysum=chgkey[0]*1000+chgkey[1]*100+chgkey[2]*10+chgkey[3]*1;有必要*1?填鴨式學習!
回復

使用道具 舉報

7#
ID:849635 發表于 2021-9-19 11:15 | 只看該作者
yzwzfyz 發表于 2021-9-19 08:48
說說你思路吧,看看你的思路是否清晰。

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

使用道具 舉報

8#
ID:849635 發表于 2021-9-19 11:16 | 只看該作者
xianfajushi 發表于 2021-9-19 10:25
keysum=chgkey[0]*1000+chgkey[1]*100+chgkey[2]*10+chgkey[3]*1;有必要*1?填鴨式學習!

只是為了,對稱好看
回復

使用道具 舉報

9#
ID:123289 發表于 2021-9-19 17:11 | 只看該作者
本帖最后由 yzwzfyz 于 2021-9-21 22:14 編輯

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清视频在线 | 国产一区| 免费啪啪| 可以免费观看的av片 | 国产精品视频观看 | 久久久精彩视频 | 午夜一区 | 久久久久久久久久久国产 | wwww.xxxx免费| 国产精品视频专区 | 久久激情网 | 欧日韩在线观看 | 国产精品色一区二区三区 | 国产欧美三区 | 欧美视频网 | 午夜精品一区 | 欧美亚洲国产日韩 | 久久久精品视频免费 | 岛国精品| 免费在线a视频 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 亚洲aⅴ精品 | 免费不卡视频 | 野狼在线社区2017入口 | 国产视频精品免费 | 国产精品69毛片高清亚洲 | 国产成人福利在线 | 婷婷在线免费 | 欧美一区二区三区在线播放 | 欧美一级黄色片免费观看 | 99国内精品| 精品欧美乱码久久久久久 | 久久精品一区二区三区四区 | 有码在线| 久久成人精品一区二区三区 | 日韩成人免费在线视频 | 日韩视频中文字幕 | 蜜桃视频在线观看免费视频网站www | 999久久久 | 毛片一区二区 | 99re6热在线精品视频播放 |