找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機C語言4個按鍵實現(xiàn)多級菜單及參數(shù)修改

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1023151 發(fā)表于 2024-1-31 21:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
各位朋友,多級菜單本人已經(jīng)實現(xiàn),但是關(guān)于4個按鍵實現(xiàn)參數(shù)修改暫時還沒有思路,單個界面的參數(shù)修改我倒是可以實現(xiàn),但是多級菜單和他組合,我就沒有思路了,還請各位指導(dǎo)一下!

Snipaste_2024-01-31_21-47-25.png (22.06 KB, 下載次數(shù): 54)

Snipaste_2024-01-31_21-47-25.png

Snipaste_2024-01-31_21-47-37.png (28.05 KB, 下載次數(shù): 55)

Snipaste_2024-01-31_21-47-37.png

Snipaste_2024-01-31_21-47-48.png (28.97 KB, 下載次數(shù): 64)

Snipaste_2024-01-31_21-47-48.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2024-2-1 10:50 | 只看該作者
可以參考這段按鍵代碼,取自《STC8H萬年歷自動匹配18b20序列號多點測溫示例程序》
  1. //按鍵掃描函數(shù) 運行環(huán)境 周期1ms
  2. void key_scan()
  3. {
  4.         static bit key_sign=0;//按鍵狀態(tài)標(biāo)志
  5.         static u8 count=0;//消抖計數(shù)
  6.         if(!key1||!key2||!key3||!key4)
  7.         {
  8.                 if(++count>=10 && key_sign==0)
  9.                 {
  10.                         key_sign=1;
  11.                         if(!key1)
  12.                         {
  13.                                 Key_value=++Key_value%8;
  14.                                 if(Key_value==0)
  15.                                 {       
  16.                                         Ds1302Init();//寫7個字節(jié)的日歷和時間
  17.                                         mark=1; //允許讀DS1302
  18.                                 }
  19.                                 else mark=0;//禁止讀DS1302
  20.                         }
  21.                         if(!key2 && Key_value!=0)
  22.                         {
  23.                                 switch(Key_value)
  24.                                 {
  25.                                         case 1:if(++TIME[6]>99)TIME[6]=0; break;//調(diào)年
  26.                                         case 2:if(++TIME[4]>12)TIME[4]=1; break;//調(diào)月
  27.                                         case 3:if(++TIME[3]>31)TIME[3]=1; break;//調(diào)日
  28.                                         case 4:if(++TIME[5]>7) TIME[5]=1; break;//調(diào)周
  29.                                         case 5:if(++TIME[2]>23)TIME[2]=0; break;//調(diào)時
  30.                                         case 6:if(++TIME[1]>59)TIME[1]=0; break;//調(diào)分
  31.                                         case 7:if(++TIME[0]>59)TIME[0]=0; break;//調(diào)秒
  32.                                 }
  33.                         }
  34.                         if(!key3 && Key_value!=0)
  35.                         {
  36.                                 switch(Key_value)
  37.                                 {
  38.                                         case 1:if(--TIME[6]<0)TIME[6]=99; break;//調(diào)年
  39.                                         case 2:if(--TIME[4]<1)TIME[4]=12; break;//調(diào)月
  40.                                         case 3:if(--TIME[3]<1)TIME[3]=31; break;//調(diào)日
  41.                                         case 4:if(--TIME[5]<1)TIME[5]= 7; break;//調(diào)周
  42.                                         case 5:if(--TIME[2]<0)TIME[2]=23; break;//調(diào)時
  43.                                         case 6:if(--TIME[1]<0)TIME[1]=59; break;//調(diào)分
  44.                                         case 7:if(--TIME[0]<0)TIME[0]=59; break;//調(diào)秒
  45.                                 }
  46.                         }
  47.                         if(!key4)//切換單總線多通道DS1302
  48.                         {
  49.                                 Chx++;
  50.                                 if(Chx==common)Chx=0; //循環(huán)切換
  51.                         }
  52.                 }
  53.         }
  54.         else
  55.         {
  56.                 key_sign=0;
  57.                 count=0;
  58.         }
  59. }
復(fù)制代碼
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表