基于avr的智能充電器_第1頁
基于avr的智能充電器_第2頁
基于avr的智能充電器_第3頁
基于avr的智能充電器_第4頁
基于avr的智能充電器_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號(hào):56校級(jí)大學(xué)生創(chuàng)新性實(shí)驗(yàn)計(jì)劃項(xiàng)目申 報(bào) 書 項(xiàng) 目 名 稱: 基于avr的智能充電器申 請(qǐng) 者: 陶鳳婷所 在 院 系: 電子科學(xué)與技術(shù)學(xué)院 專 業(yè) 年 級(jí): 08通信工程指 導(dǎo) 教 師: 孫學(xué)平 起 止 時(shí) 間: 2010年7月1日2011年7月1日 聯(lián) 系 電 話: 子 信 箱: tao_ft申 報(bào) 時(shí) 間: 2010年7月1日安徽大學(xué)教務(wù)處制表項(xiàng)目名稱基于avr的智能充電器申請(qǐng)經(jīng)費(fèi)1800元起止時(shí)間2007年7月1日2011年7月1日負(fù)責(zé)人學(xué)號(hào)姓名年級(jí)所在院系、專業(yè)聯(lián)系電話e-mail p20814034陶鳳婷08電院通ao_ft

2、參加成員p10714131申智博07電院電子15056971553642671310p20814001牛坤08電院通信13085003223952897548p20814127童發(fā)軍08電院通信158551756351056297243p20814102董瑩瑩08電院通ongying200889指導(dǎo)老師姓名職稱所在院系聯(lián)系電話 e-mail孫學(xué)平副教授電子科學(xué)與技術(shù)學(xué)院138661331391、 項(xiàng)目申請(qǐng)理由1. 項(xiàng)目背景如今,隨著越來越多的手持式電器的出現(xiàn),對(duì)高性能、小尺寸、重量輕的電池充電器的需求也越來越大。電池技術(shù)的持續(xù)進(jìn)步也要求更復(fù)雜的充電算法以實(shí)現(xiàn)快速、安全

3、的充電。因此需要對(duì)充電過程進(jìn)行更精確的監(jiān)控,以縮短充電時(shí)間、達(dá)到最大的電池容量,并防止電池?fù)p壞。與此同時(shí),對(duì)充電電池的性能和工作壽命的要求也不斷地提高。從20世紀(jì)60年代的商用鎳鎘和密封鉛酸電池到近幾年的鎳氫和鋰離子技術(shù),可充電電池容量和性能得到了飛速的發(fā)展。目前各種電器使用的充電電池主要有鎳鎘電池(nicd)、鎳氫電池(nimh)、鋰電池(li-ion)和密封鉛酸電池(sla)四種類型。 目前,市場(chǎng)上賣得最多的是旅行充電器,但是嚴(yán)格從充電電路上分析,只有很少部分充電器才能真正意義上被稱為智能充電器,隨著越來越多的手持式電器的出現(xiàn),對(duì)高性能、小尺寸、輕重量的電池充電器的需求也越來越大。電池技術(shù)

4、的持續(xù)進(jìn)步也要求更復(fù)雜的充電算法以實(shí)現(xiàn)快速、安全地充電,因此,需要對(duì)充電過程進(jìn)行更精確地監(jiān)控(例如對(duì)充、放電電流、充電電壓、溫度等的監(jiān)控),以縮短充電時(shí)間,達(dá)到最大的電池容量,并防止電池?fù)p壞。因此,需要對(duì)充電過程進(jìn)行更精確的監(jiān)控,以縮短充電時(shí)間、達(dá)到最大的電池容量,并防止電池?fù)p壞。avr 已經(jīng)在競(jìng)爭(zhēng)中領(lǐng)先了一步,被證明是下一代充電器的完美控制芯片。 智能型充電電路通常包括了恒流恒壓控制環(huán)路、電池電壓監(jiān)測(cè)電路、電池溫度檢測(cè)電路、外部顯示電路(led或lcd顯示)等基本單元。2. 自身現(xiàn)狀簡介 組員中有三個(gè)是實(shí)驗(yàn)室管理員,對(duì)儀器操作熟練。這些組員中有拿過不止一次二等或三等獎(jiǎng)學(xué)金,還有假期參加過單片

