版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)論文(設(shè)計)</p><p> 題 目:基于AVR單片機(jī)液晶模塊界面設(shè)計</p><p> 學(xué) 院:</p><p> 學(xué)生姓名:</p><p> 專 業(yè):電氣工程及其自動化</p><p> 班 級:</p><p> 指導(dǎo)教師:<
2、/p><p> 起止日期:</p><p> 基于AVR單片機(jī)液晶模塊界面設(shè)計</p><p><b> 摘要</b></p><p> 單片機(jī)自問世以來,性能不斷提高和完善,其資源不僅能滿足很多應(yīng)用場合的需要,而且具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、性能可靠、價格低廉等特點??v觀單片機(jī)的發(fā)展過程,
3、可以看出,單片機(jī)正朝著多功能、多選擇、高速度、低功耗、低價格、大容量及加強(qiáng)I/O功能等方向發(fā)展。其中,ATmega128是AVR單片機(jī)應(yīng)用開發(fā)力非常好,功能非常強(qiáng)的一個8位系列單片機(jī)。在性能、結(jié)構(gòu)、工藝上也是很強(qiáng)的。ATmega128主要是控制SED1335的最重要的兩個底層驅(qū)動函數(shù)。</p><p> 同時,彩色液晶顯示器作為當(dāng)代高新技術(shù)的結(jié)晶產(chǎn)品,不但具高速度、高亮度、高對比度顯示信息特點,而且還具有體積小
4、、耗電省、壽命長、無輻射、抗震、防爆等其他類型顯示器無可比擬的優(yōu)點,因此基于單片機(jī)系統(tǒng)的彩色液晶顯示模塊的使用也越來越廣泛。其中,SED1335是液晶顯示這塊比較好的控制器,它能顯示圖形、文本和字符。SED1335液晶顯示控制器的發(fā)展趨勢就是向大信息量、平板化、低壓、微功耗,實時顯示化是平面顯示技術(shù)與應(yīng)用方面。</p><p> 應(yīng)用AVR單片機(jī)Atmega128作為控制核心,響應(yīng)鍵盤中斷輸入,并且對基于SED
5、1335液晶顯示控制器的液晶顯示模塊進(jìn)行控制,設(shè)計界面并能PWM波輸出。這次的設(shè)計主要還是把所學(xué)的專業(yè)知識應(yīng)用于具體實例中,并且達(dá)到一種鞏固基礎(chǔ)知識和軟件的效果。在設(shè)計的同時鍛煉了對設(shè)計的獨立分析和解決問題的能力。唯一的缺陷,就是還有很多觸屏的功能沒實現(xiàn)。</p><p> 關(guān)鍵詞 :AVR單片機(jī);Atmega128;液晶顯示;SED1335;PWM波</p><p><b>
6、 Abstract</b></p><p> The atmegal’s performance has improved and perfected since it borned. Its resources to meet not only the applications needed, but also has high level of integration and powerful
7、 function, fast speed, small volume, low power consumption, use conveniently, reliable performance, low prices, etc. Throughout the development of atmegal, we can see it is moving toward multi-function, more choose, high
8、 speed, low power consumption, low price, high capacity, and to strengthen the I/O functions developmen</p><p> The same time,Color liquid crystal display as the crystallization of the contemporary high-tec
9、h products,not only with high-speed,high brightness,high contrast display information on the characteristics,but also has a small size, power consumption province, long life, no radiation, earthquake, explosions and othe
10、r types of displays unparalleled advantages.So single-chip microcomputer system based on the color liquid crystal display module is also more and more widespread use.Which,SED1335 LCD pi</p><p> Use Atmega1
11、28 of AVR atmegal as control core, response the keyboard interrupt input, and control the LCD module which based on SED1335 to design interface and output PWM. The main dask of this design is applying the professional kn
12、owledge to the practical examples, then can consolidate the basic knowledge and the software.Exercise in design,while the design of independent analysis and problem-solving ability.The only flaw is that a lot of touch-sc
13、reen function are not realized.</p><p> Key word :AVR Atmegal;Atmega128 ;LCD module ;SED1335 ;PWM</p><p><b> 目錄</b></p><p><b> 第1章 緒論1</b></p>&l
14、t;p> 1.1 課題研究的內(nèi)容及意義1</p><p> 1.2 研究的依據(jù)1</p><p> 第2章 硬件系統(tǒng)設(shè)計3</p><p> 2.1 AVR單片機(jī)ATmega128硬件資源3</p><p> 2.2 SED1335的硬件組成11</p><p> 2.3 基于SED13
15、35的液晶顯示模塊15</p><p> 2.4 鎖存器74HC37316</p><p> 2.5 硬件電路構(gòu)成及工作原理17</p><p> 第3章 系統(tǒng)軟件設(shè)計22</p><p> 3.1 軟件設(shè)計思想22</p><p> 3.2軟件程序設(shè)計流程圖22</p><
16、;p> 3.3 ICCAVR軟件編譯環(huán)境簡介26</p><p> 3.4 變量、地址說明及基本語句28</p><p> 第4章 系統(tǒng)調(diào)試33</p><p> 4.1 AVR Studio介紹33</p><p> 4.2 系統(tǒng)調(diào)試方法34</p><p> 4.3 硬件電路調(diào)試35
17、</p><p> 4.4 軟件調(diào)試36</p><p> 4.5 功能模塊調(diào)試結(jié)果37</p><p><b> 結(jié) 論42</b></p><p><b> 致 謝43</b></p><p><b> 參考文獻(xiàn)44</b><
18、;/p><p><b> 附錄 程序45</b></p><p><b> 第1章 緒論</b></p><p> 1.1 課題研究的內(nèi)容及意義</p><p> 本次設(shè)計的是AVR單片機(jī)液晶模塊界面,主要的任務(wù)就是應(yīng)用AVR單片機(jī)Atmega128作為控制核心,響應(yīng)鍵盤中斷輸入,并且對基于
19、SED1335液晶顯示控制器的液晶顯示模塊進(jìn)行控制,設(shè)計其界面并能進(jìn)行PWM波的輸出。</p><p> 首先,硬件設(shè)計部分,SED1335硬件結(jié)構(gòu)可分為MPU接口、控制部分和驅(qū)動LCM部分。SED1335的開發(fā)板有四種,本設(shè)計用的是A版。SED1335接口部分由指令輸入寄存器、數(shù)據(jù)輸入緩沖器、數(shù)據(jù)輸出緩沖器和標(biāo)志寄存器組成通道的選擇由引腳A0和讀寫操作信號聯(lián)合控制。很高的工作頻率下,SED1335可以用非???/p>
20、的速度編譯MPU發(fā)來的指令代碼,將參數(shù)置入相應(yīng)寄存器內(nèi),并觸發(fā)相應(yīng)邏輯功能電路:驅(qū)動部分具有各顯示區(qū)合成顯示能力,傳輸數(shù)據(jù)的組織功能及產(chǎn)生液晶顯示模塊所需時序。在制作Atmega128與SED1335的接線圖。</p><p> 其次,軟件部分設(shè)計用ICCAVR進(jìn)行軟件編程,具有匯編語言編程所不可比擬的優(yōu)勢,實現(xiàn)中斷響應(yīng)等功能。用示波器觀察PWM波形。根據(jù)SED1335時序圖并結(jié)合ICCAVR編譯器的特點,可得
21、到ATmega128控制SED1335的最重要的兩個底層驅(qū)動函數(shù):寫命令函數(shù)command_wr(BYTE data)和寫數(shù)據(jù)函數(shù)data_wr(BYTE data)。有了這兩個函數(shù),就可以輕松地控制SED1335了。SED1335可顯示文本、圖形和字符。</p><p> 最后,就是系統(tǒng)的調(diào)試工作,在此要用到調(diào)試軟件AVR STUDIO4。要去了解調(diào)試涉及相關(guān)知識、流程、調(diào)試的方法等。</p>
22、<p> 畢業(yè)設(shè)計是對于大學(xué)四年即將畢業(yè)的我們一次比較重要的考核,更重要的是最后一次鍛煉的我們在學(xué)術(shù)專業(yè)上的能力。把我們所學(xué)的專業(yè)知識及理論知識更好的系統(tǒng)化的經(jīng)歷了一次。在設(shè)計過程中可能會碰到各種困難的問題,那就需要自己有著獨立解決問題的各種能力,對于分析,框架構(gòu)思,作圖等各種能力也是一次重要意義的鍛煉。</p><p><b> 1.2 研究的依據(jù)</b></p>
23、<p> 1.2.1 AVR單片機(jī)的發(fā)展趨勢</p><p> 縱觀單片機(jī)的發(fā)展過程,可以看出,單片機(jī)正朝著多功能、多選擇、高速度、低功耗、低價格、大容量及加強(qiáng)I/O功能等方向發(fā)展。其發(fā)展趨勢主要有:</p><p> ?、偃PCMOS化。CMOS電路具有許多優(yōu)點,如很寬的工作電壓范圍、以及出色的低功耗和電源管理功能。CMOS技術(shù)已成為一種流行的單片機(jī)及其外圍設(shè)備,半導(dǎo)體
24、制程。</p><p> ②采用RISC體系結(jié)構(gòu)。采用RISC體系結(jié)構(gòu)和精簡指令后,單片機(jī)的指令絕大部分成為單周期指令。在這用體系結(jié)構(gòu)中,很容易實現(xiàn)并行流水操作,大大提高了指令運行速度。目前一些RISC結(jié)構(gòu)的單片機(jī)與MCS—51相比,在相同的12MHz外部時鐘下,一個周期指令運行速度可以達(dá)到12MIPS。這一方面可獲得很高的指令運行速度,另一方面,在相同的運行速度下,可以很大程度上降低時鐘頻率,對于獲得良好的電
25、磁兼容效果是非常有利的。</p><p> ?、鄱喙δ芗w化。單片機(jī)已經(jīng)集成了很多很多的部件在內(nèi)部,這些部件不僅包含一般的通常電路,如定時器/計數(shù)器、?;容^器、數(shù)字模擬轉(zhuǎn)換器、模擬數(shù)字轉(zhuǎn)換器、串行通信接口、WDT電路等,還有些單片機(jī)就是為了組成控制網(wǎng)絡(luò)或者構(gòu)成局部網(wǎng)絡(luò),內(nèi)部含有局部網(wǎng)絡(luò)控制模塊CAN總線,以方便地組成一個控制網(wǎng)絡(luò)。要是想方便地使用單片機(jī)在變頻控制中,形成最具經(jīng)濟(jì)效益的嵌入式控制系統(tǒng),有的單片機(jī)內(nèi)
26、部設(shè)置了專門用于變頻控制的脈寬調(diào)制控制電路PWM。</p><p> ?、芷瑑?nèi)存儲器的改進(jìn)與發(fā)展。目前新型的單片機(jī)一般在片內(nèi)集成兩種類型的存儲器:隨機(jī)讀/寫存儲器SRAM,作為臨時數(shù)據(jù)存儲器,存放工作數(shù)據(jù)用;只讀存儲器ROM,作為程序存儲器,存放系統(tǒng)控制程序和固定不變的數(shù)據(jù)。片內(nèi)存儲器的改進(jìn)與發(fā)展的方向是擴(kuò)大容量、ROM數(shù)據(jù)的易寫和保密等</p><p> ?、軮SP、IAP及基于ISP、
27、IAP技術(shù)的開發(fā)和應(yīng)用。ISP(In System Programmable)技術(shù)稱為在線系統(tǒng)可編程技術(shù)。微控制器在片內(nèi)集成EEPROM以及FlashROM的發(fā)展,導(dǎo)致了ISP技術(shù)在單片機(jī)中的應(yīng)用。</p><p> ?、抟源锌偩€方式為主的外圍擴(kuò)展。目前,單片機(jī)與外圍器件接口的一個重要方面是由并行外圍總線接口向串行外圍總線接口的發(fā)展。采用串行總線方式為主的外圍擴(kuò)展技術(shù)具有方便、靈活、電路系統(tǒng)簡單和占用I/O資源
28、少等特點。</p><p> ?、邌纹瑱C(jī)向片上系統(tǒng)SOC的發(fā)展。SOC(System On Chip)是一種高度集成化、固件化的芯片及集成技術(shù),其核心思想是把除了無法集成的某些外部電路和機(jī)械部分之外的所有電子系統(tǒng)電路全部集成在一片芯片中。其優(yōu)點是不僅減小了系統(tǒng)的體積和降低了成本,而且也提高了系統(tǒng)硬件的可靠性和穩(wěn)定性。</p><p> 1.2.2 液晶顯示發(fā)展現(xiàn)狀</p>
29、<p> 國際相關(guān)產(chǎn)品與技術(shù)發(fā)展水平、現(xiàn)狀 </p><p> 根據(jù)2003年10月日本《全球信息終端市場預(yù)測》提供的資料:在日本的電子器件產(chǎn)業(yè)中,LCD已成為僅次于集成電路的第二大電子器件產(chǎn)業(yè)。國際上面對LCD市場如此誘人的形勢,日本、韓國和中國臺灣紛紛投入巨資進(jìn)行LCD的生產(chǎn)線建設(shè)。顯示器件向大信息量、平板化、低壓、微功耗,實時顯示化是平面顯示技術(shù)與應(yīng)用方面的發(fā)展趨勢。</p>&
30、lt;p> 國內(nèi)相關(guān)產(chǎn)品與技術(shù)發(fā)展水平、現(xiàn)狀</p><p> 我國于20世紀(jì)80年代開始才從國外整套引進(jìn)液晶顯示器生產(chǎn)線。90年代末,我國已成為扭曲向列液晶顯示器方面世界最大的生產(chǎn)和銷售國。雖然國內(nèi)LCD產(chǎn)業(yè)出現(xiàn)了前所未有的良好發(fā)展局面,但是同先進(jìn)國家相比(除臺灣外),整體水平依然落后10~15年,面臨主要問題是: 第一、產(chǎn)品技術(shù)檔次總體偏低。 第二、國內(nèi)液晶顯示器基礎(chǔ)材料行業(yè)急待發(fā)展。第三、研發(fā)力量
31、薄弱。</p><p> 第2章 硬件系統(tǒng)設(shè)計</p><p> 2.1 AVR單片機(jī)ATmega128硬件資源</p><p> 2.1.1 AVR單片機(jī)ATmega128概述</p><p> ATmega128在應(yīng)用開發(fā)上是非常好的,要是能掌握的話,對于其他單片機(jī)的開發(fā)也是有好處的。同時,ATmega128也是AVR單片機(jī)里面
32、功能比較強(qiáng)的一個8位系列單片機(jī),它的性能在不斷的完善,也在不斷的提升,它的資源也滿足很多場合的需求。在工工藝方面有其比較強(qiáng)的特點,功耗相當(dāng)?shù)停m用溫度范圍大,抗干擾能力也相當(dāng)強(qiáng)。而且在結(jié)構(gòu)方面也有其比較突出的特點。</p><p> 單片機(jī)ATmega128芯片如圖2.1所示:</p><p> 2.1.2 ATmega128單片機(jī)特點</p><p><
33、b> 如表2.1說明</b></p><p> 表2.1 ATmega128特點說明</p><p> 2.1.3 引腳功能</p><p> 圖2.2所示為ATmega128單片機(jī)的引腳排列,各引腳功能說明如下:</p><p> 圖2.2 ATmega128單片機(jī)的引腳排列</p><p&g
34、t; (1) VCC:電源。</p><p> (2) GND:地。</p><p> (3) 端口A(PA7-PA0):端口A是一個8位的雙向的I/O端口,每一個引腳都有一個內(nèi)部可選的上拉電阻。輸出緩沖具有對稱的驅(qū)動特性,包括吸收和輸出電流。在作為輸入時,如果外部被拉低,由于上拉電阻的存在,該引腳將輸出電流。在復(fù)位時,端口A為三態(tài),即使此時時鐘還未起振,端口A還可用于多種用途。如表
35、2.2所示</p><p> 表2.2 端口A的第二功能</p><p> (4) 端口B(PB7-PB0)、C(PC7-PC0)、D(PD7-PD0)、E(PE7-PE0):與端口A具有相同的I/O性能,但在ATmega103單片機(jī)兼容模式下,端口C只能作為輸出,而且在復(fù)位發(fā)生時不是三態(tài)。 其中,端口D為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可
36、以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口D為三態(tài)。</p><p> 如表2.3所示為端口D的第二功能</p><p> 表2.3 端口D的第二功能</p><p> (5) 端口G(PG4-PG0):端口G是一個5位的雙向的I/O端口,每一個引腳都有一個內(nèi)部可選的上拉電阻。輸出緩沖具有對稱的驅(qū)動
37、特性,包括吸收和輸出電流。在輸入時,如果外部被拉低,由于上拉電阻的存在,該引腳將輸出電流。在復(fù)位時,端口G為三態(tài)。表 2.4為端口G的第二功能表。</p><p> 表 2.4 端口G的第二功能表</p><p> (6) RESET :復(fù)位輸入引腳。不管時鐘有沒有起振,要是超過最小門限時間的低電平將引起系統(tǒng)復(fù)位,要是低于這個時間的話,脈沖就不能保證可靠復(fù)位。</p>&
38、lt;p> (7) XTAL1:反向振蕩器放大器和片內(nèi)時鐘操作電路的輸入。</p><p> (8) XTAL2:反向振蕩器放大器的輸出。</p><p> (9) AVCC:AVCC為端口F以及ADC轉(zhuǎn)換器的電源,需要與VCC相連接,即使沒有使用ADC也應(yīng)該如此。使用ADC 時應(yīng)該通過一個低通濾波器與VCC 連接。</p><p> (10) ARE
39、F:AREF 為ADC 的參考電源。</p><p> (11) PEN :PEN是SPI串行下載的使能引腳。在上電復(fù)位時保持PEN為低電平將使器件進(jìn)入SPI串行下載模式。在正常操作時,無任何功能。</p><p> 2.1.4 外部存儲器擴(kuò)展 </p><p> 外部存儲器接口控制與3個寄存器當(dāng)中,分別為MCU控制寄存器(MCUCR)、外部存儲器控制寄存器A
40、(XMCRA),以及外部存儲器控制寄存器B(XMCRB)。</p><p> (1) MCU控制寄存器(MCUCR)</p><p> 1)Bit7-SRE:外部SRAM/XMEM使能。SRE為1時,外部存儲器接口使能,引腳AD7-AD0、A15-A8、ALE、和工作與第二功能,且自動按照要求配置端口方向寄存器。SRE清零將使外部SRAM無效,相關(guān)端口可以當(dāng)普通I/O端口使用。<
41、/p><p> 2)Bit6-SRW10:等待狀態(tài)選擇位。</p><p> (2) 外部存儲器控制寄存器A(XMCRA)</p><p> 1)Bit7-Res:保留。保留位,讀操作返回值為零。在寫數(shù)據(jù)時要寫入0,用來保證與未來的產(chǎn)品兼容。</p><p> 2)Bit6~Bit4-SRL2~SRL0:等待狀態(tài)存儲器區(qū)限制。對于不同的外
42、部存儲器地址,可以配置不同的等待狀態(tài)。外部存儲器地址空間可以分為兩個區(qū),而且可以具有獨立的等待狀態(tài)設(shè)置位。SRL2~SRL0用來對存儲器地址空間進(jìn)行區(qū)分。SRL2~SRL0的默認(rèn)值為0,即整個外部存儲器地址空間為一個大區(qū)。此時等待狀態(tài)通過SRW11和SRW10設(shè)置。</p><p> 3)Bit1和MCUCR的Bit6-SRW11、SRW10:高地址存儲器區(qū)等待狀態(tài)選擇位。SRW11和SRW10用來控制外部存儲
43、器高地址區(qū)等待狀態(tài)的數(shù)目。</p><p> 4)Bit3、Bit2-SRW00:低地址存儲器區(qū)等待狀態(tài)選擇位。SRW01和SRW00用來控制外部存儲器低地址區(qū)等待狀態(tài)的數(shù)目。如表2.5所示。</p><p> 表2.5 等待狀態(tài)選擇(n=0或n=1)</p><p> 5)Bit0-Res:保留。保留位,讀操作返回值為0.在寫數(shù)據(jù)時要寫入0,以保證與未來產(chǎn)品
44、的兼容。</p><p> (3) 外部存儲器控制寄存器B(XMCRB)</p><p> 1)Bit7-XMBK:外部存儲器總線保持功能使能。XMBK寫1,將使能AD7~AD0端口線上的總線保持功能。當(dāng)此時功能使能后,AD7~AD0將保持最后的數(shù)據(jù)不變,即使XMEM接口將這些端口設(shè)置為三態(tài)。XMBK為“0”時,總線保持功能禁止。XMBK不受SRE的限制。因此即使禁止了XMEM接口,只
45、要XMBK為1,總線功能依然有效。</p><p> 2)Bit6~Bit3-Res:保留。保留位,讀操作返回值為零。在寫數(shù)據(jù)時要寫入0,以保證與未來產(chǎn)品的兼容。</p><p> 3)Bit2~Bit0-XMM2~XMM0:外部存儲器高位地址屏蔽。在默認(rèn)條件下,使能外部存儲器之后,所有的端口C引腳都被用作高位地址。如果系統(tǒng)不需要全部60KB外部存儲器地址空間,端口C的某些 引腳可以釋
46、放,用作普通的I/O端口。如表2.6</p><p> 表2.6 使能外部存儲器時將端口C的引腳釋放,作為普通口線使用</p><p> 2.1.5 I/O端口</p><p> ATmega128單片機(jī)具有53個I/O端口引腳,分成6個8位的端口A、B、C、D、E、F和1個5位端口G。作為通用數(shù)字I/O端口使用時,具有讀、修改、寫功能。小寫的“x”表示端口
47、的序號,而小寫的“n”表示位的序號。每個端口都有3個I/O存儲器地址:數(shù)據(jù)寄存器(PORTx)、數(shù)據(jù)方向寄存器(DDRx)和端口引腳輸入(PINx)。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/寫寄存器,而端口輸入引腳為只讀寄存器。所有的端口引腳都具有與電壓無關(guān)的上拉電阻,并有保護(hù)二極管與VCC和地相連。</p><p> 其中,方向寄存器DDRx中的每一位DDxn用來選擇引腳方向。當(dāng)DDxn為1時,Pxn配置為輸出;否則
48、為輸入。當(dāng)引腳配置為輸出時,若PORTxn為1,則引腳輸出高電平1;否則輸出低電平0。當(dāng)引腳配置為輸入時,若PORTxn為1時,則上拉電阻將使能。如果需要關(guān)閉這個上拉電阻,可以將PORTxn清理,或者將這個引腳配置為輸出??梢酝ㄟ^置位SFIOR的PUD來禁止所有端口的上拉電阻。不論如何配置DDxn,都可以通過讀取PINxn來獲得引腳電平。表2.7總結(jié)了引腳的控制信號。</p><p> 表2.7 端口引腳配置
49、</p><p> 2.1.6 外部中斷寄存器</p><p> 要使用ATmega128單片機(jī)的中斷,必須首先置位狀態(tài)寄存器SREG的I位Bit7-I:全局中斷使能。置位時,使能全局中斷。單獨的中斷使能由其他獨立的控制寄存器控制。如果I清零,則不論單獨中斷標(biāo)志置位與否,都不會產(chǎn)生中斷。I也可以通過SEI和CLI指令來置位和清零。 </p><p> 外
50、部中斷屏蔽寄存器(EIMSK) Bit7~Bit0-INT7~I(xiàn)NT0:外部中斷請求7~0使能。當(dāng)INT7~I(xiàn)NT0為1,而且狀態(tài)寄存器SREG的1標(biāo)志置位時,相應(yīng)的外部引腳中斷就使能了。</p><p> 外部中斷控制寄存器A(EICRA)</p><p> INT3~I(xiàn)NT0的初始值定義為低電平中斷。Bit~Bit0、ISC31、ISC30~I(xiàn)SC01、ISC00:外部中斷3~0電
51、平控制位。如果SREC的I標(biāo)志和EIMSK相應(yīng)的中斷屏蔽位置位,則外部中斷3~0由INT3~I(xiàn)NT0引腳激活。外部中斷控制寄存器A和B的中斷敏感電平控制位決定中斷是由上升沿、下降沿,還是電平觸發(fā)的。</p><p> 外部中斷控制寄存器B(EICRB) Bit7~Bit0、ISC71、ISC70~I(xiàn)SC41、ISC40:外部中斷7~4敏感電平控制位。如果SREG的I標(biāo)志和EIMSK相應(yīng)的中斷屏蔽位置位,則外部中
52、斷7~4由INT7~I(xiàn)NT4引腳激活。檢測信號跳變沿之前,MCU首先對INT7~I(xiàn)NT0引腳進(jìn)行產(chǎn)樣。如果選擇了跳變沿中斷或是電平變換中斷,只要信號持續(xù)時間大于一個時鐘周期,中斷發(fā)生;否則無法保證觸發(fā)中斷。</p><p> 2.1.7定時器/計數(shù)器</p><p> ATmega128單片機(jī)有4個定時器/計數(shù)器,其中兩個8位(定時器/計數(shù)器0和定時器/計數(shù)器2)、兩個16位(定時器/
53、計數(shù)器1和定時器/計數(shù)器3),以下簡稱為T/C0、T/C1、T/C2、T/C3。這些定時器計數(shù)器除了能夠?qū)崿F(xiàn)通常的定時和計數(shù)功能以外,還具有捕捉、比較、脈寬調(diào)制(PWM)輸出、實時時鐘計數(shù)等其他功能。這使得定時器/計數(shù)器的應(yīng)用更加靈活、方便。</p><p> 16位的T/C可以實現(xiàn)精確的程序定時、信號測量和波形產(chǎn)生。其主要特點是:雙緩沖的輸出比較寄存器,3個獨立的輸出比較單元,真正的16 位設(shè)計(即允許16位
54、的PWM),一個輸入比較單元,輸入捕捉噪聲抑制器,比較匹配發(fā)生時清除寄存器,無毛刺的相位修正PWM,可變的PWM 周期,頻率發(fā)生器,外部事件計數(shù)器,10 個獨立的中斷源(TOV1、OCF1A、OCF1B、OCF1C、ICF1、TOV3、OCF3A、 OCF3B、OCF3C和ICF3)。</p><p> 2.1.8 同步串行接口(SPI)</p><p> 同步串行接口(SPI)允許A
55、Tmega128單片機(jī)和外設(shè)或者其他單片機(jī)之間實現(xiàn)短距離內(nèi)高速的同步數(shù)據(jù)傳輸。系統(tǒng)包括兩個移位寄存器和一個主時鐘發(fā)生器。有控制寄存器(SPCR)、狀態(tài)寄存器(SPSR)、數(shù)據(jù)寄存器(SPDR)。其中在控制寄存器中,Bit1、Bit0-SPR1、SPR0:SPI時鐘速率選擇1和0.確定主機(jī)的SCK速率。SPR1和SPR0對從機(jī)沒有影響。SCK和振蕩器的時鐘頻率的關(guān)系如表2.8所示。</p><p> 表2.8 S
56、CK和振蕩器的時鐘頻率的關(guān)系</p><p> 2.1.9 JTAG接口和在線調(diào)試系統(tǒng)</p><p> JTAG接口可用于通過JTAG邊界掃描功能測試PCB;對非易失真存儲器、熔絲位和鎖定位進(jìn)行編程;片上調(diào)試OCD。此JTAG接口具有以下特點:</p><p> (1) 遵從IEEE1149.1標(biāo)準(zhǔn)的邊界掃描功能</p><p>
57、(2) 調(diào)試可以訪問所有的片內(nèi)外設(shè),內(nèi)部外部SRAM,寄存器文件,程序寄存器,EEPROM和FLASH存儲器。</p><p> 2.2 SED1335的硬件組成</p><p> 2.2.1 SEIKO EPSON SED1335液晶控制器概述</p><p> SEIKO EPSON公司是日本的一家公司,SED1335液晶顯示控制器就是這家公司生產(chǎn)的。
58、這個液晶控制顯示器的功能特性在同類產(chǎn)品中是很強(qiáng)的。其特點為:有較強(qiáng)功能的I/O緩沖器;指令功能豐富;四位數(shù)據(jù)并行發(fā)送,最大驅(qū)動能力為640×256點陣;圖形和文本方式混合顯示。它的芯片圖2.3所示:</p><p> 2.2.2 SED1335的硬件結(jié)構(gòu)</p><p> 其硬件結(jié)構(gòu)可分成MPU接口部、內(nèi)部控制部和驅(qū)動LCM的驅(qū)動部。下面分別敘述這三部分的功能特點及所屬的引
59、腳功能。其中,SED1335引腳圖和電路原理框圖如下圖2.4、圖2.5所示:</p><p><b> (1) 接口部</b></p><p> SED1335接口部由指令輸入緩沖器、數(shù)據(jù)輸入緩沖器、數(shù)據(jù)輸出緩沖器和標(biāo)志寄存器組成。</p><p> SED1335的接口部所屬的引腳如表2.9、表2.10所示:</p>&l
60、t;p><b> 表2.9 接口引腳</b></p><p> 表2.10 SEL1和SEL2時序設(shè)置</p><p><b> (2) 控制部分</b></p><p> 控制部是SED1335的核心。它由振蕩器、功能邏輯電路、顯示RAM管理電路、字符庫及其管理電路以及產(chǎn)生驅(qū)動時序的時序發(fā)生器組成。在很高的
61、工作頻率下,SED1335 能迅速地編譯MPU發(fā)來的指令代碼,然后把相應(yīng)的參數(shù)置入相應(yīng)的寄存器內(nèi),再讓相應(yīng)的邏輯功能電路運行。控制部可以管理64K顯示RAM,管理內(nèi)藏的字符發(fā)生器及外擴(kuò)的字符發(fā)生器CGRAM或EXCGROM。</p><p> SED1335的幾種顯示特區(qū)。如表2.11所示:</p><p> 表2.11 SED1335顯示特區(qū)</p><p>
62、 控制部所屬引腳有如下表2.12:</p><p> 表2.12控制部引腳</p><p><b> (3) 驅(qū)動部</b></p><p> SED1335驅(qū)動部具有各顯示區(qū)的合成顯示能力,傳輸數(shù)據(jù)的組織功能及產(chǎn)生液晶顯示模塊所需要的時序。SED1335向液晶顯示模塊傳輸數(shù)據(jù)的方式為4位并行方式。其所屬引腳功能如表2.13所示:<
63、;/p><p> 表2.13驅(qū)動部引腳</p><p> 2.2.3 SED1335指令集</p><p> SED1335有13條指令,多數(shù)指令帶有參數(shù)。 SED1335接收到來自MPU系統(tǒng)的指令與數(shù)據(jù)后,產(chǎn)生相應(yīng)的時序和數(shù)據(jù)來控制液晶模塊的顯示。除SLEEP IN、CSRDIR、CSRR和MREAD外,任何一條指令的執(zhí)行都發(fā)生在附屬參數(shù)輸入完成之后。MPU可以
64、用寫入新的指令代碼來結(jié)束上一條指令參數(shù)的寫入。MPU可以這樣組成參數(shù),就是用寫入新的參數(shù)和剩下舊的參數(shù)有效地連起來,組合成新的參數(shù),但是所寫的參數(shù)的順序是不能省略不能改變的。</p><p> 指令表見表2.14所示:</p><p> 表2.14 SED1335指令集</p><p> 初始化的指令代碼是40H,在操作時必須首先寫入這條指令,要是在指令設(shè)置上
65、出現(xiàn)錯誤,顯示必定是不正常的。其他指令在第三章用到時再做相關(guān)介紹。</p><p> 2.3 基于SED1335的液晶顯示模塊</p><p> 本設(shè)計采用的是杭州信利(TRULY)液晶有限公司的基于SED1335液晶顯示控制器的液晶顯示模塊,其型號為TRULY M320240-27A1。實物如圖2.6:</p><p><b> 其特點為 :<
66、;/b></p><p> (1) 320240 點陣。</p><p> (2) 白色LED背光, 無需逆變器,易用、可靠、降低功耗、節(jié)省系統(tǒng)設(shè)計成本。</p><p> (3) 多種接口方式, 加快開發(fā)速度。</p><p> (4) LCD屏背光等有多種選擇,適應(yīng)個性要求。</p><p> 使用
67、SED1335液晶顯示控制器控制液晶顯示模塊,首先要設(shè)計SED1335的控制電路。它包括SED1335與單片機(jī)的接口電路,SED1335與液晶顯示模塊的接口電路以及SED1335管理的顯示存儲器的連接電路。</p><p> 由于SED1335控制板的內(nèi)部設(shè)計及功能已經(jīng)配置完善,因此我們最終只需關(guān)心液晶顯示模塊的外部引腳即可,這也為軟硬件設(shè)計提供了方便。</p><p> 本液晶顯示模
68、塊提供了與MCU的16腳接口,如圖2.7所示:</p><p> 2.4 鎖存器74HC373</p><p> 設(shè)計要求單片機(jī)在傳送數(shù)據(jù)給SED1335時其A0口的信號不能改變,而單片機(jī)Atmega128的PA口是數(shù)據(jù)和地址多路復(fù)用總線,,所以本設(shè)計采用鎖存器74HC373來鎖存PA0地址信號以保持SED1335的A0口信號不變。</p><p> 因為單
69、片機(jī)Atmega128運行速度非??焖?,若采用一般的74LS373其可靠性不能保證。 所以本設(shè)計采用更先進(jìn)的74HC373來實現(xiàn)快速性的要求,其tPD值可達(dá)12ns。</p><p> 74HC373為三態(tài)輸出的八D透明鎖存器,外部管腳如圖2.8所示:</p><p> 當(dāng)三態(tài)允許控制端 OE 為低電平時,Q0~Q7 為正常邏輯狀態(tài),可用來驅(qū)動負(fù)載或總線。當(dāng) OE 為高電平時,Q0~
70、Q7 呈高阻態(tài),即不驅(qū)動總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)G 為低電平時,Q 被鎖存在已建立的數(shù)據(jù)電平。當(dāng)鎖存允許端 G為高電平時,Q 隨數(shù)據(jù) D 而變。</p><p> 真值表如表2.15:</p><p> 表2.15 74HC373真值表</p><p> 2.5 硬件電路構(gòu)成及工作原理</p><p>
71、 2.5.1硬件電路整體設(shè)計</p><p> 本課題的研究對象來源于蘇州華電公司合作的一款高壓便攜式實驗儀。</p><p> 這款高壓實驗儀可輸出幾十到幾百千伏的高壓,可供各大公用事業(yè)單位和工業(yè)行業(yè)作為高穩(wěn)定實驗電源或用于一些電力設(shè)備的耐壓測試等。</p><p> 整個實驗儀器功能強(qiáng)大,可以對各項參數(shù)進(jìn)行設(shè)置,包括輸出高壓值、過壓整定值、時間參數(shù)、實
72、驗?zāi)J?、頻率模式、對比度等等,并且還可對電壓、電流波形進(jìn)行測量。下圖2.9為類似產(chǎn)品的效果圖。</p><p> 因此整個硬件電路設(shè)計也非常復(fù)雜,包括電壓測量,波形測量,人機(jī)交互界面(液晶顯示)等多個部分。</p><p> 2.5.2 人機(jī)交互部分的硬件設(shè)計</p><p> 本課題所研究的就是這一高壓便攜式實驗儀的人機(jī)交互部分,論文詳細(xì)分析了其顯示機(jī)理同時
73、還設(shè)計了其人機(jī)交互界面。并且在原有的基礎(chǔ)上進(jìn)行了改進(jìn),擴(kuò)展了存儲容量,加快了運行速度,并且使響應(yīng)方式更趨合理化。硬件設(shè)計框圖如圖2.10所示:</p><p> 硬件電路實物連接圖如圖2.11所示:</p><p><b> 2.5.3元件明細(xì)</b></p><p> 作為一款精密高壓實驗儀表,其響應(yīng)的快速性和可靠性是首要考慮的因素,因
74、此本設(shè)計選用了AVR系列單片機(jī)中的功能比較強(qiáng)大的Atmega128作為控制核心(圖2.1)。另一個重要因素就是顯示的直觀明了性,而基于SED1335的液晶顯示模塊TRULY M320240-27A1(圖2.6)就能很好的滿足這一要求。因此主要元件及它們之間連接關(guān)系如下:</p><p> 2.5.4 硬件接口電路</p><p> 本設(shè)計采用的是直接訪問方式,即液晶顯示控制器直接與單片
75、機(jī)的總線相連的方式。AVR單片機(jī)Atmega128功能強(qiáng)大,具有53個通用I/O 口線,其中的PA口具有數(shù)據(jù)和地址多路復(fù)用功能。在本設(shè)計中,利用Atmega128的PA口作為數(shù)據(jù)和地址多路復(fù)用總線與基于SED1335液晶顯示控制器的液晶顯示模塊的數(shù)據(jù)口LD相連,發(fā)送數(shù)據(jù)與指令控制SED1335進(jìn)行液晶顯示,如圖2.17所示:</p><p> Atmega128 SED1
76、335</p><p> 中間利用鎖存器74HC373進(jìn)行地址鎖存,以擴(kuò)展地址總線,74HC373的Q0端與SED1335的A0相連,A0是SED1335的I/O緩沖器選擇信號,其與SED1335的讀寫控制信號、相結(jié)合才能確定當(dāng)前送入SED1335數(shù)據(jù)口的信號為指令還是數(shù)據(jù)。因此A0端的信號在傳輸中間不能改變。PG2為外部存儲器地址鎖存使能信號ALE(1通0鎖)。當(dāng)單片機(jī)向SED1335傳輸?shù)刂窌r,ALE置1,
77、使能74HC373的G口,鎖存器D、Q端相通;當(dāng)接著單片機(jī)向SED1335傳輸數(shù)據(jù)時,ALE置0,地址鎖存,使A0端的地址信號不變,從而保證了系統(tǒng)的可靠性。</p><p> SED1335的讀寫控制信號、分別由Atmega128的讀操作信號和寫操作信號控制。A8(PC0)用來選通SED1335。</p><p> 2.5.5 鍵盤中斷輸入電路</p><p>
78、 本設(shè)計采用外部中斷方式來響應(yīng)外部按鍵輸入,以減少CPU資源分配。共有4個按鍵分別連接到Atmega128的INT0~3端。通過設(shè)置外部中斷控制寄存器,使中斷下降沿時觸發(fā)。當(dāng)外部中斷設(shè)置為電平觸發(fā),只要引腳電平為低,中斷就會產(chǎn)生。</p><p> 使用四個中斷按鍵,可以控制單片機(jī)實現(xiàn)一系列功能,包括界面菜單的選擇和跳轉(zhuǎn);數(shù)據(jù)的修改和儲存;PWM波形的輸出等。</p><p> 中斷
79、按鍵功能說明如圖2.18所示:</p><p> 2.5.6 時鐘電路</p><p> 設(shè)計時時鐘由內(nèi)部方式產(chǎn)生,在XTAL1和XTAL2引腳上外接定時元件,內(nèi)部振蕩電路就產(chǎn)生自然振蕩。定時元件采用8M石英晶體以快速起振,2個電容保證了可靠起振。</p><p> 2.5.7 復(fù)位電路</p><p> 設(shè)計了一個外部復(fù)位按鍵S0,
80、一端與引腳RESET相連,另一端直接接地,當(dāng)需要復(fù)位時可立即使RESET端電平為低,以保證電路的可靠性。復(fù)位時所有的I/O 寄存器都被設(shè)置為初始值,程序從復(fù)位向量處開始執(zhí)行。</p><p> 第3章 系統(tǒng)軟件設(shè)計</p><p> 3.1 軟件設(shè)計思想</p><p> 本課題設(shè)計的思想就是一個“參數(shù)設(shè)置”界面,通過此界面達(dá)到一定的操作和顯示。在整個界面中
81、包含了對高壓控制的很多參數(shù),包括過壓整定、設(shè)定高壓、設(shè)定時間、實驗?zāi)J?、頻率模式、對比度和數(shù)據(jù)查詢這七個子菜單。與此同時,可以通過四個功能鍵設(shè)定和更改參數(shù),并可以根據(jù)要求輸出PWM波。</p><p><b> (1) 開機(jī)</b></p><p> 接通電源后立即進(jìn)入“參數(shù)設(shè)置”界面。按【確定】鍵,進(jìn)入“參數(shù)設(shè)置”界面第一層菜單,“設(shè)定高壓”反色顯示。開始參數(shù)設(shè)
82、置。</p><p><b> (2) 參數(shù)設(shè)置</b></p><p> 按【←】或【→】鍵對參數(shù)項目或參數(shù)的位進(jìn)行選擇,使被選擇的項目或位為反色顯示,按【←】鍵使反色光標(biāo)向左移動,無法左移則向上移動,【→】鍵為光標(biāo)向右移動,無法右移則向下移動。選擇后按【確定】按鈕則進(jìn)入了該項目或位的調(diào)整狀態(tài),按【→】鍵使該位的值下降,【←】鍵為上升,更改后按動【確定】鈕即確認(rèn)
83、了此位的值。在參數(shù)設(shè)置過程中,無論什么狀態(tài)下,按【返回】鍵,撤消已更改的設(shè)置和調(diào)整的參數(shù),并返回至前一層中。</p><p> 3.2軟件程序設(shè)計流程圖</p><p> 主程序框圖,如圖3.1所示: </p><p><b> 圖3.1主程序框圖</b></p><p> 定時器中斷,如圖3.2所
84、示: </p><p><b> 圖3.2定時器中斷</b></p><p><b> 按鍵中斷</b></p><p> 按鍵中斷0(INT0)(同INT1)按鍵【→】,如圖3.3所示:</p><p> 按鍵中斷2(INT2)按鍵【返回】,如圖3.4所示:</p>
85、<p> 按鍵中斷3(INT3)按鍵【確定】,如圖3.5所示:</p><p> 圖3.5 按鍵中斷3</p><p> 3.3 ICCAVR軟件編譯環(huán)境簡介</p><p> 3.3.1 ICCAVR開發(fā)環(huán)境介紹</p><p> IMAGECRAFT公司開發(fā)的ICCAVR是一種使用符合ANSI標(biāo)準(zhǔn)的C語言來開發(fā)ATM
86、EL公司生產(chǎn)的微控制器(MCU)程序的一個工具,它有以下幾個主要特點:</p><p> 1) 它是一個包含了工程管理器和編輯器的集成工作環(huán)境(IDE),工程的構(gòu)筑和文件的編輯也在這環(huán)境中完成,源文件全部被組織到工程之中。</p><p> 2)要是編譯發(fā)生錯誤,它會顯示在窗口上的,然后你點擊在錯誤的那個顯示,光標(biāo)就會跳到錯誤的那一行。這個工程管理器還有一個好處,就是會直接產(chǎn)生你想要得
87、到的可以直接使用的INTEL HEX 格式的文件能被很多編譯器所支持,用于下載程序到芯片中。ICCAVR編譯器與Code Vision AVR編譯器的區(qū)別很小。</p><p> 3.3.2 ICCAVR 中的文件類型及其擴(kuò)展名</p><p> 文件類型是由它們的擴(kuò)展名決定的,在本設(shè)計中常用的文件類型的擴(kuò)展名如下:</p><p><b> 輸入
88、文件:</b></p><p> .c 擴(kuò)展名----表示是C語言源文件。</p><p> .s 擴(kuò)展名----表示是匯編語言源文件。</p><p> .h 擴(kuò)展名----表示是C語言的頭文件。</p><p> .prj 擴(kuò)展名----表示是工程文件這個文件保存由IDE所創(chuàng)建和修改的一個工程的有關(guān)信息。</p&
89、gt;<p><b> 輸出文件:</b></p><p> .hex擴(kuò)展名---- INTEL HEX格式文件其中包含了程序的機(jī)器代碼。</p><p> .eep擴(kuò)展名---- INTEL HEX格式文件包含了EEPROM的初始化數(shù)據(jù)。</p><p> .cof擴(kuò)展名---- COFF 格式輸出文件用于在ATMEL的
90、AVR Studio環(huán)境下進(jìn)行程序調(diào)試。</p><p> 3.3.3 ICCAVR的使用</p><p><b> 1)編譯單獨文件</b></p><p> 正常建立一個輸出文件的次序是,首先建立一個工程文件并且定義屬于這個工程的所有文件。然而,我們有時也需要將一個文件單獨地編譯為目標(biāo)文件或最終的輸出文件。</p>&l
91、t;p><b> 2)新建一個工程</b></p><p> 選擇Project菜單下的New命令,會打開一個新建工程窗口,輸入工程名字,并選擇保存路徑后,單擊“保存”按鈕,結(jié)束新建工程。</p><p> 3)建立頭文件及程序源文件</p><p> 選擇File菜單下的New命令,在ICCAVR的集成開發(fā)環(huán)境中打開一個文本編輯
92、器,在其中可以輸入代碼。在其中輸入代碼后,保存時一定要注意文件的格式。如果是頭文件,則保存為.h格式;如果是源程序文件,則保存為.c文件。</p><p><b> 4)編譯條件設(shè)定</b></p><p> 文件建立完畢之后,下一步就是準(zhǔn)備編譯程序而設(shè)定編譯條件及選擇目標(biāo)處理器。在編譯條件選擇默認(rèn),而目標(biāo)處理器則選擇ATmega128.</p>&
93、lt;p><b> 5)編譯程序</b></p><p> 編譯條件設(shè)定后,就可以編譯程序了。編譯方式有兩種:第一種方法是從Project菜單下選擇Make Project命令;第二種方法是選擇工具條中的Build Project按鈕。</p><p> 3.4 變量、地址說明及基本語句</p><p> 3.4.1 變量分配表&
94、lt;/p><p> 首先對本設(shè)計所用到的某些關(guān)鍵全局變量作一個說明:</p><p> 根據(jù)按鍵在不同情況下功能的不同,本設(shè)計可分三層,第一層菜單為對“設(shè)定高壓”、“過壓整定”等參數(shù)項目的上下移動選擇;第二層菜單為當(dāng)按動【確定】按鈕進(jìn)入某一項參數(shù)項目后左右移動對具體哪個參數(shù)位的選擇;第三層菜單為再次按動【確定】按鈕對選定位進(jìn)行修改的狀態(tài)。</p><p> (1
95、) 本程序共定義了3個層標(biāo)志(flag_lvn)及2個位標(biāo)志(item_no_lvn)。3個層標(biāo)志對應(yīng)3層菜單,flag_lvn=1表示正處于n層中;標(biāo)志位item_no_lv1指示當(dāng)前處在7個參數(shù)項目子菜單中的第幾個,item_no_lv2指示進(jìn)入某一項參數(shù)項目后正在對具體哪位進(jìn)行操作。具體定義如表3.1所示:</p><p> ?。?)子菜單對應(yīng)位的參數(shù)。m標(biāo)示行數(shù),n標(biāo)示參數(shù)值的第幾位。</p>
96、<p> 小寫變量為參數(shù)值,大寫為EEPROM存儲值。對應(yīng)初始值如表3.2所示:</p><p> 表 3.2 變量分配表2</p><p> 3.4.2 地址分配說明 </p><p> 為方便編程,把SED1335的13條指令接口地址以相應(yīng)的宏表示如下:</p><p> #define SystemSet0x4
97、0</p><p> #define Scroll0x44</p><p> #define DispOn0x59</p><p> #defineDispOff0x58</p><p> #defineOvlay0x5b</p><p> #define HdotScr0x5a&l
98、t;/p><p> #defineCsrForm0x5d</p><p> #define CgramAdr0x5c</p><p> #define CsrDirR0x4c</p><p> #define CsrDirL0x4d</p><p> #define CsrDirU0x4e<
99、;/p><p> #define CsrDirD0x4f</p><p> #defineCsrW0x46</p><p> #defineCsrR0x47</p><p> #definemWrite0x42</p><p> #definemRead0x43</p>
100、<p> 3.4.3 底層驅(qū)動程序</p><p> 如前所述,SED1335讀寫指令的功能需要由A0、和三方共同配合才能確定,如表3.3所示:</p><p> 表 3.3 讀寫指令的功能</p><p> 由于采用直接控制方式,讀寫程序非常簡單。以寫指令為例,程序代碼如下:</p><p> #define LCD_C
101、OMMAND (*(volatile Uchar *)0x1E01)</p><p><b> 代碼說明:</b></p><p> 把LCD_COMMAND強(qiáng)制設(shè)置為地址為0x1E01的字符型指針。</p><p> 把地址0x1E01化為二進(jìn)制:</p><p><b> 譯碼可知:</b&
102、gt;</p><p> ?。?)由于本設(shè)計所須用的是外部存儲器,而前4352個數(shù)據(jù)地址包含寄存器文件,I/O存儲器,擴(kuò)展的I/O存儲器以及內(nèi)部數(shù)據(jù)SRAM,所以實際上對外存的訪問需從0x1100開始,本設(shè)計設(shè)置入口地址為0x1E01就能保證其訪問的是外部存儲器;</p><p> (2)A8(PC0)=0用于片選LCM;</p><p> (3)最后令A(yù)D0=
103、1,置位SED1335的A0端,確定是寫指令。由此執(zhí)行相應(yīng)功能。</p><p> 同理寫數(shù)據(jù)程序代碼為:</p><p> #define LCD_DATA (*(volatile Uchar *)0x1E00)</p><p> 3.4.4界面元素顯示</p><p><b> ?。?)圖形顯示</b>
104、</p><p> 圖形顯示是LCD界面上最基本的元素,其實無論框架還是線條都是由點陣組成?,F(xiàn)以一個畫橫線程序為例,介紹圖形顯示方法。程序代碼如下: </p><p> void lcd_show_line_hx(Uint x,Uint y,Uint h,Uchar ch)</p><p><b> {</b></p>&l
105、t;p><b> Uchar i;</b></p><p> temp=x+y*0x30;</p><p> LCD_COMMAND=CsrDirR; </p><p> LCD_COMMAND=CsrW;</p><p> LCD_DATA=temp%256;</p><p>
106、 LCD_DATA=temp/256;</p><p> LCD_COMMAND=mWrite;</p><p> for (i=0;i<h;i++)</p><p> LCD_DATA=ch;</p><p><b> }</b></p><p> 程序說明:x和y確定橫線顯示位
107、置的橫坐標(biāo)和縱坐標(biāo)。h確定橫線長度。ch 表示一個字節(jié)單元內(nèi)線形顯(1)隱(0)的情況。Temp是一個全局變量,用于確定光標(biāo)位置。CsrDirR是SED1335指令集中的4CH,用來確定顯示完當(dāng)前數(shù)據(jù)后光標(biāo)自動移動的方向。CsrW是1335指令集中的46H,該指令設(shè)置了光標(biāo)地址CSR。mWrite是1335指令集中的42H,該指令允許MCU連續(xù)的把顯示數(shù)據(jù)寫入顯示區(qū)中。</p><p> 因此,若要以(1,5)
108、為起點繪制一條314點長的實線,只需執(zhí)行程序:lcd_show_line_hx(1,5,38,0xff);即可。</p><p><b> (2)漢字顯示</b></p><p> 同圖形顯示原理是一樣,本設(shè)計以點陣方式顯示漢字,通過軟件提取漢字的點陣字模,將字模數(shù)據(jù)保存在Flash中,顯示時由程序逐字節(jié)地向1335的圖形顯示區(qū)相應(yīng)單元寫入數(shù)據(jù),則在屏幕相應(yīng)位置出
109、漢字。</p><p> 以顯示一個24*24的漢字為例:</p><p> void lcd_show_24(Uchar hz_x,Uchar hz_y,const Uchar *pch,Uchar fb)</p><p><b> {</b></p><p><b> Uchar i;</b&
110、gt;</p><p> LCD_COMMAND=CsrDirR; </p><p> for (i=0;i<72;i+=3)</p><p><b> {</b></p><p> temp=hz_x+hz_y*0x30;</p><p> LCD_COMMAND=CsrW;&l
111、t;/p><p> LCD_DATA=temp%256;</p><p> LCD_DATA=temp/256;</p><p> LCD_COMMAND=mWrite;</p><p> if (fb==1)</p><p><b> {</b></p><p>
112、 LCD_DATA=~(*(pch+i));</p><p> LCD_DATA=~(*(pch+i+1));</p><p> LCD_DATA=~(*(pch+i+2));</p><p><b> }</b></p><p><b> else</b></p><p
113、><b> {</b></p><p> LCD_DATA=*(pch+i);</p><p> LCD_DATA=*(pch+i+1);</p><p> LCD_DATA=*(pch+i+2);</p><p><b> }</b></p><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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于16位單片機(jī)spce061a的圖形液晶模塊的驅(qū)動設(shè)計
- 單片機(jī)課設(shè)報告基于單片機(jī)的液晶顯示畢業(yè)論文
- 畢業(yè)論文---基于51單片機(jī)的液晶滾動顯示
- 基于單片機(jī)的油汀機(jī)控制模塊設(shè)計與實現(xiàn)——畢業(yè)論文
- 基于單片機(jī)的液晶顯示數(shù)字鐘設(shè)計【畢業(yè)論文】
- 基于avr單片機(jī)的led自適應(yīng)調(diào)光系統(tǒng)設(shè)計【畢業(yè)論文】
- 畢業(yè)論文-- 基于單片機(jī)的plc工控模塊的研究設(shè)計
- 基于單片機(jī)數(shù)字電源設(shè)計畢業(yè)論文
- 畢業(yè)論文基于單片機(jī)的時鐘設(shè)計
- 單片機(jī)畢業(yè)論文--基于單片機(jī)的led顯示屏設(shè)計
- 基于單片機(jī)數(shù)字電源設(shè)計畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 51單片機(jī)畢業(yè)論文---基于單片機(jī)的進(jìn)制換算
- avr單片機(jī)溫度采集系統(tǒng)設(shè)計論文
- 基于avr的單片機(jī)的系統(tǒng)設(shè)計--畢業(yè)設(shè)計
- 單片機(jī)秒表設(shè)計畢業(yè)論文
- 基于avr單片機(jī)的倒車?yán)走_(dá)設(shè)計【畢業(yè)設(shè)計】
評論
0/150
提交評論