智能型充電器的電源和顯示的設(shè)計_第1頁
智能型充電器的電源和顯示的設(shè)計_第2頁
智能型充電器的電源和顯示的設(shè)計_第3頁
智能型充電器的電源和顯示的設(shè)計_第4頁
智能型充電器的電源和顯示的設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 數(shù)理與信息工程學院單片機原理及應(yīng)用期末課程設(shè)計 題 目: 智能型充電器的電源和顯示的設(shè)計 專 業(yè): 計算機科學與技術(shù)(專升本) 班 級: 計算機081班 姓 名: 王 錦 蘭 學 號: 08191112 指導(dǎo)老師: 余 水 寶 成 績: 目 錄第一章 緒 論 41.1 課題背景 41.2畢業(yè)設(shè)計任務(wù)和要求 4第二章 硬件電路設(shè)計 52.1 硬件電路主要芯片 52.1.1 Atmega16L主要引腳說明 52.1.2 Atmega16L的存儲器 72.1.3 Atmega16L的時鐘電路 72.1.4 Atmega16L的系統(tǒng)復(fù)位 72.2 LCD液晶顯示 8 2.2.1 LCD的顯示原 82

2、.2.2 液晶顯示控制驅(qū)動器 82.2.3 液晶顯示模塊的特點 102.3 硬件電路設(shè)計122.4 PROTELL99的應(yīng)用簡介 13第三章 軟件設(shè)計 153.1 用C語言開發(fā)單片機的優(yōu)勢 153.2 液晶顯示漢字或字符的原理163.3 LCD模塊的指令說明 163.4 液晶顯示界面 193.5 系統(tǒng)程序流程圖19第四章 系統(tǒng)調(diào)試過程224.1 系統(tǒng)調(diào)試軟件介紹 224.1.1 ICCAVR編譯器簡介 224.1.2 ICCAVR的設(shè)置 234.2 調(diào)試過程 23第五章 課程設(shè)計總結(jié) 25參考文獻 26第一章緒 論1.1課題背景如今,隨著越來越多的手持式電器的出現(xiàn),對高性能、小尺寸、重量輕的電

3、池充電器的需求也越來越大。電池技術(shù)的持續(xù)進步也要求更復(fù)雜的充電算法以實現(xiàn)快速、安全的充電。因此需要對充電過程進行更精確的監(jiān)控,以縮短充電時間、達到最大的電池容量,并防止電池損壞。與此同時,對充電電池的性能和工作壽命的要求也不斷地提高。從20世紀60年代的商用鎳鎘和密封鉛酸電池到近幾年的鎳氫和鋰離子技術(shù),可充電電池容量和性能得到了飛速的發(fā)展。目前各種電器使用的充電電池主要有鎳鎘電池(NiCd)、鎳氫電池(NiMH)、鋰電池(Li-Ion)和密封鉛酸電池(SLA)四種類型。電池充電是通過逆向化學反應(yīng)將能量存儲到化學系統(tǒng)里實現(xiàn)的。由于使用的化學物質(zhì)的不同,電池有自己的特性。設(shè)計充電器時要仔細了解這些

4、特性以防止過度充電而損壞電。目前,市場上賣得最多的是旅行充電器,但是嚴格從充電電路上分析,只有很少部分充電器才能真正意義上被稱為智能充電器,隨著越來越多的手持式電器的出現(xiàn),對高性能、小尺寸、輕重量的電池充電器的需求也越來越大。電池技術(shù)的持續(xù)進步也要求更復(fù)雜的充電算法以實現(xiàn)快速、安全地充電,因此,需要對充電過程進行更精確地監(jiān)控(例如對充、放電電流、充電電壓、溫度等的監(jiān)控),以縮短充電時間,達到最大的電池容量,并防止電池損壞。1.2 本設(shè)計任務(wù)和要求智能充電器的設(shè)計包括硬件和軟件兩大部分,本人的主要任務(wù)是完成充電器設(shè)計的LCD顯示部分,其主要涉及的知識包括:(1) 自學AVR單片機的相關(guān)內(nèi)容。(2

5、) 設(shè)計電源電路。(3) 設(shè)計128*64液晶顯示控制電路和用C語言編制LCD顯示程序,用圖形方式顯示充電器電壓、電流等參數(shù)。(4) 手工焊接和ICCAVR編譯器的應(yīng)用。 第二章 硬件電路設(shè)計經(jīng)過前面對充電器原理、液晶模塊、ATmega16L等的總體了解和掌握以及對各種元器件和電路圖的分析和比較后,現(xiàn)在就可以開始進入硬件電路的設(shè)計了。在本章里,首先將介紹一下液晶模塊訪問方式的兩種接口電路,然后對LCD顯示電路原理圖作一個詳細的介紹,接著介紹充電電路中所用到的各種芯片和元器件的原理和一些功能,最后對PROTEL99的使用和PCB板的繪制以及焊接做一簡單介紹,然后再將自己的設(shè)計思想和同組人所設(shè)計的

