畢業(yè)設(shè)計---淺析我國中小企業(yè)市場營銷戰(zhàn)略_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)理與信息工程學(xué)院</b></p><p>  《單片機原理及應(yīng)用》期末課程設(shè)計</p><p>  題 目: 智能型充電器的電源和顯示的設(shè)計 </p><p>  專 業(yè): 計算機科學(xué)與技術(shù)(專升本) </p><p>  班 級: 計算機

2、081班 </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)老師: </p><p>

3、  成 績: </p><p><b>  目 錄</b></p><p>  第一章 緒 論 …………………………………………………………………4</p><p>  1.1 課題背景……………………………………………………………… 4</p><

4、;p>  1.2畢業(yè)設(shè)計任務(wù)和要求 …………………………………………………4</p><p>  第二章 硬件電路設(shè)計 ……………………………………………………… 5</p><p>  2.1 硬件電路主要芯片…………………………………………………… 5</p><p>  2.1.1 Atmega16L主要引腳說明 …………………………………… 5&

5、lt;/p><p>  2.1.2 Atmega16L的存儲器 ………………………………………… 7</p><p>  2.1.3 Atmega16L的時鐘電路 ……………………………………… 7</p><p>  2.1.4 Atmega16L的系統(tǒng)復(fù)位 ……………………………………… 7</p><p>  2.2 LCD液晶顯示 …

6、…………………………………………………… 8 </p><p>  2.2.1 LCD的顯示原 ………………………………………………… 8</p><p>  2.2.2 液晶顯示控制驅(qū)動器 …………………………………………8</p><p>  2.2.3 液晶顯示模塊的特點 ………………………………………10</p><p>  2.3

7、 硬件電路設(shè)計…………………………………………………………12</p><p>  2.4 PROTELL99的應(yīng)用簡介……………………………………………… 13</p><p>  第三章 軟件設(shè)計……………………………………………………………… 15</p><p>  3.1 用C語言開發(fā)單片機的優(yōu)勢 …………………………………………15</p>

8、<p>  3.2 液晶顯示漢字或字符的原理…………………………………………16</p><p>  3.3 LCD模塊的指令說明 …………………………………………………16</p><p>  3.4 液晶顯示界面 ………………………………………………………19</p><p>  3.5 系統(tǒng)程序流程圖………………………………………………………19

9、</p><p>  第四章 系統(tǒng)調(diào)試過程…………………………………………………………22</p><p>  4.1 系統(tǒng)調(diào)試軟件介紹………………………………………………… 22</p><p>  4.1.1 ICCAVR編譯器簡介 …………………………………………22</p><p>  4.1.2 ICCAVR的設(shè)置 ……………………

10、…………………………23</p><p>  4.2 調(diào)試過程 ……………………………………………………………23</p><p>  第五章 課程設(shè)計總結(jié) ……………………………………………………… 25</p><p>  參考文獻 ………………………………………………………………………26</p><p><b>  第一章 

11、緒 論</b></p><p><b>  1.1課題背景</b></p><p>  如今,隨著越來越多的手持式電器的出現(xiàn),對高性能、小尺寸、重量輕的電池充電器的需求也越來越大。電池技術(shù)的持續(xù)進步也要求更復(fù)雜的充電算法以實現(xiàn)快速、安全的充電。因此需要對充電過程進行更精確的監(jiān)控,以縮短充電時間、達到最大的電池容量,并防止電池損壞。與此同時,對充電電池的

12、性能和工作壽命的要求也不斷地提高。從20世紀60年代的商用鎳鎘和密封鉛酸電池到近幾年的鎳氫和鋰離子技術(shù),可充電電池容量和性能得到了飛速的發(fā)展。目前各種電器使用的充電電池主要有鎳鎘電池(NiCd)、鎳氫電池(NiMH)、鋰電池(Li-Ion)和密封鉛酸電池(SLA)四種類型。</p><p>  電池充電是通過逆向化學(xué)反應(yīng)將能量存儲到化學(xué)系統(tǒng)里實現(xiàn)的。由于使用的化學(xué)物質(zhì)的不同,電池有自己的特性。設(shè)計充電器時要仔細了

13、解這些特性以防止過度充電而損壞電。</p><p>  目前,市場上賣得最多的是旅行充電器,但是嚴格從充電電路上分析,只有很少部分充電器才能真正意義上被稱為智能充電器,隨著越來越多的手持式電器的出現(xiàn),對高性能、小尺寸、輕重量的電池充電器的需求也越來越大。電池技術(shù)的持續(xù)進步也要求更復(fù)雜的充電算法以實現(xiàn)快速、安全地充電,因此,需要對充電過程進行更精確地監(jiān)控(例如對充、放電電流、充電電壓、溫度等的監(jiān)控),以縮短充電時間

