版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 題 目: 基于51單片機(jī)的液晶滾動顯示 </p><p> 學(xué) 院: 職業(yè)技術(shù)學(xué)院 </p><p>
2、專 業(yè): 應(yīng)用電子技術(shù) </p><p><b> 目 錄</b></p><p><b> 摘要3</b></p><p><b> 1 引言3</b></p><p> 1.1
3、 基于單片機(jī)控制液晶顯示系統(tǒng)的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)3</p><p> 1.1.1 液晶模塊的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)3</p><p> 1.1.2 單片機(jī)的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)4</p><p> 1.2 基于單片機(jī)控制液晶顯示系統(tǒng)的設(shè)計任務(wù)5</p><p> 1.2.1 系統(tǒng)設(shè)計要求5</p&g
4、t;<p> 1.2.2 系統(tǒng)設(shè)計思路5</p><p> 2 基于單片機(jī)控制液晶顯示的硬件設(shè)計5</p><p> 2.1 單片機(jī)控制液晶顯示的系統(tǒng)框圖5</p><p> 2.2 基于單片機(jī)控制液晶顯示系統(tǒng)的主要硬件介紹5</p><p> 2.2.1 單片機(jī)AT89S515</p>
5、<p> 2.2.2 LCD12864液晶顯示模塊8</p><p> 2.2.3 ST7920控制器13</p><p> 2.3 基于單片機(jī)控制液晶顯示系統(tǒng)的硬件電路實(shí)現(xiàn)方法13</p><p> 2.3.1 單片機(jī)最小系統(tǒng)13</p><p> 2.3.2 液晶顯示電路14</p>
6、<p> 3 基于單片機(jī)的液晶顯示系統(tǒng)的軟件設(shè)計14</p><p> 3.1 基于單片機(jī)的液晶顯示系統(tǒng)軟件設(shè)計方案及框圖14</p><p> 3.2 基于單片機(jī)的液晶顯示系統(tǒng)應(yīng)用程序設(shè)計15</p><p> 3.2.1 主程序的設(shè)計15</p><p> 3.2.2 液晶控制程序16</
7、p><p> 3.2.3 初始化程序16</p><p> 3.2.4 顯示程序17</p><p><b> 4 總結(jié)17</b></p><p><b> 參考文獻(xiàn)18</b></p><p> 附錄一:系統(tǒng)原理圖19</p><
8、p> 附錄二:系統(tǒng)PCB圖20</p><p> 附錄三:系統(tǒng)實(shí)物圖21</p><p> 附錄四:系統(tǒng)源程序22</p><p> 基于51單片機(jī)的液晶滾動顯示</p><p> 摘要:液晶滾動顯示是以AT89S51單片機(jī)為核心單元,加上LCD12864液晶模塊構(gòu)成硬件電路。再加上系統(tǒng)的軟件設(shè)計部分,利用單片機(jī)編程使液
9、晶顯示所需文字,從而達(dá)到系統(tǒng)設(shè)計的任務(wù)要求。</p><p> 關(guān)鍵詞:LCD12864;單片機(jī);ST7920控制器</p><p><b> 1 引言</b></p><p> 在電子行業(yè)中,越來越多的產(chǎn)品開始重視人機(jī)信息交換的輸入輸出設(shè)備。其中高像素液晶屏也越來越被廣泛的采用。手機(jī)、GPS、PDA等電子設(shè)備均已使用320*240或更
10、高像素的18位色屏幕。而目前大學(xué)生設(shè)計電子產(chǎn)品或畢業(yè)論文中常采用的顯示電路卻是LED數(shù)碼管,雖然LED顯示模塊結(jié)構(gòu)簡單,使用也比較方便,價格也很低廉。但是LED顯示效果不夠美觀,不能顯示圖形和漢字等數(shù)據(jù)。液晶顯示則彌補(bǔ)了這個缺點(diǎn),因此液晶顯示模塊的應(yīng)用越來越廣泛。比如電子表、計算機(jī)、數(shù)碼相機(jī)、計算機(jī)的顯示器和液晶電視等。在現(xiàn)代的電子設(shè)計中,液晶顯示模塊應(yīng)用得越來越多。它是一種集成度比較高的顯示組件,它將液晶顯示器件、控制器、PCB電路板
11、、背光源和外部連接端口等組裝在一起,可以方便地用于需要液晶顯示的場合。它的英文名稱一般為“LCD Module”,可以簡稱LCM。</p><p> MCS-51單片機(jī)是美國INTE公司于1980年推出的產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與MCS-51單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。雖然目前51系列單片機(jī)已無法滿足目前某些功能或環(huán)境的要求,但是51系列的單片機(jī)仍然是最為成功的單片機(jī)芯片,它的影響力仍然延續(xù)到現(xiàn)在
12、,以致于被越來越多的人所熟悉。而從目前市場價格及普及程度等多方面因素考慮,決定采用AT89S52單片機(jī)作為顯示模塊的控制核心。</p><p> 1.1 基于單片機(jī)控制液晶顯示系統(tǒng)的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)</p><p> 1.1.1 液晶模塊的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)</p><p> 目前眾多電子類產(chǎn)品用于顯示功能常用到數(shù)碼管LED與液晶LCD。雖然
13、數(shù)碼管LED的結(jié)構(gòu)簡單、顯示方便,但是功能比較單一,已無法滿足科技進(jìn)步而產(chǎn)生的顯示要求。并且LED常用到動態(tài)顯示,在復(fù)雜的系統(tǒng)中十分耗費(fèi)系統(tǒng)資源,已逐漸被淘汰。而在液晶顯示模塊中,最主要的就是LCD液晶屏。根據(jù)LCD液晶屏顯示內(nèi)容的不同,液晶顯示模塊可以分為數(shù)顯液晶模塊、點(diǎn)陣字符液晶模塊和點(diǎn)陣圖型液晶模塊3種。(1)數(shù)顯液晶模塊中的顯示部件是段型LCD液晶顯示器件。其中為了使用的方便,還集成了專用的控制器和其他集成電路,其只能顯示數(shù)字以
14、及一些標(biāo)識符號。(2)點(diǎn)陣字符液晶模塊的顯示部件是點(diǎn)陣字符液晶顯示器件,同樣,集成有專用的行、列驅(qū)動器,控制器及必要的連接件、結(jié)構(gòu)件。這種液晶模塊可以顯示數(shù)字和西文字符,功能有所提高,但是不能顯示圖形[1]。 (3)點(diǎn)陣圖型液晶模塊的液晶顯示器件是由連續(xù)的點(diǎn)陣像素構(gòu)成的。因此不僅可以顯示字符,而且可以顯示連續(xù)、完整的圖形。常見的型號有LCD1602,LCD12232,LCD12864等。LCD1602可以在LCD顯示屏上完整顯示32個英
15、文字符和日文等一些字符,適合顯示英文文字信息量較小的地</p><p> 1.1.2 單片機(jī)的國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)</p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢: 低功耗CMOS化MCS-51系列的8031推出時的功耗達(dá)630mW,而現(xiàn)在的
16、單片機(jī)普遍都在100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。象80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機(jī)發(fā)展的主要途徑
17、。微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機(jī)將LCD(液晶)驅(qū)動電路都集成在單一的</p><p> 1.2 基于單片機(jī)控制液晶顯示系統(tǒng)的設(shè)計任務(wù)</p><p&
18、gt; 設(shè)計一款基于單片機(jī)AT89S51液晶滾動顯示系統(tǒng)。</p><p> 1.2.1 系統(tǒng)設(shè)計要求</p><p> ?。?)通過單片機(jī)的控制使液晶進(jìn)行滾動顯示學(xué)校。</p><p> ?。?)通過單片機(jī)的控制使液晶進(jìn)行滾動顯示專業(yè)。</p><p> ?。?)通過單片機(jī)的控制使液晶進(jìn)行滾動顯示姓名。</p><
19、p> (4)通過單片機(jī)的控制使液晶進(jìn)行滾動顯示學(xué)號。</p><p> 1.2.2 系統(tǒng)設(shè)計思路</p><p> 根據(jù)系統(tǒng)設(shè)計要求,初步思路如下:</p><p> ?。?)通過單片機(jī)最小系統(tǒng)的控制使液晶進(jìn)行滾動顯示。</p><p> ?。?)液晶模塊采用LCD12864。</p><p> ?。?)
20、系統(tǒng)采用并口連接方式。</p><p> ?。?)通過驅(qū)動ST7920控制器使用其自帶字庫來提取所需文字。</p><p> 2 基于單片機(jī)控制液晶顯示的硬件設(shè)計</p><p> 2.1 單片機(jī)控制液晶顯示的系統(tǒng)框圖</p><p> 圖2-1 系統(tǒng)組成框圖</p><p> 單片機(jī)控制液晶顯示系統(tǒng)組成
21、框圖如圖2-1所示。根據(jù)設(shè)計要求與設(shè)計思路,確定整個系統(tǒng)由以下兩部分組成:單片機(jī)、液晶顯示模塊。</p><p> 2.2 基于單片機(jī)控制液晶顯示系統(tǒng)的主要硬件介紹</p><p> 系統(tǒng)硬件主要有單片機(jī)、LCD12864液晶模塊。以下主要來介紹系統(tǒng)所用到的幾塊主要芯片。</p><p> 2.2.1 單片機(jī)AT89S51</p><p
22、> 該電路主要用一塊AT89S51。</p><p> AT89S51是一個低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功
23、能強(qiáng)大的微型計算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。</p><p> AT89S51具有如下特點(diǎn):40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。 </p&g
24、t;<p> 此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p><b> (1)主要特性:</b&
25、gt;</p><p> ? 8031 CPU與MCS-51 兼容</p><p> ? 4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán))</p><p> ? 全靜態(tài)工作:0Hz-24KHz</p><p> ? 三級程序存儲器保密鎖定</p><p> ? 128*8位內(nèi)部RAM</p&g
26、t;<p> ? 32條可編程I/O線</p><p> ? 兩個16位定時器/計數(shù)器</p><p><b> ? 6個中斷源</b></p><p><b> ? 可編程串行通道</b></p><p> ? 低功耗的閑置和掉電模式</p><p>
27、; ? 片內(nèi)振蕩器和時鐘電路</p><p> ?。?)引腳結(jié)構(gòu)及描述</p><p><b> 如圖2-2所示:</b></p><p> 圖2-2 AT89S51引腳圖</p><p><b> VCC:供電電壓。</b></p><p><b>
28、GND:接地。</b></p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內(nèi)部
29、提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此
30、作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。[2]</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可
31、接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的特殊功能口,其功能如表2-1所示:</p><p> 表2-1 單片機(jī)AT89S51P3口的特殊功能表 </p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p>
32、<p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。</p><p> ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時
33、,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p>&l
34、t;p> EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> X
35、TAL2:來自反向振蕩器的輸出。</p><p> AT89SXX系列單片機(jī)實(shí)現(xiàn)了ISP下載功能,故而取代了89CXX系列的下載方式,也是因為這樣,ATMEL公司已經(jīng)停止生產(chǎn)89CXX系列的單片機(jī)。</p><p> 2.2.2 LCD12864液晶顯示模塊</p><p> 液晶顯示模塊是128×64 點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖
36、形,內(nèi)置國標(biāo)GB2312 碼簡體中文字庫(16X16 點(diǎn)陣)、128 個字符(8X16 點(diǎn)陣)及64X256 點(diǎn)陣顯示RAM(GDRAM)??膳cCPU 直接接口,提供兩種界面來連接微處理機(jī):8-位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。</p><p><b> (1)引腳說明</b></p><p> 圖2-3 LCD12864引
37、腳說明圖</p><p> (2)主要技術(shù)參數(shù):(ST7920 及兼容芯片)</p><p> 顯示容量: 128X64 點(diǎn)陣點(diǎn)尺寸: 0.48X0.48(WXH)mm</p><p> 工作電壓: 4.8~5.2V 模塊最佳工作電壓: 5.0V</p><p> 工作電流: 4.0mA(5.0V) </p><p
38、> 背光源顏色: 白色(5.0V)</p><p> 背光源工作電流: <150.0mA 藍(lán)膜負(fù)顯 STN</p><p> (3)8位并行連接時序圖</p><p> MPU寫資料到模塊如圖2-4所示:</p><p> 圖2-4 MPU寫資料到模塊時序圖</p><p> MPU從模塊讀出
39、資料如圖2-5所示:</p><p> 圖2-5 MPU從模塊讀出資料時序圖</p><p> ?。?)具體指令介紹:</p><p> 清除顯示(指令代碼為01H)</p><p><b> CODE:</b></p><p> 功能:清除顯示屏幕,把DDRAM 位址計數(shù)器調(diào)整為“00
40、H”</p><p><b> 位址歸位(02H)</b></p><p><b> CODE:</b></p><p> 功能:把DDRAM 位址計數(shù)器調(diào)整為“00H”,游標(biāo)回原點(diǎn),該功能不影響顯示DDRAM</p><p> 點(diǎn)設(shè)定(07H/04H/05H/06H)</p>
41、<p><b> CODE:</b></p><p> 功能:設(shè)定光標(biāo)移動方向并指定整體顯示是否移動。</p><p> I/D=1 光標(biāo)右移,I/D=0 光標(biāo)左移。</p><p> SH=1 且DDRAM 為寫狀態(tài):整體顯示移動,方向由I/D 決定(I/D=1 左移,I/D=0 右移)</p><p&
42、gt; SH=0 或DDRAM 為讀狀態(tài):整體顯示不移動</p><p> 顯示狀態(tài)開/關(guān)(08H/0CH/0EH/0FH)</p><p><b> CODE:</b></p><p> 功能: D=1;整體顯示ON C=1;游標(biāo)ON B=1;游標(biāo)位置ON</p><p> 游標(biāo)或顯示移位控制(10H/14H
43、/18H/1CH)</p><p><b> CODE:</b></p><p> 功能:10H/14H:光標(biāo)左/右移動;18H/1CH:整體顯示左右移動,光標(biāo)跟隨移動,AC 值不變</p><p> 功能設(shè)定(36H/30H/34H)</p><p><b> CODE:</b></
44、p><p> 功能:DL=1(必須設(shè)為1) RE=1;擴(kuò)充指令集動作 RE=0:基本指令集動作</p><p> 設(shè)定CGRAM 位址(40H-7FH)</p><p><b> CODE:</b></p><p> 功能:設(shè)定CGRAM 位址到位址計數(shù)器(AC)</p><p> 設(shè)定DD
45、RAM 位址(80H-9FH)</p><p><b> CODE:</b></p><p> 功能:設(shè)定 DDRAM 位址到位址計數(shù)器(AC)</p><p> 讀取忙碌狀態(tài)(BF)和位址(BF=1, 狀態(tài)忙)</p><p><b> CODE:</b></p><p
46、> 功能:讀取忙碌狀態(tài)(BF)可以確認(rèn)內(nèi)部動作是否完成,同時可以讀出位址計數(shù)器(AC)的值</p><p><b> 寫資料到RAM</b></p><p><b> CODE:</b></p><p> 功能:寫入資料到內(nèi)部的 RAM(DDRAM/CGRAM/TRAM/GDRAM)</p>&
47、lt;p><b> 讀出RAM 的值</b></p><p><b> CODE:</b></p><p> 功能:從內(nèi)部 RAM 讀取資料(DDRAM/CGRAM/TRAM/GDRAM)</p><p><b> 待命模式(01H)</b></p><p>&l
48、t;b> CODE:</b></p><p> 功能:進(jìn)入待命模式,執(zhí)行其他命令都可終止待命模式</p><p> 卷動位址或IRAM 位址選擇(02H/03H)</p><p><b> CODE:</b></p><p> 功能:SR=1;允許輸入卷動位址 SR=0;允許輸入IRAM 位址
49、</p><p> 反白選擇(04H\05H)</p><p><b> CODE:</b></p><p> 功能:選擇一、三行同時作反白顯示,或者二、四行同時作反白顯示</p><p> 睡眠模式(08H/0CH)</p><p><b> CODE:</b>&
50、lt;/p><p> 功能:SL=1;脫離睡眠模式 SL=0;進(jìn)入睡眠模式</p><p> 擴(kuò)充功能設(shè)定(36H/30H/34H)</p><p><b> CODE:</b></p><p> 功能:RE=1;擴(kuò)充指令集動作 RE=0;基本指令集動作 G=1;繪圖顯示ON G=0;繪圖顯示OFF</p>
51、;<p> 設(shè)定IRAM 位址或卷動位址(40H-7FH)</p><p><b> CODE:</b></p><p> 功能:SR=1;AC5~AC0 為垂直卷動位址 SR=0;AC3~AC0 寫ICONRAM 位址</p><p> 設(shè)定繪圖RAM 位址(80H-FFH)</p><p>&l
52、t;b> CODE:</b></p><p> 功能:設(shè)定 GDRAM 位址到位址計數(shù)器(AC)</p><p><b> ?。?)漢字顯示坐標(biāo)</b></p><p><b> 如圖2-6所示:</b></p><p> 圖2-6 漢字顯示坐標(biāo)圖</p>
53、<p> 2.2.3 ST7920控制器</p><p><b> ?。?)功能說明</b></p><p> 顯示資料RAM(DDRAM)</p><p> 顯示資料 RAM 提供64×2 個位元組的空間,最多可以控制4 行16 字(64 個字)的中文字型顯示,當(dāng)寫入顯示資料RAM 時,可以分別顯示CGROM、HC
54、GROM 與CGRAM 的字型;ST7920A 可以顯示三種字型,分別是半寬的HCGROM 字型、CGRAM 字型及中文CGROM 字型,三種字型的選擇,由在DDRAM 中寫入的編碼選擇,在0000H—0006H 的編碼中將自動的結(jié)合下一個位元組,組成兩個位元組的編碼達(dá)成中文字型的編碼(A140—D75F),各種字型詳細(xì)編碼如下:</p><p> 顯示半寬字型:將 8 位元資料寫入DDRAM 中,范圍為02H
55、—7FH 的編碼。</p><p> 顯示CGRAM 字型:將16 位元資料寫入DDRAM 中,總共有0000H,0002H,0004H,0006H 四種編碼。</p><p> 顯示中文字形:將16 位元資料寫入DDRAMK ,范圍為A1A1H—F7FEH 的編碼。[3]</p><p> 2.3 基于單片機(jī)控制液晶顯示系統(tǒng)的硬件電路實(shí)現(xiàn)方法</p&
56、gt;<p> 在本節(jié)將對于具體硬件電路的實(shí)現(xiàn)方法做進(jìn)一步的探討,根據(jù)系統(tǒng)設(shè)計要求與實(shí)現(xiàn)功能,把電路主要分為以下兩個部分:單片機(jī)最小系統(tǒng)以及液晶接下來對每個部分做詳細(xì)的說明。</p><p> 2.3.1 單片機(jī)最小系統(tǒng)</p><p> 單片機(jī)最小系統(tǒng)原理圖電路如圖2-7所示,在原理圖中,C1、R2、R1、key1構(gòu)成復(fù)位電路,C2、C3、JZ1以及單片機(jī)芯片內(nèi)部的
57、時鐘電路構(gòu)成單片機(jī)最小系統(tǒng)的時鐘。</p><p> 圖2-7 單片機(jī)最小系統(tǒng)原理圖</p><p> 2.3.2 液晶顯示電路</p><p> 液晶顯示電路如圖2-8所示,J10所在的就是連接液晶模塊的引腳,通過7腳至14腳與單片機(jī)P0口的連接使液晶受單片機(jī)的控制,而4、5、6、15、17腳分別接至單片機(jī)的P3.7、P3.6、P3.5、P3.3、P3.
58、4腳。</p><p> 圖2-8 液晶顯示電路圖</p><p> 3 基于單片機(jī)的液晶顯示系統(tǒng)的軟件設(shè)計 </p><p> 本系統(tǒng)采用C語言編程,以主程序調(diào)用各個子程序的方法進(jìn)行編程,這樣做不僅使程序閱讀起來清楚,而且調(diào)試、修改程序也方便。</p><p> 3.1 基于單片機(jī)的液晶顯示系統(tǒng)軟件設(shè)計方案及框圖</p&
59、gt;<p> 根據(jù)設(shè)計要求,首先要確定軟件設(shè)計方案,即確定該軟件應(yīng)該完成哪些功能。其次是通過各個子程序的調(diào)用完成所需程序如圖3-1所示:</p><p> 圖3-1 系統(tǒng)程序框圖</p><p> 該系統(tǒng)程序由主程序、延遲子程序、液晶控制程序、初始化程序、顯示程序5大塊構(gòu)成。通過主程序?qū)Ω鱾€子程序的調(diào)用來實(shí)現(xiàn)功能設(shè)計的要求。</p><p>
60、 3.2 基于單片機(jī)的液晶顯示系統(tǒng)應(yīng)用程序設(shè)計</p><p> 3.2.1 主程序的設(shè)計</p><p> 主程序的內(nèi)容包括:設(shè)置液晶工作方式、調(diào)用字庫、循環(huán)程序。主程序框圖如圖3-2所示:</p><p> 圖3-2 主程序框圖</p><p> 設(shè)定液晶工作方式就是調(diào)用了液晶初始化子程序,因為本系統(tǒng)所采用的液晶是帶有字庫
61、型的,所以可以直接用程序調(diào)用(參考附錄四的源程序)。</p><p> 3.2.2 液晶控制程序</p><p> 液晶控制程序也就是液晶的驅(qū)動程序,這些程序?qū)τ谝壕э@示是必不可少的,液晶控制程序框圖如圖3-3所示:</p><p> 圖3-3 液晶控制程序框圖</p><p> 判忙碌程序是對液晶模塊內(nèi)部的忙標(biāo)志位(BF)的判斷
62、,也是執(zhí)行寫命令程序和寫數(shù)據(jù)程序的前提,當(dāng)模塊在接受指令前,微處理順必須先確認(rèn)模塊內(nèi)部處于非忙碌狀態(tài),即讀取BF 標(biāo)志時BF 需為0,方可接受新的指令;如果在送出一個指令前并不檢查BF 標(biāo)志,那么在前一個指令和這個指令中間必須延遲一段較長的時間,即是等待前一個指令確實(shí)執(zhí)行完成。在確定模塊內(nèi)部是處于非忙碌狀態(tài)后,執(zhí)行寫命令程序和寫數(shù)據(jù)程序。</p><p> 3.2.3 初始化程序</p><
63、;p> 初始化程序其實(shí)是針對液晶模塊的初始化,是對一些具體指令的設(shè)定。初始化程序框圖如3-4所示:</p><p> 圖3-4 初始化程序框圖</p><p> 復(fù)位RST=1;通訊方式為并口PSB = 1;34H--擴(kuò)充指令操作;功能設(shè)置,一次送8位數(shù)據(jù),基本指令集;0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置off;0000,0001 清DDRAM;0000,001
64、0 DDRAM地址歸位;1000,0000 設(shè)定DDRAM 7位地址000,0000到地址計數(shù)器AC。</p><p> 3.2.4 顯示程序</p><p> 顯示程序包括了設(shè)置顯示位置程序、漢字顯示程序、寫字符串子程序(詳細(xì)程序請參考附錄四)。以下是顯示程序的程序框圖如圖3-5所示:</p><p> 圖3-5 顯示程序框圖</p>&l
65、t;p> 通過對顯示位置的設(shè)定以及在指定位置顯示的設(shè)置,能夠?qū)ο胍@示的內(nèi)容給予正確的位置及正確的顯示方式。</p><p><b> 4 總結(jié)</b></p><p> 最后談一下對畢業(yè)設(shè)計的一個總結(jié)和自己的感想:</p><p> 這次畢業(yè)設(shè)計是自己動手制作并且編程,對于提高自己的動手能力和編程水平有比較大的幫助。通過這次的
66、課程設(shè)計,對于單片機(jī)的具體運(yùn)用有了一定的了解,使以前學(xué)過的理論知識能和具體遇到的問題結(jié)合起來,使自己的知識結(jié)構(gòu)更加豐富,不但有了理性的認(rèn)知,同時感性上也有一定的認(rèn)識。由于我之前的單片機(jī)學(xué)的不是扎實(shí),很多具體的編程問題都不知道怎么解決,在這次的畢業(yè)設(shè)計中,有些問題我還是自己解決不了,比如涉及到整體滾動卷頁這一塊,相對與整個系統(tǒng)來說是比較難的,為此我查閱了很多單片機(jī)方面的參考文獻(xiàn),并進(jìn)行了總結(jié),使自己收益頗多。在進(jìn)行作品的最后調(diào)試的時候,特
67、別是在軟件調(diào)試當(dāng)中,總是會出現(xiàn)一些的問題,造成不小的困擾。 但并沒有導(dǎo)致我放棄,只要調(diào)出一點(diǎn)也會有一種成就感和滿足感,我相信只有通過自己的雙手做出來的作品,不管成功與否都會對我以后的道路上給予很大的幫助,我想這才是最重要成果。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 趙建領(lǐng)著. 51系列單片機(jī)開發(fā)寶典[M].電子工業(yè)出版社,2007:
68、387~413.</p><p> [2] 何橋、段清明、邱春玲等.單片機(jī)原理與應(yīng)用[M].電子工業(yè)出版社,2008:18~28. </p><p> [3] 矽創(chuàng)電子. ST7920中文字型點(diǎn)矩陣LCD控制/驅(qū)動器應(yīng)用說明.</p><p> [4] Digital Fundamentals(Ninth Edition).數(shù)字電子技術(shù)(第九版)[M].<
69、;/p><p> [5] Brian W.Kernighan, Dennis M.Ritchie 著.徐寶文,李志譯.The C Programming Language (Second Edition),C程序設(shè)計語言(第二版)[M]. 機(jī)械工業(yè)出版社,2008:45~53.</p><p> [6] SMG12864G2-ZK,ST7920c20驅(qū)動器技術(shù)資料.</p>
70、<p> [7] 李華.MCS-51系列單片機(jī)使用接口技術(shù)[M].北京航空航天大學(xué)出版社,1993.</p><p> [8] 吳金戌、沈慶陽、郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用[M].清華大學(xué)出版社,2002:55-68.</p><p> [9] 謝自美.電子線路設(shè)計·實(shí)驗·測試(第二版)[M].華中科技大學(xué)出版社.2000:232-239.</
71、p><p> [10] 何小艇.電子系統(tǒng)設(shè)計(第三版)[M].浙江大學(xué)出版社.2004:310. </p><p><b> 附錄一:系統(tǒng)原理圖</b></p><p> 附錄二:系統(tǒng)PCB圖</p><p><b> 附錄三:系統(tǒng)實(shí)物圖</b></p><p><
72、b> 附錄四:系統(tǒng)源程序</b></p><p> #include <AT89X51.h></p><p> #include <intrins.h> </p><p> #include<math.h> </p><p> #define uchar unsigne
73、d char</p><p> #define uint unsigned int</p><p> #define Set_Bit(BIT) (BIT = 1) /*定義置1函數(shù)*/</p><p> #define Clear_Bit(BIT) (BIT = 0) /*定義清0函數(shù)*/</p><p&
74、gt; #define lcd_8 P0</p><p> sbit ret=P3^4;</p><p> sbit psb=P3^3;</p><p> sbit en=P3^5;</p><p> sbit rw=P3^6;</p><p> sbit rs=P3^7;</p><p
75、> /************************************************/</p><p> void delay(uint z) //延時子程序</p><p><b> {</b></p><p><b> uint x,y;</b></p><p>
76、 for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> /***************12864液晶控制程序********************/</p><p> /*void check_busy
77、(void) //查忙信號</p><p><b> {</b></p><p><b> P2=0x80;</b></p><p><b> rs=1;</b></p><p><b> rw=0;</b></p><p&g
78、t;<b> en=1;</b></p><p> while (!(P2&0x80 ) == 0);</p><p><b> en=0;</b></p><p><b> } */</b></p><p> void write_com (uchar c
79、om) //寫指令</p><p><b> {</b></p><p> // check_busy();</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b>
80、; rs=0;</b></p><p><b> rw=0;</b></p><p><b> en=1;</b></p><p> lcd_8=com;</p><p><b> delay(5);</b></p><p><
81、;b> en=0;</b></p><p><b> delay(5);</b></p><p><b> }</b></p><p> void write_data (uchar dat) //寫數(shù)據(jù)</p><p><b> {</b>&l
82、t;/p><p> //check_busy();</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> rs=1;</b></p><p><b> rw=0;
83、</b></p><p><b> en=1;</b></p><p> lcd_8=dat;</p><p><b> delay(5);</b></p><p><b> en=0;</b></p><p><b>
84、delay(5);</b></p><p><b> }</b></p><p> void write_hanzi(uchar code *s) //hanzi xian shi</p><p><b> {</b></p><p> while(*s>0)</p
85、><p> { write_data(*s);</p><p><b> s++;</b></p><p> delay(50);</p><p><b> }</b></p><p><b> }</b></p><p>
86、; void write_position(uchar row,uchar col) //寫位置</p><p><b> {</b></p><p><b> uchar p;</b></p><p> switch(row)</p><p><b> {</b>
87、</p><p> case 1:p=0x80+col-1;break; //第一行</p><p> case 2:p=0x90+col-1;break; //第二行</p><p> case 3:p=0x88+col-1;break;// 第三行</p><p> case 4:p=0x98+col-1;break; //第四行
88、</p><p> default:p=0x80;break; //回到首行</p><p><b> }</b></p><p> write_com(p); //寫地址命令</p><p><b> }</b></p><p> /********
89、**********一般初始化**********************/</p><p> void init() //初始化</p><p><b> {</b></p><p> delay(20);</p><p> ret=0; //復(fù)位鍵</p>
90、<p><b> delay(4);</b></p><p><b> ret=1;</b></p><p> psb=1; //并行連接</p><p><b> en=0;</b></p><p> write_com(0x30);
91、//功能設(shè)定</p><p><b> delay(2);</b></p><p> write_com(0x30);</p><p><b> delay(1);</b></p><p> write_com(0x0c);//顯示狀態(tài)</p><p><b&g
92、t; delay(1);</b></p><p> write_com(0x01);//清除顯示</p><p><b> delay(1);</b></p><p> write_com(0x06);//地址歸位</p><p> // clrgdram();</p><p&g
93、t;<b> }</b></p><p> void gun_y()</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0x41;i<0x81;i++)</p><p>
94、; {write_com(i);</p><p> delay(600);</p><p><b> i=i+3;</b></p><p><b> }</b></p><p> write_com(0x40);</p><p><b> }</b
95、></p><p> void main()</p><p><b> {</b></p><p> //Init_Device();</p><p><b> init();</b></p><p><b> while(1)</b>&
96、lt;/p><p> { write_position(1,1); </p><p> write_hanzi("職業(yè)技術(shù)學(xué)院");</p><p> write_position(2,1);</p><p> write_hanzi("應(yīng)用電子技術(shù)");</p><p>
97、; write_position(3,1);</p><p> write_hanzi("杜錚威");</p><p> write_position(4,1);</p><p> write_hanzi("07560119");</p><p><b> delay(1);<
98、/b></p><p> write_com(0x34); //擴(kuò)展指令</p><p><b> delay(1);</b></p><p> write_com(0x05); //反白</p><p> write_com(0x03);</p><p> delay(1);
99、 ////////////////////</p><p> gun_y(); //向上卷動</p><p> //write_com(0x06);</p><p> delay(2000);</p><p><b> }</b></p><p><b> }
100、</b></p><p> 浙江師范大學(xué)高職專科畢業(yè)設(shè)計(論文)過程管理材料</p><p><b> 目 錄</b></p><p> 1 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)任務(wù)書 ……………………………27</p><p> 2 浙江師范大學(xué)高職專科畢業(yè)設(shè)計(論文)開題報告 ………………
101、…………29</p><p> 3 浙江師范大學(xué)高職專科畢業(yè)設(shè)計(論文)指導(dǎo)記錄 …………………………34</p><p> 4 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)中期檢查表 ………………………36</p><p> 5 浙江師范大學(xué)高職專科畢業(yè)設(shè)計(論文)答辯資格審查表 …………………37</p><p> 6 浙江師范大
102、學(xué)高職??飘厴I(yè)設(shè)計(論文)答辯記錄 …………………………38</p><p> 7 浙江師范大學(xué)高職專科畢業(yè)設(shè)計(論文)評審表 ……………………………40</p><p> 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)任務(wù)書</p><p> 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)開題報告</p><p> 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文
103、)指導(dǎo)記錄</p><p> 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)中期檢查表</p><p> 檢查日期: 2009 年 11 月 15 日</p><p> 浙江師范大學(xué)高職??飘厴I(yè)設(shè)計(論文)答辯資格審查表</p><p> 畢業(yè)設(shè)計(論文)答辯記錄</p><p> 浙江師范大學(xué)高職專科畢業(yè)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文----基于51單片機(jī)的led滾動顯示系統(tǒng)
- 畢業(yè)論文---基于51單片機(jī)的漢字式lcd滾動顯示
- 電子畢業(yè)論文--基于51單片機(jī)的漢字式lcd滾動顯示
- 基于51單片機(jī)的led滾動顯示系統(tǒng)職業(yè)學(xué)院畢業(yè)論文
- 基于51單片機(jī)的數(shù)字lcd顯示畢業(yè)論文
- 單片機(jī)課設(shè)報告基于單片機(jī)的液晶顯示畢業(yè)論文
- 51單片機(jī)畢業(yè)論文---基于單片機(jī)的進(jìn)制換算
- 基于51單片機(jī)的led點(diǎn)陣顯示屏-畢業(yè)論文
- 基于單片機(jī)的液晶顯示數(shù)字鐘設(shè)計【畢業(yè)論文】
- 基于單片機(jī)led滾動漢字顯示器設(shè)計畢業(yè)論文
- 基于51單片機(jī)數(shù)字溫度計顯示設(shè)計畢業(yè)論文
- 基于at89c51單片機(jī)的滾動電梯顯示設(shè)計
- 基于51單片機(jī)的液晶顯示電子琴設(shè)計
- 基于51單片機(jī)的智能小車畢業(yè)論文
- 畢業(yè)論文---基于51單片機(jī)的電阻測量
- 單片機(jī)畢業(yè)論文--基于單片機(jī)的led顯示屏設(shè)計
- 基于單片機(jī)的畢業(yè)論文-- 基于51單片機(jī)的搶答器設(shè)計
- 51單片機(jī)畢業(yè)論文--基于mcs-51單片機(jī)的步進(jìn)電機(jī)系統(tǒng)
- 基于單片機(jī)的畢業(yè)論文-- 基于51單片機(jī)的搶答器設(shè)計
- 關(guān)于單片機(jī)的畢業(yè)論文--基于單片機(jī)的時間溫度顯示系統(tǒng)
評論
0/150
提交評論