6、兩部分結(jié)合,達成統(tǒng)一。 通過比較再結(jié)合本次設(shè)計的實際條件,由于Atmega16L芯片沒有WR、RD管腳,而且為了使電路簡單且方便軟件實現(xiàn),所以最終決定采用間接控制的方式來設(shè)計LCD顯示電路。2.1 硬件電路主要芯片2.1.1 ATmega16L主要引腳芯片以下是ATmega16L的引腳配置: 圖2-1 ATmega16L芯片引腳引腳說明:VCC 數(shù)字電路的電源GND 地端口A(PA7PA0) 端口A 作為A/D 轉(zhuǎn)換器的模擬輸入端。端口A 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。端口B(PB7PB0) 端口B 為8 位雙向I/O

7、口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。端口C(PC7PC0) 端口C 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。端口D(PD7PD0) 端口D 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。RESET 復(fù)位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復(fù)位。XTAL1 反向振蕩放大器與片內(nèi)時鐘操作電路的輸入端。XTAL2 反向振蕩放大器的輸出端。AVCCAVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時,該引腳應(yīng)直接與VC

8、C連接。使用ADC時應(yīng)通過一個低通濾波器與VCC相連。AREFA/D 的模擬基準輸入引腳。2.1.2 Atmega16L的存儲器AVR結(jié)構(gòu)有兩個主要的存儲空間:數(shù)據(jù)存儲器空間和程序存儲器空間,此外,Atmega16L還有一個EEPROM存儲器以保存數(shù)據(jù)。這三個存儲器都為線性的平面結(jié)構(gòu)。(1) Atmega16L具有16K字節(jié)的在線編程Flash,用于存儲程序指令代碼。因為AVR指令為16位或32位,故Flash組織成8K16的形式。用戶程序的安全性要根據(jù)Flash程序存儲器的兩個區(qū):引導(dǎo)(Boot) 程序區(qū)和應(yīng)用程序區(qū),分開來考慮。 (2) 數(shù)據(jù)存儲器的尋址方式分為5種:直接尋址、帶偏移量的間

9、接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。 (3) ATmega16L 包含512 字節(jié)的EEPROM 數(shù)據(jù)存儲器。它是作為一個獨立的數(shù)據(jù)空間而存在的,可以按字節(jié)讀寫。EEPROM 的壽命至少為100,000 次擦除周期。2.1.3 Atmega16L的時鐘電路單片機的時鐘用于產(chǎn)生工作所需要的時序,其連接電路如下圖: 圖2-2 晶體振蕩器連接圖XTAL1 與XTAL2 分別為用作片內(nèi)振蕩器的反向放大器的輸入和輸出,考慮到其最大頻率不超過8MHz,這里選用的晶振為7.3728MHz。2.1.4 Atmega16L的系統(tǒng)復(fù)位Atmega16L有五個復(fù)位源:(1) 上電復(fù)位。電源電壓

10、低于上電復(fù)位門限Vpot時,MCU復(fù)位。如果在單片機加Vcc電壓的同時,保持RESET引腳為低電平,則可延長復(fù)位周期。Vcc Vpot VpotRESET Vrst VrstTIME-OUTINTERINAL tTOUT tTOUT RESET 圖2-3 RESET引腳與VCC相連時, 圖2-4 RESET引腳由外部控制時, 單片機的復(fù)位電平 單片機的復(fù)位電平(2) 外電復(fù)位。引腳RESET上的低電平持續(xù)時間大于最小脈沖寬度時MCU復(fù)位。VccRESET VrstTIME-OUT tTOUTINTERNALRESET 圖2-5 外部復(fù)位時序圖(3) 看門狗復(fù)位??撮T狗使能并且看門狗定時器溢出時