14、,達到最大的電池容量,并防止電池損壞。</p><p>  1.2 本設(shè)計任務(wù)和要求</p><p>  智能充電器的設(shè)計包括硬件和軟件兩大部分,本人的主要任務(wù)是完成充電器設(shè)計的LCD顯示部分,其主要涉及的知識包括:</p><p>  自學(xué)AVR單片機的相關(guān)內(nèi)容。</p><p><b>  設(shè)計電源電路。</b>&l

15、t;/p><p>  設(shè)計128*64液晶顯示控制電路和用C語言編制LCD顯示程序,用圖形方式顯示充電器電壓、電流等參數(shù)。</p><p>  手工焊接和ICCAVR編譯器的應(yīng)用。 </p><p>  第二章 硬件電路設(shè)計</p><p>  經(jīng)過前面對充電器原理、液晶模塊、ATmega16L等的總體了解和掌握以及對各種元器件和電

16、路圖的分析和比較后,現(xiàn)在就可以開始進入硬件電路的設(shè)計了。在本章里,首先將介紹一下液晶模塊訪問方式的兩種接口電路,然后對LCD顯示電路原理圖作一個詳細的介紹,接著介紹充電電路中所用到的各種芯片和元器件的原理和一些功能,最后對PROTEL99的使用和PCB板的繪制以及焊接做一簡單介紹,然后再將自己的設(shè)計思想和同組人所設(shè)計的兩部分結(jié)合,達成統(tǒng)一。 </p><p>  通過比較再結(jié)合本次設(shè)

17、計的實際條件,由于Atmega16L芯片沒有WR、RD管腳,而且為了使電路簡單且方便軟件實現(xiàn),所以最終決定采用間接控制的方式來設(shè)計LCD顯示電路。</p><p>  2.1 硬件電路主要芯片</p><p>  2.1.1 ATmega16L主要引腳芯片</p><p>  以下是ATmega16L的引腳配置:</p><p>  圖2-1

18、 ATmega16L芯片引腳</p><p><b>  引腳說明:</b></p><p>  VCC        數(shù)字電路的電源</p><p>  GND        地</p><p>  端口A(PA7~PA0)  端口A 作為A/D 轉(zhuǎn)換器的模擬輸入端。</p><p>  端口A

19、 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。</p><p>  端口B(PB7~PB0)  端口B 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。</p><p>  端口C(PC7~PC0)  端口C 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有

