新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 按鍵與菜單在嵌入式系統(tǒng)中的設(shè)計(jì)與應(yīng)用

按鍵與菜單在嵌入式系統(tǒng)中的設(shè)計(jì)與應(yīng)用

作者: 時(shí)間:2012-03-21 來(lái)源:網(wǎng)絡(luò) 收藏

4.采用專用的鍵盤芯片

采用專用芯片設(shè)計(jì)的鍵盤接口電路,具有操作簡(jiǎn)便,可靠性好等優(yōu)點(diǎn),但會(huì)提高產(chǎn)品造價(jià),所以在實(shí)際使用時(shí)可根據(jù)需要進(jìn)行選取。8279作為常用的并口鍵盤控制芯片可控制8×8的鍵盤矩陣,但其本身為并口傳輸,而且控制線較多,所以占用很多外部資源。ZLG7290為新型的I2C通訊的鍵盤、LED控制芯片,最多可控制8×8的鍵盤矩陣。由于采用了串行總線的通訊方式,所以占用I/O資源少,效率高。關(guān)于采用芯片設(shè)計(jì)鍵盤的電路與操作可參考有關(guān)數(shù)據(jù)手冊(cè),在此不再贅述。

隨著半導(dǎo)體工業(yè)的發(fā)展,CPLD以其功能強(qiáng)大、開發(fā)成本低和保密性好等優(yōu)點(diǎn)已經(jīng)成為硬件設(shè)計(jì)中不可缺少的組成部分之一。在數(shù)字電路設(shè)計(jì)中,設(shè)計(jì)者完全可以根據(jù)自己的實(shí)際需要編寫一片具有鍵盤掃描、液晶驅(qū)動(dòng)、打印控制等諸多功能的CPLD芯片。

三、的結(jié)構(gòu)、程序設(shè)計(jì)模式及鍵盤的搭配設(shè)計(jì)

與鍵盤一起可構(gòu)成良好的人機(jī)交互界面,與LED和其它提示信號(hào)相比采用液晶提供的方式可提供給用戶更多的幫助信息,更友好的交互方式。但如果菜單的結(jié)構(gòu)設(shè)計(jì)混亂,提示信息不明確,則可能會(huì)讓用戶不知所措,會(huì)比沒(méi)有菜單的系統(tǒng)更難以使用,所以良好的菜單與程序流程設(shè)計(jì)是產(chǎn)品成功的重要保障。菜單設(shè)計(jì)務(wù)必要做到結(jié)構(gòu)清晰、功能明確,幫助語(yǔ)句無(wú)歧義。良好的菜單設(shè)計(jì)除包括基本的工作流程選擇外,還應(yīng)包括重要決策的再次確定和功能返回,以防止操作人員的失誤。在設(shè)計(jì)中對(duì)不同的功能可根據(jù)實(shí)際情況分組,采用子菜單方式,以簡(jiǎn)化人機(jī)操作界面?!耙绘I多意”式設(shè)計(jì)一定要注意區(qū)分“抖動(dòng)”與“雙擊”——它們的時(shí)間間隔有著顯著的差別。在事件的處理上也分為檢測(cè)到事件即進(jìn)行處理和待按鍵彈起后再進(jìn)行處理兩種,可根據(jù)實(shí)際需要進(jìn)行選取。

具有菜單提示的系統(tǒng)因交互信息豐富可采用兩套按鍵式結(jié)構(gòu),一套用來(lái)執(zhí)行選擇功能即上、下、左、右鍵,另一套用來(lái)輸入數(shù)據(jù)、確定操作。減少按鍵的數(shù)量可降低產(chǎn)品的操作難度,良好的按鍵、菜單搭配還可防止產(chǎn)品的誤操作,屏蔽不應(yīng)執(zhí)行的動(dòng)作,提高產(chǎn)品的容錯(cuò)性。在實(shí)際設(shè)計(jì)中還要采用程序流程圖輔助設(shè)計(jì)。