11、復(fù)位發(fā)生??撮T狗計數(shù)器溢出時,將產(chǎn)生一個晶振的復(fù)位脈沖。Vcc RESET WDT 1 XTAL CycleTIME-OUT RESET tTOUT TIME-OUTINTERNAL RESET 圖2-6看門狗復(fù)位時序圖(4) 掉電檢測復(fù)位。掉電檢測復(fù)位功能使能,且電源電壓低于掉電檢測復(fù)位門限Vpot時MCU即復(fù)位。(5) JTAG AVR復(fù)位。復(fù)位寄存器為1時MCU復(fù)位。2.2 LCD液晶顯示 2.2.1 LCD的顯示原理液晶顯示器是一種功耗極低的顯示器。隨著液晶顯示技術(shù)的發(fā)展,LCD顯示器的規(guī)格眾多,其專用驅(qū)動芯片也相互配套,使LCD在控制和儀表系統(tǒng)中廣泛應(yīng)用提供了極大的方便。要想在液晶模

12、塊上顯示一個漢字或字符,需要3個最基本的控制操作:分別向3個控制器寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)。這里要特別引起注意的是完成這3項操作的前提條件是KS0108B控制器處于準備好的狀態(tài),即BUSY=0,由模塊的軟件特性知道,當BUSY=1時,系統(tǒng)的接口電路處于被封鎖的狀態(tài),是不能接受除讀狀態(tài)指令外的任何操作的。上面已經(jīng)介紹到,MGLS-19264液晶模塊中液晶屏顯示區(qū)為192×64點陣,其中,它們的每8個像素行組成一頁,整個顯示區(qū)共分為8頁,每64列為一個區(qū),這樣,它就有左、中、右3個區(qū),它的顯示區(qū)示意圖如下:左區(qū) 中區(qū) 右區(qū)0 1 2 62 63 64 65 127128 129

13、 191DB0DB7DB0DB7 圖2-7 液晶屏顯示區(qū)示意圖液晶模塊顯示字符是從上到下,從左到右進行顯示的。假設(shè)定義從最左上角開始顯示,則先從上到下顯示第0頁的第一列,依次從左向右開始顯示。MGLS-19264LCM的顯示部分為左、中、右3個區(qū),可以由CS片選的取值分別進行控制,其接口的片選定義如下:表2-1 MGLS的片選定義表CS1CS2選中區(qū)域 0 0 左區(qū) 0 1 中區(qū) 1 0 右區(qū) 1 1 未選 有了上面的知識,就可以編寫顯示界面這一塊程序。由于每個漢字或字符在圖中位置是固定的,只要定義了相應(yīng)的選區(qū)及X、Y地址,就可以顯示出具體的位置。用lr來表示漢字的區(qū)域,當lr=0,表示左區(qū);

14、lr=1,表示中區(qū);lr=2,表示右區(qū)。X表示頁面,Y表示列地址。則(lr.X.Y)就可以定義出這個字在屏上的實際位置。以第一行的“智”字為例,這個字位于模塊的左區(qū),則lr=0;它位于第一頁和第二頁,則X=0;它位于列地址的48-63字節(jié),Y=48,那么“智”就可以通過(0.0.48)精確地表示出它的位置。這里要注意的是每個漢字占用的行地址是兩頁,如“智”字占的就是X0和X1,即第二行的漢字其X=2而不是1。因此,第二行的“電”就應(yīng)該表示為(0.2.0),其它字符依此設(shè)計即可。2.2.2 液晶顯示控制驅(qū)動器HD61202及其兼容液晶顯示控制器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器,而在小規(guī)模點

15、陣液晶顯示模塊上使用液晶顯示驅(qū)動器組成液晶顯示驅(qū)動控制系統(tǒng)是非常有益的,這將使液晶顯示模塊的硬件電路簡單化,從而降低模塊的成本,同時也提高了對軟件功能的要求。許多顯示功能如光標、字符庫、閃爍都需要由軟件編制而成。HD61203和HD61202就是這類液晶顯示驅(qū)動控制器套件。之所以稱它們?yōu)樘准且驗镠D61203和HD61202必須配套使用,通常有12864和19264兩種規(guī)格。其特點如下:1內(nèi)藏64*64=4096位顯示RAM,RAM中每位數(shù)據(jù)對應(yīng)LCD屏上的一個點的亮、暗狀態(tài)。2HD61202及其兼容控制器是列驅(qū)動器,具有64路列驅(qū)動輸出。3HD61202及其兼容控制驅(qū)動器讀、寫時序與68系