20、對稱的驅(qū)動特性,可以輸出和吸收大電流。</p><p>  端口D((PD7~PD0) 端口D 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。</p><p>  RESET       復(fù)位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復(fù)位。</p><p>  XTAL1       反向振蕩放大

21、器與片內(nèi)時鐘操作電路的輸入端。</p><p>  XTAL2       反向振蕩放大器的輸出端。</p><p>  AVCC       AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時,該引腳應(yīng)直接與VCC連接。使用ADC時應(yīng)通過一個低通濾波器與VCC相連。</p><p>  AREF       A/D 的模擬基準輸入引腳。</p>&

22、lt;p>  2.1.2 Atmega16L的存儲器</p><p>  AVR結(jié)構(gòu)有兩個主要的存儲空間:數(shù)據(jù)存儲器空間和程序存儲器空間,此外,Atmega16L還有一個EEPROM存儲器以保存數(shù)據(jù)。這三個存儲器都為線性的平面結(jié)構(gòu)。</p><p>  (1) Atmega16L具有16K字節(jié)的在線編程Flash,用于存儲程序指令代碼。因為AVR指令為16位或32位,故Flash組織

23、成8K16的形式。用戶程序的安全性要根據(jù)Flash程序存儲器的兩個區(qū):引導(dǎo)(Boot) 程序區(qū)和應(yīng)用程序區(qū),分開來考慮。</p><p>  (2) 數(shù)據(jù)存儲器的尋址方式分為5種:直接尋址、帶偏移量的間接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。</p><p>  (3) ATmega16L 包含512 字節(jié)的EEPROM 數(shù)據(jù)存儲器。它是作為一個獨立的數(shù)據(jù)空間而存在的,可

24、以按字節(jié)讀寫。EEPROM 的壽命至少為100,000 次擦除周期。</p><p>  2.1.3 Atmega16L的時鐘電路</p><p>  單片機的時鐘用于產(chǎn)生工作所需要的時序,其連接電路如下圖:</p><p>  圖2-2 晶體振蕩器連接圖</p><p>  XTAL1 與XTAL2 分別為用作片內(nèi)振蕩器的反向放大器的輸入和

25、輸出,考慮到其最大頻率不超過8MHz,這里選用的晶振為7.3728MHz。</p><p>  2.1.4 Atmega16L的系統(tǒng)復(fù)位</p><p>  Atmega16L有五個復(fù)位源:</p><p>  上電復(fù)位。電源電壓低于上電復(fù)位門限Vpot時,MCU復(fù)位。如果在單片機加Vcc電壓的同時,保持RESET引腳為低電平,則可延長復(fù)位周期。</p>

26、<p>  Vcc Vpot Vpot</p><p>  RESET Vrst Vrst</p><p><b>  TIME-OUT&l

27、t;/b></p><p>  INTERINAL tTOUT tTOUT</p><p><b>  RESET</b></p><p>  圖2-3 RESET引腳與VCC相連時, 圖2-4 RESE

28、T引腳由外部控制時,</p><p>  單片機的復(fù)位電平 單片機的復(fù)位電平</p><p>  外電復(fù)位。引腳RESET上的低電平持續(xù)時間大于最小脈沖寬度時MCU復(fù)位。</p><p><b>  Vcc</b></p><p>  RESET

29、 Vrst</p><p>  TIME-OUT tTOUT</p><p><b>  INTERNAL</b></p><p><b>  RESET </b></p><p>  圖2-5 外部復(fù)位時序圖</p&

30、gt;<p>  看門狗復(fù)位。看門狗使能并且看門狗定時器溢出時復(fù)位發(fā)生。看門狗計數(shù)器溢出時,將產(chǎn)生一個晶振的復(fù)位脈沖。</p><p><b>  Vcc </b></p><p><b>  RESET </b></p><p>  WDT 1 XTAL Cycle

31、</p><p><b>  TIME-OUT </b></p><p>  RESET tTOUT </p><p><b>  TIME-OUT</b></p><p><b>  INTERNAL</b></p>&

32、lt;p><b>  RESET</b></p><p>  圖2-6看門狗復(fù)位時序圖</p><p>  掉電檢測復(fù)位。掉電檢測復(fù)位功能使能,且電源電壓低于掉電檢測復(fù)位門限Vpot時MCU即復(fù)位。</p><p>  JTAG AVR復(fù)位。復(fù)位寄存器為1時MCU復(fù)位。</p><p>  2.2 LCD液晶顯示

33、 </p><p>  2.2.1 LCD的顯示原理</p><p>  液晶顯示器是一種功耗極低的顯示器。隨著液晶顯示技術(shù)的發(fā)展,LCD顯示器的規(guī)格眾多,其專用驅(qū)動芯片也相互配套,使LCD在控制和儀表系統(tǒng)中廣泛應(yīng)用提供了極大的方便。</p><p>  要想在液晶模塊上顯示一個漢字或字符,需要3個最基本的控制操作:分別向3個控制器寫指令代碼、寫顯示數(shù)據(jù)和讀顯示

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

35、、中、右3個區(qū),它的顯示區(qū)示意圖如下:</p><p>  左區(qū) 中區(qū) 右區(qū)</p><p>  圖2-7 液晶屏顯示區(qū)示意圖</p><p>  液晶模塊顯示字符是從上到下,從左到右進行顯示的。假設(shè)定義從最左上角開始顯示,則先從上到下顯示第0頁的第一列,依次從左向右開始顯示。</p>&l

36、t;p>  MGLS-19264LCM的顯示部分為左、中、右3個區(qū),可以由CS片選的取值分別進行控制,其接口的片選定義如下:</p><p>  表2-1 MGLS的片選定義表</p><p>  有了上面的知識,就可以編寫顯示界面這一塊程序。由于每個漢字或字符在圖中位置是固定的,只要定義了相應(yīng)的選區(qū)及X、Y地址,就可以顯示出具體的位置。用lr來表示漢字的區(qū)域,當lr=0,表示左區(qū);

37、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)該表

38、示為(0.2.0),其它字符依此設(shè)計即可。</p><p>  2.2.2 液晶顯示控制驅(qū)動器</p><p>  HD61202及其兼容液晶顯示控制器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器,而在小規(guī)模點陣液晶顯示模塊上使用液晶顯示驅(qū)動器組成液晶顯示驅(qū)動控制系統(tǒng)是非常有益的,這將使液晶顯示模塊的硬件電路簡單化,從而降低模塊的成本,同時也提高了對軟件功能的要求。許多顯示功能如光標、字符庫、閃

39、爍都需要由軟件編制而成。HD61203和HD61202就是這類液晶顯示驅(qū)動控制器套件。之所以稱它們?yōu)樘准且驗镠D61203和HD61202必須配套使用,通常有12864和19264兩種規(guī)格。其特點如下:</p><p>  1.內(nèi)藏64*64=4096位顯示RAM,RAM中每位數(shù)據(jù)對應(yīng)LCD屏上的一個點的亮、暗狀態(tài)。</p><p>  2.HD61202及其兼容控制器是列驅(qū)動器,具有6

40、4路列驅(qū)動輸出。</p><p>  3.HD61202及其兼容控制驅(qū)動器讀、寫時序與68系列微處理妻相符,因此它可直接與68系列微處理器借口相聯(lián)。</p><p>  4.HD61202及其兼容控制器的占空比為1/32~1/64。</p><p>  2.2.3 液晶顯示模塊的特點</p><p>  MGLS-12864圖形液晶顯示模塊的

