OLED多級選單實現方法

2021-09-12 02:15:13 字數 2687 閱讀 1273

typedef

struct

key_table;

結構體包含5個變數,分別是函式的索引號即使用者想要執行哪個函式的代號,然後有三個鍵,使用者可以自己定義別的按鍵,最後乙個是函式指標,即索引號對應的函式。

key_table code table[n]=,

,,,,

,,..

....

....

..};

首先可以先這樣定義該陣列

key_table code table[n]=,,

,,,,

,…};其中,x,y,z是未知數,先不確定,他們對應的是三個鍵按下要要執行的索引值,

如果四個鍵,就有四個未知數,在確定他們之前,必須要了解自己函式執行什麼命令。

假如開始時,執行陣列裡面的第乙個即table[0],而想在此按上鍵執行函式fun6

那麼table[0]裡面需要這樣設定{0,5,y,z,(*fun1)}

同樣,如果希望按下鍵執行fun7則需要設定為{0,x,6 ,z,(*fun1)}

如果希望按確認鍵執行fun3則需要設定為{0,x,y, 2 , (*fun1)}

如果上面三種情況都想要就設定為 即操作不同的按鍵執行不同的操作。{0,5,6,2,(*fun1)}

其它陣列元素以此類推。這一步做完了看主程式裡面(主要是while(1)裡面)

/*******************find index****************************/

switch

(key)

current_operation_index=table[func_index]

.current_operation;

(*current_operation_index)()

;//執行當前操作函式

其中,key是返回的按鍵值,這個使用者視情況而定,

主要是以結構體為基礎設計的,以12864顯示函式代替了使用者需要的函式功能,只需要修改相應的函式和索引號,就可以達到任意介面切換了

#include

#include

"fun.h"

#include

"lcd12864.h"

#include

"delay.h"

#define uchar unsigned char

sbit keydown=p0^0;

sbit keyenter=p0^1;

sbit keyup=p0^2;

uchar func_index=0;

void

(*current_operation_index)()

;typedef

struct

key_table;

key_table code table[30]

=,//第一層,顯示【清華大學】、北京大學、重慶三峽學院、返回

,//第一層,顯示清華大學、【北京大學】、重慶三峽學院、返回

,//第一層,顯示清華大學、北京大學、【重慶三峽學院】、返回

,//第一層,顯示清華大學、北京大學、重慶三峽學院、【返回】

,//第二層,清華大學層下顯示【地點】、建立時間、簡介、返回

,//第二層,清華大學層下顯示地點、【建立時間】、簡介、返回

,//第二層,清華大學層下顯示地點、建立時間、【簡介】、返回

,//第二層,清華大學層下顯示地點、建立時間、簡介、【返回】

,//第二層,北京大學層下顯示【歷史】、政治、簡介、返回

,//第二層,北京大學層下顯示歷史、【政治】、簡介、返回

,//第二層,北京大學層下顯示歷史、政治、【簡介】、返回

,//第二層,北京大學層下顯示歷史、政治、簡介、【返回】

,//第二層,重慶三峽學院層下顯示【簡介】、最佳院系、最佳實驗室、返回

,//第二層,重慶三峽學院層下顯示簡介、【最佳院系】、最佳實驗室、返回

,//第二層,重慶三峽學院層下顯示簡介、最佳院系、【最佳實驗室】、返回

,//第二層,重慶三峽學院層下顯示簡介、最佳院系、最佳實驗室、【返回】

,//第三層,清華大學地點層

,//第三層,清華大學創時間層

,//第三層,清華大學簡介層

,//第三層,北京大學歷史層

,//第三層,北京大學政治層

,//第三層,北京大學簡介層

,//第三層,重慶三峽學院簡介層

,//第三層,重慶三峽學院最佳院系層

,//第三層,重慶三峽學院最佳實驗室層

,//第0層};

intmain

(void)if

(keydown==0)

if(keyenter==0)

init_lcd()

;}current_operation_index=table[func_index]

.current_operation;

(*current_operation_index)()

;//執行當前操作函式

}}

python 多級選單 python多級選單

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 dic china 直轄市 北京市 東城區 西城區 崇文區 宣武區 朝陽區 海淀區 豐台區 石景山區 門頭溝區 房山區 通州區 順義區 昌平區 大興區 懷柔區 平谷區 延慶縣 密雲縣 省 浙江省 杭州市 拱墅區 上城區 下城區 江乾區 西湖區 濱江區 蕭...

Excel實現多級選單聯動

開啟excel辦公 將我們需要聯動的多級選單資料按排版方式編寫好,如下 我這裡用 省 地級市 縣級市 鄉鎮 排版 1.首先我們定位到省級選單,選中a1 b5單元格,按ctrl g快捷鍵調出 定位 對話方塊,選擇 定位條件 後點選 常量 確定 2.在選單欄點選 公式 依次選擇 根據所選內容建立定義名稱...

python 多級選單(多級登入)

1 簡單繁多版 未優化之前 author liangchen date 2019 8 15 menu 東湖區 吉安 吉水 上海 嘉定新城 徐匯 徐家匯站 廣東 白石山 惠州 人字岡 flag true while true and flag for i in menu print i select1...