16、列微處理妻相符,因此它可直接與68系列微處理器借口相聯(lián)。4HD61202及其兼容控制器的占空比為1/321/64。2.2.3 液晶顯示模塊的特點MGLS-12864圖形液晶顯示模塊的驅(qū)動和控制系統(tǒng)是由一片KS0107B或兼容驅(qū)動器( HD61203 )作為行驅(qū)動器和兩片KS0108B或兼容驅(qū)動器(HD61203) 作為列驅(qū)動器組成的。它的主要技術(shù)參數(shù)及其供電特點如下:(1) 電源:DC+5V,模塊內(nèi)自帶用于LCD驅(qū)動的負壓電路。(2) 顯示內(nèi)容:12864全屏幕點陣。(3) 指令形式:七種指令。(4) 接口形式:與控制器采用8位數(shù)據(jù)總線和8位控制線相連。(5) 工作環(huán)境:10+50。(6) 模

17、塊應(yīng)用有三種電源:邏輯電源、液晶驅(qū)動電壓、背光電壓。(7) 本次選用的模塊是雙電源供電(VDD/V0),需要提供一個液晶驅(qū)動電壓,用以調(diào)節(jié)對比度,接在液晶模塊的V0引腳上,由于液晶的對比度會隨著溫度的變化而相應(yīng)變化,所以其液晶顯示驅(qū)動電壓值應(yīng)隨著溫度作相應(yīng)的調(diào)整,這里采用了一個電位器,調(diào)整電壓值。(8) 背光供電為3.8-4.1V的支流電源,選用電源太大不僅增加功耗,更有可能損壞背光燈和縮短模塊的使用壽命。MGLS-12864液晶顯示模塊一共有20個引腳,它的接口定義如下:表2-2 MGLS-12864的接口電路序號符號狀態(tài)功能D7三態(tài)數(shù)據(jù)總線D6三態(tài)數(shù)據(jù)總線D5三態(tài)數(shù)據(jù)總線4D4三態(tài)數(shù)據(jù)總線

18、5D3三態(tài)數(shù)據(jù)總線6D2三態(tài)數(shù)據(jù)總線7D1三態(tài)數(shù)據(jù)總線8D0三態(tài)數(shù)據(jù)總線9E輸入R/W=“L”,E的下降沿鎖存數(shù)據(jù)線R/W=“H”,E為“H”時,數(shù)據(jù)由控制器輸出至數(shù)據(jù)線10R/W輸入R/W=“L”,E=“H”數(shù)據(jù)由控制器輸出數(shù)據(jù)線R/W=“H”,E的下降沿,數(shù)據(jù)由數(shù)據(jù)線輸入到控制器11D/I輸入D/I=“L”,表示DB7DB0為顯示數(shù)據(jù)D/I=“H”,表示DB7DB0為顯示指令12V0液晶顯示器驅(qū)動電壓13VCC電源正14GND電源地15CS1輸入片選信號16CS2輸入片選信號17VOUTLCD負壓驅(qū)動電壓18RET輸入復(fù)位信號19LED+顯示模塊背光電源20LED-顯示模塊背光電源2.3硬

19、件電路設(shè)計經(jīng)過對以上對ATmega16L芯片的端口、存儲器、時鐘電路、以及復(fù)位電路和LCD液晶顯示等原理的介紹后,現(xiàn)在就可以完成對這部分硬件電路的設(shè)計了。再結(jié)合前面的分析采用間接訪問的方式實現(xiàn)單片機與液晶顯示模塊之間的連接。LCD模塊的8位數(shù)據(jù)線接在了Atmega16L芯片B口的8位數(shù)據(jù)線上,這里用了一個74LS24作為鎖存器使它們間接連接在一起。LCD的EN、D/I、CS1、CS2、R/W分別連接到PA3PA7上,其詳細的接法見下圖 圖2-8 硬件接線圖2.4 PROTEL99的應(yīng)用簡介經(jīng)過前面的努力,智能充電器硬件電路的設(shè)計在本人及同組人的共同努力下已經(jīng)完成,接下來便是根據(jù)前面的設(shè)計用軟件