5、機(jī)培訓(xùn)的同學(xué)。其中,有編程好的和動(dòng)手能力強(qiáng)的同學(xué)加入,加上有07級(jí)學(xué)長和老師的指導(dǎo)。有這些出色的隊(duì)員加上合理的分工,我們一定能夠出色的完成該項(xiàng)目。 我們?cè)O(shè)計(jì)的智能充電器的設(shè)計(jì)包括硬件和軟件兩大部分,這次設(shè)計(jì)要解決的關(guān)鍵問題是如何用atmega16l芯片控制lcd模塊及用c語言編制相應(yīng)的顯示程序。其主要涉及的知識(shí)包括:(1) 自學(xué)avr單片機(jī)的相關(guān)理論知識(shí)。(2) 用iccavr編譯器以及proteus仿真。(3) 用protel 99設(shè)計(jì)電源電路。(4) 采用雕刻機(jī)印制電路板。相信在明確已掌握的知識(shí)與需要自學(xué)的知識(shí)后,通過小組成員的努力,一定能將該項(xiàng)目完成。2、 項(xiàng)目研究內(nèi)容 特點(diǎn)與創(chuàng)新點(diǎn):1

6、)設(shè)計(jì)128*64液晶顯示控制電路和用c語言編制lcd顯示程序,用圖形方式顯示充電器電壓、電流等參數(shù)。2)采用avr 設(shè)計(jì)充電器,可以有效精確地監(jiān)控充電過程。3)此智能型充電器主要包括恒流恒壓控制環(huán)路、電池電壓監(jiān)測(cè)電路、電池溫度檢測(cè)電路、外部顯示電路(led或lcd顯示)等基本單元。4)采用c語言開發(fā)單片機(jī)。用c語言來編寫目標(biāo)系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)。5)采用了iccavr編譯器作為系統(tǒng)的開發(fā)工具,進(jìn)行程序的燒錄和仿真。它有許多優(yōu)勢(shì),例如支持不帶sram的單片機(jī)器件、帶全局優(yōu)化器、支持在線編程。6)擁有模塊化的

7、 “c”源代碼,支持多數(shù)電池類型,快速充電算法,充電參數(shù)易修改,片內(nèi)eeprom 可用于存儲(chǔ)電池信息,支持在線編程,低成本。7)內(nèi)置eeprom,且有外部顯示電路(led或lcd顯示),可保存和觀看標(biāo)定系數(shù)和電池特性參數(shù),如充電記錄以提高實(shí)際使用的電池容量。8)可以自動(dòng)計(jì)算電池的已充電量和剩余的充電時(shí)間,也可以改變參數(shù)來適應(yīng)各種不同電池的充電。9)系統(tǒng)中的管理電路還具有保護(hù)功能,可防止電池的過充和過放對(duì)電池造成的負(fù)面影響。10)能自動(dòng)識(shí)別電池的類型(鎳鎘電池、鎳氫電池、鋰電池)。11)良好的抗干擾能力。12)通電后能自動(dòng)檢測(cè)整個(gè)電源系統(tǒng),有故障報(bào)警。13)采用單片機(jī)開發(fā)充電器,靈活易修改,功能

8、更強(qiáng)大,有儲(chǔ)存和顯示信息的設(shè)置。實(shí)現(xiàn)步驟:智能型充電電路通常包括了恒流恒壓控制環(huán)路、電池電壓監(jiān)測(cè)電路、電池溫度檢測(cè)電路、外部顯示電路(led或lcd顯示)等基本單元。其框圖如下: 圖1 智能充電器基本框圖 智能充電器的設(shè)計(jì)包括硬件和軟件兩大部分。第一部分 硬件電路設(shè)計(jì)在對(duì)充電器原理、液晶模塊、atmega16l等的總體了解和掌握以及對(duì)各種元器件和電路圖的分析和比較后開始進(jìn)入硬件電路的設(shè)計(jì)。首先將介紹一下液晶模塊的間接控制電路,然后對(duì)lcd顯示電路原理圖作一個(gè)詳細(xì)的介紹,接著介紹充電電路中所用到的各種芯片和元器件的原理和一些功能。 (一) 間接控制方式間接控制方式是單片機(jī)通過自身的或系統(tǒng)中的并行

9、接口與液晶顯示模塊連接。單片機(jī)通過對(duì)這些接口的操作,以達(dá)到對(duì)液晶顯示模塊的控制。這種方式的特點(diǎn)就是電路簡單,控制時(shí)序由軟件實(shí)現(xiàn),可以實(shí)現(xiàn)高速單片機(jī)與液晶顯示模塊的接口。電路圖如圖2所示。在圖中以 p1口作為數(shù)據(jù)口,p3.4為csa,p3.3為csb,p3.2為使能端,p3.1為r/w和p3.0為d/i信號(hào)。電位器用于顯示對(duì)比度的調(diào)節(jié)。 單片機(jī)與液晶顯示模塊之間的連接方式分為直接訪問方式和為間接控制方式兩種。結(jié)合本次設(shè)計(jì)的實(shí)際條件,由于atmega16l芯片沒有wr、rd管腳,而且為了使電路簡單且方便軟件實(shí)現(xiàn),所以決定采用間接控制的方式來設(shè)計(jì)lcd顯示電路。 p1.7 p1.6 p1.5 p1.

