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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課題名稱 智能型充電器的電源和顯示的設計 摘 要本文對基于單片機的lcd液晶顯示器控制系統(tǒng)進行了研究。首先在緒論中介紹了本課題的課題背景、研究意義及完成的功能。本系統(tǒng)是以單片機的基本語言匯編語言來進行軟件設計,指令的執(zhí)行速度快,節(jié)省存儲空間。軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了。正文中首先簡單描述系統(tǒng)硬件工作原理,且附以系統(tǒng)硬件設計框圖,其次闡述了程序的流程和實現(xiàn)過程。本文撰寫的主導思想是軟、硬件相結合,以硬件為基礎,來進行各功能模塊的編寫。關鍵詞 單片機;微處理器;lcd; 8279第一章概述1.1.1課題背景如今,隨著越來越多的手持式電器的出現(xiàn),對高性能、小尺寸、重量

2、輕的電池充電器的需求也越來越大。電池技術的持續(xù)進步也要求更復雜的充電算法以實現(xiàn)快速、安全的充電。因此需要對充電過程進行更精確的監(jiān)控,以縮短充電時間、達到最大的電池容量,并防止電池損壞。與此同時,對充電電池的性能和工作壽命的要求也不斷地提高。從20世紀60年代的商用鎳鎘和密封鉛酸電池到近幾年的鎳氫和鋰離子技術,可充電電池容量和性能得到了飛速的發(fā)展。目前各種電器使用的充電電池主要有鎳鎘電池(nicd)、鎳氫電池(nimh)、鋰電池(li-ion)和密封鉛酸電池(sla)四種類型。1.1.2常見充電電池特性及其充電方式電池的安全充電 現(xiàn)代的快速充電器( 即電池可以在小于3 個小時的時間里充滿電,通常

3、是一個小時) 需要能夠對單元電壓、充電電流和電池溫度進行精確地測量,在充滿電的同時避免由于過充電造成的損壞。充電方法 sla 電池和鋰電池的充電方法為恒定電壓法要限流; nicd 電池和nimh 電池的充電方法為恒定電流法,且具有幾個不同的停止充電的判斷方法。最大充電電流 最大充電電流與電池容量(c) 有關。最大充電電流往往以電池容量的數(shù)值來表示。例如,電池的容量為750 mah,充電電流為750 ma,則充電電流為1c (1 倍的電池容量)。若涓流充電時電流為c/40,則充電電流即為電池容量除以40。過熱 電池充電是將電能傳輸?shù)诫姵氐倪^程。能量以化學反應的方式保存了下來。但不是所有的電能都轉

4、化為了電池中的化學能。一些電能轉化成了熱能,對電池起了加熱的作用。當電池充滿后,若繼續(xù)充電,則所有的電能都將轉化為電池的熱能。在快速充電時這將使電池快速升溫,若不及時停止充電就會造成電池的損壞。因此,在設計電池充電器時,對溫度進行監(jiān)控并及時停止充電是非常重要的。1.1.3 主要芯片的選擇 atmel公司是世界上有名的生產高性能、低功耗、非易失性存儲器和各種數(shù)字模擬ic芯片的半導體制造公司。在單片機微控制器方面,atmel公司有at89, at90和arm三個系列單片機的產品。avr單片機采用risc結構,具有1mips/ mhz的高速運行處理能力。為了縮短產品進入市場的時間,簡化系統(tǒng)的維護和支

5、持,對于由單片機組成的嵌入式系統(tǒng)來說,用高級語言編程已成為一種標準編程方法。avr結構單片機的開發(fā)日的就在于能夠更好地采用高級語言(例如c語言、basic語言)來編寫嵌入式系統(tǒng)的系統(tǒng)程序,從而能高效地開發(fā)出目標代碼。為了對目標代碼大小、性能及功耗進行優(yōu)化,ayr單片機的結構中采用了大型快速存取寄存器組和快速的單周期指令系統(tǒng)。 1.1.4液晶顯示模塊的選擇lcd顯示模塊是一種被動顯示器,具有功耗低,顯示信息大,壽命長和抗干擾能力強等優(yōu)點,在低功耗的單片機系統(tǒng)中得到大量使用。液晶顯示模塊和鍵盤輸入模塊作為便攜式儀表的通用器件,在單片機系統(tǒng)的開發(fā)過程中也可以作為常用的程序和電路模塊進行整體設計。液晶

