版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 報 告 </p><p> 課程名稱 單片機原理與應用 </p><p> 設計題目 基于STC89C52單片機的實驗平臺開發(fā)設計</p><p> 專 業(yè) 計算機科學與技術(shù) </p><p> 班 級
2、 </p><p> 學 號 </p><p> 姓 名 </p><p> 完成日期 2013年6月25日 </p><p>
3、 基于STC89C52單片機的實驗平臺開發(fā)設計</p><p><b> 摘 要</b></p><p> 近幾十年間單片機憑借其控制功能強,集成度高、可靠性高、體積小,低電壓、低能耗等特點在工業(yè)自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等各個方面得到了廣泛的應用。</p><p> 由于單片機技術(shù)在各個領域
4、正得到越來越廣泛的應用,許多集成電路生產(chǎn)廠 家相繼推出了各種類型的單片機,在單片機家族的眾多成員中,MCS.51系列單片機以其優(yōu)越的性能、成熟的技術(shù)及高可靠性和高性能價格比,迅速占領了市場, 成為國內(nèi)單片機應用領域中的主流。目前,可用于 MCS.51 系列單片機開發(fā)的產(chǎn)品越來越多,與其配套的各類開發(fā)系統(tǒng)、各種軟件也日趨完善,因此可以極方便 地利用現(xiàn)有資源,開發(fā)出用于不同目的的各類應用系統(tǒng)。 利用STC 系列單片機作為微控制器開發(fā)一套軟、
5、硬件相結(jié)合的單片機實驗平臺,在Keil C 環(huán)境下進行軟件設計,主要包括流水燈、數(shù)碼管顯示以及LCD 顯示模塊,在Protues 中仿真成功,下載到電路板中驗證成功。實現(xiàn)流水燈正反向流動, 應用中斷實現(xiàn)數(shù)碼管計數(shù)以及LCD 顯示不同字符的功能。</p><p> 關(guān)鍵詞: STC單片機,實驗平臺,數(shù)碼管,流水燈</p><p> STC89C52 microcontroller
6、0;comprehensive experimental </p><p> board development design</p><p><b> ABSTRACT</b></p><p> This curriculum design using STC series single chip
7、 microcomputer as micro controller develop a set of software and hardware combination of SCM experiment platform, mainly through the circuit schematic diagram of the circuit and welding.The principle diagram of the main
8、including set LCD display module, serial communication module, digital tube display module, LED light emitting diode, keyboard interface circuit design.</p><p> By using their knowledge of the single chip m
9、icrocomputer in the Keil C environment for software design.SCM experiment platform mainly includes water lamp, counter, timer, LCD character display, keyboard control of functional programming.Aiming at the development o
10、f the plate, we combine device selection, principle diagram design, hardware welding, software programming, the hardware and software debugging alignment and test the program SCM experiment platform.</p><p>
11、 KEYWORDS: STC microcontroller, comprehensive experimental board, software and hardware combined with, and the program development design</p><p><b> 目 錄</b></p><p><b> 摘 要I
12、</b></p><p><b> 目 錄III</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>
13、<p> 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&g
14、t; 2.2整板電路PROTUES仿真電路4</p><p> 2.3軟件功能描述4</p><p> 2.4仿真軟件PROTUES中的效果圖5</p><p> 第3章硬件電路設計7</p><p> 3.1兩位一體共陰數(shù)碼管7</p><p> 3.1.1數(shù)碼管概述7</p&
15、gt;<p> 3.1.2數(shù)碼管內(nèi)部結(jié)構(gòu)7</p><p> 3.1.3兩位一體共陰數(shù)碼管和74LS374鎖存器接口電路8</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章軟件設計13</p><p> 4.1程序整體流程圖
17、13</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>&
18、lt;p> 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、><p><b> 前 言</b></p><p> 1946 年第一臺電子計算機誕生至今,依靠微電子技術(shù)和半導體技術(shù) 的進步, 從電子管——晶體管——集成電路——大規(guī)模集成電路, 使得計算機體積更小, 功能更強。特別是近20 年時間里,計算機技 術(shù)獲得飛速的發(fā)展,計算機在工農(nóng)業(yè), 科研,教育,國防和航空航 天領域獲得了廣泛的應用,計算機技術(shù)已經(jīng)是一個國 家現(xiàn)代科技水
20、 平的重要標志。 目前單片機滲透到我們生活的各個領域,幾乎很難 找到哪個領域沒有單片機 的蹤跡。導彈的導航裝置,飛機上各種儀 表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳 輸,工業(yè)自動化過程的實時 控制和數(shù)據(jù)處理,廣泛使用的各種智能IC 卡,民用豪 華轎 車的安 全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具 、 電子寵物等等,這些都離不開單片機。更不用說自動控制領域的 機器人、智能儀 表、醫(yī)療器械了。因此,單片機的學習、開發(fā)與應
21、用將造就一批計算機應用 與智 能化控制的科學家、工程師。 單片 機應用的意義不僅在于它的廣闊范圍及所帶來的經(jīng)濟效益,更重要的 意 義在于,單片機的應用從根本上改變了控制系統(tǒng)傳統(tǒng)的設計思想 和設計方法。以 前采用硬件電路實現(xiàn)的大部分控制功能,正在</p><p><b> 系統(tǒng)概述</b></p><p><b> 設計題目</b></p
22、><p> 基于51系列單片機的實驗平臺開發(fā)設計</p><p><b> 系統(tǒng)設計目的和內(nèi)容</b></p><p><b> 設計目的</b></p><p> 通過這次課程設計,掌握一定的焊接技巧,能夠提高學生們的動手能力,學會軟硬件結(jié)合使用,同時提高獨立解決問題的能力,增強對單片機的興趣
23、愛好。</p><p><b> 設計內(nèi)容</b></p><p> 利用STC系列單片機作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片機實驗平臺,設計內(nèi)容主要包括以下幾點:</p><p> 1、 設計電路原理圖,本次實驗中為 LCD 顯示模塊、數(shù)碼管顯示模塊、 LED 發(fā)光二極管的流水燈模塊三種模塊的設計。 </p><
24、p> 2、 在 keil 環(huán)境下,進行軟件設計,把 LCD 顯示、數(shù)碼管顯示、流水燈 的相關(guān)功能控制程序編寫出來。 把設計的原理圖在 Protus 中仿真出來 并用程序完成相關(guān)功能控制。 </p><p> 3、 由老師講解元器件的識別及焊接方法后學生自己按照原理圖進行焊接。</p><p> 4、經(jīng)老師檢查通過后連接計算機輸入已編好的程序,并觀察實物的功能實現(xiàn)情況。</
25、p><p><b> 設計要求 </b></p><p><b> 要求主要如下幾點:</b></p><p> 1、能夠自我識別元器件,說出元器件名稱及功能,掌握電路工作原理, 明白設計的每一個程序并能解釋清楚。</p><p> 2、掌握一定的焊接技術(shù),掌握一定的技巧。能夠合作完成整個電路的
26、焊接,掌握故障排除方法,完成實驗平臺的硬件設計及開發(fā)。 </p><p> 3、能實現(xiàn)單片機板上要求實現(xiàn)的功能并知道如何調(diào)試,最好能夠做出花樣,完成最后的課程設計答辯。</p><p><b> 設計步驟</b></p><p> 先在 Protus 中仿真實驗并成功通過測試,之后在老師的指導下根據(jù)三人分成的小組合作把 LCD 顯示器、數(shù)
27、碼管、LED 二極管及開關(guān)電容等部分焊接到電路板上,最后把設計好的 keil 程序下載到電路板上。完成后根據(jù)要求寫出設計報告并完成課程設計的答辯。</p><p><b> 整體設計方案</b></p><p><b> 開發(fā)板整體外觀</b></p><p> 圖2.1.1 開發(fā)板正面外觀圖</p>
28、<p> 圖2.1.2 開發(fā)板反面外觀圖</p><p> 整板電路PROTUES仿真電路</p><p> 圖2.2.1 電路板仿真圖</p><p><b> 軟件功能描述</b></p><p> 該電路可以通過第一個按鍵(P32, 即電路板上的中斷0)實現(xiàn)對流水燈的控制操作,逐次點亮各個
29、二極管;通過第二個按鍵(P33,即電路板上的中斷1)實現(xiàn)對LCD的控制;通過第三個按鍵(P34,即電路板上的定時0)實現(xiàn)對定時器的控制,定時器使用定時方式2實現(xiàn)每隔一秒數(shù)碼管顯示加1;通過第四個按鍵(P35, 即電路板上的定時1)實現(xiàn)對計數(shù)器的控制操作。</p><p> 仿真軟件PROTUES中的效果圖</p><p> 圖2.4.1 流水燈顯示</p><p&
30、gt; 圖2.4.2 計數(shù)器顯示</p><p> 圖2.4.3 計數(shù)器顯示</p><p> 圖2.4.4 LCD顯示</p><p><b> 硬件電路設計</b></p><p> 3.1兩位一體共陰數(shù)碼管</p><p><b> 數(shù)碼管概述</b>
31、</p><p> 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮,當某
32、一字段的陰極為高電平時,相應字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。</p><p><b> 數(shù)碼管內(nèi)部結(jié)構(gòu)</b></p><p> 8段LED數(shù)碼管如圖所示:&l
33、t;/p><p> 圖3.1.1 8段LED數(shù)碼管結(jié)構(gòu)及外形</p><p> LED數(shù)碼管通過7個發(fā)光二極管亮暗的不同組合可以顯示各種數(shù)字,另外一個圓的型發(fā)光二級管(圖3.1.1(a)中以dp顯示)顯示小數(shù)點。只要為LED數(shù)碼管提供了段碼就可以顯示不同的符號和數(shù)字。LED數(shù)碼管共計8段。正好是一個字節(jié)。習慣上是以“a”段對應段碼字節(jié)的最低位。各段與字節(jié)中各位對應關(guān)系如表3-1所示。
34、</p><p> 表3-1 段碼與字節(jié)中各位對應關(guān)系</p><p> 按照表3-1中的格式,顯示各種字符的8段LED數(shù)碼管的段碼如表3-2所示(以共陰極為例)。</p><p> 表3-2 8段LED數(shù)碼管段碼</p><p> 兩位一體共陰數(shù)碼管和74LS374鎖存器接口電路</p><p> 圖
35、3.1.2 數(shù)碼管外部結(jié)構(gòu) 圖3.1.3 數(shù)碼管外部結(jié)構(gòu)</p><p> 圖3.1.4 數(shù)碼管與74LS374鎖存器接口仿真電路</p><p><b> LCD1602液晶</b></p><p> LCD1602液晶簡介</p><p> 工業(yè)字符型液晶,能夠同時顯示16x0
36、2即32個字符。(16列2行)。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符
37、和數(shù)字)。</p><p> 圖3.2.1 LCD液晶顯示器外觀</p><p> LCD1602液晶引腳介紹</p><p> LCD1602液晶共有16個引腳:</p><p> 第1腳:VSS為地電源。</p><p> 第2腳:VDD接5V正電源。</p><p> 第3腳:
38、VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。</p><p> 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。</p><p> 第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低
39、電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。</p><p> 第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 第15腳:背光源正極。</p><p> 第16腳:背光源負極。</p>
40、<p> LCD1602液晶外圍接口電路 </p><p> 圖3.2.2 LCD1602液晶在仿真電路中的連接</p><p><b> 3.3 串口通信</b></p><p><b> 串口通訊概述</b></p><p> 隨著計算機系統(tǒng)的應用和微機網(wǎng)絡的發(fā)展,通信功能
41、越來越顯得重要。這里所說的通信是指計算機與外界的信息交換。因此,通信既包括計算機與外部設備之間,也包括計算機和計算機之間的信息交換。由于串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,并且可以借助現(xiàn)成的電話網(wǎng)進行信息傳送。因此,特別適合于遠距離傳輸。</p><p> 由于 CPU 與接口之間按并行方式傳輸,接口與外設之間按串行方式傳輸,因此,在串行接口中,必須要有 " 接收移位寄存器 &
42、quot; (串→并)和 " 發(fā)送移位寄存器 " (并→串)。 在數(shù)據(jù)輸入過程中,數(shù)據(jù) 1 位 1 位地從外設進入接口的 " 接收移位寄存器 ",當 " 接收移位寄存器 " 中已接收完 1 個字符的各位后,數(shù)據(jù)就從 " 接收移位寄存器 " 進入 " 數(shù)據(jù)輸入寄存器 " 。 CPU 從 " 數(shù)據(jù)輸入寄存器 " 中讀取接收
43、到的字符。(并行讀取,即 D7~D0 同時被讀至累加器中)。 " 接收移位寄存器 " 的移位速度由 " 接收時鐘 " 確定。</p><p> 在數(shù)據(jù)輸出過程中,CPU 把要輸出的字符(并行地)送入 " 數(shù)據(jù)輸出寄存器 "," 數(shù)據(jù)輸出寄存器 " 的內(nèi)容傳輸?shù)?" 發(fā)送移位寄存器 ",然后由 " 發(fā)送移
44、位寄存器 " 移位,把數(shù)據(jù) 1 位 1 位地送到外設" 發(fā)送移位寄存器 " 的移位速度由 " 發(fā)送時鐘 " 確定。</p><p> 接口中的 " 控制寄存器 " 用來容納 CPU 送給此接口的各種控制信息,這些控制信息決定接口的工作方式。</p><p> " 狀態(tài)寄存器 " 的各位稱為 &qu
45、ot; 狀態(tài)位 ",每一個狀態(tài)位都可以用來指示數(shù)據(jù)傳輸過程中的狀態(tài)或某種錯誤。例如,用狀態(tài)寄存器的 D5 位為 "1" 表示 " 數(shù)據(jù)輸出寄存器 " 空,用 D0 位表示 " 數(shù)據(jù)輸入寄存器滿 ",用 D2 位表示 " 奇偶檢驗錯 " 等。</p><p> MAX232接口電路</p><p>
46、 如圖3.2.1為MAX232接口電路圖。下面是對引腳的介紹:第一部分是電荷泵電路。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。第三部分是供電。15腳GND、16腳VCC(+5v)。</p><p> 圖3.2.1 MAX232接口電路圖</p><p><b> 軟件設計</b></p><p> 4.1程序整體流程圖</p><p
47、><b> 4.2程序清單 </b></p><p> /*本程序可實現(xiàn):按下中斷0流水燈工作;按下中斷1,LCD工作;</p><p> 按下定時0定時器開始工作;按下定時1計數(shù)器開始工作*/</p><p> #include <reg51.h></p><p> char led[]={
48、0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //從0到F的字模</p><p> 0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};</p><p> char led_key1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//控制流水燈</p><p
49、> sbit P34=P3^4;//定義位變量</p><p> sbit P32=P3^2;//定義位變量</p><p> sbit P35=P3^5;//定義位變量</p><p> int m,n,k=0,count1=0,count2=0;</p><p> sbit RS=P1^6;//定義位變量</p>
50、;<p> sbit RW=P1^7;//定義位變量</p><p> sbit E=P1^5;//定義位變量</p><p> unsigned char LCD_Status;</p><p> unsigned char num[]="0123456789"; </p><p> void d
51、elay(unsigned int count)//延時函數(shù)</p><p> { unsigned char i;</p><p> while(count--)</p><p> for(i=0; i<120; i++);</p><p><b> }</b></p><p>
52、 unsigned char Busy_Check() //檢查忙函數(shù)</p><p> { RS = 0; RW = 1; //RS=0,控制寄存器,RW=1,讀</p><p><b> E = 1;</b></p><p><b> P2=0x50; </b></p><p&g
53、t;<b> delay(2);</b></p><p> LCD_Status = P0;</p><p><b> delay(2);</b></p><p><b> P2=0xe0;</b></p><p> return LCD_Status;</p&
54、gt;<p><b> }</b></p><p> void wcmd(unsigned char cmd) //寫命令函數(shù), RS=0;RW=0</p><p> { // & 0x80取出最高位D7,見命令9(讀忙標志BF及光標地址AC命令格式)</p><p> while((Busy_Check()
55、&0x80) == 0x80); // 寫命令前,先檢查設備是否忙?</p><p> RS=0;RW=0; // 指令寄存器寫入</p><p> E=1; // E設置為高電平</p><p><b> P2=0x50;</b></p><p> P0=cmd;
56、// 命令由P1口送入LCD</p><p><b> delay(2);</b></p><p> P2=0xe0; // E由高電平到低電平跳變,液晶模塊執(zhí)行命令</p><p><b> }</b></p><p> void wdat(unsigned char
57、dat) //寫數(shù)據(jù)函數(shù), RS=1;RW=0</p><p><b> {</b></p><p> while ((Busy_Check() & 0x80) == 0x80); // 寫數(shù)據(jù)前,先檢查設備是否忙?</p><p> RS=1;RW=0; </p><p> E=1;
58、 // E由高電平到低電平跳變,液晶模塊執(zhí)行命令</p><p><b> P2=0x50;</b></p><p> P0=dat; // 數(shù)據(jù)由P1口送入LCD</p><p> delay( 2); // 延時大約2ms</p><p><b&
59、gt; P2=0xe0;</b></p><p><b> }</b></p><p> void init() // 初始化函數(shù),主要寫命令</p><p> { wcmd(0x38); //38H=0011 1000,使用8位,用5×7的字型【命令6】</p><p> dela
60、y(20); //改為0x3C=0011 1100,就用5×10字型</p><p> wcmd(0x01); //01H=0000 0001,清屏【命令1】</p><p> delay(20);</p><p> wcmd(0x06); //06H=0000 0110,字符不動,光標自動右移一格【命令3】</p>
61、<p> delay(20);</p><p> wcmd(0x0e); //0eH=0000 1110,開顯示,有光標,字符不閃爍【命令4】</p><p> delay(20);</p><p><b> }</b></p><p><b> //定時器中斷</b><
62、;/p><p> time_key3 () interrupt 1</p><p><b> {</b></p><p><b> count2++;</b></p><p> if(count2%4000==0)//每次中斷250微秒,中斷4000次即一秒</p><p&
63、gt;<b> {k++;</b></p><p> m=k/10;//存儲十位數(shù)字</p><p> n=k%10;//存儲個位數(shù)字</p><p><b> P2=0x80;</b></p><p> P0=led[m];delay(1); //顯示十位數(shù)字</p>&l
64、t;p><b> P2=0x00;</b></p><p> P0=led[n];delay(1);//顯示個位數(shù)字</p><p><b> }</b></p><p> if(k==20)k=0;//定時20秒,循環(huán)</p><p><b> }</b>&l
65、t;/p><p><b> //流水燈中斷</b></p><p> light_key1() interrupt 0 </p><p><b> {</b></p><p><b> char i,j;</b></p><p>
66、 for(j=0;j<=1;j++)</p><p><b> {</b></p><p> for(i=0;i<=7;i++) //自上而下逐個點亮</p><p> { P2=led_key1[i];delay(100);}</p><p> for(i=7;i>=0;i--) /
67、/自下而上逐個點亮</p><p> { P2=led_key1[i];delay(100);}</p><p><b> }</b></p><p><b> P2=0xff; </b></p><p><b> }</b></p><p>
68、<b> //計數(shù)器中斷</b></p><p> counter_key4() interrupt 3</p><p> { delay(10);</p><p> if(P35==0) //用于消抖</p><p> count1++;//每進行一次中斷計數(shù)器加1</p><p>
69、 if(count1>0x0f) count1=0;//計數(shù)器到十五 之后從0重新開始</p><p> P0=led[count1];//P2口輸出顯示計數(shù)器對應數(shù)值</p><p> delay(200);</p><p><b> }</b></p><p> //LCD中斷 顯示1.light
70、2.LCD 3.time 4.count</p><p><b> //</b></p><p> LCD_key2() interrupt 2 //K1斷函數(shù) </p><p><b> {</b></p><p> init(); //0x80,見命令8(顯示緩沖區(qū)
71、DDRAM地址設置命令格式)</p><p> wcmd(0x80+0x00); //寫入顯示緩沖區(qū)起始地址為第1行第1列</p><p> wdat('1'); </p><p> wdat('.'); </p><p> wdat('l');
72、 </p><p> wdat('i'); </p><p> wdat('g');</p><p> wdat('h');</p><p> wdat('t');</p><p> wdat(' '
73、;);</p><p> wdat('2');</p><p> wdat('.');</p><p> wdat('L');</p><p> wdat('C');</p><p> wdat('D');</p>
74、<p> //【80H+45H=C5H】</p><p> wcmd(0x80+0x40); //寫入顯示緩沖區(qū)起始地址為第2行第1列</p><p> wdat('3');</p><p> wdat('.');</p><p> wdat ('t'); &
75、lt;/p><p> wdat ('i'); </p><p> wdat ('m'); </p><p> wdat('e');</p><p> wdat(' ');</p><p> wdat('
76、9;);</p><p> wdat('4');</p><p> wdat('.');</p><p> wdat('c');</p><p> wdat('o');</p><p> wdat('u');</p>
77、<p> wdat('n');</p><p> wdat('t');</p><p><b> ET1=0;</b></p><p><b> TR1=0;</b></p><p><b> }</b></p>
78、<p><b> //主函數(shù)</b></p><p> void main()</p><p><b> {</b></p><p> TMOD=0x22;</p><p> TH0=0x06;//定時器計數(shù)初值為6</p><p><b>
79、 TL0=0x06;</b></p><p> TH1=206; //計數(shù)器計數(shù)初值為206</p><p><b> TL1=206;</b></p><p> EA=1; //開中斷</p><p> ET0=1; //定時0中斷允許</p><p> P0=
80、led[0];</p><p> IT0=1; //脈沖觸發(fā)方式</p><p> ET1=1; //定時1中斷允許</p><p> IT1=1; //脈沖觸發(fā)方式</p><p> EX1=1; //中斷1中斷允許</p><p> P0=0x00;//開機時LED1滅燈</p>&
81、lt;p><b> while(1)</b></p><p><b> {</b></p><p> if(P34==0) //定時</p><p><b> TR0=1;</b></p><p> if(P32==0)//流水燈</p>&l
82、t;p><b> EX0=1;</b></p><p> if(P35==0)//計數(shù)</p><p><b> TR1=1;</b></p><p><b> }</b></p><p><b> }</b></p>&l
83、t;p><b> 調(diào)試及故障分析</b></p><p> 5.1 焊接準備階段元器件測試、電路原理圖故障分析</p><p> 對元器件的測試,錯誤主要在于我們對元器件的了解不是很全面很熟悉,無法進行正確的測量,從而導致錯誤。所以我們要在以后的學習中要多注意一些元器件的了解和掌握。</p><p> 在Proteus仿真軟件中畫
84、出電路原理圖,剛開始總是提示有一些錯誤,這時可以把程序下載到單片機中,但是卻無法運行,仿真。這是因為有些端口沒有連接好,或者端口的命名不對,解決的辦法是先畫出最簡單的基本原理圖,等基本的原理圖能夠下載運行之后再進行其它元器件的添加。</p><p> 5.2 電路焊接過程中的故障分析</p><p> 在這次焊接過程中,不需要做連線的工作,所以相對來說還是難度小了很多,不過在焊接過程中
85、難免還是會遇到一些問題,我們小組出現(xiàn)了下列一些現(xiàn)象:</p><p> 1.焊接出現(xiàn)錯誤,這是因為焊接前做的準備工作不好,對電路原理圖的理解不夠深入,比如我們在焊接時將5.1K的排阻與1K的排阻弄錯位置了,還好沒有影響最終的實驗效果。</p><p> 2.元器件擺放位置不是很清楚,比如各個按鍵和開關(guān)的引腳應該怎樣擺放不明白,元器件未經(jīng)過檢查是否能用或者是否合適,這是自己對元器件了解的
86、不全面,應該多多積累經(jīng)驗,多多學習。</p><p> 3.電路出現(xiàn)虛焊,導致電路運行效果不好,這是因為焊接技術(shù)沒有達到完美的標準。</p><p> 4.焊烙鐵的使用方法和對焊烙鐵的檢測。</p><p> 5.在焊接時可能是把焊盤弄壞了,最終調(diào)試時我們的一個二極管沒能正常工作,不過最終我們做了補救工作,將其連接到了其相應的其他位置,使其仍能正常工作。<
87、;/p><p> 5.3 程序編寫過程中的故障分析</p><p> 在焊接電路板之前我們已經(jīng)進行了仿真實驗,在焊接好電路板之后又進一步做了一些修改,以下是編程序時遇到的一些小問題:</p><p> 1.在編寫程序時,我是將其分為了四個小模塊,編寫了四個小程序,都實現(xiàn)后在將其合到一塊,也是因為這樣,因為自己的考慮不夠周密,在此過程中出現(xiàn)了一些問題,不過最終細心地
88、檢查,最終逐步將各個錯誤解決了。</p><p> 2.仿真與實際效果是有區(qū)別的,我在做好仿真程序后,將其下載到實物中時發(fā)現(xiàn)其計數(shù)功能不能正常使用,當按下按鍵時,其計數(shù)功能總是跳躍式的,而不是正常的加1,最終才想到我應該使用消抖,而在消抖時又發(fā)現(xiàn)此功能實現(xiàn)我用的是中斷而非定時,最終調(diào)整了按鍵P32和按鍵P34的功能實現(xiàn),又在計數(shù)時使用了消抖才解決此問題。</p><p> 5.4 實物
89、演示效果</p><p> 圖5.4.1 流水燈功能實現(xiàn)</p><p> 圖5.4.2 LCD功能實現(xiàn)</p><p> 圖5.4.3 定時器功能實現(xiàn)</p><p> 圖5.4.4 計數(shù)器功能實現(xiàn)</p><p><b> 結(jié)論</b></p><p>
90、; 以前單片機課上曾經(jīng)做過幾次實驗,所以對一些簡單的proteus和keil軟件已經(jīng)很熟悉了,對一些簡單的電路能夠獨立編寫程序,設計出電路圖了,但跟這次課程設計相比,這次的課程設計才是更加讓體會到了硬件的實用,讓我們接觸到了實物,使我們從最初的原理到最終的產(chǎn)品完成制作有了更加深刻的認識與了解,也因此我增加了單片機學習興趣。</p><p> 在這次單片機的課程設計過程中我可以說還是收獲良多的。首先對于課堂上學
91、習的知識其實有很多都已經(jīng)不再熟悉,已經(jīng)忘記了很多相關(guān)知識,通過實習對以往的知識起到了很好的復習作用。另外對于我的編程能力來說,也是有所進步的,以往的實驗課都是做一些功能單一的簡單的電路,而這次則是可以實現(xiàn)多個功能,程序比以往的要復雜一些,也因此是我對中斷、定時等一些知識又復習了一次。</p><p> 在課程設計的焊接電路板環(huán)節(jié)我們是按照小組合作焊接電路板的,我們小組三個人都盡心為了我們共同的成功做了努力,還好
92、我們的電路板最終還算是理想的。在焊接過程中,我們都動手嘗試了一下焊接操作,我的動手能力還算可以吧,不過還是我們小組的廣帥焊接技術(shù)比較好,焊的又好又快。焊接的過程中我們還是出了一點小問題的,比如我們不小心把兩個不同阻值的排阻焊接位置弄反了,不過最終并沒有影響調(diào)試效果,另外,我們的二極管在調(diào)試過程中有一個沒有正常點亮,可能是焊板被弄壞了,最終我們調(diào)整了此二極管的焊接位置,使其恢復了正常工作??偟膩碚f,我們的合作還是很默契的,經(jīng)過我們的共同努
93、力,功夫不負有心人,電路板順利完成焊接。在這次課設焊接過程中我意識到團隊合作還是很重要的,以后要多多注意與人的互動能力。</p><p> 在以往的單片機實驗課上每次都能獨立完成程序的編寫,所以這次程序的編寫相對來說并不是很難,盡管在編程的過程中還是出現(xiàn)了諸多問題。在實驗過程中,發(fā)現(xiàn)仿真與實際效果真的是有區(qū)別的,為此,我在仿真程序運行正常的情況下將程序下載到實物里沒能正常運行,只好重新改寫了程序。</p&
94、gt;<p> 總之,在這次課程設計過程中學到了很多,每學期的課程設計還是很有必要的,所以,希望以后多多有類似的學習活動。通過課設,我對單片機更加感興趣了,更加助長了我的學習欲望。</p><p><b> 謝辭</b></p><p> 這次課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在老師的辛勤指導和同學的幫組下迎刃而解。同時,在老
95、師那里我學得到很多實用的知識以及她的認真嚴謹?shù)目茖W態(tài)度,讓我終生受益!同時,對給過我?guī)椭耐瑢W再次表示忠心的感謝!在這次課程設計中,我要向幫助我的指導老師xx老師表示衷心的感謝,感謝你們在百忙之中抽出時間指導我們的課程設計,你們的淵博知識,嚴謹?shù)闹螌W風格,對學生無私的關(guān)愛將會對我未來產(chǎn)生深淵的影響。同時也要感謝我的同學,雖然我們編的程序不一樣,但是當我遇到問題時,他們總能認真的幫我分析問題并耐心的跟我講解;還要感謝我的隊友們,沒有你們的
96、積極配合和熱情幫助,這次課程設計不會完成的這么順利。感謝老師您為我們提供了這次動手鍛煉的機會,為同學們營造的濃郁的學習氛圍以及在學習上提供的無私幫助!</p><p><b> 參考文獻</b></p><p> [1]李蒙 毛建東編 單片機原理及應用[M]. 北京:中國輕工業(yè)出版社, 2010</p><p> [2]林立 張俊亮編
97、單片機原理及應用——基于Proteus和Keil[M]. 電子工業(yè)出版社,2012</p><p> [3]張靜,李海編 Proteus在單片機教學中的應用[J]. 中國西部科技出版社,2008.</p><p> [4]譚浩強編 C程序設計(第三版). 清華大學出版社, 2005.7.</p><p> [5]侯增強編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計報告--基于stc89c52單片機的實驗平臺開發(fā)設計
- 單片機課程設計報告--基于stc89c52單片機的電子時鐘(日歷)
- STC89C52單片機.doc
- STC89C52單片機.doc
- STC89C52單片機.doc
- stc89c52單片機.pdf
- stc89c52單片機.pdf
- STC89C52單片機.doc
- stc89c52單片機.pdf
- STC89C52單片機.doc
- STC89C52單片機.doc
- STC89C52單片機.doc
- STC89C52單片機.doc
- STC89C52單片機.doc
- stc89c52單片機.pdf
- STC89C52單片機.doc
- stc89c52單片機.pdf
- 單片機課程設計報告---基于stc89c52的溫度測控系統(tǒng)設計
- 單片機課程設計---基于stc89c52的旋轉(zhuǎn)led時鐘
- 基于stc89c52單片機紅外測溫系統(tǒng)設計
評論
0/150
提交評論