20、畫出其原理圖并生成板。PROTEL99SE是一個全32位的電路板設(shè)計軟件,使用該軟件可以容易地設(shè)計電路原理圖、畫元件圖、設(shè)計電路板圖、畫元件封裝圖和電路仿真。在這里主要用它來繪制電路原理圖和生成印制電路板。原理圖的設(shè)計步驟如下:(1) 設(shè)置原理圖設(shè)計環(huán)境。其中,工作環(huán)境設(shè)置是使用Design/Options和Tool和Preferences菜單進行的,畫原理圖環(huán)境的設(shè)置主要包括圖紙大小、捕捉柵格、電氣柵格、模板設(shè)置等。(2) 放置元件,將電氣和電子元件放置在圖紙上。(3) 原理圖布線。元件一旦放置在原理圖上,不需要用導(dǎo)線將元件連接起來,連接時一定要符合電氣規(guī)則。(4) 編輯和調(diào)整。編輯元件的屬

21、性。包括元件名、參數(shù)、封裝圖等。調(diào)整元件和導(dǎo)線的位置等操作。 本次設(shè)計所用的主要元件屬性如下:表2-3 主要元件表說明編號封裝元件名稱 單片機U1DIP-40Atmega16LCDJ2DIP-20LCD模塊電阻RAXIAL0.3RES2電容CRAD0.1CAP鎖存器U5DIP-2074LS245NPN三極管QTO462N2222A晶體XXTAL-1XTAL通用運放U2A,U2BDIP8LM358(5) 檢查原理圖。使用電氣規(guī)則功能(ERC)檢查原理圖的連接是否合理和正確。給出檢查報告,若有錯誤則要根據(jù)錯誤進行改正。(6) 生成網(wǎng)絡(luò)表。所謂網(wǎng)絡(luò)表就是元件名、封裝、參數(shù)及元件之間的連接表,通過該表

22、可以確認各個元件和它們之間的關(guān)系。(7) 打印原理圖。第三章 軟件設(shè)計由于本人主要負責設(shè)計軟件部分,而本人之前對C語言這門課的學習不是非常的精通,因此在著手本章之前本人對C語言以及AVR單片機與C語言編程方面的書籍做了認真仔細的回顧、學習和再研究,這樣才對下面設(shè)計工作的開展打下了基礎(chǔ)。在本章里,本人將先介紹C語言開發(fā)的優(yōu)勢,然后介紹LCD的顯示原理、模塊的軟件特性等,接下來便是最主要的整個程序的設(shè)計。3.1.用C語言開發(fā)單片機的優(yōu)勢C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計語言,具有簡單的語法結(jié)構(gòu)和強大的處理功能,具有運行速度快、編譯效率高,移植性好和可讀性強等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。

23、用C語言來編寫目標系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)。其優(yōu)勢如下:(1) 可以大幅度加快開發(fā)進度,程序量越大,用C語言就越有優(yōu)勢。(2) 無需精通單片機指令集和具體的硬件,也能夠編出符合硬件實際專業(yè)水平的程序。(3) 可以實現(xiàn)軟件的結(jié)構(gòu)化編程,使得軟件的邏輯結(jié)構(gòu)變得清晰、有條理、便于開發(fā)小組計劃任務(wù)、分工合作。源程序的可讀性和可維護性都很好。(4) 省去了人工分配單片機資源的工作,在匯編語言中要為每一個子程序分配單片機的資源。(5) 匯編語言的可移植性很差,而C語言只要將一些與硬件相關(guān)的代碼作適當?shù)男薷?,就可以方便地移?/p>