6、顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就顯示黑色,這樣即可顯示出圖形。第二章 硬件電路設計 第一節(jié) 液晶顯示模塊兩種訪問方式接口電路的選擇單片機與液晶顯示模塊之間的連接方式分為直接訪問方式和為間接控制方式兩種。如圖2-1和圖2-2所示,其中左為單片機,右為液晶顯示模塊。 (一) 直接訪問方式pd0pd1pd2pd3pd4pd5pd6pd7rdwep2.3p2.2p2.1p2.0db0db1db2db3db4db5db6db7gndvccv0e/csa/csbr/wd/i10k 數(shù)據(jù)總線 gnd +5v電位器 負電源 1 32 74ls00a11a10a9a8mpu

7、圖2-1 直接訪問方式電路圖 lcm接口直接訪問方式就是將液晶顯示模塊的接口作為存儲器或i/o設備直接掛在單片機總線上,單片機以訪問存儲器或i/o設備的方式操作液晶顯示模塊的工作。直接訪問方式的接口電路如圖2-1所示,在圖中,單片機通過高位地址a11控制csa,a10控制csb,以選通液晶顯示屏上各區(qū)的控制器;同時用地址a9作為r/w信號控制數(shù)據(jù)總線的數(shù)據(jù)流向;用地址a8作為d/i信號控制寄存器的選擇,e(使能)信號由rd和we共同產生,這樣就實現(xiàn)了單片機對液晶顯示模塊的電路邊接。電位器用于顯示對比度的調節(jié)。(二)間接控制方式 p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.

8、1 p1.0 p3.4 p3.3 p3.2 p3.1 p3.0db7db6db5db4db3db2db1db0/csa/csber/wd/ivccv0gnd電位器+5v 10k 負電源 gnd mpu lcm接口圖2-2 間接控制方式電路圖間接控制方式是單片機通過自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接。單片機通過對這些接口的操作,以達到對液晶顯示模塊的控制。這種方式的特點就是電路簡單,控制時序由軟件實現(xiàn),可以實現(xiàn)高速單片機與液晶顯示模塊的接口。電路圖如圖2-2所示。在圖中以 p1口作為數(shù)據(jù)口,p3.4為csa,p3.3為csb,p3.2為使能端,p3.1為r/w和p3.0為d/i信號。電位

9、器用于顯示對比度的調節(jié)。通過比較再結合本次設計的實際條件,由于atmega16l芯片沒有wr、rd管腳,而且為了使電路簡單且方便軟件實現(xiàn),所以最終決定采用間接控制的方式來設計lcd顯示電路。第二節(jié) 硬件電路主要芯片2.2.1 atmega16l主要引腳說明以下是atmega16l的引腳配置: 圖2-3 atmega16l芯片引腳引腳說明:vcc 數(shù)字電路的電源gnd 地端口a(pa7pa0) 端口a 作為a/d 轉換器的模擬輸入端。端口a 為8 位雙向i/o 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉

10、低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口a 處于高阻狀態(tài)。端口b(pb7pb0) 端口b 為8 位雙向i/o 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口b 處于高阻狀態(tài)。端口c(pc7pc0) 端口c 為8 位雙向i/o 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口c 處于高阻狀態(tài)。如

11、果jtag接口使能,即使復位出現(xiàn)引腳pc5(tdi)、pc3(tms)與pc2(tck)的上拉電阻被激活。端口d(pd7pd0) 端口d 為8 位雙向i/o 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口d處于高阻狀態(tài)。reset 復位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復位。xtal1 反向振蕩放大器與片內時鐘操作電路的輸入端。xtal2 反向振蕩放大器的輸出端。avccavcc是端口a與a/d轉換器的電源。不使用adc時,該引腳

