基于AVR單片機的控制系統設計
引言
本文引用地址:http://www.j9360.com/article/267092.htm現在許多的系統都采用了多通道Input/Output的設計,控制系統的設計也日趨復雜、龐大,所以有必要將控制電路單獨分離出來。過去許多系統均采用C51系列單片機作為控制電路,但其功能有限,電路設計較為復雜、影響了系統的穩定性,也不易擴展。本文介紹的AVR單片機由美國ATMEL公司生產,采用RISC指令集,內置RAM及可以擦寫數千次的FLASH,采用哈佛結構,速度較快。ATmega128為此系列中功能最強大的一款,用于設計控制系統能適應現時復雜系統的要求。
AVR單片機介紹
ATMEL公司是世界上著名的高性能低功耗非易失性存儲器和數字集成電路的一流半導體制造公司。AVR單片機由ATMEL公司開發,是過去12年里第一個新發布的8位RISCMCU,執行大多數指令只需一個時鐘周期速度快(8MHzAVR≈200MHzC51)。其32個通用寄存器直接與ALU相連,消除了運算瓶頸;同時由于C編譯專家的參與,C代碼效率極高;用戶在享受C語言帶來的極大便利的同時無需擔心消耗更多的資源。芯片內嵌可串行下載或自我編程的FLASH和E2PROM.具有以下功能:電壓檢測BOD復位源寄存器看門狗、PWM、10位A/D、模擬比較器、UART、I2C、SPI、實時時鐘等。具有Idle/Power-Save和Power-Down等低功耗運行模式,可電平中斷喚醒PowerDown.同時具有完整產品線,FLASH從1KB到128KB,E2PROM從64B到4KB,SRAM從128B到4KB,引腳數從8到64.
其中Atmeg128為AVR系列中的代表性產品之一。相比其它產品,該芯片有以下特性:
(1)先進的RISC結構:133條功能強大的指令,大部分在單時鐘周期內完成,32×8個通用工作寄存器+外設控制寄存器,最高可工作在16MHz下,性能可達16MIPS;片內帶有執行時間為2個時鐘周期的硬件乘法器。
(2)程序和數據存儲區:128kB在線可編程Flash存儲器,可反復擦寫1000次;可通過獨立的加密位選擇引導程序代碼段,可通過片內引導程序實現在線系統編程,寫操作時真正可讀;4kB的EEPROM存儲區,可反復擦寫100,000次。4kB的片內SRAM存儲區,可外部擴展為64kB.
系統硬件設計框架
硬件系統主要由CPU(AVR單片機)、人機操作和顯示接口(液晶顯示、鍵盤、指示燈和蜂鳴器)、通信接口組成。系統框圖如圖1所示

圖1系統硬件設計框圖
CPU為核心處理器件,通過I/O接口方式或A/D總線方式與液晶、顯示鍵盤、指示燈和蜂鳴器交互,作者實現了兩個版本,分別采用I/O方式和A/D總線方式。通信接口主要用到了UART接口和擴展的網絡接口。其中UART提供了RS-232和RS-485接口,RS-232提供全雙工單對單通信同時,而RS-485以主/從方式與系統的多個部分通信,可用于多通道的輸入輸出設備。該芯片本身并不帶網絡接口,通過擴展一個W3100A連接RT-L8201(L)芯片,實現TCP/IP協議棧,從而使設備可以接入LAN,實現在LAN內的遠程控制管理和監控。
系統軟件結構
系統軟件體系分為幾個部分:
(1)系統的循環檢測部分,用于檢測各通道的系統設備工作是否正常,出現異常時則通過三色指示燈報警(綠色代表正常,紅色代表異常,黃色為中間狀態)。
(2)系統的設置部分,接受用戶按鍵,用戶可以在GUI上設置希望設置的參數。
(3)網絡接口部分,此時單片機系統不參與設置,主要功能將網絡部分獲得的數據導至各通道。軟件系統的核心部分在于菜單結構的設計。
本系統采用一種基于節點編號的三叉樹狀菜單的設計。將整個菜單看作一個菜單樹,每個界面對應于樹中的一個節點,父節點為當前菜單的上一級菜單;右節點為當前菜單的“兄弟”菜單,亦即上級菜單的其余子菜單。
我們采用對節點編號的方式將整個菜單樹串起來,通過識別節點編號(ID)就能知道該節點處于哪一級菜單,同時也便于我們將菜單數初始化。編號方式:每級子菜單的編號為上級父菜單ID乘以10再加上該級子菜單在上級菜單中對應的子項號(1,2,3.),我們將根節點ID編號為1,則根節點菜單的子菜單對應的ID分別為11,12,13.ID為11的節點的下級菜單ID為:111,112,113.一個樹型結構菜單的結構和ID編號的實例如圖2所示。
Typedef structmenu{ long ID; / /當前菜單ID void ( * disp laymenu) ( long i, unsigned char j) ; / /當前菜單對應處理函數char cur; / /當前菜單子項char total; / /子菜單總數structmenu * up, * down, * right; / /毗鄰子菜單}MENU;

圖2一個菜單樹的實例
c語言相關文章:c語言教程
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
蜂鳴器相關文章:蜂鳴器原理
評論