24、到其它種類的單片機上。(6) C語言提供auto、static、flash等存儲類型,針對單片機的程序存儲空間、數(shù)據(jù)存儲空間及EEPROM空間自動為變量合理地分配空間,而且C語言提供復(fù)雜的數(shù)據(jù)類型,極大地增強了程序處理能力和靈活性。(7) 對于一些復(fù)雜系統(tǒng)的開發(fā),可以通過移植(或C編譯器提供)的實時操作系統(tǒng)來實現(xiàn)。3.2 液晶顯示漢字或字符的原理 LCD本身不發(fā)光只是調(diào)節(jié)光的亮度,目前市面上的LCD顯示器都是利用液晶的扭曲一向列效應(yīng)制成,這是一種電場效應(yīng),夾在兩片導(dǎo)電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈直角扭曲,當線性偏振光透過其偏振面便會旋轉(zhuǎn)一個直角。當在玻璃電極上加上電壓后,在電場

25、作用下,液晶的扭曲結(jié)構(gòu)消失,偏振光便可以直接通過。當去掉電場后液晶分子又恢復(fù)取扭曲結(jié)構(gòu)。把這樣的液晶置于兩個偏振片之間,改變偏振片相對位置就可以得到白底黑子或黑底白字的顯示形式。結(jié)合以上知識具體顯示原理如下:( 1 ) 線段的顯示點陣圖形式液晶由M*N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16*8=128個點組成,屏上64*16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的00H00FH的16字節(jié)的內(nèi)容決定,當(000)=FFH時,如屏的左上角顯示一條短亮線

26、,長度為8個點;當(3FFH)=FFH時,則顯示屏的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00EH)=FFH,(00FH)=00H時,則在屏的頂部顯示一條由8段亮線和8段暗線組成的虛線。這就是LCD顯示的基本原理。( 2 ) 字符的顯示用LCD顯示一個字符時比較復(fù)雜,因為一個字符由6*8或8*8點陣組成,既要找到和顯示屏上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同的位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮,這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器 (如HD61202)來說,顯

27、示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。3.3 LCD模塊的指令說明要完成顯示程序的設(shè)計,必須了解LCD液晶模塊的指令系統(tǒng)。這里采用的LCD是北京精電蓬遠顯示技術(shù)公司生產(chǎn)的MGLS系列圖形液晶顯示模塊,其內(nèi)藏KS0108B/HD61202控制器。KS0108B及其兼容控制驅(qū)動器( HD61202 )的指令系統(tǒng)比較簡單,一共只有7條指令,從作用上可分為兩類。第一條指令和第二條指令為顯示狀態(tài)設(shè)置類;其余指令為數(shù)據(jù)讀/寫操作指令。下面是各個指令的功能:1. 讀狀態(tài)指令R/W RSDB7

28、DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0狀態(tài)字是計算機了解HD61202及其兼容控制驅(qū)動器當前狀態(tài),或是HD61202及其兼容控制驅(qū)動器向計算機提供其內(nèi)部狀態(tài)的唯一的信息渠道。狀態(tài)字為一字節(jié),其中僅有3位有效位,它們是:BUSY表示當前HD61202接口控制電路運行狀態(tài)。BUSY=1表示HD61202正在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0表示HD61202接口電路已處于“準備好”狀態(tài),等待計算機的訪問。ON/OFF表示當前的顯示狀態(tài)。ON/OFF=1表示關(guān)顯示狀態(tài)

29、;ON/OFF=0表示開顯示狀態(tài)。RESET表示當前HD61202的工作狀態(tài),即反映RST端的電平狀態(tài)。當RST為低電平狀態(tài)時,HD61202處于復(fù)位工作狀態(tài),RESET=1;當RST為高電平狀態(tài)時,HD61202為正常工作狀態(tài),RESET=0。2. 顯示開關(guān)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 0 1 1 1 1 1 1/0該指令設(shè)置顯示開關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開關(guān)控制位。當D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。顯示起始行設(shè)置指令R/W RSD