12、應直接與vcc連接。使用adc時應通過一個低通濾波器與vcc相連。arefa/d 的模擬基準輸入引腳。2.2.2 atmega16l的存儲器avr結構有兩個主要的存儲空間:數(shù)據(jù)存儲器空間和程序存儲器空間,此外,atmega16l還有一個eeprom存儲器以保存數(shù)據(jù)。這三個存儲器都為線性的平面結構。2.2.3 atmega16l的時鐘電路單片機的時鐘用于產生工作所需要的時序,其連接電路如下圖: 圖2-4 晶體振蕩器連接圖xtal1 與xtal2 分別為用作片內振蕩器的反向放大器的輸入和輸出,考慮到其最大頻率不超過8mhz,這里選用的晶振為7.3728mhz。2.2.4 atmega16l的系統(tǒng)復

13、位atmega16l有五個復位源:(1) 上電復位。電源電壓低于上電復位門限vpot時,mcu復位。如果在單片機加vcc電壓的同時,保持reset引腳為低電平,則可延長復位周期。(2) 外電復位。引腳reset上的低電平持續(xù)時間大于最小脈沖寬度時mcu復位。 (3) 看門狗復位??撮T狗使能并且看門狗定時器溢出時復位發(fā)生??撮T狗計數(shù)器溢出時,將產生一個晶振的復位脈沖。(4) 掉電檢測復位。掉電檢測復位功能使能,且電源電壓低于掉電檢測復位門限vpot時mcu即復位。(5) jtag avr復位。復位寄存器為1時mcu復位。第三節(jié)lcd液晶顯示 2.3.1 lcd的顯示原理現(xiàn)就點陣型lcd的顯示原理

14、、模塊特點等做一簡要介紹。要想在液晶模塊上顯示一個漢字或字符,需要3個最基本的控制操作:分別向3個控制器寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)。在本模塊中,每個漢字的大小是1616點陣,而每個字符的大小是816點陣,即字符的寬度為漢字的1/2。它們都是以二維數(shù)組的格式存放在rom中。向液晶模塊顯示一個漢字的過程就是:由液晶屏顯示區(qū)的指定字符行的指定列開始,連續(xù)輸出該字符對應的字符庫中的16個列數(shù)據(jù),如果是顯示字符,則輸出8個列數(shù)據(jù)即可。上面已經介紹到,mgls-19264液晶模塊中液晶屏顯示區(qū)為19264點陣,其中,它們的每8個像素行組成一頁,整個顯示區(qū)共分為8頁,每64列為一個區(qū),這樣,它就有左

15、、中、右3個區(qū),它的顯示區(qū)示意圖如下:左區(qū) 中區(qū) 右區(qū)0 1 2 62 63 64 65 127128 129 191db0db7第0頁第七頁db0db7 圖2-5 液晶屏顯示區(qū)示意圖液晶模塊顯示字符是從上到下,從左到右進行顯示的。假設定義從最左上角開始顯示,則先從上到下顯示第0頁的第一列,依次從左向右開始顯示。mgls-19264lcm的顯示部分為左、中、右3個區(qū),可以由cs片選的取值分別進行控制,其接口的片選定義如下:表2-1 mgls的片選定義表cs1cs2選中區(qū)域 0 0 左區(qū) 0 1 中區(qū) 1 0 右區(qū) 1 1 未選2.3.2 液晶顯示控制驅動器hd61202及其兼容液晶顯示控制器是

16、一種帶有驅動輸出的圖形液晶顯示控制器,而在小規(guī)模點陣液晶顯示模塊上使用液晶顯示驅動器組成液晶顯示驅動控制系統(tǒng)是非常有益的,這將使液晶顯示模塊的硬件電路簡單化,從而降低模塊的成本,同時也提高了對軟件功能的要求。許多顯示功能如光標、字符庫、閃爍都需要由軟件編制而成。hd61203和hd61202就是這類液晶顯示驅動控制器套件。之所以稱它們?yōu)樘准且驗閔d61203和hd61202必須配套使用,通常有12864和19264兩種規(guī)格。2.3.3 液晶顯示模塊的特點mgls-12864圖形液晶顯示模塊的驅動和控制系統(tǒng)是由一片ks0107b或兼容驅動器( hd61203 )作為行驅動器和兩片ks0108b

