版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p> 題目: 基于單片機的定時顯示設計 </p><p> 學 院: 信息科學與工程學院 </p><p> 專業(yè)(方向): 通信工程 </p><p> 班 級: 通信09-1班 &l
2、t;/p><p> 學 生: </p><p> 指導教師: </p><p> 2013年 5月13日</p><p> 基于單片機的定時顯示設計</p><p><b> 摘要</b></p
3、><p> 目前在大型商場、車站、碼頭、地鐵站以及各類辦事窗口等越來越多的場所和地點需要用LCD液晶顯示顯示圖形和文字。LCD行業(yè)已成為一個高速發(fā)展的新興產(chǎn)業(yè),市場空間空前巨大,前景非常廣闊。隨著信息產(chǎn)業(yè)的均衡高速發(fā)展,LCD顯示作為信息傳播的一種重要手段,已廣泛應用于室內外需要進行服務內容和服務宗旨宣傳的公眾場所,例如戶內外公共場所廣告宣傳、機場車站旅客的引導信息、公交車輛的報站系統(tǒng)、證券與銀行的信息顯示、餐館報
4、價的信息豆示、高速公路的可變情報板、體育場館的比賽轉播、樓宇燈飾、交通信號燈、景觀照明等。顯然,LCD顯示已成為城市亮化、現(xiàn)代化和信息化時代的一個重要標志。</p><p> 單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器
5、等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域。</p><p> 本文是基于單片機的LCD滾動文字顯示器設計,只是單片機的一個簡單應用,但它能夠實現(xiàn)多種功能顯示。簡要介紹了通過單片機控制LED顯示屏顯示文字的原理,以及硬件電路與軟件設計結合方法,希望能幫助廣大電子愛好者了解文字的顯示原理,認識單片機的基本內在
6、結構、工作原理及應用方法,并提高單片機知識技術的運用掌握能力。論述了由單片機控制的LCD文字滾動顯示系統(tǒng)的基本原理,并闡述了運用Proteus軟件實現(xiàn)系統(tǒng)的設計與仿真以及該系統(tǒng)所應用的領域。</p><p> 關鍵詞: 單片機;LCD;proteus;文字顯示</p><p> The timing display design based on single chip</p&g
7、t;<p> Abstract :LED display a control semiconductor light-emitting display, it is a lot of red light-emitting diode, by the bright lights off to show character. More and more places in shopping malls, railway st
8、ations, docks, subway stations and a variety of work window LED dot matrix display graphics and characters. LED industry has become a fast-growing emerging industry, a huge market space and broad prospects. With the rapi
9、d development of the information industry, LED display has been widely used</p><p> Monolithic is an integrated circuit chip, is the use of ultra-large-scale integrated circuit technology with the data proc
10、essing capabilities of the CPU random access memory RAM, read-only memory ROM, and a variety of I / O port and interrupt system, the timer / timer other functions (which may also include the display drive circuit, the pu
11、lse width modulation circuit, the analog multiplexer circuit of the a / D converter, etc.) are integrated into a small piece of silicon is formed on the compu</p><p> Keywords:Monolithic ;LED ;the proteus;
12、text display</p><p><b> 目 錄</b></p><p><b> 摘要Ⅰ</b></p><p> AbstractⅡ</p><p> 第1章 引 言1</p><p> 第2章 系統(tǒng)設計框圖2</p><
13、p> 第3章 硬件電路設計2</p><p> 3.1 AT89C52單片機概述2</p><p> 3.1.1主要特性3</p><p> 3.1.2引腳功能說明3</p><p> 3.1.3AT89C52單片機的內部結構4</p><p> 3.1.4AT89C52單片機的最小系統(tǒng)6
14、</p><p> 3.2 LCD顯示屏介紹7</p><p> 3.2.1 LCD的定義及作用7</p><p> 3.2.2 LCD顯示器的工作原理7</p><p> 3.2.3 LCD的分類9</p><p> 3.2.4 LCD的特點9</p><p> 3.3系
15、統(tǒng)硬件設計電路組成9</p><p> 3.3.1時鐘電路的設計9</p><p> 3.3.2復位電路的設計10</p><p> 第4章 系統(tǒng)軟件設計11</p><p> 第5章 系統(tǒng)制作與調試11</p><p> 5.1 仿真環(huán)境介紹11</p><p> 5.
16、2 仿真過程12</p><p> 5.3 硬件制作與調試13</p><p> 5.3.1 硬件電路板的制作13</p><p> 5.3.2 系統(tǒng)硬件調試14</p><p> 5.4 系統(tǒng)軟件調試14</p><p> 第6章 結 論14</p><p><b
17、> 致 謝16</b></p><p><b> 參考文獻17</b></p><p><b> 附錄1源程序18</b></p><p><b> 附錄2主程序23</b></p><p><b> 附錄3實物圖25</
18、b></p><p><b> 1、引言</b></p><p><b> 1.1課題研究背景</b></p><p> 在現(xiàn)實社會中華麗實用的廣告牌可以給我們的生活添加光彩、可以給店鋪招攬更多的生意。傳統(tǒng)的廣告牌都是固定的文字,并且時間的作用長了會褪色,使文字模糊難辯,這給我們的生活帶來極大的不便。尤其是到了
19、晚上傳統(tǒng)的廣告牌就失去了該有的作用。所以在這里我們需要一種造價低廉、使用方便、可以發(fā)光、可以方便改變文字并且比較耐用的電子顯示廣告牌。本文主要介紹LCD文字滾動顯示的基本原理及制作流程來解決以往的傳統(tǒng)的廣告牌并且做到節(jié)約資源來達到比以往達到更好的效果。本課題設計了一種以AT89C52單片機為核心的低成本、高精度、微型化LCD文字滾動顯示系統(tǒng)并且具有易于安裝檢測、軟件功能完善、工作可靠、準確度高等優(yōu)點來實現(xiàn)以往廣告牌所達不到的效果。<
20、;/p><p> 1.2課題設計過程及工藝要求</p><p><b> 1.2.1基本功能</b></p><p><b> ?、?發(fā)光顯示</b></p><p><b> ② 正確的顯示文字</b></p><p><b> ?、?修改
21、文字</b></p><p> ?、?控制文字的滾動方向</p><p> ?、?修改文字顯示的間隔時間</p><p> 1.2.2 主要技術參數(shù)</p><p> ① 單片機選擇AT89C52</p><p> ?、?LCD顯示器選擇1602</p><p> ?、?晶振選擇
22、12MHz</p><p> ?、?兩個輸出電容分別是100uF和1000uF</p><p> ?、?四個外圍電阻選用1K</p><p> 1.2.3 設計的重點與難</p><p> 本設計的主要任務是顯示標語,因此在硬件安裝方面我們需要有適當?shù)拿娣e來安裝電子顯示屏,并且還要通過數(shù)據(jù)線把電子顯示屏和電腦連起來。</p>
23、<p> 軟件設計的難點以及所需要解決的問題:</p><p> ?、?C語言編程的學習,用于程序編譯</p><p> ?、?單片機系統(tǒng)的構成以及應用運行的原理</p><p> ?、?單片機系統(tǒng)與程序的連接,軟件框架的構建</p><p> ?、?程序算法的設計和調用</p><p> ?、?單片機應
24、用程序各個基本模塊的整合</p><p> ?、?電路板的焊接,程序的編譯</p><p> ⑦ 軟件的性能優(yōu)化,兼容性優(yōu)化</p><p> ?、?Proteus與Keil uVision兩種軟件的運用</p><p><b> 2、系統(tǒng)設計框圖</b></p><p> 系統(tǒng)框圖如圖1所
25、示。本篇論文以單片機AT89C52單片機為核心外加各種接口電路組成,共有六個主要部分組成:單片機AT89C52芯片、復位電路、外圍電路、電源電路、編譯程序模塊以及LCD液晶顯示器模塊。</p><p><b> 圖1 系統(tǒng)框圖</b></p><p><b> 3、硬件電路設計</b></p><p> 3.1 A
26、T89C52單片機概述</p><p> AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器(ROM)和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應用。</p&g
27、t;<p> 3.1.1 主要特性</p><p> 兼容MCS51指令系統(tǒng) </p><p> 8k可反復擦寫(大于1000次)Flash ROM; </p><p> 32個雙向I/O口; </p><p> 256x8bit內部RAM; </p><p> 3個16位可編程定時/計數(shù)器中
28、斷; </p><p> 時鐘頻率0-24MHz; </p><p> 2個串行中斷,可編程UART串行通道; </p><p> 2個外部中斷源,共8個中斷源; </p><p> 2個讀寫中斷口線,3級加密位; </p><p> 低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能; </p>&
29、lt;p> 有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產(chǎn)品的需求</p><p> 3.1.2 引腳功能說明</p><p><b> 引腳圖如圖2所示:</b></p><p> 圖2 AT89C52引腳圖</p><p> AT89C52為8 位通用微處理器,采用工業(yè)行業(yè)標準
30、的C51內核,在內部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC 內部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。</p><p><b> 電源引腳:</b></p><p> VCC(40):+5V電源</p>&l
31、t;p> GND(20):接地。 </p><p><b> 時鐘引腳:</b></p><p> XTAL1(19):反向振蕩放大器的輸入,</p><p> XTAL2(18):來自反向振蕩器的輸出。</p><p><b> 控制引腳:</b></p><p
32、> RST(9):復位輸入。當振蕩器復位時,要保持RST腳兩個機器周期的高電平時間。 </p><p> ALE/PROG(30):地址鎖存有效信號輸出端。 </p><p> /PSEN(29):外部程序存儲器的選通信號。 </p><p> /EA/VPP(31): 當/EA保持低電平
33、時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p><b> I/O引腳:</b></p><p> P0口:無片外存儲器時,可作通用I/O口使用,訪問外存儲器時
34、,用作地址總線的低8位和數(shù)據(jù)總線。</p><p> P1口:僅用作I/O口。 </p><p> P2口:無片外存儲器時,作通用I/O口使用,訪問外存儲器時,用作地址總線的低8位。</p><p> P3口:用作I/O口,用于串行口、中斷源輸入、計數(shù)器、片外RAM選通。 </p><p> 3.1.3 AT89C52單片機的內
35、部結構</p><p> AT89C52的工作電源電壓為5(1±0.2)V且典型值為5V,最高工作頻率為24MHz.</p><p> AT89C52各部分的組成及功能如圖3所示:</p><p> 圖3 MCS-52系列單片機的內部結構</p><p><b> ① 特殊功能寄存器</b></p
36、><p> 在AT89C52 片內存儲器中,80H-FFH 共128 個單元為特殊功能寄存器(SFR),SFR 的地址空間映象。 </p><p> 并非所有的地址都被定義,從80H—FFH 共128 個字節(jié)只有一部分被定義,還有相當一部分沒有定義。對沒有定義的單元讀寫將是無效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將丟失。 </p><p> 不應將數(shù)據(jù)寫入未定義
37、的單元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能,在這種情況下,復位后這些單元數(shù)值總是“0”。 </p><p> AT89C52除了有AT89C51所有的定時/計數(shù)器0 和定時/計數(shù)器1 外,還增加了一個定時/計數(shù)器2。定時/計數(shù)器2 的控制和狀態(tài)位位于T2CON、T2MOD,寄存器對(RCAO2H、RCAP2L)是定時器2 在16 位捕獲方式或16 位自動重裝載方式下的捕獲/自動重裝載寄存器。</p
38、><p><b> ?、?數(shù)據(jù)存儲器</b></p><p> AT89C52 有256 個字節(jié)的內部RAM,80H-FFH 高128 個字節(jié)與特殊功能寄存器(SFR)地址是重疊的,也就是高128字節(jié)的RAM 和特殊功能寄存器的地址是相同的,但物理上它們是分開的。 </p><p> 當一條指令訪問7FH 以上的內部地址單元時,指令中使用的尋址
39、方式是不同的,也即尋址方式?jīng)Q定是訪問高128 字節(jié)。</p><p> RAM 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功能寄存器。 </p><p> 例如,下面的直接尋址指令訪問特殊功能寄存器0A0H(即P2 口)地址單元。 </p><p> MOV 0A0H,#data </p><p> 間接尋址指令訪問高
40、128 字節(jié)RAM,例如,下面的間接尋址指令中,R0 的內容為0A0H,則訪問數(shù)據(jù)字節(jié)地址為0A0H,而不是P2 口(0A0H)。 </p><p> MOV @R0,#data </p><p> 堆棧操作也是間接尋址方式,所以,高128 位數(shù)據(jù)RAM 亦可作為堆棧區(qū)使用。 </p><p> ·定時器0和定時器1: </p><
41、;p> AT89C52的定時器0和定時器1 的工作方式與AT89C51 相同。</p><p><b> ?、?時鐘振蕩器</b></p><p> AT89C52 中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自激振蕩器。</p&g
42、t;<p> 3.1.4 AT89C52單片機的最小系統(tǒng)</p><p> 從本質上講,單片機本身就是一個最小的應用系統(tǒng)。AT89C52雖然有內部振蕩電路,但要形成時鐘,必須外部附加電路。由于晶振、開關等器件無法集成到芯片內部,這些器件又是單片機工作所必需的器件,因此,由單片機與晶振電路及由開關、電阻、電容等構成的復位電路就是單片機的最小應用系統(tǒng)。AT89C52單片機的時鐘產(chǎn)生方法有兩種。內部時
43、鐘方式和外部時鐘方式。</p><p> 本設計采用內部時鐘方式,利用芯片內部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內部的振蕩電路便產(chǎn)生自激振蕩。本設計采用最常用的內部時鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在20pF到100pF之間取值。
44、所以本設計中,振蕩晶體選擇12MHZ,電容選擇30pF。如圖4所示,AT89C52片內有Flash程序存儲器,由它構成的最小應用系統(tǒng)簡單可靠。</p><p> 圖4 AT89C52單片機最小應用系統(tǒng)</p><p> 3.2 LCD顯示屏介紹</p><p> 3.2.1 LCD的定義及作用</p><p> ① LCD 液晶顯示
45、器是 Liquid Crystal Display 的簡稱,LCD 的構造是在兩片平行的玻璃當中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產(chǎn)生畫面。比CRT要好的多,但是價錢較其稍貴。</p><p> ② LCD主要應用于電腦的顯示屏,隨著電子技術的發(fā)展越來越多的手寫手機也大量使用LCD做顯示屏,還有一些廣告牌、標語欄等也都用LCD來顯示。&
46、lt;/p><p> 3.2.2 LCD顯示器的工作原理</p><p> 從液晶顯示器的結構來看,無論是筆記本電腦還是手機顯示系統(tǒng),采用的LCD顯示屏都是由不同部分組成的分層結構。LCD由兩塊玻璃板構成,厚約1mm,其間由包含有液晶材料的5μm均勻間隔隔開。因為液晶材料本身并不發(fā)光,所以在顯示屏兩邊都設有作為光源的燈管,而在液晶顯示屏背面有一塊背光板(或稱勻光板)和反光膜,背光板是由熒光
47、物質組成的可以發(fā)射光線,其作用主要是提供均勻的背景光源。 </p><p> 背光板發(fā)出的光線在穿過第一層偏振過濾層之后進入包含成千上萬液晶液滴的液晶層。液晶層中的液滴都被包含在細小的單元格結構中,一個或多個單元格構成屏幕上的一個像素。在玻璃板與液晶材料之間是透明的電極,電極分為行和列,在行與列的交叉點上,通過改變電壓而改變液晶的旋光狀態(tài),液晶材料的作用類似于一個個小的光閥。在液晶材料周邊是控制電路部分和驅動電
48、路部分。當LCD中的電極產(chǎn)生電場時,液晶分子就會產(chǎn)生扭曲,從而將穿越其中的光線進行有規(guī)則的折射,然后經(jīng)過第二層過濾層的過濾在屏幕上顯示出來。 </p><p> 液晶顯示技術也存在弱點和技術瓶頸,與CRT顯示器相比亮度、畫面均勻度、可視角度和反應時間上都存在明顯的差距。其中反應時間和可視角度均取決于液晶面板的質量,畫面均勻度和輔助光學模塊有很大關系。 </p><p> 對于液晶顯示器
49、來說,亮度往往和他的背板光源有關。背板光源越亮,整個液晶顯示器的亮度也會隨之提高。而在早期的液晶顯示器中,因為只使用2個冷光源燈管,往往會造成亮度不均勻等現(xiàn)象,同時明亮度也不盡人意。一直到后來使用4個冷光源燈管產(chǎn)品的推出,才有很大的改善。 </p><p> 信號反應時間也就是液晶顯示器的液晶單元響應延遲。實際上就是指的液晶單元從一種分子排列狀態(tài)轉變成另外一種分子排列狀態(tài)所需要的時間,響應時間愈小愈好,它反應了
50、液晶顯示器各像素點對輸入信號反應的速度,即屏幕由暗轉亮或由亮轉暗的速度。響應時間越小則使用者在看運動畫面時不會出現(xiàn)尾影拖拽的感覺。有些廠商會通過將液晶體內的導電離子濃度降低來實現(xiàn)信號的快速響應,但其色彩飽和度、亮度、對比度就會產(chǎn)生相應的降低,甚至產(chǎn)生偏色的現(xiàn)象。這樣信號反應時間上去了,但卻犧牲了液晶顯示器的顯示效果。有些廠商采用的是在顯示電路中加入了一片IC圖像輸出控制芯片,專門對顯示信號進行處理的方法來實現(xiàn)的。IC芯片可以根據(jù)VGA輸
51、出顯卡信號頻率,調整信號響應時間。由于沒有改變液晶體的物理性質,因此對其亮度、對比度、 色彩飽和度都沒有影響,這也是為什么華碩、三星、LG等技術型廠商的液晶產(chǎn)品畫面效果更好的原因,但是這種方法的制造成本也相對較高。 </p><p> 由上便可看出,液晶面板的質量并不能完全代表液晶顯示器的品質,沒有出色的顯示電路配合,再好的面板也不能做出性能優(yōu)異的液晶顯示器。隨著LCD產(chǎn)品產(chǎn)量的增加、成本的下降,液晶顯示器會大
52、量普及。</p><p> 3.2.3 LCD的分類</p><p> 液晶顯示器按照控制方式不同可分為被動矩陣式LCD及主動矩陣式LCD兩種。 </p><p> 段碼式顯示和點陣式顯示。段碼是最早最普通的顯示方式,比如計算器,電子表這些。自從有了MP3,就開發(fā)了點陣式,如MP3,手機屏,數(shù)碼相框這些高檔消費品。 </p><p>
53、 被動矩陣式LCD在亮度及可視角方面受到較大的限制,反應速度也較慢。由于畫面質量方面的問題,使得這種顯示設備不利于發(fā)展為桌面型顯示器,但由于成本低廉的因素,市場上仍有部分的顯示器采用被動矩陣式LCD。被動矩陣式LCD又可分為TN-LCD(Twisted Nematic-LCD,扭曲向列LCD)、LCD (Super TN-LCD,超扭曲向列LCD)和DSTN-LCD(Double layer STN-LCD,雙層超扭曲向列LCD)。
54、 </p><p> 目前應用比較廣泛的主動矩陣式LCD,也稱TF-LCD (Thin Film Transistor-LCD,薄膜晶體管LCD)。液晶顯示器是在畫面中的每個像素內建晶體管,可使亮度更明亮、色彩更豐富及更寬廣的可視面積。與CRT顯示器相比,LCD顯示器的平面顯示技術體現(xiàn)為較少的零件、占據(jù)較少的桌面及耗電量較小,但CRT技術較為穩(wěn)定成熟。</p><p> 3.2.4 L
55、CD的特點 </p><p> 低壓微功耗、平板型結構、被動顯示型(無眩光,不刺激人眼,不會引起眼睛疲勞)、顯示信息量大(因為像素可以做得很小)、易于彩色化(在色譜上可以非常準確的復現(xiàn))、無電磁輻射(對人體安全,利于信息保密)、長壽命(這種器件幾乎沒有什么劣化問題,因此壽命極長,但是液晶背光壽命有限,不過背光部分可以更換)。</p><p> 3.3系統(tǒng)硬件設計電路組成</p&g
56、t;<p> 3.3.1時鐘電路的設計</p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。</p><p> 因為一個機器周期含有6個狀態(tài)周期,而每個狀態(tài)周期為2個振蕩周期,所以一個機器周期共有12個振蕩周期,如果外接石英晶體振蕩器的振蕩頻率為1
57、2MHZ,一個振蕩周期為1/12us,故而一個機器周期為1us[5]。如圖5所示為時鐘電路。</p><p><b> 圖5 時鐘電路</b></p><p> 3.3.2 復位電路的設計</p><p> 復位方法一般有上電自動復位和外部按鍵手動復位,單片機在時鐘電路工作以后, 在RESET端持續(xù)給出2個機器周期的高電平時就可以完成復
58、位操作[6]。例如使用晶振頻率為12MHz時,則復位信號持續(xù)時間應不小于2us[7]。本設計采用的是外部手動按鍵復位電路。如圖6示為復位電路。</p><p><b> 圖6 復位電路</b></p><p><b> 4、軟件程序實現(xiàn)</b></p><p> 主程序工作流程圖:如圖7:</p>
59、<p> 圖7 主程序工作流程圖</p><p><b> 5、系統(tǒng)制作與調試</b></p><p> 5.1 仿真環(huán)境介紹</p><p> Proteus 是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真,分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:&
60、lt;/p><p> ?、?實現(xiàn)了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。</p><p> ?、?支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:ARM7(LPC21xx)、 8051/52系列、A
61、VR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。</p><p> ?、?提供軟件調試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如Keil C51 uVision、MPLAB等軟件。</p><p> ?、?具有強大的原理圖繪制
62、功能??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。</p><p> Keil uVision是美國Keil Software公司出品的52系列兼容單片機C語言軟件開發(fā)系統(tǒng),支持C語言和匯編語言編程,與匯編相比,C語言在結構性、可讀性、可維護性上有明顯的優(yōu)勢,易學易用。Keil uVision軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面,生成的目標代碼效率
63、非常高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVision(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,由以下幾部分組成:μVision IDE集成開發(fā)環(huán)境C51編譯器、A51匯編器、LIB51庫管理器、BL51連接/定位器、OH51目標文件生成器以及 Monitor-51、RTX51實時操作系統(tǒng)。</p>&
64、lt;p> 應用Keil進行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存,建立工程并添加源文件,設置工程,編譯/匯編、連接,產(chǎn)生目標文件,再進行程序調試。成功編譯/匯編、連接后,選擇菜單Debug-Start/Stop Debug Session(或按Ctrl+F5鍵)進入程序調試狀態(tài)。</p><p> Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過程單步執(zhí)行(按F10或選擇Debug-
65、Step Over)、全速執(zhí)行等多種運行方式進行程序調試。如果發(fā)現(xiàn)程序有錯,可采用在線匯編功能對程序進行在線修改,不必執(zhí)行先退出調試環(huán)境、修改源程序、對工程重新進行編譯/匯編和連接、然后再次進入調試狀態(tài)的步驟。對于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進行調試的程序行,采用斷點設置的方法處理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints等)。在模擬調試程
66、序時,還須通過編程器將.hex目標文件燒錄寫入單片機中才能觀察目標樣機真實的運行狀況。</p><p><b> 5.2 仿真過程</b></p><p> 運行PROTEUS的ISIS程序后,進入該仿真軟件的主界面。在工作前,要設置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色、圖形界面大小等項目。通過工具欄中的P (從庫中選擇元件命令)命令,在PICK DE
67、VICES窗口中選擇電路所需的元件,放置元件并調整其相對位置,元件參數(shù)設置,元器件間連線,將電路圖繪制完畢。</p><p> 利用KEIL生成HEX文件。具體方法如下:</p><p> ?、?打開單片機軟件開發(fā)系統(tǒng)KEIL uVision,單擊“uVision”菜單中的“PROJECT”,在此下拉菜單中單擊“NEW PROJECT”后。彈出“CREAT NEW PROJECT”對話
68、框。鍵入新建項目名稱。</p><p> ?、?鍵入新建項目名并單擊“確定后”,在彈出的“SELECT DEVICE”對話框中選擇合適的單片機型號,如89C52。</p><p> ?、?單擊“uVision”菜單中的“FILE”,在此下拉菜單中選擇“NEW”后,打開一個空的文本編輯口,在此窗口總鍵入程序,創(chuàng)建新的源程序。</p><p> ④ 在左邊的“P
69、ROJECT”窗口的“FILE”頁中單擊文件組,再單擊鼠標右鍵后,在彈出的窗口中選中“ADD FILES TO GROUP” “SOURCE GROUP1”選項,將程序導入到“SOURCE GROUP 1”中。</p><p> ?、?在“PROJECT”下拉菜單中,選擇“OPTIONS FOR TARGET”對話框,在此對話框中“OUTPUT”選項卡中的“CREAT HEX FILE”選項。</p>
70、;<p> ?、?在“PROJECT”下拉菜單中,選擇“REBUILD ALL TARGET FILES”項。若程序編譯成功,將生產(chǎn).HEX文件。</p><p> 5.3 硬件制作與調試</p><p> 5.3.1 硬件電路板的制作</p><p> 硬件電路板的制作有幾種方法。一種是通過PCB板圖印刷電路板,在Altium designe
71、r軟件中畫出系統(tǒng)原理圖,然后進行調試,直到?jīng)]有錯誤后再進行PCB圖設計,然后印刷制作電路板。在Altium designer軟件中可以自己封裝一個,但是購買的點陣元器件引腳排列不一定和自己封裝的相同,如果不一樣,做的PCB板就有可能不能用,這樣會浪費太多的精力和時間,考慮到這個問題,我沒有選擇這種方法。還有一種方法就是使用萬能板制作電路板,本次設計中硬件部分主要有電源模塊、單片機模塊、驅動模塊、顯示模塊四部分組成。原理圖設計思路清晰,所
72、用元器件不是很多,把元器件合理布局,布線焊接,是比較節(jié)省時間和可行實用的方法,根據(jù)在校課程設計中自己通過萬能板做實物總結的經(jīng)驗和記錄的指導老師的總結,我選擇使用萬能板制作電路板這種方法。</p><p> 5.3.2 系統(tǒng)硬件調試</p><p> 系統(tǒng)硬件調試通過分以下階段進行:</p><p><b> ① 邏輯錯誤調試</b><
73、;/p><p> 硬件的邏輯錯誤是由于設計錯誤和加工過程中的工藝性錯誤所造成的。這類錯誤包括:錯線、開路、短路等幾種,其中短路是最常見的故障。</p><p><b> ?、?器件調試</b></p><p> 元器件失效的原因有兩個方面:一是器件本身已損壞或性能不符合要求;二是由于組裝錯誤造成的元器件失效,如電解電容、二極管的極性錯誤,集成塊
74、安裝方向錯誤等。</p><p><b> ③ 可靠性調試</b></p><p> 引起系統(tǒng)不可靠的因素很多,如金屬化孔、接插件接觸不良會造成系統(tǒng)時好時壞;內部和外部的干擾、電源紋波系數(shù)過大、器件負載過大等造成邏輯電平不穩(wěn)定;另外,走線和布局的不合理等也會引起系統(tǒng)可靠性差。</p><p> 5.4 系統(tǒng)軟件調試</p>
75、<p> 系統(tǒng)軟件調試通過Keil uVision軟件進行,在PROTEUS ISIS編輯窗口中,單擊鼠標右鍵選中單片機89C52并單擊鼠標左鍵,彈出“EDIT COMPONET”對話框,在此對話框的“CLOCK FREQUENCY”欄中設置單片機晶振頻率為12MHz,在“PROGRAM FILE”欄中單擊瀏覽選中KEIL生成的HEX文件[15]。單擊運行,就可以看到仿真的結果了。本設計中上行顯示的是“Welcome to
76、You! ”的字樣,下行顯示的是“This is it!”字樣。最后再將生成的.HEX文件用stc-isp軟件導入到AT89C52芯片中即可看到真實的結果。</p><p><b> 6、結 論</b></p><p> 本設計硬件電路能夠實現(xiàn)滾動顯示文字功能,在軟件中設計向上、下、左、右四個方向滾動顯示文字,通過四個按鍵來切換顯示方式,該硬件電路可以能夠實現(xiàn)功
77、能。</p><p> 雖然本設計只使用了一塊1602 LED,電路簡單,但是已經(jīng)包涵了LED顯示屏的電路基本原理和基本程序,只要擴展單片機的I/O接口,并增加一些LED液晶顯示和相關芯片,就能設計出更大面積、更多花樣的LED顯示屏。因此本文對同類設計具有一定的理論和實踐參考價值。</p><p> 本設計的理論基礎是單片機原理,微機原理,模擬電子技術和數(shù)子電子技術。比如AT89C52
78、芯片的一些工作原理是在MCS—51的基礎上通過改進完成的。時鐘電路、復位電路、電源模塊、74HC154和74HC595芯片的工作方式和工作原理也分別在模擬和數(shù)子電路里介紹過。</p><p> 通過本設計不僅把以前學過的知識重新溫習,而且在查閱課外資料時還有好多芯片都是以學過的芯片為基礎,并且在其基礎上改進和完善的。通過畢業(yè)設計的實施,我把在校學習的理論知識和實際應用有機地結合起來,同時也能培養(yǎng)我獨立思考、勇于
79、創(chuàng)新的科學態(tài)度和鉆研精神,為我將要踏上工作崗位做一次提前的鍛煉。</p><p> 畢業(yè)設計使我在以下幾個方面有所明顯提高:融會和貫通所學習專業(yè)的基本概念、基本理論和基本技能。綜合運用所學專業(yè)理論知識和技能分析,提高解決實際問題的能力。以科學的、實事求是的態(tài)度進行科學試驗和工程實踐的動手操作能力。提高文獻閱讀和使用能力。</p><p><b> 致 謝</b>&
80、lt;/p><p> 經(jīng)過幾十天的忙碌,我的畢業(yè)設計已經(jīng)接近尾聲,在這里首先要感謝我的指導老師xx。他平日里工作繁多,但在我做畢業(yè)設計的每個階段,從外出實習到查閱資料,設計草案的確定和修改,中期檢查,后期詳細設計,繪制原理圖等過程中都給予了我悉心的指導。老師細心地幫我糾正原理圖的錯誤,不辭辛苦的幫我解決設計中遇到的困難,除了敬佩xx老師的專業(yè)水平外,他的治學嚴謹和科學研究的精神也是我永遠學習的榜樣,并將積極影響我今
81、后的學習和工作。</p><p> 其次要感謝在畢業(yè)設計中給予我?guī)椭耐瑢W,設計中一些問題,在和同學的探討中得到了解決,不僅增進了我和同學之間的關系,也開拓了我的知識面,啟發(fā)了我的思考,還使我掌握了處理問題的方法,增強了我處理問題的能力。</p><p> 然后還要感謝大學四年來所有的老師,他們的教導為我打下了扎實的電子信息工程專業(yè)知識的基礎,這是我理論聯(lián)系實際的基礎。</p&g
82、t;<p> 有老師和同學的支持和幫助,我順利地完成了畢業(yè)設計,在這里對他們表示深深地感謝。通過這次畢業(yè)設計,我掌握了許多東西,這是一筆寶貴的財富,為我以后的個人發(fā)展儲備了資源,此經(jīng)歷我定會感觸良多。</p><p><b> 參考文獻</b></p><p> [1] 譚浩強.c語言設計教程 [M].北京:清華大學出版社,2009</p&g
83、t;<p> [2] 梅麗鳳,王艷秋,汪锍鐸,任國臣.單片機原理及接口技術[M].北京:清華大學出版社,北京交通大學出版社,2010</p><p> [3] 談世哲. Protel dxp 2004電路設計基礎[M].北京:機械工業(yè)出版社,2011</p><p> [4] 楊素行.模擬電子技術基礎簡明教程[M].北京:高等教育出版社,2010</p>
84、<p> [5] 余孟嘗.數(shù)字電子技術基礎簡明教程[M].北京:高等教育出版社,2010</p><p> [6] 蘇小東.李東,王甜甜 c語言大學教程[M].北京:電子工業(yè)出版社,2010</p><p> [7] 陳大欽.模擬電子技術基礎[M].北京:機械工業(yè)出版社,2008</p><p> [8] 劉劍,劉奇穗.51單片機開發(fā)與應用基礎教程
85、[M].北京:中國電力出版社,2009</p><p><b> 附錄1 源程序</b></p><p> #include<intrins.h> </p><p> #define uchar unsigned char</p><p> #define uint unsigned int</
86、p><p> #define LCDdata P0</p><p> sbit RS=P2^6; //數(shù)據(jù)命令選擇</p><p> sbit RW=P3^6; //讀/寫控制</p><p> sbit LCDEN=P2^5; //使能信號</p><p> uchar code ta
87、ble0[]="Welcome to You! ";</p><p> uchar code table1[]=" This is it! ";</p><p> uchar code table2[]=" ";</p><p> //uchar code t
88、able2[]="Believe yourself";</p><p> //uchar code table3[]=" Just do it ";</p><p> uchar num;</p><p> void delayms(uint z) //誤差 -0.108506944445us</p&
89、gt;<p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b><
90、;/p><p> void writecmd(uchar chr)</p><p><b> {</b></p><p> delayms(5);</p><p><b> LCDEN=0;</b></p><p><b> RS=0;</b>&l
91、t;/p><p><b> RW=0;</b></p><p><b> _nop_();</b></p><p><b> LCDEN=1;</b></p><p> LCDdata=chr;</p><p><b> LCDEN=0;
92、</b></p><p><b> }</b></p><p> void writedata(uchar chr)</p><p><b> {</b></p><p> delayms(5);</p><p><b> LCDEN=0;&
93、lt;/b></p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> _nop_();</b></p><p><b> LCDEN=1;</b></p><p
94、> LCDdata=chr;</p><p><b> LCDEN=0;</b></p><p><b> RS=0;</b></p><p><b> }</b></p><p> void lcdinit()</p><p>&l
95、t;b> {</b></p><p> delayms(5);</p><p> writecmd(0x38);</p><p> writecmd(0x38);// 5x7 2行 8bit</p><p> writecmd(0x38);//以上三行設置顯示模式</p><p> w
96、ritecmd(0x06);//光標位置</p><p> writecmd(0x0C);//0000 1 0/1 0/1 0/1 </p><p> writecmd(0x01);//清屏</p><p><b> }</b></p><p> void showchar(uchar pos,ucha
97、r chr)</p><p><b> {</b></p><p> uchar addr;</p><p> if(pos>=0x10)</p><p><b> {</b></p><p> addr=pos+0xB0;</p><p&
98、gt;<b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> addr=pos+0x80;</p><p><b> }</b></p><p> wr
99、itecmd(addr);</p><p> writedata(chr);</p><p><b> }</b></p><p> void showstr(uchar line,uchar str[],uchar length)</p><p><b> {</b></p>
100、<p> uchar i=0;</p><p> if(line == 2) line=0x10; </p><p> else line=0;</p><p> for(i=0;i<length;i++) showchar(i+line,str[i]);</p><p> delayms(1);</p&g
101、t;<p><b> }</b></p><p> void lcdshow_left() //左移</p><p><b> {</b></p><p> showstr(1,table0,15);</p><p> showstr(2,table1,15);</p
102、><p> writecmd(0x80+0x10);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> writedata(table0[num]);</p><p> delayms(5);</p>
103、<p><b> }</b></p><p> writecmd(0x80+0x50);</p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p> writedata(table1[num]);</p&
104、gt;<p> delayms(5);</p><p><b> }</b></p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p> writecmd(0x18);</p><p&g
105、t; delayms(1000);</p><p><b> }</b></p><p><b> }</b></p><p> void lcdshow_right() //右移</p><p><b> {</b></p><p>
106、 showstr(1,table0,15);</p><p> showstr(2,table1,15);</p><p> writecmd(0x80+0x10);</p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p&g
107、t; writedata(table0[num]);</p><p> delayms(5);</p><p><b> }</b></p><p> writecmd(0x80+0x50);</p><p> for(num=0;num<15;num++)</p><p><
108、;b> {</b></p><p> writedata(table1[num]);</p><p> delayms(5);</p><p><b> }</b></p><p> for(num=0;num<15;num++)</p><p><b>
109、; {</b></p><p> writecmd(0x1c);</p><p> delayms(1000);</p><p><b> }</b></p><p><b> }</b></p><p> void lcdshow_up()<
110、/p><p><b> {</b></p><p> showstr(1,table0,15);</p><p> showstr(2,table1,15);</p><p> delayms(1000);</p><p> showstr(1,table1,15);</p>
111、<p> showstr(2,table2,15);</p><p> delayms(1000);</p><p> showstr(1,table2,15);</p><p> showstr(2,table0,15);</p><p> delayms(1000);</p><p><b
112、> }</b></p><p> void lcdshow_down()</p><p><b> {</b></p><p> showstr(1,table0,15);</p><p> showstr(2,table1,15);</p><p> delayms
113、(1000);</p><p> showstr(1,table2,15);</p><p> showstr(2,table0,15);</p><p> delayms(1000);</p><p> showstr(1,table1,15);</p><p> showstr(2,table2,15);
114、</p><p> delayms(1000);</p><p><b> }</b></p><p><b> 附錄2主程序</b></p><p> #include <reg52.h></p><p> #include "lcd1602
115、.h"</p><p> sbit left=P3^2;</p><p> sbit right=P3^3;</p><p> sbit up=P3^4;</p><p> sbit down=P3^5;</p><p> uchar temp=0;</p><p> vo
116、id key_scan(void)</p><p><b> {</b></p><p> if(left==0)</p><p><b> {</b></p><p> delayms(15);</p><p> if(left==0)</p>&l
117、t;p><b> {</b></p><p> while(!left);</p><p> lcdshow_left();</p><p><b> }</b></p><p><b> }</b></p><p> if(right
118、==0)</p><p><b> {</b></p><p> delayms(15);</p><p> if(right==0)</p><p><b> {</b></p><p> while(!right);</p><p>
119、lcdshow_right();</p><p><b> }</b></p><p><b> }</b></p><p><b> if(up==0)</b></p><p><b> {</b></p><p> d
120、elayms(15);</p><p><b> if(up==0)</b></p><p><b> {</b></p><p> while(!up);</p><p> lcdshow_up();</p><p><b> }</b>&l
121、t;/p><p><b> }</b></p><p> if(down==0)</p><p><b> {</b></p><p> delayms(15);</p><p> if(down==0)</p><p><b> {
122、</b></p><p> while(!down);</p><p> lcdshow_down();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機定時鬧鐘畢業(yè)設計
- 基于單片機的定時澆水系統(tǒng)設計-畢業(yè)設計論文
- 基于單片機的定時顯示設計開題報告
- 畢業(yè)設計---基于單片機的定時打鈴器設計
- 單片機畢業(yè)設計---基于單片機控制的模擬電梯顯示
- 基于單片機的音樂定時器畢業(yè)設計
- 畢業(yè)設計(論文)基于at89s52單片機定時鬧鐘的設計
- 畢業(yè)設計--基于單片機的旋轉顯示系統(tǒng)
- 基于單片機的智能定時器畢業(yè)設計
- 單片機畢業(yè)設計--單片機控制的led點陣顯示
- 基于單片機的led點陣顯示畢業(yè)設計
- 單片機畢業(yè)論文--基于單片機的led顯示屏設計
- 單片機畢業(yè)設計---基于51系列的單片機日歷和時鐘顯示設計
- 畢業(yè)設計---基于單片機led滾動顯示系統(tǒng)設計
- 畢業(yè)設計---基于單片機的時鐘顯示器設計
- 畢業(yè)設計--基于單片機的時鐘顯示器設計
- 畢業(yè)設計基于51單片機的定時控制系統(tǒng)設計
- 畢業(yè)設計---基于單片機的led顯示屏設計
- 畢業(yè)設計---基于單片機的公交報站顯示系統(tǒng)
- 基于單片機的時鐘顯示器畢業(yè)設計
評論
0/150
提交評論