30、B7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 顯示起始行( 0-63 ) 該指令設(shè)置了顯示起始行寄存器的內(nèi)容。HD61202有64行顯示的管理能力,該指令中L5L0為顯示起始行的地址,取值在03FH( 164行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的行地址。如果定時間隔地,等間距地修改( 如加1或減1)顯示起始行寄存器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動的顯示效果。3. 頁面地址設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 頁號( 07 ) 該指令設(shè)置了頁面地址X地址寄存器的內(nèi)容

31、。HD61202將顯示存儲器分成8頁,指令代碼中P2-P0就是要確定當前所要選擇的頁面地址,取值范圍為0-7H,代表第1-8頁。該指令規(guī)定了以后的讀寫操作將在哪一個頁面上進行。4. 列地址設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 顯示列地址( 063 )該指令設(shè)置了Y地址計數(shù)器的內(nèi)容,C5C0=03FH( 164 )代表了某一頁面上的某一個單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進行。Y地址計數(shù)器具有自動加1功能,在每上次讀寫數(shù)據(jù)后它將自動加1,所以在連續(xù)進行讀寫數(shù)據(jù)時,Y地址計數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示

32、存儲器單元唯一的確定下來,為后來的顯示數(shù)據(jù)的讀寫作了地址的選通。5. 寫數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1寫數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元內(nèi)。操作完成后列地址計數(shù)器自動加1。6. 讀數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1讀顯示數(shù)據(jù)該操作將HD61202接口部的輸出寄存器內(nèi)容讀出,然后列地址計數(shù)器自動加一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。3.4 液晶顯示界面本著簡單明了的基本思想前面提到,結(jié)合液晶顯示模塊的相關(guān)知識

33、,設(shè)計出如下界面:智能型充電器電池:電壓: V節(jié)數(shù);電流: A狀態(tài):溫度: 圖3-1 LCD界面顯示這次設(shè)計采用的液晶顯示模塊本是由北京精電公司所造的圖形式的MGLS-12864芯片,其用一片KS0107B或兼容驅(qū)動器( HD61203 )作為行驅(qū)動器和三片KS0108B或兼容驅(qū)動器(HD61203) 作為列驅(qū)動器組成的。3.5 系統(tǒng)程序流程圖為了方便程序的設(shè)計,使自己在設(shè)計過程中做到思路清晰,設(shè)計起來游刃有余。這里首先畫出了程序流程圖,后面根據(jù)次流程圖具體設(shè)計程序,現(xiàn)具體分析如下:(一)主程序流程圖這次設(shè)計課題的主要內(nèi)容是在充電器的充電過程中,采集參數(shù),進行電壓、電流、溫度的實時顯示。其主流

34、程圖設(shè)計如下:按 鍵 調(diào) 節(jié)采樣V、A、T顯示V、A、T 充滿?結(jié) 束YN 初 始 化采 集 電 池 電 壓0開 始Y有 電 池無 電 池等 待掃 描 按 鍵有鍵按下?YNN (1) 圖3-2主程序流程圖(二)控制程序流程圖要想在液晶模塊上顯示一個字符或漢字,首先必須得對控制字進行寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)3項操作。完成這3項工作都必須保證控制器處于不忙的情況下,這就必須有一個判忙子程序,其流程圖如下:開 始讀左邊控制器的狀態(tài)字驅(qū)動器忙?送 狀 態(tài) 字返 回YN 圖3-3 判忙程序流程圖(三)顯示程序流程圖根據(jù)上面采用的方法設(shè)置漢字的初始值(lr、X、Y),當顯示完第一列的8字節(jié)以后,

35、跳到第二列又從上往下顯示。由于一個漢字每一列有16字節(jié),則當一頁的16列顯示完,只相當于顯示的漢字的上半部分,則再次跳到下一頁的初始位,進行漢字下半部分的顯示,值到16列顯示完成,才表示一個漢字全部顯示結(jié)束。第四章 系統(tǒng)調(diào)試4.1 系統(tǒng)調(diào)試軟件介紹完成對系統(tǒng)的硬、軟件設(shè)計后,就可以對系統(tǒng)進行調(diào)試了。本次設(shè)計本人采用了ICCAVR編譯器作為系統(tǒng)的開發(fā)工具,進行程序的燒錄和仿真。4.1.1 ICCAVR編譯器簡介(一) ICC AVR是ImageCraft公司針對AVR單片機而開發(fā)的一個C語言編譯,它具有以下幾個特點:1.支持不帶SRAM的單片機器件。2.帶嵌入式的應(yīng)用程序編譯器。3.帶全局優(yōu)化器