17、或兼容驅動器(hd61203) 作為列驅動器組成的。它的主要技術參數(shù)及其供電特點如下:(1) 電源:dc+5v,模塊內自帶用于lcd驅動的負壓電路。(2) 顯示內容:12864全屏幕點陣。(3) 指令形式:七種指令。(4) 接口形式:與控制器采用8位數(shù)據(jù)總線和8位控制線相連。(5) 工作環(huán)境:10+50。(6) 模塊應用有三種電源:邏輯電源、液晶驅動電壓、背光電壓。(7) 本次選用的模塊是雙電源供電(vdd/v0),需要提供一個液晶驅動電壓,用以調節(jié)對比度,接在液晶模塊的v0引腳上,由于液晶的對比度會隨著溫度的變化而相應變化,所以其液晶顯示驅動電壓值應隨著溫度作相應的調整,這里采用了一個電位器

18、,調整電壓值。(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ù)總線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ù)據(jù)由控制器輸出至數(shù)據(jù)線10r/w輸入r/w=“l(fā)”,e=“h”數(shù)據(jù)由控制器輸出數(shù)據(jù)線r/w=“h”,e的下降沿,數(shù)據(jù)由數(shù)據(jù)線輸入到控制器

19、11d/i輸入d/i=“l(fā)”,表示db7db0為顯示數(shù)據(jù)d/i=“h”,表示db7db0為顯示指令12v0液晶顯示器驅動電壓13vcc電源正14gnd電源地15cs1輸入片選信號16cs2輸入片選信號17voutlcd負壓驅動電壓18ret輸入復位信號19led+顯示模塊背光電源20led-顯示模塊背光電源第四節(jié) 硬件電路設計經過對以上對atmega16l芯片的端口、存儲器、時鐘電路、以及復位電路和lcd液晶顯示等原理的介紹后,現(xiàn)在就可以完成對這部分硬件電路的設計了。再結合前面的分析采用間接訪問的方式實現(xiàn)單片機與液晶顯示模塊之間的連接。lcd模塊的8位數(shù)據(jù)線接在了atmega16l芯片b口的8

20、位數(shù)據(jù)線上,這里用了一個74ls24作為鎖存器使它們間接連接在一起。lcd的en、d/i、cs1、cs2、r/w分別連接到pa3pa7上,其詳細的接法見下圖 圖2-6 硬件接線圖第三章 軟件設計3.1.用c語言開發(fā)單片機的優(yōu)勢c語言是一種編譯型的結構化程序設計語言,具有簡單的語法結構和強大的處理功能,具有運行速度快、編譯效率高,移植性好和可讀性強等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。用c語言來編寫目標系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而開發(fā)出大規(guī)模、高性能的應用系統(tǒng)。其優(yōu)勢如下:(1) 可以大幅度加快開發(fā)進度。(2) 無需精通單片機指令集和具體的硬

21、件。(3) 可以實現(xiàn)軟件的結構化編程,源程序的可讀性和可維護性都很好。(4) 省去了人工分配單片機資源的工作。(5) c語言只要將一些與硬件相關的代碼作適當?shù)男薷?,就可以方便地移植到其它種類的單片機上。(6) c語言提供auto、static、flash等存儲類型,復雜的數(shù)據(jù)類型,極大地增強了程序處理能力和靈活性。(7) 對于一些復雜系統(tǒng)的開發(fā),可以通過移植(或c編譯器提供)的實時操作系統(tǒng)來實現(xiàn)。正由于c語言在系統(tǒng)開發(fā)中的優(yōu)勢,這次設計的所有程序設計都將采用c語言編寫,且通過iccavr編譯器操作avr的硬件資源。3.2 液晶顯示漢字或字符的原理 ( 1 ) 線段的顯示點陣圖形式液晶由m*n個

22、顯示單元組成,假設lcd顯示屏有64行,每行有128列,每8列對應1字節(jié)的8位,即每行由16字節(jié),共16*8=128個點組成,屏上64*16個顯示單元與顯示ram區(qū)1024字節(jié)相對應,每一字節(jié)的內容和顯示屏上相應位置的亮暗對應。例如屏的第一行的亮暗由ram區(qū)的00h00fh的16字節(jié)的內容決定,當(000)=ffh時,如屏的左上角顯示一條短亮線,長度為8個點;當(3ffh)=ffh時,則顯示屏的右下角顯示一條短亮線;當(000h)=ffh,(001h)=00h,(002h)=ffh,(003h)=00h,(00eh)=ffh,(00fh)=00h時,則在屏的頂部顯示一條由8段亮線和8段暗線組成

