基于ATmega64的顯示控制系統設計

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

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

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