41、驅(qū)動和控制系統(tǒng)是由一片KS0107B或兼容驅(qū)動器( HD61203 )作為行驅(qū)動器和兩片KS0108B或兼容驅(qū)動器(HD61203) 作為列驅(qū)動器組成的。</p><p>  它的主要技術(shù)參數(shù)及其供電特點如下:</p><p>  電源:DC+5V,模塊內(nèi)自帶用于LCD驅(qū)動的負壓電路。</p><p>  顯示內(nèi)容:12864全屏幕點陣。</p>&l

42、t;p>  指令形式:七種指令。</p><p>  接口形式:與控制器采用8位數(shù)據(jù)總線和8位控制線相連。</p><p>  工作環(huán)境:-10~+50℃。</p><p>  模塊應(yīng)用有三種電源:邏輯電源、液晶驅(qū)動電壓、背光電壓。</p><p>  本次選用的模塊是雙電源供電(VDD/V0),需要提供一個液晶驅(qū)動電壓,用以調(diào)節(jié)對比度

43、,接在液晶模塊的V0引腳上,由于液晶的對比度會隨著溫度的變化而相應(yīng)變化,所以其液晶顯示驅(qū)動電壓值應(yīng)隨著溫度作相應(yīng)的調(diào)整,這里采用了一個電位器,調(diào)整電壓值。</p><p>  背光供電為3.8-4.1V的支流電源,選用電源太大不僅增加功耗,更有可能損壞背光燈和縮短模塊的使用壽命。</p><p>  MGLS-12864液晶顯示模塊一共有20個引腳,它的接口定義如下:</p>

44、<p>  表2-2 MGLS-12864的接口電路</p><p><b>  2.3硬件電路設(shè)計</b></p><p>  經(jīng)過對以上對ATmega16L芯片的端口、存儲器、時鐘電路、以及復(fù)位電路和LCD液晶顯示等原理的介紹后,現(xiàn)在就可以完成對這部分硬件電路的設(shè)計了。再結(jié)合前面的分析采用間接訪問的方式實現(xiàn)單片機與液晶顯示模塊之間的連接。LCD模塊的

45、8位數(shù)據(jù)線接在了Atmega16L芯片B口的8位數(shù)據(jù)線上,這里用了一個74LS24作為鎖存器使它們間接連接在一起。LCD的EN、D/I、CS1、CS2、R/W分別連接到PA3~PA7上,其詳細的接法見下圖</p><p>  圖2-8 硬件接線圖</p><p>  2.4 PROTEL99的應(yīng)用簡介</p><p>  經(jīng)過前面的努力,智能充電器硬件電路的設(shè)計在

46、本人及同組人的共同努力下已經(jīng)完成,接下來便是根據(jù)前面的設(shè)計用軟件畫出其原理圖并生成PCB板。PROTEL99SE是一個全32位的電路板設(shè)計軟件,使用該軟件可以容易地設(shè)計電路原理圖、畫元件圖、設(shè)計電路板圖、畫元件封裝圖和電路仿真。</p><p>  在這里主要用它來繪制電路原理圖和生成印制電路板。原理圖的設(shè)計步驟如下:</p><p>  設(shè)置原理圖設(shè)計環(huán)境。其中,工作環(huán)境設(shè)置是使用Des

47、ign/Options和Tool和Preferences菜單進行的,畫原理圖環(huán)境的設(shè)置主要包括圖紙大小、捕捉柵格、電氣柵格、模板設(shè)置等。</p><p>  放置元件,將電氣和電子元件放置在圖紙上。</p><p>  原理圖布線。元件一旦放置在原理圖上,不需要用導(dǎo)線將元件連接起來,連接時一定要符合電氣規(guī)則。</p><p>  編輯和調(diào)整。編輯元件的屬性。包括元件

48、名、參數(shù)、封裝圖等。調(diào)整元件和導(dǎo)線的位置等操作。</p><p>  本次設(shè)計所用的主要元件屬性如下:</p><p>  表2-3 主要元件表</p><p>  檢查原理圖。使用電氣規(guī)則功能(ERC)檢查原理圖的連接是否合理和正確。給出檢查報告,若有錯誤則要根據(jù)錯誤進行改正。</p><p>  生成網(wǎng)絡(luò)表。所謂網(wǎng)絡(luò)表就是元件名、封裝、參

49、數(shù)及元件之間的連接表,通過該表可以確認各個元件和它們之間的關(guān)系。</p><p><b>  打印原理圖。</b></p><p><b>  第三章 軟件設(shè)計</b></p><p>  由于本人主要負責(zé)設(shè)計軟件部分,而本人之前對C語言這門課的學(xué)習(xí)不是非常的精通,因此在著手本章之前本人對C語言以及AVR單片機與C語言編程