23、的虛線。這就是lcd顯示的基本原理。( 2 ) 字符的顯示用lcd顯示一個字符時比較復雜,因為一個字符由6*8或8*8點陣組成,既要找到和顯示屏上某幾個位置對應的顯示ram區(qū)的8字節(jié),還要使每字節(jié)的不同的位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮,這樣一來就組成某個字符。但對于內帶字符發(fā)生器的控制器 (如hd61202)來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在lcd上開始顯示的行列號及每行的列數(shù)找出顯示ram對應的地址,設立光標,在此送上該字符對應的代碼即可。( 3 ) 漢字的顯示漢字的顯示一般采用圖形方式,事先從微機中提取要顯示的漢字的點陣碼,每個漢字占3

24、2b,分左右兩半部,各占16b,左邊為1、3、5右邊為2、4、6根據(jù)在lcd上開始顯示的行列號及每行的列數(shù)可找到顯示ram對應的地址,設立光標,送上要顯示的漢字的一字節(jié),光標位置加1,送第二字節(jié),按行按列對齊,送第三字節(jié)直到32b顯示完就可在lcd上得到一個完整的漢字。3.3 lcd模塊的指令說明要完成顯示程序的設計,必須了解lcd液晶模塊的指令系統(tǒng)。這里采用的lcd是北京精電蓬遠顯示技術公司生產的mgls系列圖形液晶顯示模塊,其內藏ks0108b/hd61202控制器。ks0108b及其兼容控制驅動器( hd61202 )的指令系統(tǒng)比較簡單,一共只有7條指令,從作用上可分為兩類。第一條指令和

25、第二條指令為顯示狀態(tài)設置類;其余指令為數(shù)據(jù)讀/寫操作指令。下面是各個指令的功能:1. 讀狀態(tài)指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db01 0busy 0 on/off rest 0 0 0 0狀態(tài)字是計算機了解hd61202及其兼容控制驅動器當前狀態(tài),或是hd61202及其兼容控制驅動器向計算機提供其內部狀態(tài)的唯一的信息渠道。2. 顯示開關指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db00 00 0 1 1 1 1 1 1/0該指令設置顯示開關觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。3. 顯示

26、起始行設置指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db00 01 1 顯示起始行( 0-63 ) 該指令設置了顯示起始行寄存器的內容。4. 頁面地址設置指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db00 01 0 1 1 1 頁號( 07 ) 該指令設置了頁面地址x地址寄存器的內容。5. 列地址設置指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db00 00 1 顯示列地址( 063 )該指令設置了y地址計數(shù)器的內容,c5c0=03fh( 164 )代表了某一頁面上的某一個單元地址,隨后的一次讀或寫數(shù)據(jù)將在

27、這個單元上進行。6. 寫數(shù)據(jù)指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db00 1寫數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元內。操作完成后列地址計數(shù)器自動加1。7. 讀數(shù)據(jù)指令r/w rsdb7 db6 db5 db4 db3 db2 db1 db01 1讀顯示數(shù)據(jù)該操作將hd61202接口部的輸出寄存器內容讀出,然后列地址計數(shù)器自動加一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。3.4 液晶顯示界面本著簡單明了的基本思想前面提到,結合液晶顯示模塊的相關知識,設計出如下界面:智能型充電器電池:電壓: v節(jié)

28、數(shù);電流: a狀態(tài):溫度: 圖3-1 lcd界面顯示這次設計采用的液晶顯示模塊本是由北京精電公司所造的圖形式的mgls-12864芯片,其用一片ks0107b或兼容驅動器( hd61203 )作為行驅動器和三片ks0108b或兼容驅動器(hd61203) 作為列驅動器組成的。液晶顯示的第一行為“智能型充電器”,由左起第四列開始顯示,這樣正好左右平均分配。第二行左起頂格顯示“電池”,表示對充電電池的選擇,可進行“鋰電、鎳鎘、鎳氫、鉛酸”四種電池的選取,第三行顯示電池的節(jié)數(shù),第四行顯示狀態(tài),可以在“快充、涓充、充滿、放電”四個選項間進行選取,第二行到第四行左起分別顯示電壓、電流和溫度數(shù)值。由此可見