10、4 p1.3 p1.2 p1.1 p1.0 p3.4 p3.3 p3.2 p3.1 p3.0db7db6db5db4db3db2db1db0/csa/csber/wd/ivccv0gnd電位器+5v 10k gnd mpu lcm接 圖2 間接控制方式電路圖 (二)atmega16l主要引腳說明以下是atmega16l的引腳配置: 圖3 atmega16l芯片引腳1. atmega16l的存儲(chǔ)器avr結(jié)構(gòu)有兩個(gè)主要的存儲(chǔ)空間:數(shù)據(jù)存儲(chǔ)器空間和程序存儲(chǔ)器空間,此外,atmega16l還有一個(gè)eeprom存儲(chǔ)器以保存數(shù)據(jù)。這三個(gè)存儲(chǔ)器都為線性的平面結(jié)構(gòu)。(1) atmega16l具有16k字節(jié)的在

11、線編程flash,用于存儲(chǔ)程序指令代碼。因?yàn)閍vr指令為16位或32位,故flash組織成8k16的形式。用戶程序的安全性要根據(jù)flash程序存儲(chǔ)器的兩個(gè)區(qū):引導(dǎo)(boot) 程序區(qū)和應(yīng)用程序區(qū),分開來考慮。flash存儲(chǔ)器至少可以擦寫10,000次。atmega16l的程序存儲(chǔ)器為13位,因此可以尋址8k的存儲(chǔ)器空間。關(guān)于用spi 或jtag 接口實(shí)現(xiàn)對(duì)flash 的串行下載,將在軟件部分作詳細(xì)的介紹。(2) 數(shù)據(jù)存儲(chǔ)器的尋址方式分為5種:直接尋址、帶偏移量的間接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。atmega16l的全部32個(gè)通用寄存器、64個(gè)i/o寄存器及1024個(gè)字

12、節(jié)的內(nèi)部數(shù)據(jù)sram可以通過所有上述的尋址模式進(jìn)行訪問。(3) atmega16l 包含512 字節(jié)的eeprom 數(shù)據(jù)存儲(chǔ)器。它是作為一個(gè)獨(dú)立的數(shù)據(jù)空間而存在的,可以按字節(jié)讀寫。eeprom 的壽命至少為100,000 次擦除周期。eeprom 的訪問由地址寄存器、數(shù)據(jù)寄存器和控制寄存器決定。2. atmega16l的時(shí)鐘電路單片機(jī)的時(shí)鐘用于產(chǎn)生工作所需要的時(shí)序,其連接電路如下圖: 圖4 晶體振蕩器連接圖 xtal1 與xtal2 分別為用作片內(nèi)振蕩器的反向放大器的輸入和輸出,考慮到其最大頻率不超過8mhz,這里選用的晶振為7.3728mhz。3. atmega16l的系統(tǒng)復(fù)位atmega1

13、6l有五個(gè)復(fù)位源:(1) 上電復(fù)位。電源電壓低于上電復(fù)位門限vpot時(shí),mcu復(fù)位。如果在單片機(jī)加vcc電壓的同時(shí),保持reset引腳為低電平,則可延長復(fù)位周期。vcc vpot vpotreset vrst vrsttime-outinterinal ttout ttout reset 圖5 reset引腳與vcc相連時(shí), 圖6 reset引腳由外部控制時(shí), 單片機(jī)的復(fù)位電平 單片機(jī)的復(fù)位電平(2) 外電復(fù)位。引腳reset上的低電平持續(xù)時(shí)間大于最小脈沖寬度時(shí)mcu復(fù)位。vccreset vrsttime-out ttoutinternalreset 圖7 外部復(fù)位時(shí)序圖(3) 看門狗復(fù)位。

14、看門狗使能并且看門狗定時(shí)器溢出時(shí)復(fù)位發(fā)生。看門狗計(jì)數(shù)器溢出時(shí),將產(chǎn)生一個(gè)晶振的復(fù)位脈沖。(4)vcc reset wdt 1 xtal cycletime-out reset ttout time-outinternalreset 圖8 看門狗復(fù)位時(shí)序圖(5) 掉電檢測(cè)復(fù)位。掉電檢測(cè)復(fù)位功能使能,且電源電壓低于掉電檢測(cè)復(fù)位門限vpot時(shí)mcu即復(fù)位。(6) jtag avr復(fù)位。復(fù)位寄存器為1時(shí)mcu復(fù)位。(三)lcd液晶顯示 1. lcd的顯示原理液晶顯示器是一種功耗極低的顯示器。隨著液晶顯示技術(shù)的發(fā)展,lcd顯示器的規(guī)格眾多,其專用驅(qū)動(dòng)芯片也相互配套,使lcd在控制和儀表系統(tǒng)中廣泛應(yīng)用提供