50、方面的書籍做了認真仔細的回顧、學(xué)習(xí)和再研究,這樣才對下面設(shè)計工作的開展打下了基礎(chǔ)。在本章里,本人將先介紹C語言開發(fā)的優(yōu)勢,然后介紹LCD的顯示原理、模塊的軟件特性等,接下來便是最主要的整個程序的設(shè)計。</p><p>  3.1.用C語言開發(fā)單片機的優(yōu)勢</p><p>  C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計語言,具有簡單的語法結(jié)構(gòu)和強大的處理功能,具有運行速度快、編譯效率高,移植性好和可

51、讀性強等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。用C語言來編寫目標系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)。其優(yōu)勢如下:</p><p>  可以大幅度加快開發(fā)進度,程序量越大,用C語言就越有優(yōu)勢。</p><p>  無需精通單片機指令集和具體的硬件,也能夠編出符合硬件實際專業(yè)水平的程序。</p><

52、p>  可以實現(xiàn)軟件的結(jié)構(gòu)化編程,使得軟件的邏輯結(jié)構(gòu)變得清晰、有條理、便于開發(fā)小組計劃任務(wù)、分工合作。源程序的可讀性和可維護性都很好。</p><p>  省去了人工分配單片機資源的工作,在匯編語言中要為每一個子程序分配單片機的資源。</p><p>  匯編語言的可移植性很差,而C語言只要將一些與硬件相關(guān)的代碼作適當?shù)男薷?,就可以方便地移植到其它種類的單片機上。</p>

53、<p>  C語言提供auto、static、flash等存儲類型,針對單片機的程序存儲空間、數(shù)據(jù)存儲空間及EEPROM空間自動為變量合理地分配空間,而且C語言提供復(fù)雜的數(shù)據(jù)類型,極大地增強了程序處理能力和靈活性。</p><p>  對于一些復(fù)雜系統(tǒng)的開發(fā),可以通過移植(或C編譯器提供)的實時操作系統(tǒng)來實現(xiàn)。</p><p>  3.2 液晶顯示漢字或字符的原理</p

54、><p>  LCD本身不發(fā)光只是調(diào)節(jié)光的亮度,目前市面上的LCD顯示器都是利用液晶的扭曲一向列效應(yīng)制成,這是一種電場效應(yīng),夾在兩片導(dǎo)電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈直角扭曲,當線性偏振光透過其偏振面便會旋轉(zhuǎn)一個直角。當在玻璃電極上加上電壓后,在電場作用下,液晶的扭曲結(jié)構(gòu)消失,偏振光便可以直接通過。當去掉電場后液晶分子又恢復(fù)取扭曲結(jié)構(gòu)。把這樣的液晶置于兩個偏振片之間,改變偏振片相對位置就可以得到白底黑子

55、或黑底白字的顯示形式。結(jié)合以上知識具體顯示原理如下:</p><p>  ( 1 ) 線段的顯示</p><p>  點陣圖形式液晶由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)。例如屏的第一行的亮暗由

56、RAM區(qū)的00H~00FH的16字節(jié)的內(nèi)容決定,當(000)=FFH時,如屏的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則顯示屏的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H時,則在屏的頂部顯示一條由8段亮線和8段暗線組成的虛線。這就是LCD顯示的基本原理。</p><p>  (

57、2 ) 字符的顯示</p><p>  用LCD顯示一個字符時比較復(fù)雜,因為一個字符由6*8或8*8點陣組成,既要找到和顯示屏上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同的位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮,這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器 (如HD61202)來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)

58、找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。</p><p>  3.3 LCD模塊的指令說明</p><p>  要完成顯示程序的設(shè)計,必須了解LCD液晶模塊的指令系統(tǒng)。這里采用的LCD是北京精電蓬遠顯示技術(shù)公司生產(chǎn)的MGLS系列圖形液晶顯示模塊,其內(nèi)藏KS0108B/HD61202控制器。</p><p>  KS0108B及其兼容控制驅(qū)動

59、器( HD61202 )的指令系統(tǒng)比較簡單,一共只有7條指令,從作用上可分為兩類。第一條指令和第二條指令為顯示狀態(tài)設(shè)置類;其余指令為數(shù)據(jù)讀/寫操作指令。下面是各個指令的功能:</p><p><b>  讀狀態(tài)指令</b></p><p>  狀態(tài)字是計算機了解HD61202及其兼容控制驅(qū)動器當前狀態(tài),或是HD61202及其兼容控制驅(qū)動器向計算機提供其內(nèi)部狀態(tài)的唯一的

60、信息渠道。狀態(tài)字為一字節(jié),其中僅有3位有效位,它們是:</p><p>  BUSY表示當前HD61202接口控制電路運行狀態(tài)。BUSY=1表示HD61202正在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0表示HD61202接口電路已處于“準備好”狀態(tài),等待計算機的訪問。</p><p>  ON/OFF表示當前的顯示狀態(tài)。ON/OFF=1

