基于ATmega64的顯示控制系統(tǒng)設(shè)計
圖2液晶模塊接口電路
3系統(tǒng)軟件架構(gòu)
AVR單片機(jī)的軟件開發(fā)使用的集成開發(fā)環(huán)境是Atmel公司提供的AVR Studio.為了能夠使用C語言進(jìn)行軟件開發(fā),還必須另外安裝C編譯器。目前有許多關(guān)于AVR的C編譯器,常用的是GCC(即WINAVR)、ICC、IAR以及CodeVisionAVR等。其中GCC是公開源代碼的自由軟件,使用它完全不必考慮價格因素,因此無論是GCC本身還是與CCC配套的AVR編譯包,其更新速度和效率都是其他開發(fā)工具所不能比擬的。用GCC編寫的源程序可讀性和可移植性都很高。本文所涉及到的軟件開發(fā)就是利用AVR Studio和GCC.
3.1 系統(tǒng)軟件整體框架
整個終端顯控系統(tǒng)的功能就是為了能夠顯示設(shè)備內(nèi)部工況,并能夠設(shè)置一些參數(shù),所以最主要的就是顯控系統(tǒng)跟設(shè)備主機(jī)之間的數(shù)據(jù)交互以及美觀舒適的人機(jī)交互界面。數(shù)據(jù)交互以及界面的切換也要配合鍵盤的操作。同時應(yīng)當(dāng)增加睡眠模式,即平時不進(jìn)行操作的時候可以關(guān)閉背光燈,關(guān)掉一些模塊,當(dāng)用戶使用鍵盤的時候,產(chǎn)生鍵盤中斷,從睡眠模式喚醒。因此我們可以定出系統(tǒng)軟件的基本架構(gòu),如圖3所示。
圖3主程序流程圖
3.2樹狀菜單界面的軟件設(shè)計
可以看出系統(tǒng)軟件整體框架也比較簡單,重點是在于如何跟設(shè)備主機(jī)進(jìn)行數(shù)據(jù)交互,同時配合菜單顯示,下面我們就介紹一種樹狀菜單界面的軟件設(shè)計。這種方法將整個菜單看作一個樹形結(jié)構(gòu),每個菜單界面則是菜單樹上的一個節(jié)點:其父節(jié)點為當(dāng)前菜單的上一級菜單,子節(jié)點為當(dāng)前菜單的第一個子菜單;左右節(jié)點為當(dāng)前菜單的兄弟菜單,也就是其上一級菜單的其余子菜單。
對每個節(jié)點進(jìn)行編號,定義一個長整數(shù)D為節(jié)點號,根節(jié)點D=l,考慮到有的節(jié)點其子菜單大于10,子菜單為父菜單ID乘100再加上下級菜單在上級菜單中對應(yīng)的子項ID(1,2,……),這樣第1級子菜單的ID就分別為101,102,103.對應(yīng)IDl01的下級ID即為10101,10102,10103……,這樣,不同的按鍵操作對應(yīng)不同的菜單節(jié)點搜索方法,即每次只需要修改全局的節(jié)點號ID即可。我們同時還可以定義幾個全局變量來代表每級菜單的子菜單數(shù)、鄰近菜單數(shù)以及菜單類型,這樣,我們可以更加方便的在各個菜單之間切換。鍵盤配合菜單切換的程序流程如圖4所示。
圖4菜單選擇程序流程本文引用地址:http://2s4d.com/article/160834.htm
評論