15、了極大的方便。根據(jù)lcd顯示原理的不同,常見和常用的lcd可以分為字符型lcd和點(diǎn)陣型lcd兩種。不同的顯示原理使得這兩種lcd的指令系統(tǒng)、接口和功能等是不相同的,各有優(yōu)缺點(diǎn),但結(jié)合到本次設(shè)計(jì)的實(shí)際要求,經(jīng)過比較還是選用點(diǎn)陣型lcd。現(xiàn)就點(diǎn)陣型lcd的顯示原理、模塊特點(diǎn)等做一簡要介紹。要想在液晶模塊上顯示一個(gè)漢字或字符,需要3個(gè)最基本的控制操作:分別向3個(gè)控制器寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)。這里要特別引起注意的是完成這3項(xiàng)操作的前提條件是ks0108b控制器處于準(zhǔn)備好的狀態(tài),即busy=0,由模塊的軟件特性知道,當(dāng)busy=1時(shí),系統(tǒng)的接口電路處于被封鎖的狀態(tài),是不能接受除讀狀態(tài)指令外的

16、任何操作的。因此在訪問控制器之前,一定要判斷控制器的當(dāng)前狀態(tài)。具體到軟件設(shè)計(jì)時(shí),則需設(shè)計(jì)一判忙程序,在判斷busy=0后,再往下進(jìn)行操作。在本模塊中,每個(gè)漢字的大小是1616點(diǎn)陣,而每個(gè)字符的大小是816點(diǎn)陣,即字符的寬度為漢字的1/2。它們都是以二維數(shù)組的格式存放在rom中。向液晶模塊顯示一個(gè)漢字的過程就是:由液晶屏顯示區(qū)的指定字符行的指定列開始,連續(xù)輸出該字符對(duì)應(yīng)的字符庫中的16個(gè)列數(shù)據(jù),如果是顯示字符,則輸出8個(gè)列數(shù)據(jù)即可。上面已經(jīng)介紹到,mgls-19264液晶模塊中液晶屏顯示區(qū)為19264點(diǎn)陣,其中,它們的每8個(gè)像素行組成一頁,整個(gè)顯示區(qū)共分為8頁,每64列為一個(gè)區(qū),這樣,它就有左、

17、中、右3個(gè)區(qū),它的顯示區(qū)示意圖如下:左區(qū) 中區(qū) 右區(qū)0 1 2 62 63 64 65 127128 129 191db0db7db0db7 圖9 液晶屏顯示區(qū)示意圖液晶模塊顯示字符是從上到下,從左到右進(jìn)行顯示的。假設(shè)定義從最左上角開始顯示,則先從上到下顯示第0頁的第一列,依次從左向右開始顯示。mgls-19264lcm的顯示部分為左、中、右3個(gè)區(qū),可以由cs片選的取值分別進(jìn)行控制,其接口的片選定義如下: 表1 mgls的片選定義表cs1cs2選中區(qū)域 0 0 左區(qū) 0 1 中區(qū) 1 0 右區(qū) 1 1 未選 有了上面的知識(shí),就可以編寫顯示界面這一塊程序。由于每個(gè)漢字或字符在圖中位置是固定的,只

18、要定義了相應(yīng)的選區(qū)及x、y地址,就可以顯示出具體的位置。用lr來表示漢字的區(qū)域,當(dāng)lr=0,表示左區(qū);lr=1,表示中區(qū);lr=2,表示右區(qū)。x表示頁面,y表示列地址。則(lr.x.y)就可以定義出這個(gè)字在屏上的實(shí)際位置。以第一行的“智”字為例,這個(gè)字位于模塊的左區(qū),則lr=0;它位于第一頁和第二頁,則x=0;它位于列地址的48-63字節(jié),y=48,那么“智”就可以通過(0.0.48)精確地表示出它的位置。這里要注意的是每個(gè)漢字占用的行地址是兩頁,如“智”字占的就是x0和x1,即第二行的漢字其x=2而不是1。因此,第二行的“電”就應(yīng)該表示為(0.2.0),其它字符依此設(shè)計(jì)即可。2. 液晶顯示控