61、表示關(guān)顯示狀態(tài);ON/OFF=0表示開顯示狀態(tài)。</p><p>  RESET表示當前HD61202的工作狀態(tài),即反映RST端的電平狀態(tài)。當RST為低電平狀態(tài)時,HD61202處于復(fù)位工作狀態(tài),RESET=1;當RST為高電平狀態(tài)時,HD61202為正常工作狀態(tài),RESET=0。</p><p><b>  顯示開關(guān)指令</b></p><p&g

62、t;  該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開/關(guān)控制位。當D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。</p><p><b>  顯示起始行設(shè)置指令</b></p><p>  該指令設(shè)置了顯示起始行寄存器的內(nèi)容。HD61202有64行顯示的管理能力,該指令中L5~L

63、0為顯示起始行的地址,取值在0~3FH( 1~64行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的行地址。如果定時間隔地,等間距地修改( 如加1或減1)顯示起始行寄存器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動的顯示效果。</p><p><b>  頁面地址設(shè)置指令</b></p><p>  該指令設(shè)置了頁面地址——X地址寄存器的內(nèi)容。HD61202

64、將顯示存儲器分成8頁,指令代碼中P2-P0就是要確定當前所要選擇的頁面地址,取值范圍為0-7H,代表第1-8頁。該指令規(guī)定了以后的讀/寫操作將在哪一個頁面上進行。</p><p><b>  列地址設(shè)置指令</b></p><p>  該指令設(shè)置了Y地址計數(shù)器的內(nèi)容,C5~C0=0~3FH( 1~64 )代表了某一頁面上的某一個單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單

65、元上進行。Y地址計數(shù)器具有自動加1功能,在每上次讀/寫數(shù)據(jù)后它將自動加1,所以在連續(xù)進行讀/寫數(shù)據(jù)時,Y地址計數(shù)器不必每次都設(shè)置一次。</p><p>  頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲器單元唯一的確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。</p><p><b>  寫數(shù)據(jù)指令</b></p><p>  該操作將8位數(shù)據(jù)寫入

66、先前已確定的顯示存儲器的單元內(nèi)。操作完成后列地址計數(shù)器自動加1。</p><p><b>  讀數(shù)據(jù)指令</b></p><p>  該操作將HD61202接口部的輸出寄存器內(nèi)容讀出,然后列地址計數(shù)器自動加一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。</p><p>  3.4 液晶顯示界面&

67、lt;/p><p>  本著簡單明了的基本思想前面提到,結(jié)合液晶顯示模塊的相關(guān)知識,設(shè)計出如下界面:</p><p>  圖3-1 LCD界面顯示</p><p>  這次設(shè)計采用的液晶顯示模塊本是由北京精電公司所造的圖形式的MGLS-12864芯片,其用一片KS0107B或兼容驅(qū)動器( HD61203 )作為行驅(qū)動器和三片KS0108B或兼容驅(qū)動器(HD61203)

68、作為列驅(qū)動器組成的。</p><p>  3.5 系統(tǒng)程序流程圖</p><p>  為了方便程序的設(shè)計,使自己在設(shè)計過程中做到思路清晰,設(shè)計起來游刃有余。這里首先畫出了程序流程圖,后面根據(jù)次流程圖具體設(shè)計程序,現(xiàn)具體分析如下:</p><p><b>  (一)主程序流程圖</b></p><p>  這次設(shè)計課題的主

69、要內(nèi)容是在充電器的充電過程中,采集參數(shù),進行電壓、電流、溫度的實時顯示。其主流程圖設(shè)計如下:</p><p><b> ?。?)</b></p><p>  圖3-2 主程序流程圖</p><p>  (二)控制程序流程圖</p><p>  要想在液晶模塊上顯示一個字符或漢字,首先必須得對控制字進行寫指令代碼、寫顯示數(shù)

70、據(jù)和讀顯示數(shù)據(jù)3項操作。完成這3項工作都必須保證控制器處于不忙的情況下,這就必須有一個判忙子程序,其流程圖如下:</p><p>  圖3-3 判忙程序流程圖</p><p>  (三)顯示程序流程圖</p><p>  根據(jù)上面采用的方法設(shè)置漢字的初始值(lr、X、Y),當顯示完第一列的8字節(jié)以后,跳到第二列又從上往下顯示。由于一個漢字每一列有16字節(jié),則當一頁的

71、16列顯示完,只相當于顯示的漢字的上半部分,則再次跳到下一頁的初始位,進行漢字下半部分的顯示,值到16列顯示完成,才表示一個漢字全部顯示結(jié)束。</p><p><b>  第四章 系統(tǒng)調(diào)試</b></p><p>  4.1 系統(tǒng)調(diào)試軟件介紹</p><p>  完成對系統(tǒng)的硬、軟件設(shè)計后,就可以對系統(tǒng)進行調(diào)試了。本次設(shè)計本人采用了ICCAVR