29、,左邊的兩選項在充放電的過程中是不變的,而右邊的三個參數(shù)在充電過程中隨時發(fā)生變化。3.5 系統(tǒng)程序流程圖為了方便程序的設計,使自己在設計過程中做到思路清晰,設計起來游刃有余。這里首先畫出了程序流程圖,后面根據(jù)次流程圖具體設計程序,現(xiàn)具體分析如下:(一)主程序流程圖這次設計課題的主要內容是在充電器的充電過程中,采集參數(shù),進行電壓、電流、溫度的實時顯示。其主流程圖設計如下:按 鍵 調 節(jié)采樣v、a、t顯示v、a、t 充滿?結 束yn 初 始 化采 集 電 池 電 壓0開 始y有 電 池無 電 池等 待掃 描 按 鍵有鍵按下?ynn (1) 圖3-2主程序流程圖(二)控制程序流程圖要想在液晶模塊上顯

30、示一個字符或漢字,首先必須得對控制字進行寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)3項操作。完成這3項工作都必須保證控制器處于不忙的情況下,這就必須有一個判忙子程序,其流程圖如下:開 始讀左邊控制器的狀態(tài)字驅動器忙?送 狀 態(tài) 字返 回yn 圖3-3 判忙程序流程圖 (三)顯示程序流程圖根據(jù)上面采用的方法設置漢字的初始值(lr、x、y),當顯示完第一列的8字節(jié)以后,跳到第二列又從上往下顯示。由于一個漢字每一列有16字節(jié),則當一頁的16列顯示完,只相當于顯示的漢字的上半部分,則再次跳到下一頁的初始位,進行漢字下半部分的顯示,值到16列顯示完成,才表示一個漢字全部顯示結束。通過上面的介紹,一個漢字的顯示流

31、程圖編寫如下:滿16列?ny漢顯完成,繼續(xù)嗎?ny返 回設lr、x、y初始值lr選取控制器x頁面值,y列地址值開 始 顯 示顯示滿16列?nyx+1顯示下半部分開 始初 始 化 圖3-4 漢字顯示流程圖第四章 系統(tǒng)調試完成對系統(tǒng)的硬、軟件設計后,就可以對系統(tǒng)進行調試了。本次設計本人采用了iccavr編譯器作為系統(tǒng)的開發(fā)工具,進行程序的燒錄和仿真。在這里設計了一些最簡單的單片機系統(tǒng)實例進行調試,其核心部件采用atmega16l芯片。一個最簡單的單片機系統(tǒng)的開發(fā)也需要電路設計、單片機器件選擇和程序編寫3個步驟。對于單片機系統(tǒng),最簡單的功能無非是控制輸出電平的高低。單片機的最簡單系統(tǒng)是指單片機能正常

32、工作所必須的外圍元件,主要由單片機、晶振電路和復位電路組成。同傳統(tǒng)的單片機系統(tǒng)一樣,atmega16l的晶振電路也分為外部時鐘模式和內部時鐘模式兩種,其內部時鐘電路如下圖:xtal2xtal1mpugndc1 c2 圖4-4 晶振電路 鑒于atmega16l的主頻范圍為0-8mhz,這里選用的是晶振為7.3728mhz。復位電路采用了上電復位電路,其電路圖如下: mpu reset+rgnd1k22ufvcc 圖4-5 復位電路注意這一點和有51系列的單片機是不同的,atmega16的rst是低電平復位,而8051系列單片機是高電平才發(fā)生復位,換句話說,這兩種單片機復位電路的設計完全相反。了解了以上兩部分電路,再配合i/o接口中,就可以進行電路的設計了。編寫好的程序通過并行通信下裁avr-isp燒到板子里面,其下裁電纜的電源由目標板提供,其管腳如下: 圖4-6 目標板管腳圖前面說到,測試單片機的最簡單系統(tǒng)最簡單的就是控制輸出電平的高低,這里采用發(fā)光二極管作為它的輸出器件,用二極管的亮或滅表示自己設計的單片機系統(tǒng)是否能夠正常工作。具體進行了以下實際電路的設計。(一)一個燈的閃爍。通過上面的介紹,atmega16l有32個i/o輸出口,作為第一功能時,它們是沒有區(qū)別的。這次主要用它的

溫馨提示

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

評論

0/150

提交評論