19、制驅(qū)動(dòng)器hd61202及其兼容液晶顯示控制器是一種帶有驅(qū)動(dòng)輸出的圖形液晶顯示控制器,而在小規(guī)模點(diǎn)陣液晶顯示模塊上使用液晶顯示驅(qū)動(dòng)器組成液晶顯示驅(qū)動(dòng)控制系統(tǒng)是非常有益的,這將使液晶顯示模塊的硬件電路簡單化,從而降低模塊的成本,同時(shí)也提高了對(duì)軟件功能的要求。許多顯示功能如光標(biāo)、字符庫、閃爍都需要由軟件編制而成。hd61203和hd61202就是這類液晶顯示驅(qū)動(dòng)控制器套件。之所以稱它們?yōu)樘准且驗(yàn)閔d61203和hd61202必須配套使用,通常有12864和19264兩種規(guī)格。其特點(diǎn)如下:1內(nèi)藏64*64=4096位顯示ram,ram中每位數(shù)據(jù)對(duì)應(yīng)lcd屏上的一個(gè)點(diǎn)的亮、暗狀態(tài)。2hd61202及其

20、兼容控制器是列驅(qū)動(dòng)器,具有64路列驅(qū)動(dòng)輸出。3hd61202及其兼容控制驅(qū)動(dòng)器讀、寫時(shí)序與68系列微處理妻相符,因此它可直接與68系列微處理器借口相聯(lián)。4hd61202及其兼容控制器的占空比為1/321/64。3. 液晶顯示模塊的特點(diǎn)mgls-12864圖形液晶顯示模塊的驅(qū)動(dòng)和控制系統(tǒng)是由一片ks0107b或兼容驅(qū)動(dòng)器( hd61203 )作為行驅(qū)動(dòng)器和兩片ks0108b或兼容驅(qū)動(dòng)器(hd61203) 作為列驅(qū)動(dòng)器組成的。它的主要技術(shù)參數(shù)及其供電特點(diǎn)如下:(1) 電源:dc+5v,模塊內(nèi)自帶用于lcd驅(qū)動(dòng)的負(fù)壓電路。(2) 顯示內(nèi)容:12864全屏幕點(diǎn)陣。(3) 指令形式:七種指令。(4) 接

21、口形式:與控制器采用8位數(shù)據(jù)總線和8位控制線相連。(5) 工作環(huán)境:10+50。(6) 模塊應(yīng)用有三種電源:邏輯電源、液晶驅(qū)動(dòng)電壓、背光電壓。(7) 本次選用的模塊是雙電源供電(vdd/v0),需要提供一個(gè)液晶驅(qū)動(dòng)電壓,用以調(diào)節(jié)對(duì)比度,接在液晶模塊的v0引腳上,由于液晶的對(duì)比度會(huì)隨著溫度的變化而相應(yīng)變化,所以其液晶顯示驅(qū)動(dòng)電壓值應(yīng)隨著溫度作相應(yīng)的調(diào)整,這里采用了一個(gè)電位器,調(diào)整電壓值。(8) 背光供電為3.8-4.1v的支流電源,選用電源太大不僅增加功耗,更有可能損壞背光燈和縮短模塊的使用壽命。 mgls-12864的邏輯電路圖如下:hd61202 *lcd: vgls-1286412864

22、dots64hd61202 (1) hd61202 (2)6464 vddvssv0/csa/csbdb0db7d/ir/we 圖9 mgls-12864的邏輯電路圖mgls-12864液晶顯示模塊一共有20個(gè)引腳,它的接口定義如下:表2 mgls-12864的接口電路序號(hào)符號(hào)狀態(tài)功能d7三態(tài)數(shù)據(jù)總線d6三態(tài)數(shù)據(jù)總線d5三態(tài)數(shù)據(jù)總線4d4三態(tài)數(shù)據(jù)總線5d3三態(tài)數(shù)據(jù)總線6d2三態(tài)數(shù)據(jù)總線7d1三態(tài)數(shù)據(jù)總線8d0三態(tài)數(shù)據(jù)總線9e輸入r/w=“l(fā)”,e的下降沿鎖存數(shù)據(jù)線r/w=“h”,e為“h”時(shí),數(shù)據(jù)由控制器輸出至數(shù)據(jù)線10r/w輸入r/w=“l(fā)”,e=“h”數(shù)據(jù)由控制器輸出數(shù)據(jù)線r/w=“h”,

23、e的下降沿,數(shù)據(jù)由數(shù)據(jù)線輸入到控制器11d/i輸入d/i=“l(fā)”,表示db7db0為顯示數(shù)據(jù)d/i=“h”,表示db7db0為顯示指令12v0液晶顯示器驅(qū)動(dòng)電壓13vcc電源正14gnd電源地15cs1輸入片選信號(hào)16cs2輸入片選信號(hào)17voutlcd負(fù)壓驅(qū)動(dòng)電壓18ret輸入復(fù)位信號(hào)19led+顯示模塊背光電源20led-顯示模塊背光電源(四) 電源電路的設(shè)計(jì)在本次的設(shè)計(jì)中,要供電給mega16和lcd顯示模塊兩部分,而一個(gè)lm7805的輸出電流不足,所以本人打算將mega16和顯示模塊分別供電,所以實(shí)際電路中用到了兩片7805。下面就一個(gè)電源電路給出設(shè)計(jì)方案,另一個(gè)同樣原理。5v電源電路

