版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> ** 學 院</b></p><p> 課 程 設 計 報 告 </p><p> 課程名稱 單片機原理與應用 </p><p> 設計題目 基于STC單片機的實驗板開發(fā)與設計 </p><p> 專 業(yè)
2、 ** </p><p> 班 級 * </p><p> 學 號 ** </p><p> 姓 名 * <
3、;/p><p> 完成日期 2** </p><p> 基于STC單片機的實驗系統(tǒng)開發(fā)與設計</p><p><b> 摘 要</b></p><p> STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。
4、STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)5
5、1的5向量2級中斷結(jié)構(gòu)),全雙共串口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。</p><p> 利用STC89C52單片機作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片
6、機實驗平臺,在KeilC環(huán)境下進行軟件設計,主要包括流水燈、數(shù)碼管顯示以及LCD顯示模塊,在Protues中仿真成功,下載到電路板中驗證成功。實現(xiàn)流水燈的跳轉(zhuǎn)顯示流動,應用中斷實現(xiàn)數(shù)碼管60之內(nèi)計數(shù)以及LCD顯示不同字符的功能。</p><p> 關鍵詞: STC單片機,實驗板,數(shù)碼管,流水燈,串行通信</p><p> Experiment Platform Development
7、Design Based on</p><p> STC Microcontroller</p><p><b> ABSTRACT</b></p><p> The STC89C52 is a low power,high performance CMOS8
8、;produced STC,with 8K in system programmable Flash memory.STC89C52 sing classic MCS-51 kernel,but made a lot of improvements make-the
9、160;chip with raditional 51 SCM features not available.In asingle chip,with 8 CPU dexterous and in-system programmable Flash,the STC89C
10、52 offers solutions for high flexibility, super efficient for many embedded control applications. Has the standard features: 8K by
11、tes of Flash, 512 bytes of RAM,32 I/O lines,the watchdo</p><p> KEYWORDS: STC microcontroller, Experimental plate, Digital tube, Running light, Serial communicat
12、ion </p><p><b> 目 錄</b></p><p><b> 前 言1</b></p><p> 第1章實驗系統(tǒng)概述2</p><p> 1.1設計題目2</p><p> 1.2系統(tǒng)設計目的和內(nèi)容2</p><p
13、> 1.2.1設計目的2</p><p> 1.2.2設計內(nèi)容2</p><p> 1.2.3設計要求2</p><p> 1.2.4設計步驟2</p><p> 第2章整體設計方案3</p><p> 2.1開發(fā)板整體外觀3</p><p> 2.2
14、整板電路PROTUES仿真電路4</p><p> 2.3軟件功能描述4</p><p> 2.4仿真軟件PROTUES中的效果圖5</p><p> 第3章硬件電路設計6</p><p> 3.1兩位一體共陰數(shù)碼管6</p><p> 3.1.1數(shù)碼管概述6</p>&l
15、t;p> 3.1.2數(shù)碼管內(nèi)部結(jié)構(gòu)7</p><p> 3.1.3兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路9</p><p> 3.2LCD1602液晶9</p><p> 3.2.1LCD1602液晶簡介9</p><p> 3.2.2LCD1602液晶引腳介紹10</p><
16、p> 3.2.3LCD1602液晶外圍接口電路10</p><p> 3.3 串口通信11</p><p> 3.3.1串口通訊概述11</p><p> 3.3.2MAX232接口電路11</p><p> 第4章軟件設計12</p><p> 4.1程序整體流程圖12</
17、p><p> 4.2程序清單13</p><p> 第5章調(diào)試及故障分析18</p><p> 5.1 焊接準備階段元器件測試、電路原理圖故障分析18</p><p> 5.2 電路焊接過程中的故障分析18</p><p> 5.3 程序編寫過程中的故障分析18</p><p>
18、; 5.4 實物演示效果19</p><p><b> 結(jié)論21</b></p><p><b> 謝辭22</b></p><p><b> 參考文獻23</b></p><p><b> 附 錄24</b></p>&
19、lt;p><b> 前 言</b></p><p> 市場上現(xiàn)存的單片機開發(fā)板很多,因此,要求設計盡量能夠達到資源豐富、易用性好、設計美觀等特點。而STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8
20、位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。1976年,Intel公司推出MCS-48系列單片機,以體積小、功能全、低格低等優(yōu)點,得到廣泛的應用,成為單片機發(fā)展過程中的一片重要標志。單片機系列及單片機應用技術迅速發(fā)展?! ∧壳盀橹?,世界各地廠商已經(jīng)相繼研制出大約50個系列300多個品種的單片機產(chǎn)品。所以單片機應用領域不斷擴大,除了在工業(yè)行貨控制、能儀器儀表、信設備、家用電
21、器等領域都得到了應用。而且未來的智能化世界里,單片機將更加發(fā)揮的重大作用。 自單片機問世情迷,經(jīng)過30多年的發(fā)展,已從最初的4位發(fā)展到32位機,同時體積更小,集成度更高 ,功能更強大。如今,單片機正朝多功能、多選擇、高速度</p><p> (1)高集成度。單片機儒將各種功能的I/O口和一些典型的外圍電路集成在芯片內(nèi),使其功能更加強大。</p><p> ?。ǎ玻└咝阅?/p>
22、。單片機從單CPU向多CPU方向發(fā)展,因而有了并行處理的能力。它的運算速度和執(zhí)行效率會有很大提高。</p><p> ?。ǎ常┑凸?。目前市場上有二分之一的單片機產(chǎn)品已CHMOS化,這類單片機具有功耗小的優(yōu)點。</p><p> (4)高性價比。隨著單片機的應用越來越廣泛,各單片機廠家公進一步改進單片機的性能,從而增強產(chǎn)品的競爭力。</p><p><b&g
23、t; 實驗系統(tǒng)概述</b></p><p><b> 設計題目</b></p><p> 基于STC單片機的實驗平臺開發(fā)設計</p><p><b> 系統(tǒng)設計目的和內(nèi)容</b></p><p><b> 設計目的</b></p><p
24、> 利用STC89C52作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片機實驗平臺。實現(xiàn)對數(shù)碼管、LCD顯示器、流水燈的操作,鍛煉學生的設計思維和動手能力,使其具備獨立完成設計的能力,也讓學生更好的了解課本內(nèi)容。</p><p><b> 設計內(nèi)容</b></p><p> ?。╝)電路原理圖設計,主要包括集LCD顯示模塊、串口通信模塊、數(shù)碼管顯示模塊、LED發(fā)光二
25、極管、鍵盤等接口電路的設計;(b)學習集成電路等芯片的焊接方法與技巧,進行實際元器件的識別,進行電路板焊接;(c)在Keil C環(huán)境下,進行軟件設計。主要包括流水燈、計數(shù)器、定時器、LCD字符顯示、鍵盤的控制等功能程序設計;(d)針對所開發(fā)的實驗板,結(jié)合器件選擇、原理圖設計、硬件焊接、軟件編程調(diào)試、軟硬件聯(lián)調(diào)等方面寫出課程設計報告。</p><p><b> 設計要求</b>
26、;</p><p> ?。╝)完成綜合實驗平臺的電路結(jié)構(gòu)分析,進行模塊分解,掌握各部分電路的工作原理;(b)獨立完成電路板的焊接,掌握故障排除方法,完成實驗平臺的硬件設計及開發(fā);(c)結(jié)合Keil C軟件在焊接無誤的單片機實驗平臺上開發(fā)出流水燈、LCD顯示模塊,通信模塊等程序設計;(d)按照要求撰寫課程設計論文。</p><p><b> 設計步驟</b&
27、gt;</p><p> 1.學習紙質(zhì)的模擬電路圖,弄清楚各個元件的工作原理;2.Proteus軟件仿真電路圖的繪制;3.根據(jù)模擬電路圖開發(fā)板上設計走線,和焊接;4.編寫的各模塊程序經(jīng)調(diào)試無誤后,下載到單片機中,查看實際運行效果;5.根據(jù)課程設計要求寫出設計報告。</p><p><b> 整體設計方案</b></p><p>&l
28、t;b> 開發(fā)板整體外觀</b></p><p> 圖2.1.1開發(fā)板正面圖</p><p> 圖2.1.2 開發(fā)板背面圖</p><p> 整板電路PROTUES仿真電路</p><p> 圖2.2.1 仿真原理圖</p><p><b> 軟件功能描述</b>&l
29、t;/p><p> 隨著科技的發(fā)展,“計算機仿真技術”已成為許多設計部門重要的前期設計手段。它具有設計靈活,結(jié)果、過程的統(tǒng)一的特點??墒乖O計時間大為縮短、耗資大為減少,也可降低工程制造的風險。相信在單片機開發(fā)應用中PROTEUS也能茯得愈來愈廣泛的應用。使用Proteus 軟件進行單片機系統(tǒng)仿真設計,是虛擬仿真技術和計算機多媒體技術相結(jié)合的綜合運用,有利于培養(yǎng)學生的電路設計能力及仿真軟件的操作能力;在單片
30、機課程設計和全國大學生電子設計競賽中,我們使用 Proteus 開發(fā)環(huán)境對學生進行培訓,在不需要硬件投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,更容易提高。實踐證明,在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高單片機系統(tǒng)設計效率。因此,Proteus 有較高的推廣利用價值。目前Proteus的最新版為8.0,ARM co
31、rtex處理器被增加,在7.10中已經(jīng)增加DSP系列(TMS320)。</p><p> Keil C51 C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C
32、51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中?! ∈褂锚毩⒌腒eil仿真器時,注意事項 * 仿真器標配11.0592MHz的晶振,但
33、用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 * 仿真器上的復位按鈕只復位仿真芯片,不復位目標系統(tǒng)。 * 仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該</p><p> 仿真軟件PROTUES中的效果圖 </p><p>
34、 圖2.4.1 仿真效果圖</p><p> 圖2.4.2 仿真效果圖</p><p><b> 硬件電路設計</b></p><p> 3.1兩位一體共陰數(shù)碼管</p><p><b> 數(shù)碼管概述</b></p><p> 數(shù)碼管是一種半導體發(fā)光器件,其基本單元
35、是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。而共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。同時數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字。</p>
36、;<p><b> 數(shù)碼管內(nèi)部結(jié)構(gòu)</b></p><p> 圖3.1.1 數(shù)碼管內(nèi)部結(jié)構(gòu)</p><p> 表3.1.1 共陽極數(shù)碼管字母表</p><p> 表3.1.2 共陰極數(shù)碼管字母表</p><p> 圖3.1.3 LED數(shù)碼管引腳定義 </p><p> l
37、ed數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬
38、件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍,黃等幾種。led數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖片。</p><p> LED數(shù)碼管通過7個發(fā)光二極管亮暗的不同組合可以顯示各種數(shù)字,另外一個圓的型發(fā)光二級管顯示小數(shù)點。只要為L
39、ED數(shù)碼管提供了段碼就可以顯示不同的符號和數(shù)字。LED數(shù)碼管共計8段。正好是一個字節(jié)。習慣上是以“a”段對應段碼字節(jié)的最低位。各段與字節(jié)中各位對應關系如表3所示。</p><p> 表3.1.3 段碼與字節(jié)中各位對應關系</p><p> 按照表3-1中的格式,顯示各種字符的8段LED數(shù)碼管的段碼如表4所示(以共陰極為例)。</p><p> 表3.1.4 數(shù)
40、碼管段碼 </p><p> 兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路</p><p> 圖3.1.4 兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路</p><p><b> LCD1602液晶</b></p><p> LCD1602液晶簡介</p><p> 工業(yè)字符型
41、液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行
42、16個字符液晶模塊(顯示字符和數(shù)字)。其特性:(a)3.3V或5V工作電壓,對比度可調(diào)(b)內(nèi)含復位電路(c)提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能(d)有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM(e)內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM(f)8個可由用戶自定義的5X7的字符發(fā)生器CGRAM</p><p> LCD1602液晶引腳介紹</p>&l
43、t;p> 圖2.2.1 LCD1602液晶引腳圖</p><p> 第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對 比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為
44、讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。 第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。</p><p> 表2.2.1 讀寫操作選擇</p><p> LCD1602液晶外圍接口電路 </p><p> 圖2.2.2 LC
45、D1602液晶外圍接口</p><p><b> 3.3 串口通信</b></p><p><b> 串口通訊概述</b></p><p> 串行通信是指計算機主機與外設之間以及主機系統(tǒng)與主機系統(tǒng)之間數(shù)據(jù)的串行傳送。使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個固定的時間長度。其只需要少數(shù)幾條線就可以在
46、系統(tǒng)間交換信息,特別適用于計算機與計算機、計算機與外設之間的遠距離通信。如圖9所示:</p><p> 圖3.3.1 串口通信</p><p> 串口通信時,發(fā)送和接收到的每一個字符實際上都是一次一位的傳送的,每一位為1或者為0。串行通信按信息的格式可分為異步通信和同步通信兩種方式;根據(jù)信息傳送的方向,串行通信可以分為單工、半雙工和全雙工3種,如圖10所示。</p>&
47、lt;p> 圖3.3.2 串行通信的3種傳輸形式</p><p> 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。異步通信中,在異步通信中有兩個比較重要的指標:字符幀格式和波特率。數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設備逐幀接收。發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘源彼此獨立,互不同步。</p>
48、<p> MAX232接口電路</p><p> 圖3.3.3 MAX232接口電路</p><p><b> 軟件設計</b></p><p> 4.1程序整體流程圖</p><p><b> 4.2程序清單 </b></p><p> #inclu
49、de <reg52.h></p><p> #include <intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code table[]={0x3f,0x06,0x
50、5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> uchar temp;</p><p> uint count=0,ff=0,aa=0;</p><p> uint j,flag;</p><p> sbit RS=P1^6;</p><p> sbit RW
51、=P1^7;</p><p> sbit E=P1^5;</p><p> sbit P32=P3^2;</p><p> sbit P33=P3^3;</p><p> sbit P34=P3^4;</p><p> sbit P35=P3^5;</p><p> void ini
52、t();</p><p> void writestr(char *str);</p><p> void writechar(uchar ch);</p><p> void write_com(uchar cmd);</p><p> void delay(uchar z);</p><p> void
53、main()</p><p><b> {</b></p><p><b> w=0;</b></p><p> P0=table[0];</p><p> TMOD=0x16;</p><p> TH1=(65536-50000)/256;</p>
54、<p> TL1=(65536-50000)%256;</p><p> TH0=TL0=0xff;</p><p><b> EA=1;</b></p><p> EX0=1;//外部中斷0</p><p><b> IT0=1;</b></p><p&g
55、t; EX1=1;//外部中斷1</p><p><b> IT1=1;</b></p><p><b> PX1=1;</b></p><p><b> PT0=1;</b></p><p> ET0=1;//定時0</p><p>&l
56、t;b> TR0=1;</b></p><p> ET1=1; //啟動定時1</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(P35==0)</p><p><b&g
57、t; TR1=1;</b></p><p><b> if(flag)</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p><b> aa++;</b></p>
58、<p> if(aa==60)</p><p><b> aa=0;</b></p><p><b> w=0;</b></p><p> P0=table[aa/10];</p><p><b> E=1;</b></p><p>
59、; P2=0x00;</p><p> P0=table[aa%10];</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void led() inte
60、rrupt 0</p><p><b> {</b></p><p> //uint j;</p><p> //uchar temp;</p><p><b> while(1)</b></p><p><b> {</b></p&
61、gt;<p> temp=0xfe; </p><p> for(j=0;j<=7;j++)</p><p><b> {</b></p><p> P2=temp; </p><p> delay(100); </p>&l
62、t;p> temp=_crol_(temp,1);</p><p><b> }</b></p><p> if((P34==0)||(P35==0)) break;</p><p> temp=0x7f;</p><p> for(j=0;j<=7;j++)</p><p>
63、;<b> {</b></p><p><b> P2=temp;</b></p><p> delay(100);</p><p> temp=cror_(temp,1); </p><p><b> }</b></p><p> if(
64、(P34==0)||(P35==0)) break;</p><p><b> }</b></p><p><b> }</b></p><p> void lcd() interrupt 2</p><p><b> {</b></p><p>
65、;<b> init();</b></p><p> write_com(0x80);</p><p> writestr("******");</p><p> write_com(0xc0);</p><p> writestr("****2");</p>
66、<p> delay(100);</p><p> write_com(0x01);</p><p> write_com(0x80);</p><p> writestr("*********");</p><p> write_com(0xc0);</p><p> w
67、ritestr("******3");</p><p> delay(100);</p><p> write_com(0x01);</p><p> write_com(0x80);</p><p> writestr(" ***");</p><p> write
68、_com(0xc0);</p><p> writestr(" **1**5");</p><p> delay(100);</p><p> write_com(0x01);</p><p><b> }</b></p><p> void sum() interr
69、upt 1</p><p><b> {</b></p><p><b> TR1=0;</b></p><p><b> P2=0x00;</b></p><p> if(P34==0)</p><p><b> count++;&
70、lt;/b></p><p> if(count==100)</p><p><b> count=0;</b></p><p><b> E=0;</b></p><p> P0=table[count/10];</p><p><b> E=1;
71、</b></p><p><b> P2=0x00;</b></p><p> P0=table[count%10];</p><p><b> }</b></p><p> void dingshi() interrupt 3</p><p><b
72、> {</b></p><p> TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p><b> ff++;</b></p><p> if(ff==20)</p><p><b> {
73、</b></p><p><b> ff=0;</b></p><p><b> flag=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> vo
74、id delay(uchar z)</p><p><b> {</b></p><p> uchar i,j;</p><p> for(i=z;i>0;i++)</p><p> for(j=110;j>0;j++);</p><p><b> }</b&
75、gt;</p><p><b> /*</b></p><p> bit LCD_Busy() </p><p><b> {</b></p><p> bit result;</p><p><b> RS=0;</b></p>
76、<p><b> RW=1;</b></p><p><b> P2=0x40;</b></p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p> result=(bit)(P
77、0&0x80);</p><p><b> E=0;</b></p><p> return(result);</p><p><b> }</b></p><p><b> */</b></p><p> void write_c
78、om(uchar cmd)</p><p><b> {</b></p><p> //while(LCD_Busy());</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b
79、> P2=0x40;</b></p><p><b> P0=cmd;</b></p><p><b> //E=0;</b></p><p> //delay(1);</p><p><b> E=1;</b></p><p
80、><b> delay(1);</b></p><p><b> E=0;</b></p><p><b> }</b></p><p> void write_dat(uchar dat)</p><p><b> {</b></p
81、><p> //while(LCD_Busy());</p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> P2=0x40;</b></p><p><b> P0=dat
82、;</b></p><p><b> //E=0;</b></p><p> //delay(1);</p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p><b&g
83、t; E=0;</b></p><p><b> }</b></p><p> void init()</p><p><b> { </b></p><p> write_com(0x38); //設置</p><p> write_
84、com(0x02); //光標復位到地址原點</p><p> write_com(0x0c); //開顯示,顯示光標,光標閃爍</p><p> write_com(0x01); //清屏</p><p> write_com(0x06); //地址加1,當寫入數(shù)據(jù)時光標右移</p><p><b> }</
85、b></p><p> void writestr(char *str)</p><p><b> {</b></p><p> uchar len = 0;</p><p> uchar i = 0;</p><p> len = strlen(str);</p>
86、<p> for(i = 0; i<len; i++)</p><p><b> {</b></p><p> write_dat(str[i]);</p><p><b> }</b></p><p><b> }</b></p>&
87、lt;p> void writechar(uchar ch)</p><p><b> {</b></p><p> write_dat(ch);</p><p><b> }</b></p><p><b> 調(diào)試及故障分析</b></p>&l
88、t;p> 5.1 焊接準備階段元器件測試、電路原理圖故障分析</p><p> 1.檢測各器件是否完好,包括二極管、數(shù)碼管、單片機、LED、電容等 2.將一定值的器件擺放在應在的位置 3.按照所給的電路圖正確焊接 4.利用萬用表進行測試,找到短路、短路的地方進行修改</p><p> 5.2 電路焊接過程中的故障分析</p><p&g
89、t; 1.焊接過程中焊接不完善,導致斷路,不能導通 2.電容、LED正負極接反,導致燈不會亮,也影響整體電路 3.芯片插槽接反,將導致整體電路不能執(zhí)行功能 4.焊接過程中造成短路,將導致整體電路不能執(zhí)行功能 5.將電阻排接反,也不能得到預期的效果</p><p> 5.3 程序編寫過程中的故障分析</p><p> 在編寫程序的時候,總會出現(xiàn)一些這樣那
90、樣的錯誤,例如:在編寫完成后,不能完成預期的功能,那么就需要對其進一步的修改直到可以實現(xiàn)功能為止,完成后,流水燈不會亮,經(jīng)過檢查后,原來是設置值的時候沒有設置對。</p><p> 5.4 實物演示效果</p><p><b> 圖1 整體演示效果</b></p><p> 圖2 流水燈效果展示</p><p>
91、 圖3 液晶顯示效果圖</p><p> 圖4 數(shù)碼管效果顯示</p><p><b> 結(jié)論</b></p><p> 經(jīng)過了一個學期的單片機的學習,我們的課程設計在本周來開帷幕。我們的 </p><p><b> 謝辭</b></p><p> 本次實習是在**
92、老師指導下完成的。感謝老師能百忙之中抽出時間給我們指導這次的課程設計。我們有疑惑時老師給我們解答,有困難給我們解決,并且細心地給我們講解這次設計的原理,讓我們了解到了單片機的真正魅力。</p><p><b> 參考文獻</b></p><p> 李蒙,毛建東. 單片機原理及應用[M]. 北京:中國輕工業(yè)出版社, 2010</p><p>
93、 唐繼賢.51單片機工程應用實例.北京航天航空大學出版社,2009.1</p><p> 李勛.單片機使用教程.北京航天航空大學出版社,2000</p><p> 譚浩強. C程序設計(第三版).清華大學出版社. 2005</p><p> 林立 張俊亮編 單片機原理及應用 北京:電子工業(yè)出版社 2
94、012</p><p> 馬忠梅.單片機的C語言應用程序設計.北京航天航空大學出版社,1999</p><p><b> 附 錄 </b></p><p><b> 表1 元器件清單</b></p><p><b> 圖1 原理圖1</b></p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計---stc51系列單片機的實驗平臺開發(fā)設計
- 單片機課程設計報告--基于stc89c52單片機的實驗平臺開發(fā)設計
- 單片機原理與應用課程設計---stc51系列單片機的實驗平臺開發(fā)設計
- 單片機課程設計報告--基于stc89c52單片機的實驗平臺開發(fā)設計
- 基于單片機的秒表設計單片機課程設計
- 單片機課程設計報告--單片機學習板的設計與制作
- 單片機課程設計--基于單片機的數(shù)字時鐘設計
- 課程設計-單片機基于單片機的數(shù)字時鐘設計
- 單片機課程設計--基于stc90c51單片機的電子跑表
- 單片機課程設計--基于單片機的秒表系統(tǒng)設計
- 單片機課程設計--單片機串行通訊
- 單片機秒表單片機課程設計
- 單片機課程設計---基于單片機溫度測量系統(tǒng)設計
- 51單片機課程設計--基于51單片機開發(fā)系統(tǒng)的pcb電路板
- 單片機課程設計-基于單片機的數(shù)字秒表的設計
- 單片機課程設計---單片機數(shù)字時鐘
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計--基于單片機的交通燈設計
- 單片機課程設計---基于單片機的電子琴設計
- 單片機課程設計--基于51單片機的定時鬧鐘設計
評論
0/150
提交評論