72、編譯器作為系統(tǒng)的開發(fā)工具,進行程序的燒錄和仿真。</p><p>  4.1.1 ICCAVR編譯器簡介</p><p>  (一) ICC AVR是ImageCraft公司針對AVR單片機而開發(fā)的一個C語言編譯,它具有以下幾個特點:</p><p>  1.支持不帶SRAM的單片機器件。</p><p>  2.帶嵌入式的應(yīng)用程序編譯器。&

73、lt;/p><p><b>  3.帶全局優(yōu)化器。</b></p><p>  4.支持在線編程(STK200/300)。</p><p>  5.ICC AVR是一個運行于Windows 9X/NT的集成開發(fā)環(huán)境(ODE),它包括單片機軟件開發(fā)所需要的編輯器、工程管理器和C編譯器。</p><p>  6.ICC AVR采

74、用了工程的組織形式。程序的所有源文件全部以工程的一個要素保存在工程中,并且程序的編輯和編譯也都在這個環(huán)境中進行。工程管理器最后還能生成HEX格式的燒錄文件和COFF格式的仿真文件。</p><p>  (二)ICC AVR支持的數(shù)據(jù)類型</p><p>  數(shù)據(jù)類型就是數(shù)據(jù)的不同表示形式,它們按照被描敘數(shù)據(jù)的性質(zhì)及其所占存儲空間的大小來劃分。ICC AVR的C編譯器可以支持4種數(shù)據(jù)類型,它

75、們分別是:基本數(shù)據(jù)類型、構(gòu)造類型、指針類型和空類型。</p><p><b>  1.基本數(shù)據(jù)類型</b></p><p>  基本數(shù)據(jù)類型包括字符型(Unsign Char和Signed Char)、整型(Unsigned Int和SignedInt)、長整型(Unsigned Long和Signed long)、浮點型(Float)和雙精度型(Double〕。基本

76、數(shù)據(jù)類型不只有再分性,它不可以再分解為其他的數(shù)據(jù)類型。</p><p><b>  2.構(gòu)造數(shù)據(jù)類型</b></p><p>  構(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ù)招類型。</p>

77、<p><b>  3.指針類型</b></p><p>  指針是一種用來專門存放所指對象地址的變量,它指向計算機內(nèi)的一個內(nèi)存單元。指針的處理具有較高的靈活性,使用它可以有效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),有效地使用內(nèi)存空間,方便地處理數(shù)組,因此,它是C語言中一種非常重要的數(shù)據(jù)類型。 </p><p><b>  4.空類型</b><

78、;/p><p>  空類型也就是Void類型。在調(diào)用函數(shù)時,函數(shù)通常都會返同一個函數(shù)值。這個返回的函數(shù)值的數(shù)據(jù)類型可以在函數(shù)定義和函數(shù)說明中由用戶指定。但有一些函數(shù),它只進行一定的處理,在調(diào)用后并不需要返回某個函數(shù)值,那么這種函數(shù)可以定義為“空類型”。</p><p>  當一個計算的幾個運算分量的數(shù)據(jù)類型不相同時.要根據(jù)一些規(guī)則把它們轉(zhuǎn)換成某個共同的數(shù)據(jù)類型。這種轉(zhuǎn)換可自動進行,也可以人工強

79、制轉(zhuǎn)換。通常來說,編譯器會把“窄”的數(shù)據(jù)類型自動轉(zhuǎn)換成“寬”數(shù)據(jù)類型,以保證計算信息不被丟失。</p><p>  4.1.2 ICC AVR的主要設(shè)置</p><p>  點擊菜單中“Tools”欄中的“Application Builder”命令,打開應(yīng)用構(gòu)筑向?qū)υ捒颍淇驁D如4-1所示。框圖主要有以下頁面:</p><p> ?、臗PU選項:可對芯片的種類、

80、頻率、是否使用看門狗以及是否使用INT0和INT1等進行選擇。在這里選擇M16芯片,7.3728頻率,使用看門狗。</p><p>  ⑵PORTS選項:可以設(shè)計I/O的屬性,其關(guān)系如下:</p><p>  表4-1 Ports選項中符號與端口實際設(shè)定</p><p><b>  4.2 調(diào)試過程</b></p><p&g

81、t;  為了鞏固前面所學(xué)的知識,培養(yǎng)對AVR單片機學(xué)習(xí)的興趣,同時也為了學(xué)會并熟練掌握ICCAVR編譯器的應(yīng)用,為最后的聯(lián)機調(diào)試打下基礎(chǔ)。在這里設(shè)計了一些最簡單的單片機系統(tǒng)實例進行調(diào)試,其核心部件采用Atmega16L芯片。</p><p>  本來這次是準備在面包板上完成實驗的,但后來覺得引腳插在面包板里面,松緊不一,且面包板是一個長條形,如果做到后面的實現(xiàn)隨著線的增多,空間跨度太大,影響視覺,某根線一旦出了問