24、的設(shè)計(jì) 圖10 5v的電源電路設(shè)計(jì)原理圖上圖是lm78作為輸出電壓固定的典型電路圖,正常工作時(shí),輸入、輸出電壓差為3-8v。輸入電壓ps為9v。電路中接入電容c5用來實(shí)現(xiàn)頻率補(bǔ)償,防止穩(wěn)壓器產(chǎn)生高頻自激振蕩和抑止電路引入的干擾,c11是有極性的電解電容,以減小穩(wěn)壓電壓輸出端由輸入電源引入的電平干擾。d1是保護(hù)二極管,當(dāng)輸入端短路時(shí),給輸出電容器c11一個(gè)放電電路,防止c11兩端電壓作用于調(diào)壓管的be結(jié),造成調(diào)壓管be結(jié)擊穿而損壞。其中c5、c11兩個(gè)電容只是起濾波作用選用的大小沒有特別的要求。(五)硬件電路設(shè)計(jì)經(jīng)過對(duì)以上對(duì)atmega16l芯片的端口、存儲(chǔ)器、時(shí)鐘電路、以及復(fù)位電路和lcd液晶

25、顯示等原理的介紹后,現(xiàn)在就可以完成對(duì)這部分硬件電路的設(shè)計(jì)了。再結(jié)合前面的分析采用間接訪問的方式實(shí)現(xiàn)單片機(jī)與液晶顯示模塊之間的連接。lcd模塊的8位數(shù)據(jù)線接在了atmega16l芯片b口的8位數(shù)據(jù)線上,這里用了一個(gè)74ls24作為鎖存器使它們間接連接在一起。lcd的en、d/i、cs1、cs2、r/w分別連接到pa3pa7上,其詳細(xì)的接法見下圖 圖11 硬件接線圖 第二部分 軟件設(shè)計(jì)大一時(shí)本專業(yè)開了c語言這門課,但只是學(xué)了個(gè)入門。應(yīng)該再結(jié)合avr單片機(jī)認(rèn)真仔細(xì)的回顧c語言編程,為下面設(shè)計(jì)工作的開展打下基礎(chǔ)。在部分里,將先介紹c語言開發(fā)的優(yōu)勢(shì),然后介紹lcd的顯示原理、模塊的軟件特性等,接下來便是

26、最主要的整個(gè)程序的設(shè)計(jì)。3.4 液晶顯示界面本著簡單明了的基本思想前面提到,結(jié)合液晶顯示模塊的相關(guān)知識(shí),設(shè)計(jì)出如下界面:智能型充電器電池:電壓: v節(jié)數(shù);電流: a狀態(tài):溫度: 圖1 lcd界面顯示這次設(shè)計(jì)采用的液晶顯示模塊本是由北京精電公司所造的圖形式的mgls-12864芯片,其用一片ks0107b或兼容驅(qū)動(dòng)器( hd61203 )作為行驅(qū)動(dòng)器和三片ks0108b或兼容驅(qū)動(dòng)器(hd61203) 作為列驅(qū)動(dòng)器組成的。液晶顯示的第一行為“智能型充電器”,由左起第四列開始顯示,這樣正好左右平均分配。第二行左起頂格顯示“電池”,表示對(duì)充電電池的選擇,可進(jìn)行“鋰電、鎳鎘、鎳氫、鉛酸”四種電池的選取,

27、第三行顯示電池的節(jié)數(shù),第四行顯示狀態(tài),可以在“快充、涓充、充滿、放電”四個(gè)選項(xiàng)間進(jìn)行選取,第二行到第四行左起分別顯示電壓、電流和溫度數(shù)值。由此可見,左邊的兩選項(xiàng)在充放電的過程中是不變的,而右邊的三個(gè)參數(shù)在充電過程中隨時(shí)發(fā)生變化。3.5 系統(tǒng)程序流程圖為了方便程序的設(shè)計(jì),使自己在設(shè)計(jì)過程中做到思路清晰,設(shè)計(jì)起來游刃有余。這里首先畫出了程序流程圖,后面根據(jù)次流程圖具體設(shè)計(jì)程序,現(xiàn)具體分析如下:(一)主程序流程圖這次設(shè)計(jì)課題的主要內(nèi)容是在充電器的充電過程中,采集參數(shù),進(jìn)行電壓、電流、溫度的實(shí)時(shí)顯示。其主流程圖設(shè)計(jì)如下:按 鍵 調(diào) 節(jié)采樣v、a、t顯示v、a、t 充滿?結(jié) 束yn 初 始 化采 集 電

