找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3934|回復(fù): 8
收起左側(cè)

用89C51單片機(jī)控制LCD1602顯示多級菜單,使用匯編實現(xiàn),求思路

[復(fù)制鏈接]
ID:922838 發(fā)表于 2021-5-24 21:42 | 顯示全部樓層 |閱讀模式
1黑幣
用89C51單片機(jī)控制LCD1602顯示多級菜單,使用匯編實現(xiàn),求思路
LCD1602實現(xiàn)多級菜單,滾動顯示菜單選項,二級菜單就可以了,
按鍵控制確認(rèn)或返回,有沒有大佬給個思路,救救孩子。

~Q9_6GJ55YR8QL)3FHFZ~66.png
回復(fù)

使用道具 舉報

ID:922838 發(fā)表于 2021-7-28 09:47 | 顯示全部樓層
這個問題我已經(jīng)解決,用LCD1602顯示,然后找一個標(biāo)志地址,當(dāng)按上下鍵的時候,標(biāo)志地址里的標(biāo)志位加一或減一,通過改變標(biāo)志位來改變LCD顯示的TAB,然后再輸出就可以了
回復(fù)

使用道具 舉報

ID:435676 發(fā)表于 2021-7-31 17:04 | 顯示全部樓層
弄兩個菜單函數(shù),使用樓上說的按上下鍵,搞個變量累加,根據(jù)變量值來選擇顯示菜單頁面的光標(biāo)
回復(fù)

使用道具 舉報

ID:435676 發(fā)表于 2021-7-31 17:06 | 顯示全部樓層
////////////菜單切換及選擇/////////////////////////////////////////////////////////////////////////////////////////////////////////////// while(1){   button();                         //按鍵掃描          if(n1==0){                           // 返回/上                    n4=n4-1;                 if(n4<0)          { n4=11;  }                                                                           if(n4<=3)         { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu[i]);    }  } //菜單選擇                 if(n4>3 & n4<=7)  { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu1[i]);   }  }                  if(n4>7)          { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu2[i]);   }  }  //                if(n4<=3)         { LcmClearTXT();  highlight(0,liney,8,0);   for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu[i]);    }  }  //                if(n4>3 & n4<=7)  { LcmClearTXT();  highlight(0,liney,8,0);   for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu1[i]);   }  }  //                if(n4>7)          { LcmClearTXT();  highlight(0,liney,8,0);   for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu2[i]);   }  }                                                                                                                                  if(n4==0 | n4==4 | n4==8  ){ liney=0;  } //光標(biāo)位置                                                                 if(n4==1 | n4==5 | n4==9  ){ liney=1;  }                                                                  if(n4==2 | n4==6 | n4==10 ){ liney=2;  }                                                                  if(n4==3 | n4==7 | n4==11 ){ liney=3;  }                                                                            highlight(0,liney,8,255);     //放置光標(biāo)                                                                                                           }           if(n2==0){                           // 下                     n4=n4+1;                                                          if(n4>11)         { n4=0;  }                                                                                  if(n4<=3)         { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu[i]);    }  }                  if(n4>3 & n4<=7)  { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu1[i]);   }  }                  if(n4>7)          { LcmClearTXT();  LcmClearBMP();  for(i=0;i < 4;i++){  LCD_ShowString(i,0,menu2[i]);   }  }                                                                                                                          if(n4==0 | n4==4 | n4==8  ){ liney=0;  }                                                                  if(n4==1 | n4==5 | n4==9  ){ liney=1;  }                                                                  if(n4==2 | n4==6 | n4==10 ){ liney=2;  }                                                                  if(n4==3 | n4==7 | n4==11 ){ liney=3;  }                                                                           highlight(0,liney,8,255);     //放置光標(biāo)                                                                            }                                          if(n3==0){                           // 確認(rèn)                    if(n4==0) {         LcmClearBMP();   LcmClearTXT();   goto HB;}                     if(n4==1) {         LcmClearBMP();   LcmClearTXT();   goto HC;}                     if(n4==2) {         LcmClearBMP();   LcmClearTXT();   goto HD;}                   if(n4==3) {         LcmClearBMP();   LcmClearTXT();   goto HE;}                   if(n4==4) {         LcmClearBMP();   LcmClearTXT();   goto HF;}                   if(n4==5) {         LcmClearBMP();   LcmClearTXT();   goto HG;}                   if(n4==6) {         LcmClearBMP();   LcmClearTXT();   goto HH;}                           if(n4==7) {         LcmClearBMP();   LcmClearTXT();   goto HI;}                           if(n4==8) {         LcmClearBMP();   LcmClearTXT();   goto HJ;}                   if(n4==9) {         LcmClearBMP();   LcmClearTXT();   goto HK;}                   if(n4==10){         LcmClearBMP();   LcmClearTXT();   goto HL;}                           if(n4==11){         LcmClearBMP();   LcmClearTXT();   goto HM;}                                                                                          }
回復(fù)

使用道具 舉報

ID:951974 發(fā)表于 2021-8-24 23:22 | 顯示全部樓層
用匯編實現(xiàn)多級菜單是痛苦的選擇
回復(fù)

使用道具 舉報

ID:996773 發(fā)表于 2023-5-26 10:58 | 顯示全部樓層
1588848 發(fā)表于 2021-8-24 23:22
用匯編實現(xiàn)多級菜單是痛苦的選擇


LA1833.jpg

我這個也是多級菜單吧,上下四個選項,也是匯編,也不難寫啊,用個寄存器寫入對應(yīng)的數(shù)據(jù)而已
回復(fù)

使用道具 舉報

ID:1145089 發(fā)表于 2025-3-19 16:48 | 顯示全部樓層
hi等你 發(fā)表于 2023-5-26 10:58
我這個也是多級菜單吧,上下四個選項,也是匯編,也不難寫啊,用個寄存器寫入對應(yīng)的數(shù)據(jù)而已

想問問你們碰到error A51: TARGET OUT OF RANGE這種錯誤的時候都怎么解決啊
回復(fù)

使用道具 舉報

ID:1130795 發(fā)表于 2025-3-20 07:50 | 顯示全部樓層
風(fēng)抓不住過往 發(fā)表于 2025-3-19 16:48
想問問你們碰到error A51: TARGET OUT OF RANGE這種錯誤的時候都怎么解決啊

中轉(zhuǎn) 先跳到中間 再跳轉(zhuǎn)目標(biāo)
回復(fù)

使用道具 舉報

ID:879348 發(fā)表于 2025-3-20 17:28 | 顯示全部樓層
先用C寫完,然后點kel模擬調(diào)試,就會自動生成匯編,復(fù)制過來忽悠一下就行了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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