在裸機(jī)編程中,菜單的結(jié)構(gòu)一般與程序的結(jié)構(gòu)相對(duì)應(yīng),多采用按鍵事件觸發(fā)式程序設(shè)計(jì)結(jié)構(gòu),在C語(yǔ)言中通常采用的按鍵散轉(zhuǎn)結(jié)構(gòu)是switch case 結(jié)構(gòu)。值得說(shuō)明的是嵌入式C語(yǔ)言設(shè)計(jì)與臺(tái)式機(jī)不同,在沒(méi)有使用OS的中嵌入式程序?yàn)橐粋€(gè)超級(jí)循環(huán)結(jié)構(gòu),即程序一般一直運(yùn)行直至系統(tǒng)掉電。所以在執(zhí)行完散轉(zhuǎn)功能后,程序不是退出而是返回到某個(gè)初始狀態(tài)等待新的命令。為了防止程序受干擾誤入不正常的選擇狀態(tài)可在的正常的散轉(zhuǎn)功能后加入 “default : *(void(*)())0)(); ”語(yǔ)句,該語(yǔ)句使程序返回到最初狀態(tài),即軟復(fù)位操作。在不啟用的中斷入口處,以及檢測(cè)到某些錯(cuò)誤時(shí)也可使用“*(void(*)())0)();”語(yǔ)句使系統(tǒng)軟復(fù)位。

中,與裸機(jī)編程相對(duì)應(yīng)的是操作系統(tǒng)的使用,在資源比較豐富的系統(tǒng)中常采用RTOS,在RTOS中按鍵與菜單的組合常常用來(lái)進(jìn)行任務(wù)的切換。使用RTOS的好處主要是堆棧的管理、中斷的重入和不同任務(wù)之間的切換等問(wèn)題都由系統(tǒng)來(lái)完成,而設(shè)計(jì)者只專注于任務(wù)的設(shè)計(jì),可以縮短研發(fā)周期。但RTOS的使用并不是沒(méi)有代價(jià)的,首先RTOS的使用并不是免費(fèi)的,而且操作系統(tǒng)本身也會(huì)占用MCU資源,,所以在很多小型單片機(jī)上并不適用。

另一種設(shè)計(jì)模式是時(shí)間觸發(fā)式模式,時(shí)間觸發(fā)式模式是基于定時(shí)器中斷設(shè)計(jì)的任務(wù)調(diào)度模式,它采用函數(shù)的指針?lè)绞秸{(diào)度滿足條件的任務(wù)執(zhí)行。與RTOS相比,時(shí)間觸發(fā)式模式更適合功能較小的小型MCU(如51系列),它有更好的可預(yù)測(cè)性,占用更少的CPU資源,程序結(jié)構(gòu)更明確、透明度高。在這種模式下,由定時(shí)器每隔一定的時(shí)間間隔調(diào)度刷新函數(shù),確定可執(zhí)行的函數(shù)(功能),再通過(guò)主函數(shù)中的調(diào)度函數(shù)根據(jù)函數(shù)指針依次調(diào)用具備條件的函數(shù)。在調(diào)度器(調(diào)度函數(shù))中還可加入設(shè)置CPU閑置的語(yǔ)句,可在無(wú)任務(wù)時(shí)使CPU處于idle狀態(tài),以降低系統(tǒng)的功耗和提高抗干擾的能力。在這種小型系統(tǒng)中,因功能相對(duì)簡(jiǎn)單,菜單結(jié)構(gòu)也可設(shè)計(jì)的盡量簡(jiǎn)單,明確提出可執(zhí)行的任務(wù),減少CPU在刷新顯示上的時(shí)間。按鍵掃描子程可作為一項(xiàng)任務(wù)由調(diào)度器每隔一定的時(shí)間間隔調(diào)度,如果兩次調(diào)用的時(shí)間間隔大于5ms則可省略防抖功能。按鍵信息在這里同樣不會(huì)引起功能的立即執(zhí)行(程序的跳轉(zhuǎn)),而是改變某個(gè)函數(shù)(功能)的條件位,使其在下次調(diào)度中得到執(zhí)行。由于調(diào)度器兩次調(diào)度的時(shí)間間隔很短,所以并不會(huì)有明顯的延誤現(xiàn)象,可以滿足大多數(shù)的應(yīng)用場(chǎng)合。

四、結(jié)束語(yǔ)

針對(duì)不同的硬件,本文介紹了在中按鍵的軟、硬件設(shè)計(jì)及不同設(shè)計(jì)的優(yōu)缺點(diǎn),并討論了菜單設(shè)計(jì)和程序模式之間的關(guān)系。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 按鍵 菜單 嵌入式系統(tǒng)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