28、 池 電 壓0開 始y有 電 池?zé)o 電 池等 待掃 描 按 鍵有鍵按下?ynn 圖2主程序流程圖(二)控制程序流程圖要想在液晶模塊上顯示一個(gè)字符或漢字,首先必須得對(duì)控制字進(jìn)行寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)3項(xiàng)操作。完成這3項(xiàng)工作都必須保證控制器處于不忙的情況下,這就必須有一個(gè)判忙子程序,其流程圖如下:開 始讀左邊控制器的狀態(tài)字驅(qū)動(dòng)器忙?送 狀 態(tài) 字返 回yn 圖3 判忙程序流程圖(三)顯示程序流程圖根據(jù)上面采用的方法設(shè)置漢字的初始值(lr、x、y),當(dāng)顯示完第一列的8字節(jié)以后,跳到第二列又從上往下顯示。由于一個(gè)漢字每一列有16字節(jié),則當(dāng)一頁的16列顯示完,只相當(dāng)于顯示的漢字的上半部分,則

29、再次跳到下一頁的初始位,進(jìn)行漢字下半部分的顯示,值到16列顯示完成,才表示一個(gè)漢字全部顯示結(jié)束。通過上面的介紹,一個(gè)漢字的顯示流程圖編寫如下:滿16列?ny漢顯完成,繼續(xù)嗎?ny返 回設(shè)lr、x、y初始值 ,lr選取控制器 x頁面值,y列地址值開 始 顯 示顯示滿16列?nyx+1顯示下半部分開 始初 始 化 圖4 漢字顯示流程圖按上面的流程圖,就可以進(jìn)行顯示程序的設(shè)計(jì)了。 第三部分 調(diào)試過程為了鞏固前面所學(xué)的知識(shí),培養(yǎng)對(duì)avr單片機(jī)學(xué)習(xí)的興趣,同時(shí)也為了學(xué)會(huì)并熟練掌握iccavr編譯器的應(yīng)用,為最后的聯(lián)機(jī)調(diào)試打下基礎(chǔ)。在這里設(shè)計(jì)了一些最簡單的單片機(jī)系統(tǒng)實(shí)例進(jìn)行調(diào)試,其核心部件采用atmega

30、16l芯片。一個(gè)最簡單的單片機(jī)系統(tǒng)的開發(fā)也需要電路設(shè)計(jì)、單片機(jī)器件選擇和程序編寫3個(gè)步驟。對(duì)于單片機(jī)系統(tǒng),最簡單的功能無非是控制輸出電平的高低。單片機(jī)的最簡單系統(tǒng)是指單片機(jī)能正常工作所必須的外圍元件,主要由單片機(jī)、晶振電路和復(fù)位電路組成。xtal2xtal1mpugndc1 同傳統(tǒng)的單片機(jī)系統(tǒng)一樣,atmega16l的晶振電路也分為外部時(shí)鐘模式和內(nèi)部時(shí)鐘模式兩種,其內(nèi)部時(shí)鐘電路如下圖: c2 圖1 晶振電路 鑒于atmega16l的主頻范圍為0-8mhz,這里選用的是晶振為7.3728mhz。復(fù)位電路采用了上電復(fù)位電路,其電路圖如下: reset+rgnd1k22ufvcc mpu 圖2 復(fù)位

31、電路注意這一點(diǎn)和有51系列的單片機(jī)是不同的,atmega16的rst是低電平復(fù)位,而8051系列單片機(jī)是高電平才發(fā)生復(fù)位,換句話說,這兩種單片機(jī)復(fù)位電路的設(shè)計(jì)完全相反。了解了以上兩部分電路,再配合i/o接口中,就可以進(jìn)行電路的設(shè)計(jì)了。本來這次是準(zhǔn)備在面包板上完成實(shí)驗(yàn)的,但后來覺得引腳插在面包板里面,松緊不一,且面包板是一個(gè)長條形,如果做到后面的實(shí)現(xiàn)隨著線的增多,空間跨度太大,影響視覺,某根線一旦出了問題也不易檢查,綜合各方面考慮,最后選用了一次性萬用板來進(jìn)行,這和印制電路板差不多,是通過焊接焊上去的,這既美觀,出了問題也方便查找并解決。 編寫好的程序通過并行通信下裁avr-isp燒到板子里面,