36、。4.支持在線編程(STK200/300)。5.ICC AVR是一個運行于Windows 9X/NT的集成開發(fā)環(huán)境(ODE),它包括單片機軟件開發(fā)所需要的編輯器、工程管理器和C編譯器。6.ICC AVR采用了工程的組織形式。程序的所有源文件全部以工程的一個要素保存在工程中,并且程序的編輯和編譯也都在這個環(huán)境中進行。工程管理器最后還能生成HEX格式的燒錄文件和COFF格式的仿真文件。 (二)ICC AVR支持的數(shù)據(jù)類型數(shù)據(jù)類型就是數(shù)據(jù)的不同表示形式,它們按照被描敘數(shù)據(jù)的性質(zhì)及其所占存儲空間的大小來劃分。ICC AVR的C編譯器可以支持4種數(shù)據(jù)類型,它們分別是:基本數(shù)據(jù)類型、構(gòu)造類型、指針類型和空

37、類型。1.基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括字符型(Unsign Char和Signed Char)、整型(Unsigned Int和SignedInt)、長整型(Unsigned Long和Signed long)、浮點型(Float)和雙精度型(Double?;緮?shù)據(jù)類型不只有再分性,它不可以再分解為其他的數(shù)據(jù)類型。2.構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類塑包括數(shù)組型(Array)、結(jié)構(gòu)體類型(Smuct)、公用體類型(Union)和枚舉類刑(Enum)。構(gòu)造數(shù)據(jù)類型由若干個基本數(shù)據(jù)類型采用構(gòu)造的方法成,因此,每個構(gòu)造數(shù)據(jù)類烈都可以分解成若干個基本數(shù)招類型。 3.指針類型 指針是一種用來專門存放所指對象地址的

38、變量,它指向計算機內(nèi)的一個內(nèi)存單元。指針的處理具有較高的靈活性,使用它可以有效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),有效地使用內(nèi)存空間,方便地處理數(shù)組,因此,它是C語言中一種非常重要的數(shù)據(jù)類型。 4.空類型 空類型也就是Void類型。在調(diào)用函數(shù)時,函數(shù)通常都會返同一個函數(shù)值。這個返回的函數(shù)值的數(shù)據(jù)類型可以在函數(shù)定義和函數(shù)說明中由用戶指定。但有一些函數(shù),它只進行一定的處理,在調(diào)用后并不需要返回某個函數(shù)值,那么這種函數(shù)可以定義為“空類型”。當一個計算的幾個運算分量的數(shù)據(jù)類型不相同時.要根據(jù)一些規(guī)則把它們轉(zhuǎn)換成某個共同的數(shù)據(jù)類型。這種轉(zhuǎn)換可自動進行,也可以人工強制轉(zhuǎn)換。通常來說,編譯器會把“窄”的數(shù)據(jù)類型自動轉(zhuǎn)換成

39、“寬”數(shù)據(jù)類型,以保證計算信息不被丟失。4.1.2 ICC AVR的主要設(shè)置點擊菜單中“Tools”欄中的“Application Builder”命令,打開應(yīng)用構(gòu)筑向?qū)υ捒颍淇驁D如4-1所示??驁D主要有以下頁面:CPU選項:可對芯片的種類、頻率、是否使用看門狗以及是否使用INT0和INT1等進行選擇。在這里選擇M16芯片,7.3728頻率,使用看門狗。PORTS選項:可以設(shè)計I/O的屬性,其關(guān)系如下:表4-1 Ports選項中符號與端口實際設(shè)定Direction:“1”Value: “1” Direction:“1”Value: “1”Direction:“1”Value: “1”Dir

40、ection:“1”Value: “1”PORTA 0xff 0x00 0xff 0x00DDRA 0x00 0x00 0xff 0xff 4.2 調(diào)試過程為了鞏固前面所學的知識,培養(yǎng)對AVR單片機學習的興趣,同時也為了學會并熟練掌握ICCAVR編譯器的應(yīng)用,為最后的聯(lián)機調(diào)試打下基礎(chǔ)。在這里設(shè)計了一些最簡單的單片機系統(tǒng)實例進行調(diào)試,其核心部件采用Atmega16L芯片。本來這次是準備在面包板上完成實驗的,但后來覺得引腳插在面包板里面,松緊不一,且面包板是一個長條形,如果做到后面的實現(xiàn)隨著線的增多,空間跨度太大,影響視覺,某根線一旦出了問題也不易檢查,綜合各方面考慮,最后選用了一次性萬用板來進行,這和印制電路板差不多,是通過焊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論