<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)Tmega64的顯示控制系統設計

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

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

  1 引言

本文引用地址:http://dyxdggzs.com/article/270057.htm

  隨著(zhù)信息產(chǎn)業(yè)的迅速發(fā)展,作為信息顯示終端之一的LCD器件也得到了空前的發(fā)展。液晶顯示器(LCD)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無(wú)法比擬的優(yōu)點(diǎn)。近些年來(lái)被廣泛應用于單片機控制的智能儀器、儀表和低功耗電子產(chǎn)品中。為L(cháng)CD配置驅動(dòng)電路,就形成了液晶顯示模塊LCM(Liquid Crystal Module)。它的基本組成部件除了LCD、驅動(dòng)電路外一般還有連接件、背光源等。液晶顯示模塊同一個(gè)系統中的其他電路一樣,有簡(jiǎn)單的接口,并提供了豐富的控制顯示的指令系統。為整機的開(kāi)發(fā)節約了時(shí)間。AVR單片機是Atmel公司推出的具有精簡(jiǎn)指令集RISC結構的新型8位單片機。具有豐富的硬件接口。它采用低功耗、非揮發(fā)的CMOS工藝制造,內部分別集成Flash、EEPROM和SRAM三種不同性能和用途的存儲器。除了可以通過(guò)SPI口和一般的編程器對AVR單片機的Flash程序存儲器和EEPROM數據存儲器進(jìn)行編程外,大多數的AVR單片機還具有ISP在線(xiàn)編程和IAP在級應用編程的特點(diǎn)。其中一些高檔的AVR單片機,例如、ATmegal28等還具有mG接口。這些優(yōu)點(diǎn)為使用AVR單片機開(kāi)發(fā)設計和生產(chǎn)產(chǎn)品提供了極大的方便。

  介紹了圖像點(diǎn)陣式液晶模塊CM320240與AVR單片機相結合實(shí)現終端設備的一種方法。給出了硬件電路的設計以及系統軟件架構的搭建,并闡述了一種樹(shù)形菜單界面的設計方法。

  2系統硬件設計

  2.1 液晶模塊CM3XPA0-7及單片機簡(jiǎn)介

  CM320240-7是一個(gè)中英文文字與繪圖模式的點(diǎn)陣式液晶顯示模塊(LCM),點(diǎn)陣數是320*240。內建512KB的ROM字型碼,可以顯示中文字型、數字符號、英日歐文等字母。在文字模式中,可接受標準中文文字內碼直接顯示中文,而不需要進(jìn)入繪圖模式描述中文,可以節省許多微處理器時(shí)間,提升液晶顯示中文的處理效率。ATmaga64是一款高檔的AVR單片機,具有豐富的硬件資源。

  (1)先進(jìn)的RISC結構,130條指令,大多數指令執行時(shí)間為單個(gè)時(shí)鐘周期,32個(gè)8位通用工作寄存器。全靜態(tài)工作,工作于16MHz時(shí)性能高達16MIPs,只需兩個(gè)時(shí)鐘周期的硬件乘法器。

  (2)非易失性程序和數據存儲器。64K字節系統可編程Flash,具有獨立鎖定位的可選Boot代碼區,通過(guò)片上Boot程序實(shí)現系統內編程真正的讀寫(xiě)同時(shí)操作2K字節的EEPROM,4K字節片內SRAM,64K字節可選外部程序存儲空間,可以對鎖定位進(jìn)行編程以實(shí)現用戶(hù)程序的加密。

  (3)JTAG接口(與IEEE1149.1標準兼容),符合JrI'AG標準的邊界掃描功能,支持擴展的片內調試功能,可以通過(guò)JTAG接口實(shí)現Flash、EEPROM、熔絲位和鎖定位的編程。

  (4)外設豐富,兩個(gè)具有獨立預分頻器和比較器功能的8位定時(shí)器/計數器。兩個(gè)具有預分頻器、比較功能和捕捉功能的16位定時(shí)器/計數器。具有獨立振蕩器的實(shí)時(shí)計數器RTC,兩路8位PWM通道。8路十位ADC,面向字節的兩線(xiàn)接口'冊,與12C完全兼容。兩個(gè)可編程的串行USART,可工作于主杌/從機模式的SPI串行接口。具有獨立片內振蕩器的可編程看門(mén)狗定時(shí)器。

  (5)還具有一些特殊的處理器特點(diǎn):上電復位以及可編程的掉電檢測,片內經(jīng)過(guò)標定的RC振蕩器,軟件選擇時(shí)鐘頻率,具有六種睡眠模式。

  2.2系統硬件組成

  系統硬件平臺主要由MCU、人機接口(液晶模塊和鍵盤(pán))、通信接口三部分組成,系統框圖如圖1所示。

  

 

  圖1系統硬件框圖

  單片機與設備主機之間使用標準的UART串口通信,硬件接13比較簡(jiǎn)單,加一片TTL到RS232的電平轉換芯片即可。

  鍵盤(pán)我們采用常用的六鍵小鍵盤(pán),即回車(chē)、返回、上、下、左、右。由于A(yíng)Tmega64單片機的I/O資源比較豐富,共有53個(gè)可編程的I/O口,并且我們采用六鍵鍵盤(pán),因此可以直接將按鍵連到I/O口上面。如果使用較多的按鍵開(kāi)關(guān),還可以使用矩陣鍵盤(pán)的方式以節省I/O,這里不贅述。AVR單片機的I/O端口具有上拉電阻,所以我們無(wú)需加外部上拉電阻,只需軟件初始化的時(shí)候使能這些按鍵接口的上拉電阻即可。將每個(gè)按鍵的一端接地,另一端除了分別連接到PC0一PC5端口之外,還連接到一個(gè)與非門(mén)上面,與非門(mén)的輸出腳連到單片機的一個(gè)外部中斷上面。這樣,當任意一個(gè)按鍵按下的時(shí)候。與非門(mén)的輸出都由低變高,使單片機產(chǎn)生中斷。所以既可以使用查詢(xún)方式進(jìn)行鍵盤(pán)操作,也可以使用中斷方式,增加了設計靈活性。

  CM320240-7液晶模塊支持8080和6800系列的MCU,同時(shí)也提供了4一Bit或8一Bit的數據總線(xiàn)接口。我們這里使用的是8080方式下的8一Bit數據總線(xiàn)接口,8080系列MCU與6800系列的MCU最大的不同是讀、寫(xiě)的控制信號是分開(kāi)的,RD為低時(shí)進(jìn)行讀取動(dòng)作,WR為低時(shí)進(jìn)行寫(xiě)入動(dòng)作。MCU對液晶模塊的命令寄存器和DisplayRAM進(jìn)行讀寫(xiě)操作時(shí)是有一些不同的:如果是對寄存器進(jìn)行讀寫(xiě)操作,MCU必須先通過(guò)數據總線(xiàn)送出寄存器的地址,然后才能在數據總線(xiàn)上讀寫(xiě)寄存器資料;如果是對DisplayRAM進(jìn)行讀寫(xiě)操作,MCU可以直接在數據總線(xiàn)上讀取和寫(xiě)入DisplayRAM的資料。需要注意的是:初始化的時(shí)候,讀寫(xiě)控制信號一定先置高,讀寫(xiě)操作都禁能,否則會(huì )造成后面時(shí)序的紊亂,即使后面的讀寫(xiě)程序正確,液晶模塊也不會(huì )有任何顯示。AVR單片機的IO管腳即使不用,初始化的時(shí)候也要給它一個(gè)確定的狀態(tài),否則容易出問(wèn)題。

  液晶模塊的八位數據總線(xiàn)直接連到單片機的PA口上面,幾個(gè)控制管腳連到單片機的普通IO上即可。值得注意的就是液晶模塊對比度的控制,在LCD驅動(dòng)電壓輸入端V0和LCD驅動(dòng)電壓輸出端VEE之間必須接一可調電阻,阻值20K左右,用于調節液晶模塊的對比度。VEE輸出固定為-23V.

  通過(guò)實(shí)踐,當Vo輸入為-18V左右的時(shí)候效果最好。我們希望平時(shí)不用的時(shí)候,液晶背光燈關(guān)閉以節省功耗,當進(jìn)行鍵盤(pán)操作的時(shí)候喚醒。所以在液晶模塊背光電源的輸人端加一個(gè)開(kāi)關(guān)管控制。液晶模塊與ATmaga64單片機的接口電路如圖2所示。

  

 

  圖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菜單選擇程序流程

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


led顯示器相關(guān)文章:led顯示器原理


分頻器相關(guān)文章:分頻器原理
上拉電阻相關(guān)文章:上拉電阻原理


關(guān)鍵詞: ATmega64 顯示控制

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>