82、題也不易檢查,綜合各方面考慮,最后選用了一次性萬用板來進行,這和印制電路板差不多,是通過焊接焊上去的,這既美觀,出了問題也方便查找并解決。 </p><p> ?。ㄒ唬┮粋€燈的閃爍。</p><p>  通過上面的介紹,Atmega16L有32個I/O輸出口,作為第一功能時,它們是沒有區(qū)別的。要讓輸出口電平發(fā)生轉(zhuǎn)換,采用了兩種方法。一種是用延時的辦法。初始設(shè)B0口為0,二極管不亮,經(jīng)過一定

83、時間的延時后,B0口變?yōu)?,二極管發(fā)光。再過相同時間,B0口再為0…按上述步驟循環(huán),就可以實現(xiàn)二極管的亮滅了。</p><p>  編寫程序,由于這里采用的是C語言編寫,程序相對來說比較簡單,延時程序如下:</p><p>  void delay_1ms(void)</p><p>  { unsigned int i;</p><p> 

84、 for(i=1;i<(unsigned int)(xtal*143-2;i++)</p><p><b>  ;</b></p><p><b>  }</b></p><p>  xtal是晶振頻率,這里采用的是7.3728MHz,從理論上講,應(yīng)出現(xiàn)1ms左右的延時。編譯器上通過以后,可以進行程序的下載。選中“F

85、lash”存儲器,選擇保存的路徑。二極管出現(xiàn)了快速的亮滅交替顯示。</p><p>  第二種利用中斷。主程序?qū)0口置1,使小燈發(fā)亮。在timer0中設(shè)置計數(shù)操作,當?shù)竭_一定的數(shù)值時,B0口跳為0。程序跳到timer0中運行,實現(xiàn)中斷。然后跳出中斷,每計數(shù)到一固定的數(shù)值時,程序就執(zhí)行中斷操作。</p><p>  第一次運行時,小燈發(fā)亮,但不閃爍。檢查電路,接線完好,程序是編譯通過的,語

86、法上不可能有毛病。</p><p><b>  課程設(shè)計總結(jié)</b></p><p>  在此次課程設(shè)計中讓我懂得了上課時不但要認真聽講還要積極動腦,單片機是一門很活的課程,你單單跟著老師的思路去上課我感覺這遠遠都不夠,有時候你雖然很認真的聽著但是你不用腦只用筆記的話,那你就學(xué)不到知識,只是在應(yīng)付考試而已。我上課時也很認真的聽講跟著老師的思路走但是開始做課程設(shè)計的時候

87、,我都不知道從那里著手去做,主要是沒有思路。后來我從閱覽室借書,從網(wǎng)上資料來看,慢慢的才慢慢的完成了這個課程設(shè)計?,F(xiàn)在寫報告感覺自己感觸很深:我感覺好難,主要是一些程序看不懂,硬件設(shè)計也看的不是很明白。感觸最深的還是這片文章的正文格式,以前寫作文寫慣根本就不去理會這些格式,最多是一些最基礎(chǔ)的格式。原來寫論文還有這么大的“文章”在里面。呵呵。。。。。受益很大!</p><p><b>  參考文</

88、b></p><p>  譚浩強著 C程序設(shè)計(第二版) 清華大學(xué)出版社 1999</p><p>  沈文、Eagle、詹衛(wèi)前編著 AVR單片機C語言開發(fā)入門指導(dǎo) 清華大學(xué)出版社 2003</p><p>  金春林、邱慧芳、張皆喜編著 AVR系列單片機C語言編程與應(yīng)用實例 清華大學(xué)出版社 2003</p><p>

89、  武鋒、陳新建編著 PIC單片機C語言開發(fā)入門 北京航空航天大學(xué)出版社 2005</p><p>  夏路易、石宗義編著 電路原理圖與電路板設(shè)計教程 北京希望電子出版社 2002</p><p>  圖形液晶顯示模塊使用手冊(第二版) 北京精電蓬遠顯示技術(shù)有限公司</p><p>  郭永貞主編 數(shù)字電子技術(shù) 西安電子科技大學(xué)出版社 2000&

90、lt;/p><p>  吳國經(jīng)主編 單片機應(yīng)用技術(shù) 中國電力出版社 2004</p><p>  徐泳龍主編 單片機原理及應(yīng)用 機械工業(yè)出版社 2004</p><p>  10.陸坤、奚大順等編著 電子設(shè)計技術(shù) 1997</p><p>  11.盧勝利主編 智能儀器設(shè)計與實現(xiàn) 重慶大學(xué)出版社 2003</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論