基于A(yíng)Tmega64的顯示控制系統設計

圖2液晶模塊接口電路
3系統軟件架構
AVR單片機的軟件開(kāi)發(fā)使用的集成開(kāi)發(fā)環(huán)境是Atmel公司提供的AVR Studio.為了能夠使用C語(yǔ)言進(jìn)行軟件開(kāi)發(fā),還必須另外安裝C編譯器。目前有許多關(guān)于A(yíng)VR的C編譯器,常用的是GCC(即WINAVR)、ICC、IAR以及CodeVisionAVR等。其中GCC是公開(kāi)源代碼的自由軟件,使用它完全不必考慮價(jià)格因素,因此無(wú)論是GCC本身還是與CCC配套的AVR編譯包,其更新速度和效率都是其他開(kāi)發(fā)工具所不能比擬的。用GCC編寫(xiě)的源程序可讀性和可移植性都很高。本文所涉及到的軟件開(kāi)發(fā)就是利用AVR Studio和GCC.
3.1 系統軟件整體框架
整個(gè)終端顯控系統的功能就是為了能夠顯示設備內部工況,并能夠設置一些參數,所以最主要的就是顯控系統跟設備主機之間的數據交互以及美觀(guān)舒適的人機交互界面。數據交互以及界面的切換也要配合鍵盤(pán)的操作。同時(shí)應當增加睡眠模式,即平時(shí)不進(jìn)行操作的時(shí)候可以關(guān)閉背光燈,關(guān)掉一些模塊,當用戶(hù)使用鍵盤(pán)的時(shí)候,產(chǎn)生鍵盤(pán)中斷,從睡眠模式喚醒。因此我們可以定出系統軟件的基本架構,如圖3所示。

圖3主程序流程圖
3.2樹(shù)狀菜單界面的軟件設計
可以看出系統軟件整體框架也比較簡(jiǎn)單,重點(diǎn)是在于如何跟設備主機進(jìn)行數據交互,同時(shí)配合菜單顯示,下面我們就介紹一種樹(shù)狀菜單界面的軟件設計。這種方法將整個(gè)菜單看作一個(gè)樹(shù)形結構,每個(gè)菜單界面則是菜單樹(shù)上的一個(gè)節點(diǎn):其父節點(diǎn)為當前菜單的上一級菜單,子節點(diǎn)為當前菜單的第一個(gè)子菜單;左右節點(diǎn)為當前菜單的兄弟菜單,也就是其上一級菜單的其余子菜單。
對每個(gè)節點(diǎn)進(jìn)行編號,定義一個(gè)長(cháng)整數D為節點(diǎn)號,根節點(diǎn)D=l,考慮到有的節點(diǎn)其子菜單大于10,子菜單為父菜單ID乘100再加上下級菜單在上級菜單中對應的子項ID(1,2,……),這樣第1級子菜單的ID就分別為101,102,103.對應IDl01的下級ID即為10101,10102,10103……,這樣,不同的按鍵操作對應不同的菜單節點(diǎn)搜索方法,即每次只需要修改全局的節點(diǎn)號ID即可。我們同時(shí)還可以定義幾個(gè)全局變量來(lái)代表每級菜單的子菜單數、鄰近菜單數以及菜單類(lèi)型,這樣,我們可以更加方便的在各個(gè)菜單之間切換。鍵盤(pán)配合菜單切換的程序流程如圖4所示。

圖4菜單選擇程序流程本文引用地址:http://dyxdggzs.com/article/160834.htm
評論