版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢</b></p><p><b> 業(yè)</b></p><p><b> 設(shè)</b></p><p><b> 計(jì)</b></p><p><b> 摘要</b></p><
2、p> 本文對(duì)當(dāng)前數(shù)字秒表開發(fā)與設(shè)計(jì)進(jìn)行比較和分析最終確定采用AT89C51單片機(jī)實(shí)現(xiàn)數(shù)字秒表的設(shè)計(jì)。本設(shè)計(jì)以AT89C51單片機(jī)為核心,采用兩個(gè)3位LED數(shù)碼管顯示以及外部中斷電路來實(shí)現(xiàn)數(shù)字秒表的基本功能。本文簡(jiǎn)單介紹了其系統(tǒng)組成,重點(diǎn)討論了其硬軟件的實(shí)現(xiàn)過程,并對(duì)其計(jì)時(shí)精度進(jìn)行了確定。最后通過對(duì)硬件系統(tǒng)的仿真觀察其實(shí)際運(yùn)行情況,給我們以直觀的認(rèn)識(shí)。</p><p> 關(guān)鍵字:?jiǎn)纹瑱C(jī)、AT89C51、數(shù)
3、碼管</p><p><b> Abstract</b></p><p> In the era of information, people have been paying more and more attention to computer data security than ever before. So study the reasons of th
4、e data loss, prevention methods and data recovery technology becomes more and more important . This thesis mainly does research</p><p> This system based on the MCU assembly language for software design, th
5、e assembly language and SCM underlying combination, make the logic relation of designing program more concise. This program directly in the Keil software compiler, using Proteus simulation debugging, easy to modify the p
6、rogram.</p><p> Key Words: hard drive, file system, data recovery, data loss, data security. </p><p><b> 目錄</b></p><p><b> 摘要</b></p><p><
7、b> Abstract</b></p><p><b> 目錄</b></p><p><b> 引言</b></p><p> 第一章 任務(wù)分析與方案確定</p><p> 1.1 設(shè)計(jì)任務(wù)要求及分析</p><p> 1.1.1 計(jì)劃安排表&
8、lt;/p><p> 1.1.2 任務(wù)要求</p><p> 1.1.3 任務(wù)分析</p><p><b> 1.2 方案確定</b></p><p><b> 1.3 單片機(jī)概述</b></p><p> 1.3.1 單片機(jī)的特點(diǎn)</p><p&g
9、t; 1.3.2 單片機(jī)的應(yīng)用</p><p> 第二章 控制系統(tǒng)的硬件電路設(shè)計(jì)</p><p> 2.1 硬件設(shè)計(jì)要遵循的原則</p><p> 2.2 單片機(jī)的選擇</p><p> 2.2.1 管腳說明</p><p><b> 2.3 電源電路</b></p>&
10、lt;p> 2.4 74HC245的功能結(jié)構(gòu)</p><p> 2.5 晶體振蕩電路</p><p><b> 2.6 復(fù)位電路</b></p><p><b> 2.7 顯示電路</b></p><p> 2.8系統(tǒng)總體控制電路的設(shè)計(jì)</p><p> 第
11、三章 系統(tǒng)軟件的設(shè)計(jì)</p><p> 3.1 程序設(shè)計(jì)的主要思想</p><p> 3.2 程序流程圖設(shè)計(jì)</p><p> 3.3 軟件程序的仿真</p><p><b> 第四章 系統(tǒng)調(diào)試</b></p><p><b> 4.1 硬件調(diào)試</b></p
12、><p> 4.1.1 硬件的安裝與調(diào)試</p><p> 4.2 軟件程序編譯與調(diào)試</p><p><b> 4.3 系統(tǒng)聯(lián)調(diào)</b></p><p><b> 4.4 現(xiàn)場(chǎng)調(diào)試</b></p><p><b> 結(jié)束語</b></p&g
13、t;<p><b> 致謝</b></p><p><b> 參考文獻(xiàn)</b></p><p><b> 附錄:</b></p><p><b> 附錄一:仿真電路圖</b></p><p><b> 附錄二:系統(tǒng)總程序&
14、lt;/b></p><p><b> 引 言</b></p><p> 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機(jī)的數(shù)字電子秒表設(shè)計(jì)。本設(shè)計(jì)主要特點(diǎn)是計(jì)時(shí)精度達(dá)到0.01s,解決了傳統(tǒng)的由于計(jì)時(shí)精度不夠造成的誤差和不公平性,是各種體育競(jìng)賽的必備設(shè)備之一。另外硬件部分設(shè)置了查看按鍵,可以對(duì)秒表上一次計(jì)時(shí)時(shí)間進(jìn)行保存,供使
15、用者查詢。自首屆現(xiàn)代奧運(yùn)會(huì)在希臘雅典舉辦以來,奧運(yùn)計(jì)時(shí)技術(shù)一直在不斷地向前發(fā)展。一百多年過去了,首屆現(xiàn)代奧運(yùn)會(huì)上計(jì)時(shí)所用的跑表如今換成了一系列高科技計(jì)時(shí)裝置,如高速數(shù)碼攝像機(jī)、電子觸摸墊、紅外光束、無線應(yīng)答器等等。鑒于當(dāng)今計(jì)時(shí)技術(shù)的快速發(fā)展,即便千分之一秒(為眨眼的40倍)的毫微差距,也決定著冠軍的歸屬。在現(xiàn)在的體育競(jìng)技比賽中,隨著運(yùn)動(dòng)員的水平不斷提高,差距也在不斷縮小。有些運(yùn)動(dòng)對(duì)時(shí)間精度的要求也越來越高,有時(shí)比賽冠亞軍之間的差距只有幾
16、毫秒,因此就需要高精度的秒表來記錄成績(jī)。有關(guān)計(jì)時(shí)鐘表的發(fā)展歷史,大致可以分為三個(gè)演變階段。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發(fā)展。從我國(guó)水運(yùn)儀像臺(tái)的發(fā)明到現(xiàn)在各國(guó)都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個(gè)不同時(shí)期的科學(xué)家和鐘表</p><p> 本設(shè)計(jì)利用AT89C52單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始暫停的功能。
17、P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5分別接二個(gè)按鈕開關(guān),分別實(shí)現(xiàn)開始、暫停、清零的功能。顯示電路由兩個(gè)共陰極數(shù)碼管組成。 </p><p> 第一章 任務(wù)分析與方案確定</p><p> 1.1 設(shè)計(jì)任務(wù)要求及分析</p><p> 1.1.1 計(jì)劃安排表</p><p> 當(dāng)我
18、們小組確定畢業(yè)設(shè)計(jì)做“基于單片機(jī)的電秒秒表設(shè)計(jì)”后,我們小組首先考慮到要安排好時(shí)間,做出計(jì)劃安排表!如下表所示:</p><p> 表1.1.1-1 計(jì)劃安排表</p><p> 1.1.2 任務(wù)要求</p><p> 1、設(shè)計(jì)基于AT89C51數(shù)碼管顯示的電子秒表</p><p> 2、通過按鍵控制開始、清零、暫停和停止能夠準(zhǔn)確計(jì)時(shí)
19、并顯示</p><p> 3、開始顯示0000.00</p><p><b> 4、方便做出實(shí)物</b></p><p> 5、最大計(jì)時(shí)9999.99、最大精確到0.01秒</p><p> 1.1.3 任務(wù)分析</p><p> 基于設(shè)計(jì)要求,我們做出合理的分析和選擇。首先要顯示000
20、0.00,那么就要考慮到是用一個(gè)六位的數(shù)碼管或者兩個(gè)三位數(shù)碼管,當(dāng)然也可以用一個(gè)四位數(shù)碼管和一個(gè)兩位數(shù)碼管,但是為了方便設(shè)計(jì)實(shí)物制作我們采用兩個(gè)三位共陰極數(shù)碼管進(jìn)行顯示。要達(dá)到0.01的驗(yàn)證所設(shè)計(jì)的電子秒表是否合理正確,單單靠理論說明還不夠充分,我就相應(yīng)地制作了硬件實(shí)物,這對(duì)理論就有精確度,可以用定時(shí)器定時(shí)10ms作為基數(shù),計(jì)時(shí)就可以在這個(gè)基礎(chǔ)上累加起來。并把秒和小數(shù)后兩位的數(shù)據(jù)用兩個(gè)單元暫存,然后通過處理程序來處理兩個(gè)單元,并送到I/
21、O口來顯示,這樣就能夠顯示到0.01秒。在實(shí)現(xiàn)清零、暫停、計(jì)時(shí)功能,可以考慮用兩個(gè)按鈕來實(shí)現(xiàn),一個(gè)按鈕是復(fù)位來清零;一個(gè)按鈕是暫停和停止。</p><p><b> 1.2 方案確定</b></p><p> 根據(jù)我們自己專業(yè)對(duì)應(yīng)所學(xué)知識(shí),而且對(duì)基本理論知識(shí)進(jìn)行相應(yīng)的鞏固、擴(kuò)展,我選擇了電子秒表作為設(shè)計(jì)內(nèi)容,其特點(diǎn)是融合了多方面的基本理論知識(shí),無論是硬件或軟件上都
22、屬于比較典型的設(shè)計(jì)。在選擇單片機(jī)和收發(fā)器選擇時(shí),我們根據(jù)自己所學(xué)的專業(yè)知識(shí)選擇了我們熟知的STC89C51和74HC245,方便我們進(jìn)行實(shí)物制作。本電路直接采用單片機(jī)配合數(shù)碼管和按鍵,直接實(shí)現(xiàn)功能,主要決定于軟件程序的設(shè)計(jì)。利用單片機(jī)的定時(shí)中斷產(chǎn)生10ms定時(shí)來更新數(shù)據(jù),再利用數(shù)制轉(zhuǎn)換更新顯示。主要的難度在于控制部分的程序編寫。在此利用了2個(gè)按鍵分別對(duì)各個(gè)功能進(jìn)行控制,顯示部分用數(shù)碼管,用的是2個(gè)三位數(shù)碼管,主要是為了方便實(shí)物制作。在此
23、要考慮硬件的設(shè)計(jì)以及整體電路的可靠性,因此選用了這個(gè)方案,使得本電路的硬件設(shè)計(jì)難度不高,便于檢查排錯(cuò)。 在軟件程序上利用空閑及參數(shù)變化時(shí)對(duì)顯示進(jìn)行及時(shí)更新,從而保證了顯示的連續(xù)性與實(shí)時(shí)性。</p><p><b> 1.3 單片機(jī)概述</b></p><p> 電子計(jì)算機(jī)是20世界紀(jì)40年代發(fā)展起來的新技術(shù)之一,它的出現(xiàn)是科學(xué)技術(shù)產(chǎn)生了一場(chǎng)深刻的革命。特別是自19
24、71年以來,隨著大規(guī)模集成電路的發(fā)展,又出現(xiàn)了微型計(jì)算機(jī)。它對(duì)發(fā)展現(xiàn)代化的工業(yè)、農(nóng)業(yè)、國(guó)防和科學(xué)技術(shù)具有極其巨大的推動(dòng)作用。作為微型機(jī)控制系統(tǒng)的組成,主要分為兩大部分,硬件和軟件。硬件是指微型計(jì)算機(jī)本身及其外圍設(shè)備;軟件是指管理計(jì)算機(jī)的程序以及過程控制應(yīng)用程序。</p><p> 1.3.1單片機(jī)的特點(diǎn)</p><p> 1、有優(yōu)異的性能價(jià)格比。</p><p>
25、; 2、集成度高、體積小、有很高的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性和抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。</p><p> 3、控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。單片機(jī)的邏輯控制功能及運(yùn)行速度均高于同一檔次的
26、微機(jī)。</p><p> 4、低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。</p><p> 5、外部總線增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡(jiǎn)化了結(jié)構(gòu)。</p><p> 6、單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系
27、統(tǒng)。</p><p> 1.3.2單片機(jī)的應(yīng)用</p><p> 由于單片機(jī)具有顯著的優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域,主要表現(xiàn)在以下幾個(gè)方面:</p><p> 1、單片機(jī)在智能儀表中的應(yīng)用</p><p> 2、單片機(jī)在機(jī)電一體化中的應(yīng)用</p><p> 3、單
28、片機(jī)在實(shí)時(shí)控制中的應(yīng)用</p><p> 4、單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用</p><p> 5、單片機(jī)在人類生活中的應(yīng)用</p><p> 單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面,另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能通過單片機(jī)來實(shí)現(xiàn)了。這種用軟件代
29、替硬件的控制技術(shù)也稱為微控制技術(shù),是對(duì)傳統(tǒng)控制技術(shù)的一次革命。</p><p> 此外,單片機(jī)成本低、集成度高、控制功能多,可靈活地組裝成各種智能控制裝置,并能有針對(duì)性設(shè)計(jì)成專用系統(tǒng),解決從簡(jiǎn)單到復(fù)雜的各種需要,實(shí)現(xiàn)最佳的性價(jià)比。特別是單片機(jī)與傳統(tǒng)機(jī)械產(chǎn)品相結(jié)合,使原有機(jī)械產(chǎn)品的結(jié)構(gòu)簡(jiǎn)化、控制智能化。如數(shù)控機(jī)床就是典型實(shí)例。近年來,單片機(jī)發(fā)展極快,其產(chǎn)量占微機(jī)產(chǎn)量的70%以上。目前,至少有50個(gè)系列400余種機(jī)
30、型,性能和結(jié)構(gòu)各不相同,Intel、Motorola、Zilcg等公司都有系列單片微型計(jì)算機(jī)。國(guó)內(nèi)普及的幾乎都是Intel公司的產(chǎn)品。</p><p> 第二章 控制系統(tǒng)的硬件電路設(shè)計(jì)</p><p> 2.1硬件電路的設(shè)計(jì)要遵循以下原則:</p><p> (1)在性價(jià)比滿足應(yīng)用系統(tǒng)要求的基礎(chǔ)上,選擇更可靠、更熟悉的單片機(jī),縮短研制周期。</p>
31、<p> (2)盡可能選擇較成熟的典型應(yīng)用電路,以提高系統(tǒng)的可靠性。</p><p> (3)單片機(jī)內(nèi)部的資源與外部擴(kuò)展資源應(yīng)在滿足應(yīng)用系統(tǒng)設(shè)計(jì)要求的基礎(chǔ)上留有余地,為進(jìn)一步升級(jí)和擴(kuò)展其功能提供方便。</p><p> (4)應(yīng)充分結(jié)合軟件方案統(tǒng)籌考慮硬件結(jié)構(gòu),通常硬件功能較完善,其相應(yīng)的軟件就簡(jiǎn)單,但硬件成本較高;而硬件功能略低,其相應(yīng)的軟件就復(fù)雜。實(shí)際中應(yīng)盡量以軟件
32、替代硬件來降低成本。</p><p> (5)整個(gè)系統(tǒng)的相關(guān)器件應(yīng)盡可能做到性能匹配,如電平、速度的匹配等。</p><p> (6)充分考慮整個(gè)系統(tǒng)的抗干擾設(shè)計(jì),如選擇具有抗干擾設(shè)計(jì)的單片機(jī)并充分篩選芯片與器件,在電路中采取隔離和屏蔽措施等。</p><p> 根據(jù)以上原則,通過分析與比對(duì),我們選用較熟悉的具有內(nèi)部程序存儲(chǔ)器的AT89C51單片機(jī)作為主控電路
33、,選用兩個(gè)三位共陰極數(shù)碼管作為顯示電路來組成硬件電路??傮w設(shè)計(jì)方案如下所示</p><p> 圖2.1-1 總體設(shè)計(jì)方案</p><p> 本設(shè)計(jì)中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元31H-33H中。其中31H存放分鐘變量,32H存放秒鐘變量,33H存放10ms計(jì)數(shù)值,即存放毫秒位數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)
34、段碼存放在ROM表中。顯示時(shí),先取出31H-33H某一地址中的數(shù)據(jù),然后查得對(duì)應(yīng)的顯示位,并從P1口輸出,就能顯示該地址單元的數(shù)據(jù)值。</p><p> 計(jì)時(shí)通過中斷完成,定時(shí)溢出中斷周期為1ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到10次就對(duì)十毫秒位進(jìn)行加一,依次類推,直到99.99.99秒重新復(fù)位。 </p><p> 再看按鍵的處
35、理。這兩個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來識(shí)別。復(fù)位鍵主要功能在于數(shù)值定,需要比較準(zhǔn)確的控制。因此可以對(duì)復(fù)位按鍵采取掃描的方式。而對(duì)開始復(fù)位,對(duì)于時(shí)間的要求不是很嚴(yán)格。而開始和停止鍵則是用于對(duì)時(shí)間的鎖和停止鍵采用外部中斷的方式。</p><p> 設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,顯示電路和回零、啟動(dòng)、查看、停表電路等。主控制器采用單片機(jī)STC89C51,顯示電路采
36、用LCD顯示計(jì)時(shí)時(shí)間,兩個(gè)按鍵均采用觸點(diǎn)式按鍵。</p><p> 2.2 單片機(jī)的選擇</p><p> 本設(shè)計(jì)在選取單片機(jī)時(shí),我們根據(jù)我們的專業(yè)知識(shí)所熟知的基礎(chǔ)上選用了AT89C51。 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位
37、微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。下圖為AT89C51。</p><p> 圖2.2-1 單片機(jī)引腳圖</p><p> AT89C51主要特性:&l
38、t;/p><p> ·與MCS-51 兼容 </p><p> ·4K字節(jié)可編程FLASH存儲(chǔ)器 </p><p> ·壽命:1000寫/擦循環(huán) </p><p> ·數(shù)據(jù)保留時(shí)間:10年 </p><p> ·全靜態(tài)工作:0Hz-24MHz </
39、p><p> ·三級(jí)程序存儲(chǔ)器鎖定 </p><p> ·128×8位內(nèi)部RAM </p><p> ·32可編程I/O線 </p><p> ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 </p><p> ·5個(gè)中斷源 ·可編程串行通道 <
40、/p><p> ·低功耗的閑置和掉電模式 </p><p> ·片內(nèi)振蕩器和時(shí)鐘電路 </p><p> 2.2.1 管腳說明:</p><p> VCC:供電電壓。 GND:接地。</p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管
41、腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由
42、于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)
43、對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作</p><p> RST:復(fù)位輸入。當(dāng)振
44、蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間?! LE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有
45、在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效?! ?PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP: 當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為
46、RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12</p><p> XTAL2:來自反向振蕩器的輸出。 </p><p><b> 2.3 電源電路</b></p><p> 電源電路是系統(tǒng)最基本的部分,任何電路都離不開電源部分,由于三端集成穩(wěn)壓器件所組成的穩(wěn)壓電源線路簡(jiǎn)單,性能穩(wěn)定,工作
47、可靠,調(diào)整方便,已逐漸取代分立元件,在生產(chǎn)中被廣泛采用。</p><p> 2.4 74HC245的功能結(jié)構(gòu)</p><p> 74HC245名叫總線收發(fā)器(bus transceiver),典型的CMOS型三態(tài)緩沖門電路。 </p><p> 由于單片機(jī)或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過其負(fù)載能力,一般應(yīng)加驅(qū)動(dòng)器。</p
48、><p><b> 其引腳的定義為:</b></p><p> 第1腳DIR,為輸入輸出端口轉(zhuǎn)換用,DIR=“1”高電平時(shí)信號(hào)由“A”端輸入“B”端輸出,DIR=“0”低電平時(shí)信號(hào)由“B”端輸入“A”端輸出。 </p><p> 第2~9腳“A”信號(hào)輸入輸出端,A0=B0、、、、、、A7=B7,A0與B0是一組,如果DIR=“1”O(jiān)E=“0”
49、則A1輸入B1輸出,其它類同。如果DIR=“0”O(jiān)E=“0”則B1輸入A1輸出,其它類同。 </p><p> 第11~18腳“B”信號(hào)輸入輸出端,功能與“A”端一樣,不再描述。 </p><p> 第19腳OE,使能端,若該腳為“1”A/B端的信號(hào)將不導(dǎo)通,只有為“0”時(shí)A/B端才被啟用,該腳也就是起到開關(guān)的作用。 </p><p> 第10腳GND,電源地
50、。 </p><p> 第20腳VCC,電源正極。</p><p> 2.5 晶體振蕩電路</p><p> MCS--51單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反相放大器,引線 XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。</p><p> 這里,我們選
51、用51單片機(jī)12MHZ的內(nèi)部振蕩方式,電路圖2.5-1如下:電容器C1,C2起穩(wěn)定振蕩頻率,快速起振的作用,C1和C2可在20-100PF之間取,這里取30P,接線時(shí)要使晶體振蕩器X1盡可能接近單片機(jī)。</p><p> 圖2.5-1 晶振電路</p><p><b> 2.6 復(fù)位電路</b></p><p> 采用上電+按鍵復(fù)位電路
52、,上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使用使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電加開關(guān)復(fù)位的操作。這不僅能使單片機(jī)復(fù)位,而且還能使</p><p> 單片機(jī)的外圍芯片也同時(shí)復(fù)位。當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。</p><p> 電路圖如圖2.6-1:</p><p> 圖2.6-1 復(fù)位電路&l
53、t;/p><p><b> 2.7顯示電路</b></p><p> 對(duì)于數(shù)字顯示電路而言,通常采用LCD顯示或LED顯示。對(duì)于一般的段式LCD,需要專門的驅(qū)動(dòng)電路,而且可視性差;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的LCD顯示模塊,一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,AT89C51單片機(jī)本身沒有專門的LCD驅(qū)動(dòng)接口。而LED數(shù)碼管作為一種主動(dòng)顯示器
54、件,具有結(jié)構(gòu)簡(jiǎn)單、亮度高、響應(yīng)速度快、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或者遠(yuǎn)距離操作。因此在本設(shè)計(jì)中,我們采用兩個(gè)3位數(shù)碼管作為顯示介質(zhì)。</p><p> 數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用兩個(gè)三位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動(dòng)態(tài)顯示。</p><p> 動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,
55、這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時(shí)刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可
56、以給人同時(shí)顯示的感覺。數(shù)碼管的結(jié)構(gòu)及字形碼表如下圖2.8-1所示:</p><p> 在設(shè)計(jì)中,我們采用LED動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。由于P0口的輸出級(jí)是開漏電路,用它驅(qū)動(dòng)時(shí)需要外接上拉電阻才能輸出高電平。</p><p><b> 電路圖如圖4:</b></p><p><b> 圖4 顯示電路</b><
57、;/p><p> 2.8系統(tǒng)總體控制電路的設(shè)計(jì)</p><p> 系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如圖2.8.1所示。</p><p> AT89C52單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。</p>
58、<p> AT89C52單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。</p><p> 圖2.8-1 系統(tǒng)總電路圖</p><p> 復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個(gè)專用的硬件復(fù)位接口,并設(shè)置為高電平有效。<
59、/p><p> 按鍵電路與單片機(jī)的端口連接可以由用戶自己設(shè)定,本設(shè)計(jì)中軟件復(fù)位鍵和查看鍵分別接單片機(jī)的P1.1和P2.5,均設(shè)為低電平有效。而另外的開始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機(jī)的特殊接口P3.3和P3.2,這兩個(gè)I/O口的第二功能分別為單片機(jī)的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。</p><p> 顯示電路由五位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因
60、此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,AT89C52的P0口沒有集成上拉電阻,高電平的驅(qū)動(dòng)能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動(dòng)能力。五位位控制則由低位到高位分別接到P2.0~P2.4口,NPN三極管9013做為位控制端的開關(guān),當(dāng)P2.0~P2.4端口任意一個(gè)端口為高電平時(shí),與其相對(duì)應(yīng)的三極管就導(dǎo)通,對(duì)應(yīng)的數(shù)碼管導(dǎo)通顯示。</p&
61、gt;<p> 通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。</p><p> 第三章 系統(tǒng)軟件的設(shè)計(jì)</p><p> 待硬件電路接線完成后,通常可先編寫簡(jiǎn)單的測(cè)試程序?qū)τ布娐愤M(jìn)行測(cè)試,排除硬件電路設(shè)計(jì)中存在的錯(cuò)誤。然后根據(jù)設(shè)計(jì)任務(wù)的要求確定系統(tǒng)程序的整
62、體結(jié)構(gòu),盡可能采用模塊化程序設(shè)計(jì)的方法,將任務(wù)劃分為相對(duì)獨(dú)立的功能模塊,明確各模塊的功能、時(shí)間順序和相互關(guān)系,并畫出各程序模塊的流程圖,根據(jù)流程圖逐一編寫程序,最后將各個(gè)模塊連接成完整的程序。</p><p> 3.1程序設(shè)計(jì)的主要思想</p><p> 本設(shè)計(jì)經(jīng)組員討論研究后決定采用C語言進(jìn)行編寫。首先是考慮到我們對(duì)C語言程序的編寫比匯編要熟識(shí)的多,當(dāng)然對(duì)于程序的編寫C語言也會(huì)方便簡(jiǎn)
63、單易懂的多。</p><p><b> C語言的特點(diǎn):</b></p><p> (1)程序結(jié)構(gòu)簡(jiǎn)潔、緊湊、規(guī)整,表達(dá)式簡(jiǎn)練、使用靈活。</p><p> (2)編寫的程序可讀性強(qiáng),編譯效率高。</p><p> ?。?)具有豐富的運(yùn)算符,多達(dá)34種。豐富的數(shù)據(jù)類型與豐富的運(yùn)算符相結(jié)合,使C語言具有表達(dá)靈活和效率高
64、等特點(diǎn)。</p><p> ?。?)數(shù)據(jù)類型種類繁多。C語言具有5種基本的數(shù)據(jù)類型和多種構(gòu)造數(shù)據(jù)類型以及復(fù)合的導(dǎo)出類型,同時(shí)還提供了與地址密切相關(guān)的指針機(jī)器運(yùn)算符。指針可以指向各種類型的簡(jiǎn)單變量、數(shù)組、結(jié)構(gòu)和聯(lián)合,乃至函數(shù)等。此外,C語言還允許用戶自己定義數(shù)據(jù)類型。</p><p> ?。?)是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,特別適合大型程序的模塊化設(shè)計(jì)。C語言具有編寫結(jié)構(gòu)化程序所必需的基本流程控
65、制語句,C語言程序是由函數(shù)集合構(gòu)成的,函數(shù)各自獨(dú)立,并且作為模塊化設(shè)計(jì)的基本單位。</p><p><b> 說明:</b></p><p> C語言的源文件,可以分割成多個(gè)源程序,分別進(jìn)行編譯,然后連接起來構(gòu)成可知性的目標(biāo)文件,為開發(fā)大型軟件提供了極大的方便。C語言還提供了多種存儲(chǔ)屬性,使數(shù)據(jù)可以按其需要在相應(yīng)的作用域起作用,從而提高了程序的可靠性。</p
66、><p> (6)語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。例如,對(duì)數(shù)組下標(biāo)越界不作檢查,由程序編寫者自己保證程序的正確。一般的高級(jí)語言語法檢查比較嚴(yán),能檢測(cè)出幾乎所有的語法錯(cuò)誤,而C語言允許程序編寫者有較大的自由度,因此放寬了語法的檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程序,保證其正確,而不要過分依賴C語言編譯程序去查錯(cuò)。</p><p> ?。?)允許直接訪問物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言
67、的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此,C語言既具有高級(jí)語言的功能,又兼容低級(jí)語言的許多功能,可用來編寫系統(tǒng)軟件。</p><p> ?。?)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。它一般只比匯編程序生成的目標(biāo)代碼率低10%~20%。</p><p> ?。?)具有較高的可移植性。它的語句基本上無須修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。</p><p>
68、C語言是處于匯編語言和高級(jí)語言之間的一種中間型程序設(shè)計(jì)語言,常被稱為中級(jí)語言。它既有高級(jí)語言的基本特點(diǎn),又具有匯編語言面向硬件和系統(tǒng),可以直接訪問硬件的功能</p><p> 3.2 程序流程圖設(shè)計(jì)</p><p> 這里采用順序結(jié)構(gòu),通過對(duì)按鍵的掃描,判斷要實(shí)現(xiàn)什么功能。如下所示:</p><p> 3.3軟件程序的仿真</p><p&g
69、t; Proteus ISIS是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件,它可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的主要特點(diǎn)總結(jié)后有以下四點(diǎn):①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合的功能。②支持目前主流單片機(jī)系統(tǒng)的仿真。③提供了軟件調(diào)試功能,并可以與WAVE聯(lián)合仿真調(diào)試。④具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。在電子領(lǐng)域中也起到了很大
70、的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時(shí)間。</p><p> Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面。它包括標(biāo)題欄、主菜單、狀態(tài)欄、標(biāo)準(zhǔn)工具欄、繪圖工具欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口等十幾個(gè)工具,方便了使用者的使用。</p><p>
71、Proteus SISI繪制原理圖的操作與Protel 99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設(shè)計(jì)中的一個(gè)仿真例子作簡(jiǎn)述說明。運(yùn)行Proteus SISI后,繪制病床呼叫系統(tǒng)的原理圖。</p><p> 首先打開已經(jīng)畫好的proteus DSN文件,雙擊圖中的AT89S52芯片,就彈出一個(gè)窗口,在Program File項(xiàng)中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿
72、真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計(jì)中的HEX文件。單擊“三角形按鈕”進(jìn)行仿真。通過對(duì)仿真結(jié)果的觀察來對(duì)程序進(jìn)行修改,最終使程序到達(dá)設(shè)計(jì)要求。仿真 圖如下所示。</p><p><b> 第四章 系統(tǒng)調(diào)試</b></p><p><b> 4.1硬件調(diào)試</b></p><p> 硬件調(diào)試一般分為四步驟:&l
73、t;/p><p> 第一個(gè)是目測(cè)法。這個(gè)方法是我們最常用的方法之一,只要是檢查一些很明顯的錯(cuò)誤,如電解電容的電極是否連錯(cuò)、焊點(diǎn)否光亮飽滿無虛焊,用萬用板連的線是否連好了、焊盤有否脫落。對(duì)單片機(jī)應(yīng)用系統(tǒng)中所用的器件與設(shè)備,要仔細(xì)核對(duì)型號(hào),檢查它們對(duì)外連線(包括集成芯片引腳)是否完整無損。通過目測(cè)查出一些明顯的器件、設(shè)備故障并及時(shí)排除。</p><p> 第二個(gè)是萬用表測(cè)試。目測(cè)檢查后,可進(jìn)行
74、萬用表測(cè)試。先用萬用表復(fù)核目測(cè)中認(rèn)為可疑的連接或接點(diǎn),檢查它們的通斷狀態(tài)是否與設(shè)計(jì)規(guī)定相符。再檢查各種電源線與地線之間是否有短路現(xiàn)象,如有再仔細(xì)查出并排除。</p><p> 第三個(gè)是上電檢查。首先檢查所有插座或器件的電源端是否有符合要求的電壓,接地端電壓是否接近于零,接固定電平的引腳端是否電平正確。在對(duì)各芯片、器件加電過程中,是否出現(xiàn)打火、過熱、變色、冒煙、異味的現(xiàn)象。如出現(xiàn)這些現(xiàn)象,應(yīng)立即斷電,仔細(xì)檢查電源
75、加載的情況、各個(gè)芯片是否插反等,找出產(chǎn)生異常的原因并加以解決;并且用萬用表測(cè)各芯片的引腳電平是否合理。再有就是,在加電期間,通過給合邏輯功能簡(jiǎn)單的芯片加載固定輸入電平,用萬用表測(cè)其輸出電平的方法來判定該芯片的好壞。在調(diào)試過程中,沒有注意STC89C52與之對(duì)應(yīng)的連接以及要注意的地方,最后結(jié)果功能不可以實(shí)現(xiàn),經(jīng)過查找電路,發(fā)現(xiàn)應(yīng)該是讀取片內(nèi)的內(nèi)容,31引腳/VPP要接高電平,結(jié)果在設(shè)計(jì)的時(shí)候沒有注意,功能就實(shí)現(xiàn)不了。</p>
76、<p> 第四個(gè)是復(fù)位檢查。在上電檢查后,按一下復(fù)位按鈕,看實(shí)驗(yàn)板上的LED燈是否閃爍。如果不閃爍,那么說明復(fù)位有問題。就要仔細(xì)檢查復(fù)位的電容是否接錯(cuò)了電極,線是否連錯(cuò)。剛開始時(shí),我就把復(fù)位按鍵給接錯(cuò)了,把它和開始、停止鍵同時(shí)接地了,應(yīng)該是并聯(lián)電容接的。</p><p> 4.1.1 硬件的安裝與調(diào)試</p><p> 按照之前設(shè)計(jì)好的數(shù)字電子秒表原理圖,詳細(xì)計(jì)算系統(tǒng)中
77、各個(gè)元件的參數(shù),選擇相應(yīng)器件,制作實(shí)際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進(jìn)行實(shí)際操作。</p><p> 制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測(cè)試電路板的每條走線,當(dāng)其電阻非常小時(shí),證明走線沒有斷開,當(dāng)其電阻很大時(shí),證明該條走線斷了,應(yīng)該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的20K歐姆檔,檢測(cè)電路中是否存在短路。因?yàn)橄到y(tǒng)
78、采用的是共陰極數(shù)碼管作為顯示電路,必須確保數(shù)碼管的公共端接的是低電平。</p><p> ?。?)晶振電路的測(cè)試</p><p> 在單片機(jī)正常運(yùn)行的必要條件是單片機(jī)系統(tǒng)的時(shí)鐘穩(wěn)定正常。實(shí)際中,因?yàn)楦鞣N原因?qū)е孪到y(tǒng)時(shí)鐘不正常而出現(xiàn)系統(tǒng)無法正常運(yùn)行的情況時(shí)有,因此系統(tǒng)時(shí)鐘是否振是通電檢查的首要環(huán)節(jié)。在系統(tǒng)通電的狀況下,用萬用表的直流電壓檔(20V),分別測(cè)量XTAL1和XTAL2引腳的電壓
79、,看是否正常,在調(diào)試過程中,測(cè)得電壓XTAL1引腳應(yīng)為2.05V,XTAT2應(yīng)為2.15V。</p><p> (2)復(fù)位電路的測(cè)試</p><p> 復(fù)位不正常也會(huì)導(dǎo)致系統(tǒng)不能工作。如果復(fù)位引腳始終為高電平,系統(tǒng)將始終處于復(fù)位狀態(tài);如果始終為低電平,不能產(chǎn)生復(fù)位所需的高電平信號(hào)脈沖,則系統(tǒng)也可能無法正常工作。單片機(jī)正常工作時(shí),RST復(fù)位引腳應(yīng)為0V,按下復(fù)位按鍵時(shí),復(fù)位引腳為高電平5
80、V左右。</p><p> ?。?)顯示電路的測(cè)試</p><p> 顯示電路是數(shù)字電子秒表正常運(yùn)行最直觀的觀察窗口,我們可以通過觀察顯示電路的顯示結(jié)果觀察系統(tǒng)能否正常運(yùn)行。當(dāng)顯示電路按照電路圖焊接好后,用萬用表的測(cè)二極管檔位,將黑表筆接共陰數(shù)碼管的公共段,然后將紅表筆接數(shù)碼管的各段,當(dāng)數(shù)碼管的段能正常顯示,說明各點(diǎn)焊接正常。</p><p> 4.2 軟件程序
81、編譯與調(diào)試</p><p><b> ?。?)輸入源程序</b></p><p> 打開keil軟件,輸入源程序,輸入時(shí)應(yīng)以西文方式輸入字母和符號(hào),且中文注釋前要加分號(hào)。</p><p> ?。?)對(duì)源程序進(jìn)行編譯和糾錯(cuò)</p><p> 根據(jù)自動(dòng)編譯提供的錯(cuò)誤信息逐條糾正錯(cuò)誤,直至編譯信息提示“錯(cuò)誤(0)”,編譯結(jié)
82、束。</p><p><b> ?。?)確定調(diào)試方案</b></p><p> 在調(diào)試程序前一定要認(rèn)真分析源程序,明確各功能程序運(yùn)行的預(yù)期結(jié)果。然后結(jié)合源程序應(yīng)達(dá)到的結(jié)果,確定出如何通過某些關(guān)鍵參數(shù)和實(shí)驗(yàn)現(xiàn)象檢驗(yàn)程序運(yùn)行結(jié)果正確與否。</p><p><b> ?。?)調(diào)試程序</b></p><p&
83、gt; 調(diào)試程序時(shí)首先要明確程序的具體功能,對(duì)程序做認(rèn)真分析。程序運(yùn)行后,觀察有無顯示,時(shí)鐘是否工作,運(yùn)行結(jié)果是否正確。若運(yùn)行結(jié)果不正確,首先應(yīng)根據(jù)程序運(yùn)行的實(shí)際現(xiàn)象分析判斷哪些因素可引起相關(guān)故障,再通過調(diào)試方法逐一認(rèn)證和排除。通過反復(fù)調(diào)試,發(fā)現(xiàn)并排除軟件與硬件存在的各類問題,以滿足系統(tǒng)設(shè)計(jì)的預(yù)期目的。在編譯調(diào)試通過以后,生成hex文件以待仿真之用。</p><p><b> 4.3 系統(tǒng)聯(lián)調(diào)<
84、;/b></p><p> 系統(tǒng)聯(lián)調(diào)就是把程序加載到單片機(jī)上去進(jìn)行調(diào)試。</p><p> 首先是把顯示程序加載上去,進(jìn)行調(diào)試時(shí),看數(shù)碼管的顯示是否正確,還要看顯示的亮度是否太暗或太亮,是否出現(xiàn)了閃爍現(xiàn)象,如果顯示不正確,就檢查一下數(shù)碼管的引腳和單片機(jī)的連線是否接錯(cuò)了。如果有太暗或太亮的問題,說明限流的電阻的電阻值不合理,應(yīng)適當(dāng)調(diào)整。如果出現(xiàn)閃爍現(xiàn)象,就要改變一下延時(shí)時(shí)間,直到合
85、理為止。</p><p> 然后把整個(gè)的設(shè)計(jì)程序都加載到單片機(jī)上去調(diào)試。把單片機(jī)放到電路板上,進(jìn)行整個(gè)系統(tǒng)程序的調(diào)試。接上電源,按一下開始按鈕??匆幌嘛@示是否正確,時(shí)間運(yùn)行是否符合運(yùn)行軌跡。也對(duì)照一下數(shù)碼管顯示的次序是否正確。運(yùn)行一段時(shí)間后,按一下停止按鈕,讓秒表停止。</p><p><b> 4.4現(xiàn)場(chǎng)調(diào)試</b></p><p>
86、一般情況下,通過系統(tǒng)聯(lián)調(diào)后,就可以按照設(shè)計(jì)目標(biāo)正常工作了。但在某些情況下,在實(shí)際現(xiàn)場(chǎng)工作之前,環(huán)境對(duì)系統(tǒng)的影響無法預(yù)料,只能通過現(xiàn)場(chǎng)運(yùn)行調(diào)試來發(fā)現(xiàn)問題,找出相應(yīng)的解決方法;或者雖然在系統(tǒng)設(shè)計(jì)時(shí)考慮到抗干擾的對(duì)策,但是否行之有效,還必須通過在實(shí)際現(xiàn)場(chǎng)的運(yùn)行來加以驗(yàn)證。</p><p> 首先,上電后,讓系統(tǒng)一直運(yùn)行一天??纯词欠穸寄苷_\(yùn)行,并觸摸芯片等器件是否有過度的發(fā)熱或其他不正常的現(xiàn)象,并進(jìn)行檢查與相應(yīng)的處
87、理。我的系統(tǒng)通電一天后都沒有什么不正常的現(xiàn)象,看來設(shè)計(jì)得還合理。</p><p> 其次,在通電運(yùn)行中,對(duì)系統(tǒng)進(jìn)行相應(yīng)的干擾,比如在電話來電或者在通電話過程中對(duì)系統(tǒng)是否有一定影響,是否有停頓、閃爍現(xiàn)象。如果有受干擾現(xiàn)象,證明抗干擾電路的抗干擾性不夠強(qiáng)。經(jīng)過驗(yàn)證,系統(tǒng)都正常運(yùn)行,抗干擾較強(qiáng)。</p><p> 最后,檢驗(yàn)誤差性。拿來一個(gè)真正的秒表與系統(tǒng)同時(shí)開始計(jì)時(shí),并隨時(shí)觀看系統(tǒng)的穩(wěn)定性
88、。然后,設(shè)定不同的時(shí)間段進(jìn)行檢驗(yàn),這樣正確性才會(huì)更加準(zhǔn)確。經(jīng)過驗(yàn)證,系統(tǒng)的穩(wěn)定很好,誤差較小,精確度高。</p><p><b> 結(jié)束語</b></p><p> 本次設(shè)計(jì)的電子秒表其預(yù)期目的基本達(dá)到,各項(xiàng)測(cè)試結(jié)果還比較令人滿意,系統(tǒng)設(shè)計(jì)注重基礎(chǔ),系統(tǒng)的闡述了設(shè)計(jì)過程。以單片機(jī)為核心對(duì)硬件和軟件的設(shè)計(jì)做了深入的探索,各部分都實(shí)現(xiàn)了其功能。通過本次畢業(yè)設(shè)計(jì),我從中
89、學(xué)習(xí)到許多知識(shí),也對(duì)以前所學(xué)知識(shí)進(jìn)行了鞏固,并成功使用了keil、Proteus兩款軟件,使理論知識(shí)系統(tǒng)化、實(shí)用化。同時(shí)也認(rèn)識(shí)到,作為新時(shí)代的大學(xué)生,在競(jìng)爭(zhēng)如此激烈的社會(huì)環(huán)境里,動(dòng)手實(shí)踐和創(chuàng)新能力顯得尤為重要,通過這次畢業(yè)設(shè)計(jì)我還發(fā)現(xiàn)自己還存在諸多方面的不足。理論知識(shí)終究不是實(shí)踐能力,在實(shí)踐面前一系列問題就會(huì)突然被發(fā)現(xiàn),但是沒有扎實(shí)的理論知識(shí)實(shí)踐能力就大大削弱,二者可謂缺一不可,要注重理論與實(shí)踐相結(jié)合,并且要認(rèn)認(rèn)真真去做每一件事,不要怕
90、麻煩,遇到不懂的問題,就應(yīng)該積極主動(dòng)的向老師同學(xué)請(qǐng)教,不斷提高自己的能力。</p><p><b> 致謝</b></p><p> 首先誠(chéng)摯的感謝xx老師的指導(dǎo),老師悉心的教導(dǎo)使我得以完成此論文的設(shè)計(jì)。老師細(xì)心給我們講解了有關(guān)論文的各方面主義的事項(xiàng),還有有關(guān)電子秒表講解,老師在這一方面給了我們很大的幫助,老師還幫我們預(yù)先設(shè)計(jì)了好的電路,有不懂的老師細(xì)心的給我們講
91、解,非常感謝老師。</p><p> 主要是編程學(xué)的不太成功,在老師的細(xì)心指導(dǎo)下,然后再加以修改錯(cuò)誤,最后完成設(shè)計(jì)。</p><p> 這次的畢業(yè)設(shè)計(jì)讓我學(xué)到了許多東西,讓我知道了做什么事都要細(xì)心、耐心,一個(gè)畢業(yè)設(shè)計(jì)需要許多方面的幫助才能完成,最后再次向所有幫助過我的老師和同學(xué)表示感謝。</p><p><b> 參考文獻(xiàn)</b><
92、/p><p> [1] 李朝青. 單片機(jī)原理及接口技術(shù)(第3版). 北京:北京航空航天大學(xué)出版社,2006</p><p> [2] 趙建領(lǐng). 51系列單片機(jī)開發(fā)寶典. 北京:電子工業(yè)出版社,2007 [3] 朱清慧,張鳳蕊,翟天嵩,王志奎. Proteus教程——電子線路設(shè)計(jì)、制版與仿真. 北京:清華大學(xué)出版社,2008</p><p> [4] 耿永剛,陶國(guó)正
93、. 單片機(jī)與接口應(yīng)用技術(shù). 上海:華東師范大學(xué)出版社,2008 [5] 孫惠芹. 單片機(jī)項(xiàng)目設(shè)計(jì)教程. 北京:電子工業(yè)出版社,2009</p><p> [6] 楊欣,王玉鳳,劉湘黔. 電子設(shè)計(jì)從零開始. 北京:清華大學(xué)出版社,2005</p><p> [7] 余永權(quán). ATMEL89系列單片機(jī)應(yīng)用技術(shù). 北京:北京航空航天大學(xué)出版社,2002</p><p>
94、;<b> 附錄 </b></p><p><b> 附錄一:仿真原理圖</b></p><p><b> 附錄二:系統(tǒng)總程序</b></p><p> #include <reg52.h></p><p> typedef unsigned char
95、 uint8;</p><p> typedef unsigned int uint16;</p><p> typedef unsigned long uint32; </p><p> code uint8 number[] = {0xc0,0xf9,0xa4,0xb0,</p><p> 0x99,0x92,0
96、x82,0xf8,</p><p> 0x80,0x90,0x88,0x83,</p><p> 0xa7,0xa1,0x86,0x8e};</p><p> uint8 a[6]; </p><p> uint16 counter = 0;</p><p> uint8 q=1;</p>&l
97、t;p> sbit d1 = P3^0;</p><p> sbit d2 = P3^1;</p><p> sbit d3 = P3^2;</p><p> sbit d4 = P3^3;</p><p> sbit d5 = P3^4;</p><p> sbit d6 = P3^5;
98、</p><p> sbit sw=P1^0;</p><p> void timer1_init()</p><p><b> {</b></p><p> TMOD |= 0x10;</p><p> TMOD &= 0xdf; </p><p>
99、 TH1 = 0xFC;</p><p> TL1 = 0x67;</p><p> TR1 = 1;</p><p><b> }</b></p><p> void int_init()</p><p><b> {</b></p>
100、<p><b> ET1 = 1;</b></p><p><b> EA = 1;</b></p><p><b> }</b></p><p> void refresh_led()</p><p><b> {</b></
101、p><p> static uint8 j = 0;</p><p><b> switch(j)</b></p><p><b> {</b></p><p> case 0: d1 = 0;j++;P2 = number[a[0]];P3=0xff;break;</p><
102、;p> case 1: d6 = 0;j++;P2 = number[a[1]];P3=0xff;break;</p><p> case 2: d5 = 0;j++;P2 = number[a[2]];P3=0xff;break;</p><p> case 3: d4 = 0;j++;P2 = number[a[3]];P3=0xff;break;</p>&
103、lt;p> case 4: d3 = 0;j++;P2 = number[a[4]];P3=0xff;break;</p><p> case 5: d2 = 0;j = 0;P2 = number[a[5]];P3=0xff;break;</p><p> default: break;</p><p><b> }</b>&l
104、t;/p><p><b> }</b></p><p><b> main()</b></p><p><b> {</b></p><p> timer1_init();</p><p> int_init();</p><p
105、><b> while(1);</b></p><p><b> }</b></p><p> void interrupt_timer1()interrupt 3</p><p><b> {</b></p><p> static uint32 sec =
106、 0;uint16 i;</p><p> TH1 = 0xFC;</p><p> TL1 = 0x67;</p><p> counter++;</p><p> if(counter == 1)</p><p><b> { </b></p><p>
107、<b> if(sw==0)</b></p><p> for(i=0;i<200;i++); if(sw==0)</p><p><b> q=-q;</b></p><p><b> if(q==-1)</b></p><p> sec++; <
108、/p><p> counter = 0;</p><p> a[0] = sec%10;</p><p> a[1] = sec/10%10;</p><p> a[2] = sec/100%10;</p><p> a[3] = sec/1000%10;</p><p> a[4] =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電子秒表設(shè)計(jì)畢業(yè)論文
- 電子秒表的設(shè)計(jì)畢業(yè)論文
- 電子秒表畢業(yè)論文--基于單片機(jī)的電子秒表的設(shè)計(jì)
- 畢業(yè)論文范文——單片機(jī)電子秒表
- 秒表設(shè)計(jì)畢業(yè)論文
- 秒表的設(shè)計(jì)畢業(yè)論文
- 單片機(jī)秒表畢業(yè)論文
- 單片機(jī)秒表設(shè)計(jì)畢業(yè)論文
- 基于at89c52單片機(jī)的電子秒表設(shè)計(jì)畢業(yè)論文
- 單片機(jī)秒表設(shè)計(jì)畢業(yè)論文.doc
- 基于mcu的遙控田徑計(jì)時(shí)秒表設(shè)計(jì)畢業(yè)論文
- 電子秒表
- 帶有秒表功能數(shù)字時(shí)鐘的設(shè)計(jì)畢業(yè)論文
- 秒表電子時(shí)鐘畢業(yè)設(shè)計(jì)
- 《電子技術(shù)》課程設(shè)計(jì)論文-電子秒表
- 電子計(jì)步器【畢業(yè)論文】
- 電子工程畢業(yè)論文
- 電子密碼畢業(yè)論文
- 電子專業(yè)畢業(yè)論文
- 電子門鈴畢業(yè)論文
評(píng)論
0/150
提交評(píng)論