亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
單片機多級菜單編程的設計思路與理解
[打印本頁]
作者:
liu100m
時間:
2018-11-2 09:10
標題:
單片機多級菜單編程的設計思路與理解
多級菜單編程
的設計思路:
預先定義一個包含
6
個結
構
元素的結構體
、
5
個字符型和
1
個指針
型
。
第
1
個字符
變
量存放當前界面的索引號;
第
2
個字符
變
量存放按下
“
d
o
wn
(向下)
”
鍵時需要跳轉到的索引號;
第
3
個字符
變
量存放按下
“u
p
(向上)
”
鍵時需要跳轉到的索引號;
第
4
個字符
變
量存放按下
“
e
n
t
er
(進入)
”
鍵時需要跳轉的索引號;
第
5
個字符
變
量存放按下
“
e
s
c
(退出)
”
鍵時需要跳轉的索引號;
第
6
個變量
為
函數指針變量,存放當前索引號下需要執行的函數的入口地址。
將所有需要顯示的界面其所對應的執行函數和按鍵索引號以結構體的形式列表存儲。具體實現如下:
typed
e
f
s
truct
{
uchar
ind
e
x;
/
/
第
1
個
,
存放當前界面的索引號
uchar
d
o
wn
_
ind
e
x;
/
/
第
2
個
,
按下
“
d
o
w
n
(向下)
”
鍵時需要跳轉到的索引號
uchar
up_ind
e
x;
/
/
第
3
個
,
按下
“u
p
(向上)
”
鍵時需要跳轉到的索引號;
uchar
e
n
t
er_
i
nd
e
x;
/
/
第
4
個
,
按下
“
e
n
t
er
(進入)
”
鍵時需要跳轉的索引號;
uchar
e
s
c_ind
e
x;
/
/
第
5
個當前索
引
號下需要執行
的函數
的
入口地址。
void
(
*oper
a
te)();
//
第
6
個函數指針
}
K
e
y_
i
nd
e
x_
s
t
ruct;
假
設
菜
單分
3
級,
共
10
個
界
面
,則
有
:
K
e
y_
i
nd
e
x_
s
truct
c
on
s
t
K
e
y_
t
ab[
10]=
//
|
--------
-
-->
In
d
ex
//
|
|
dow
n
(下)
//
|
|
|
up
(
上)
//
|
|
|
|
Ent
e
r
(確認)
//
|
|
|
|
|
Esc
(退出)
--->
功能函數
//
|
|
|
|
|
{
0,
1,
2
,
3
,
4
,
(
*Dis
p
Menu
T
op)},
/
/
待機畫面
{
{
0,
0,
0,
1,
0
,
(
*main_menu)},
{1,
2,
3,
4,
0
,
(
*
sub_menu1)},
{2,
3,
1,
5,
0,(*
s
ub_menu2)},
{3,
1,
2,
7,
0
,
(
*
sub_menu3)},
{4,
4,
4,
4,
1
,
(
*
sub_menu1_1)},
{5,
6,
6,
5,
2,
(
*
s
ub_menu2_1)},
{6,
5,
5,
5,
2
,
(
*
sub_menu2_2)},
{7,
8,
9,
7,
3
,
(
*
sub_menu3_1)},
{8,
9,
7,
8,
3
,
(
*
sub_menu3_2)},
{9,
7,
8,
9,
3
,
(
*
sub_menu3_3)},
};
/******
*
******
*
***
*
*
*
*
***
*
***
*
*
*
*
***
*
***
*
*
*
*
***
*
***
*
*
索引號在
結構圖
中,讀者可以標上
/******
*
******
*
***
*
*
*
*
***
*
***
*
*
*
*
***
*
***
*
*
*
*
***
*
***
*
*
*
*
**
v
oid
Lcd_di
s
p
l
a
y(
v
oid)
{
s
wi
t
ch(
K
e
y_
s
t
a
tus)
{
c
ase
e
n
t
er:
K
e
y_
f
un=
K
e
y_
t
ab[
K
e
y_
f
un]
.
e
n
t
er_
i
nd
e
x;
b
r
eak;
c
ase
d
o
wn:
K
e
y_
f
u
n=
K
e
y_
t
ab[
K
e
y_
f
un]
.
d
o
wn_ind
e
x;
b
r
eak;
c
ase
up:
K
e
y_
f
un=
K
e
y_
t
ab[
K
e
y_
f
un]
.
up_ind
e
x;
b
r
eak;
c
ase
e
s
c:
K
e
y_
f
un=
K
e
y_
t
ab[
K
e
y_
f
un]
.
e
s
c_ind
e
x;
b
r
eak;
d
e
f
ault:
r
e
tu
r
n;
b
r
eak;
}
K
e
y_
f
un_
P
t=
K
e
y_
t
ab[
K
e
y_
f
un].ope
r
a
t
e;
(*
K
e
y_
f
un_
P
t
)
();/
/
執行當
前
按鍵的操作
}
當微處理
器
掃描鍵盤
檢
測到有按
鍵
按下時,
根
據按鍵按
下
的類型,
返
回在當前
界
面
下
其
所對應的跳轉索引號,并執行相應的函數。
這段程序隱含一狀態機
-
-
--
-
通過
按
不同的鍵改變狀態。
結構圖與這一段代碼可理解為狀態機。
{1,
2,
3,
4
,
0
,
(*
s
ub_me
n
u1)}
,
這些
數
字代表
不同階段不同狀態的
索引號。
按
鍵
按
下
表示
在
各
個
狀
態之
間
跳
轉
。
可理
解
為
狀
態
機,
然
后
根
據
按鍵
掃
描
返
回
的鍵
值
,
決
定
所
要
跳轉的下一狀態。
系統啟動初始化是顯示
Ma
i
n_
me
n
u
界面
,
當按鍵檢測有返回值
(
即有按鍵按下
)
時,根據按下的按
鍵所代表的操作跳轉到指定的狀態。
例如:按下
Up
或者是
d
o
wn
鍵
時,只是在
Mai
n
_m
e
nu
界面
內
高亮顯示不同區域;
按下
E
n
t
er
時
,
則要根據原來按下的
Up
和
d
o
wn
鍵來選
擇
需要
跳轉的方向
。
假設在按下
E
n
t
er
之前僅按下一次
d
o
wn
鍵
,
則
k
e
y_v
的值為
2
(
k
e
y_v
的
值默認為
1
,
即
默認選中子菜
單的第一項
)
,就跳轉為
Sub_menu2
界面。
注:也可以自己任定。
k
e
y_v
的值,第一級(
0
-
10
)
,第二級
100
-
150
,
第
三級
1000
-
1100
方便寫程序。
按下
Esc
鍵時
,
為從子菜單返回到上一級菜單
,如果已經是主菜單了則返回的還是主菜單。
狀態機
,
只有發生一次有效的按鍵
,
狀態才會發生一次跳轉
。
而且
,
僅當
E
n
t
er
和
E
s
c
鍵按下時
,
才
會
切換界面
。
多
級
菜
單
的
程
序
流
程
。
系
統
上
電
初
始
化
后
顯
示
主
菜
單
,
鍵
盤
掃
描
可
以
通
過
主
程
序
用
中
斷
掃
描
來
實
現
,
最終根據鍵盤返回的鍵值選擇下一狀態。
結語
多級菜單的實現方式具有很強的實用性。程序的本質是數組,與函數指針的組合應用。
在芯片中只有二進制碼,沒有什么結構圖,指針,狀態圖。
同一程序可畫結構圖來理解,
同一程序可畫狀態圖來理解。
以上的Word格式文檔51黑下載地址:
單片機多級菜單編程的理解.zip
(504.08 KB, 下載次數: 565)
2018-11-2 09:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
經緯
時間:
2018-11-13 20:25
謝謝分享
作者:
wangsheng1997
時間:
2018-12-18 20:28
很不錯。
作者:
wangsheng1997
時間:
2018-12-18 20:30
可以下載嗎!
作者:
wangpan04321
時間:
2019-5-29 10:13
感謝分享
作者:
catking3119
時間:
2019-6-23 21:24
感謝樓主分享,但是附件是此篇文章PDF版本,讓我有點失望啊
作者:
hilam
時間:
2019-10-4 10:24
資料不錯,但假如我的子菜單名稱是不固定的呢,例如一級菜單第二項是設置,第二級菜單是電機PID參數,要求在菜單中實時顯示PID變化 參數,這個框架應該怎樣修改?
作者:
ygflsa
時間:
2019-11-23 15:58
看不懂這個怎么執行的
{ 0, 1, 2, 3, 4,(*DispMenuTop)},// 待機畫面
作者:
ygflsa
時間:
2019-12-1 13:07
下載什么是沒有.還口我10黑幣
作者:
jifengjianwu
時間:
2020-1-15 09:46
謝謝樓主分享
作者:
jifengjianwu
時間:
2020-5-4 19:36
謝謝分享
作者:
布萊克先生
時間:
2020-9-7 15:24
感謝樓主的解答
作者:
紫色的云
時間:
2020-12-12 10:56
謝謝樓主的分享,最近正在學習多級菜單的編寫
作者:
西點鐘靈毓秀
時間:
2021-10-22 15:09
謝謝樓主的分享,最近正在學習多級菜單的編寫
作者:
n_n
時間:
2021-12-6 16:04
謝謝樓主的分享,最近正在學習多級菜單的編寫
作者:
993347045
時間:
2022-3-15 10:25
感謝分享,共同進步
作者:
飛揚1023
時間:
2022-10-17 15:40
感謝分享,共同進步
作者:
fangbolin
時間:
2023-7-19 16:21
很好的思路
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1