32、其下裁電纜的電源由目標(biāo)板提供,其管腳如下: 圖3 目標(biāo)板管腳圖使用廣東雙龍電子提供的mcu下載程序軟件,用數(shù)據(jù)線將isp下載插座同電腦相連。就可以進(jìn)行程序的調(diào)試了。其中下載軟件界面如圖5-4所示。將“通信參數(shù)設(shè)計(jì)及器件選擇”欄中的“at89c52”改為“atmega16”。當(dāng)下載軟件的(1)區(qū)域出現(xiàn)“擦除完成,編程開始”字樣時(shí),表示它已和avr的isp插座連接好,可以進(jìn)行程序下載的操作了。否則,將顯示“程序編程連接失敗”的字樣。在第一次進(jìn)行操作時(shí),也出現(xiàn)了連接失敗的信號(hào)。軟件是最新下載的,通過萬用表檢查,軟件周圍的接線都沒有問題,顯然不是自身的問題。再經(jīng)仔細(xì)檢查,原來是atmega16l的芯片

33、的5v電源掉線了。單片機(jī)不能運(yùn)作,當(dāng)然沒法進(jìn)行程序的下載了。雖然這一過程花了不少時(shí)間,吃一塹,長一智,從這也看出了進(jìn)行電子創(chuàng)作的嚴(yán)謹(jǐn)性,不通過細(xì)心的觀察,冷靜的分析,是不可能完成的。前面說到,測(cè)試單片機(jī)的最簡單系統(tǒng)最簡單的就是控制輸出電平的高低,這里采用發(fā)光二極管作為它的輸出器件,用二極管的亮或滅表示自己設(shè)計(jì)的單片機(jī)系統(tǒng)是否能夠正常工作。具體進(jìn)行了以下實(shí)際電路的設(shè)計(jì)。(一)一個(gè)燈的閃爍。通過上面的介紹,atmega16l有32個(gè)i/o輸出口,作為第一功能時(shí),它們是沒有區(qū)別的。這次主要用它的b口進(jìn)行實(shí)驗(yàn)。在萬用板上插上atmega16l芯片,按上面的方法接上晶振電路和復(fù)位電路。接通電源(5v),

34、用萬用表測(cè)b0口壓降,測(cè)得電壓+5v,可知系統(tǒng)正常。在b0端接上一發(fā)光二極管。發(fā)光二極管是由于其兩端的電壓差超出其導(dǎo)通壓降時(shí)開始工作,它的壓降通常為1.7v-1.9v。且工作電流也要滿足該二極管的發(fā)光要求。滿足了這兩點(diǎn),發(fā)光二極管就可以開始發(fā)光了。控制b0口電平的高低,就可以實(shí)現(xiàn)二極管的亮滅了。打開iccavr編譯器,按照上面的步驟進(jìn)行構(gòu)筑向?qū)Э虻牟僮鳌T趐orts的選項(xiàng)中,把b口設(shè)置為輸出口,值為“1”。其它按上面的設(shè)置,進(jìn)入到ide環(huán)境。編輯顯示程序,編輯窗口里面已經(jīng)有初始化程序、看門狗程序等基本程序。只要進(jìn)行主函數(shù)的編寫就可以了。要讓輸出口電平發(fā)生轉(zhuǎn)換,采用了兩種方法。一種是用延時(shí)的辦法

35、。初始設(shè)b0口為0,二極管不亮,經(jīng)過一定時(shí)間的延時(shí)后,b0口變?yōu)?,二極管發(fā)光。再過相同時(shí)間,b0口再為0按上述步驟循環(huán),就可以實(shí)現(xiàn)二極管的亮滅了。編寫程序,由于這里采用的是c語言編寫,程序相對(duì)來說比較簡單,延時(shí)程序如下:void delay_1ms(void) unsigned int i; for(i=1;i(unsigned int)(xtal*143-2;i+) ;xtal是晶振頻率,這里采用的是7.3728mhz,從理論上講,應(yīng)出現(xiàn)1ms左右的延時(shí)。編譯器上通過以后,可以進(jìn)行程序的下載。選中“flash”存儲(chǔ)器,選擇保存的路徑。二極管出現(xiàn)了快速的亮滅交替顯示。將143設(shè)置為143000,將周期提高到近1s,實(shí)際運(yùn)行時(shí),小燈的閃動(dòng)明顯變慢,基本達(dá)到了預(yù)期目標(biāo)。第二種利用中斷。主程序?qū)0口置1,使小燈發(fā)亮。在timer0中設(shè)置計(jì)數(shù)操作,當(dāng)?shù)竭_(dá)一定的數(shù)值時(shí),b0口跳為0。程序跳到timer0中運(yùn)行,實(shí)現(xiàn)中斷。然后跳出中斷,每計(jì)數(shù)到一固定的數(shù)值時(shí),程序就執(zhí)行中斷操作。第一次

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論