電子秒表畢業(yè)論文_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  畢</b></p><p><b>  業(yè)</b></p><p><b>  設(shè)</b></p><p><b>  計</b></p><p><b>  摘要</b></p><

2、p>  本文對當前數(shù)字秒表開發(fā)與設(shè)計進行比較和分析最終確定采用AT89C51單片機實現(xiàn)數(shù)字秒表的設(shè)計。本設(shè)計以AT89C51單片機為核心,采用兩個3位LED數(shù)碼管顯示以及外部中斷電路來實現(xiàn)數(shù)字秒表的基本功能。本文簡單介紹了其系統(tǒng)組成,重點討論了其硬軟件的實現(xiàn)過程,并對其計時精度進行了確定。最后通過對硬件系統(tǒng)的仿真觀察其實際運行情況,給我們以直觀的認識。</p><p>  關(guān)鍵字:單片機、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è)計任務(wù)要求及分析</p><p>  1.1.1 計劃安排表&

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 單片機概述</b></p><p>  1.3.1 單片機的特點</p><p&g

9、t;  1.3.2 單片機的應(yīng)用</p><p>  第二章 控制系統(tǒng)的硬件電路設(shè)計</p><p>  2.1 硬件設(shè)計要遵循的原則</p><p>  2.2 單片機的選擇</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è)計</p><p>  第

11、三章 系統(tǒng)軟件的設(shè)計</p><p>  3.1 程序設(shè)計的主要思想</p><p>  3.2 程序流程圖設(shè)計</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)場調(diào)試</b></p><p><b>  結(jié)束語</b></p&g

13、t;<p><b>  致謝</b></p><p><b>  參考文獻</b></p><p><b>  附錄:</b></p><p><b>  附錄一:仿真電路圖</b></p><p><b>  附錄二:系統(tǒng)總程序&

14、lt;/b></p><p><b>  引 言</b></p><p>  近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機的數(shù)字電子秒表設(shè)計。本設(shè)計主要特點是計時精度達到0.01s,解決了傳統(tǒng)的由于計時精度不夠造成的誤差和不公平性,是各種體育競賽的必備設(shè)備之一。另外硬件部分設(shè)置了查看按鍵,可以對秒表上一次計時時間進行保存,供使

15、用者查詢。自首屆現(xiàn)代奧運會在希臘雅典舉辦以來,奧運計時技術(shù)一直在不斷地向前發(fā)展。一百多年過去了,首屆現(xiàn)代奧運會上計時所用的跑表如今換成了一系列高科技計時裝置,如高速數(shù)碼攝像機、電子觸摸墊、紅外光束、無線應(yīng)答器等等。鑒于當今計時技術(shù)的快速發(fā)展,即便千分之一秒(為眨眼的40倍)的毫微差距,也決定著冠軍的歸屬。在現(xiàn)在的體育競技比賽中,隨著運動員的水平不斷提高,差距也在不斷縮小。有些運動對時間精度的要求也越來越高,有時比賽冠亞軍之間的差距只有幾

16、毫秒,因此就需要高精度的秒表來記錄成績。有關(guān)計時鐘表的發(fā)展歷史,大致可以分為三個演變階段。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發(fā)展。從我國水運儀像臺的發(fā)明到現(xiàn)在各國都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個不同時期的科學家和鐘表</p><p>  本設(shè)計利用AT89C52單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。

17、P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5分別接二個按鈕開關(guān),分別實現(xiàn)開始、暫停、清零的功能。顯示電路由兩個共陰極數(shù)碼管組成。 </p><p>  第一章 任務(wù)分析與方案確定</p><p>  1.1 設(shè)計任務(wù)要求及分析</p><p>  1.1.1 計劃安排表</p><p>  當我

18、們小組確定畢業(yè)設(shè)計做“基于單片機的電秒秒表設(shè)計”后,我們小組首先考慮到要安排好時間,做出計劃安排表!如下表所示:</p><p>  表1.1.1-1 計劃安排表</p><p>  1.1.2 任務(wù)要求</p><p>  1、設(shè)計基于AT89C51數(shù)碼管顯示的電子秒表</p><p>  2、通過按鍵控制開始、清零、暫停和停止能夠準確計時

19、并顯示</p><p>  3、開始顯示0000.00</p><p><b>  4、方便做出實物</b></p><p>  5、最大計時9999.99、最大精確到0.01秒</p><p>  1.1.3 任務(wù)分析</p><p>  基于設(shè)計要求,我們做出合理的分析和選擇。首先要顯示000

20、0.00,那么就要考慮到是用一個六位的數(shù)碼管或者兩個三位數(shù)碼管,當然也可以用一個四位數(shù)碼管和一個兩位數(shù)碼管,但是為了方便設(shè)計實物制作我們采用兩個三位共陰極數(shù)碼管進行顯示。要達到0.01的驗證所設(shè)計的電子秒表是否合理正確,單單靠理論說明還不夠充分,我就相應(yīng)地制作了硬件實物,這對理論就有精確度,可以用定時器定時10ms作為基數(shù),計時就可以在這個基礎(chǔ)上累加起來。并把秒和小數(shù)后兩位的數(shù)據(jù)用兩個單元暫存,然后通過處理程序來處理兩個單元,并送到I/

21、O口來顯示,這樣就能夠顯示到0.01秒。在實現(xiàn)清零、暫停、計時功能,可以考慮用兩個按鈕來實現(xiàn),一個按鈕是復(fù)位來清零;一個按鈕是暫停和停止。</p><p><b>  1.2 方案確定</b></p><p>  根據(jù)我們自己專業(yè)對應(yīng)所學知識,而且對基本理論知識進行相應(yīng)的鞏固、擴展,我選擇了電子秒表作為設(shè)計內(nèi)容,其特點是融合了多方面的基本理論知識,無論是硬件或軟件上都

22、屬于比較典型的設(shè)計。在選擇單片機和收發(fā)器選擇時,我們根據(jù)自己所學的專業(yè)知識選擇了我們熟知的STC89C51和74HC245,方便我們進行實物制作。本電路直接采用單片機配合數(shù)碼管和按鍵,直接實現(xiàn)功能,主要決定于軟件程序的設(shè)計。利用單片機的定時中斷產(chǎn)生10ms定時來更新數(shù)據(jù),再利用數(shù)制轉(zhuǎn)換更新顯示。主要的難度在于控制部分的程序編寫。在此利用了2個按鍵分別對各個功能進行控制,顯示部分用數(shù)碼管,用的是2個三位數(shù)碼管,主要是為了方便實物制作。在此

23、要考慮硬件的設(shè)計以及整體電路的可靠性,因此選用了這個方案,使得本電路的硬件設(shè)計難度不高,便于檢查排錯。 在軟件程序上利用空閑及參數(shù)變化時對顯示進行及時更新,從而保證了顯示的連續(xù)性與實時性。</p><p><b>  1.3 單片機概述</b></p><p>  電子計算機是20世界紀40年代發(fā)展起來的新技術(shù)之一,它的出現(xiàn)是科學技術(shù)產(chǎn)生了一場深刻的革命。特別是自19

24、71年以來,隨著大規(guī)模集成電路的發(fā)展,又出現(xiàn)了微型計算機。它對發(fā)展現(xiàn)代化的工業(yè)、農(nóng)業(yè)、國防和科學技術(shù)具有極其巨大的推動作用。作為微型機控制系統(tǒng)的組成,主要分為兩大部分,硬件和軟件。硬件是指微型計算機本身及其外圍設(shè)備;軟件是指管理計算機的程序以及過程控制應(yīng)用程序。</p><p>  1.3.1單片機的特點</p><p>  1、有優(yōu)異的性能價格比。</p><p>

25、;  2、集成度高、體積小、有很高的可靠性。單片機把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機的可靠性和抗干擾能力。另外,其體積小,對于強磁場環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。</p><p>  3、控制功能強。為了滿足工業(yè)控制的要求,一般單片機的指令系統(tǒng)中均有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。單片機的邏輯控制功能及運行速度均高于同一檔次的

26、微機。</p><p>  4、低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。</p><p>  5、外部總線增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進一步縮小了體積,簡化了結(jié)構(gòu)。</p><p>  6、單片機的系統(tǒng)擴展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系

27、統(tǒng)。</p><p>  1.3.2單片機的應(yīng)用</p><p>  由于單片機具有顯著的優(yōu)點,它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個領(lǐng)域,主要表現(xiàn)在以下幾個方面:</p><p>  1、單片機在智能儀表中的應(yīng)用</p><p>  2、單片機在機電一體化中的應(yīng)用</p><p>  3、單

28、片機在實時控制中的應(yīng)用</p><p>  4、單片機在分布式多機系統(tǒng)中的應(yīng)用</p><p>  5、單片機在人類生活中的應(yīng)用</p><p>  單片機已成為計算機發(fā)展和應(yīng)用的一個重要方面,另一方面,單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能通過單片機來實現(xiàn)了。這種用軟件代

29、替硬件的控制技術(shù)也稱為微控制技術(shù),是對傳統(tǒng)控制技術(shù)的一次革命。</p><p>  此外,單片機成本低、集成度高、控制功能多,可靈活地組裝成各種智能控制裝置,并能有針對性設(shè)計成專用系統(tǒng),解決從簡單到復(fù)雜的各種需要,實現(xiàn)最佳的性價比。特別是單片機與傳統(tǒng)機械產(chǎn)品相結(jié)合,使原有機械產(chǎn)品的結(jié)構(gòu)簡化、控制智能化。如數(shù)控機床就是典型實例。近年來,單片機發(fā)展極快,其產(chǎn)量占微機產(chǎn)量的70%以上。目前,至少有50個系列400余種機

30、型,性能和結(jié)構(gòu)各不相同,Intel、Motorola、Zilcg等公司都有系列單片微型計算機。國內(nèi)普及的幾乎都是Intel公司的產(chǎn)品。</p><p>  第二章 控制系統(tǒng)的硬件電路設(shè)計</p><p>  2.1硬件電路的設(shè)計要遵循以下原則:</p><p>  (1)在性價比滿足應(yīng)用系統(tǒng)要求的基礎(chǔ)上,選擇更可靠、更熟悉的單片機,縮短研制周期。</p>

31、<p>  (2)盡可能選擇較成熟的典型應(yīng)用電路,以提高系統(tǒng)的可靠性。</p><p>  (3)單片機內(nèi)部的資源與外部擴展資源應(yīng)在滿足應(yīng)用系統(tǒng)設(shè)計要求的基礎(chǔ)上留有余地,為進一步升級和擴展其功能提供方便。</p><p>  (4)應(yīng)充分結(jié)合軟件方案統(tǒng)籌考慮硬件結(jié)構(gòu),通常硬件功能較完善,其相應(yīng)的軟件就簡單,但硬件成本較高;而硬件功能略低,其相應(yīng)的軟件就復(fù)雜。實際中應(yīng)盡量以軟件

32、替代硬件來降低成本。</p><p>  (5)整個系統(tǒng)的相關(guān)器件應(yīng)盡可能做到性能匹配,如電平、速度的匹配等。</p><p>  (6)充分考慮整個系統(tǒng)的抗干擾設(shè)計,如選擇具有抗干擾設(shè)計的單片機并充分篩選芯片與器件,在電路中采取隔離和屏蔽措施等。</p><p>  根據(jù)以上原則,通過分析與比對,我們選用較熟悉的具有內(nèi)部程序存儲器的AT89C51單片機作為主控電路

33、,選用兩個三位共陰極數(shù)碼管作為顯示電路來組成硬件電路。總體設(shè)計方案如下所示</p><p>  圖2.1-1 總體設(shè)計方案</p><p>  本設(shè)計中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元31H-33H中。其中31H存放分鐘變量,32H存放秒鐘變量,33H存放10ms計數(shù)值,即存放毫秒位數(shù)據(jù),每一地址單元內(nèi)均為十進制BCD碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示用十進制BCD碼數(shù)據(jù)的對應(yīng)

34、段碼存放在ROM表中。顯示時,先取出31H-33H某一地址中的數(shù)據(jù),然后查得對應(yīng)的顯示位,并從P1口輸出,就能顯示該地址單元的數(shù)據(jù)值。</p><p>  計時通過中斷完成,定時溢出中斷周期為1ms,當一處中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次中斷請求就對毫秒計數(shù)單元進行加一,達到10次就對十毫秒位進行加一,依次類推,直到99.99.99秒重新復(fù)位。 </p><p>  再看按鍵的處

35、理。這兩個鍵可以采用中斷的方法,也可以采用掃描的方法來識別。復(fù)位鍵主要功能在于數(shù)值定,需要比較準確的控制。因此可以對復(fù)位按鍵采取掃描的方式。而對開始復(fù)位,對于時間的要求不是很嚴格。而開始和停止鍵則是用于對時間的鎖和停止鍵采用外部中斷的方式。</p><p>  設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器采用單片機STC89C51,顯示電路采

36、用LCD顯示計時時間,兩個按鍵均采用觸點式按鍵。</p><p>  2.2 單片機的選擇</p><p>  本設(shè)計在選取單片機時,我們根據(jù)我們的專業(yè)知識所熟知的基礎(chǔ)上選用了AT89C51。 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位

37、微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。下圖為AT89C51。</p><p>  圖2.2-1 單片機引腳圖</p><p>  AT89C51主要特性:&l

38、t;/p><p>  ·與MCS-51 兼容  </p><p>  ·4K字節(jié)可編程FLASH存儲器  </p><p>  ·壽命:1000寫/擦循環(huán)  </p><p>  ·數(shù)據(jù)保留時間:10年  </p><p>  ·全靜態(tài)工作:0Hz-24MHz  </

39、p><p>  ·三級程序存儲器鎖定  </p><p>  ·128×8位內(nèi)部RAM  </p><p>  ·32可編程I/O線  </p><p>  ·兩個16位定時器/計數(shù)器  </p><p>  ·5個中斷源  ·可編程串行通道  <

40、/p><p>  ·低功耗的閑置和掉電模式  </p><p>  ·片內(nèi)振蕩器和時鐘電路 </p><p>  2.2.1 管腳說明:</p><p>  VCC:供電電壓。 GND:接地。</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管

41、腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由

42、于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當

43、對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作</p><p>  RST:復(fù)位輸入。當振

44、蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。  ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有

45、在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效?! ?PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)?! ?EA/VPP: 當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為

46、RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12</p><p>  XTAL2:來自反向振蕩器的輸出。 </p><p><b>  2.3 電源電路</b></p><p>  電源電路是系統(tǒng)最基本的部分,任何電路都離不開電源部分,由于三端集成穩(wěn)壓器件所組成的穩(wě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>  由于單片機或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負載能力,如果負載超過其負載能力,一般應(yīng)加驅(qū)動器。</p

48、><p><b>  其引腳的定義為:</b></p><p>  第1腳DIR,為輸入輸出端口轉(zhuǎn)換用,DIR=“1”高電平時信號由“A”端輸入“B”端輸出,DIR=“0”低電平時信號由“B”端輸入“A”端輸出。 </p><p>  第2~9腳“A”信號輸入輸出端,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”信號輸入輸出端,功能與“A”端一樣,不再描述。 </p><p>  第19腳OE,使能端,若該腳為“1”A/B端的信號將不導(dǎo)通,只有為“0”時A/B端才被啟用,該腳也就是起到開關(guān)的作用。 </p><p>  第10腳GND,電源地

50、。 </p><p>  第20腳VCC,電源正極。</p><p>  2.5 晶體振蕩電路</p><p>  MCS--51單片機內(nèi)部的振蕩電路是一個高增益反相放大器,引線 XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。</p><p>  這里,我們選

51、用51單片機12MHZ的內(nèi)部振蕩方式,電路圖2.5-1如下:電容器C1,C2起穩(wěn)定振蕩頻率,快速起振的作用,C1和C2可在20-100PF之間取,這里取30P,接線時要使晶體振蕩器X1盡可能接近單片機。</p><p>  圖2.5-1 晶振電路</p><p><b>  2.6 復(fù)位電路</b></p><p>  采用上電+按鍵復(fù)位電路

52、,上電后,由于電容充電,使RST持續(xù)一段高電平時間。當單片機已在運行之中時,按下復(fù)位鍵也能使用使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電加開關(guān)復(fù)位的操作。這不僅能使單片機復(fù)位,而且還能使</p><p>  單片機的外圍芯片也同時復(fù)位。當程序出現(xiàn)錯誤時,可以隨時使電路復(fù)位。</p><p>  電路圖如圖2.6-1:</p><p>  圖2.6-1 復(fù)位電路&l

53、t;/p><p><b>  2.7顯示電路</b></p><p>  對于數(shù)字顯示電路而言,通常采用LCD顯示或LED顯示。對于一般的段式LCD,需要專門的驅(qū)動電路,而且可視性差;對于具有驅(qū)動電路和單片機接口的LCD顯示模塊,一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89C51單片機本身沒有專門的LCD驅(qū)動接口。而LED數(shù)碼管作為一種主動顯示器

54、件,具有結(jié)構(gòu)簡單、亮度高、響應(yīng)速度快、價格便宜、易于購買等優(yōu)點,而且有遠距離視覺效果,很適合夜間或者遠距離操作。因此在本設(shè)計中,我們采用兩個3位數(shù)碼管作為顯示介質(zhì)。</p><p>  數(shù)碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設(shè)計需要采用兩個三位數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動態(tài)顯示。</p><p>  動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,

55、這種逐位點亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可

56、以給人同時顯示的感覺。數(shù)碼管的結(jié)構(gòu)及字形碼表如下圖2.8-1所示:</p><p>  在設(shè)計中,我們采用LED動態(tài)顯示,用P0口驅(qū)動顯示。由于P0口的輸出級是開漏電路,用它驅(qū)動時需要外接上拉電阻才能輸出高電平。</p><p><b>  電路圖如圖4:</b></p><p><b>  圖4 顯示電路</b><

57、;/p><p>  2.8系統(tǒng)總體控制電路的設(shè)計</p><p>  系統(tǒng)總電路由以上設(shè)計的顯示電路,時鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如圖2.8.1所示。</p><p>  AT89C52單片機為主電路的核心部分,各個電路均和單片機相連接,由單片機統(tǒng)籌和協(xié)調(diào)各個電路的運行工作。</p>

58、<p>  AT89C52單片機提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩(wěn)定的始終脈沖。</p><p>  圖2.8-1 系統(tǒng)總電路圖</p><p>  復(fù)位電路同晶振電路,單片機設(shè)有一個專用的硬件復(fù)位接口,并設(shè)置為高電平有效。<

59、/p><p>  按鍵電路與單片機的端口連接可以由用戶自己設(shè)定,本設(shè)計中軟件復(fù)位鍵和查看鍵分別接單片機的P1.1和P2.5,均設(shè)為低電平有效。而另外的開始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機的特殊接口P3.3和P3.2,這兩個I/O口的第二功能分別為單片機的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。</p><p>  顯示電路由五位數(shù)碼管組成,采用動態(tài)顯示方式,因

60、此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,AT89C52的P0口沒有集成上拉電阻,高電平的驅(qū)動能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動能力。五位位控制則由低位到高位分別接到P2.0~P2.4口,NPN三極管9013做為位控制端的開關(guān),當P2.0~P2.4端口任意一個端口為高電平時,與其相對應(yīng)的三極管就導(dǎo)通,對應(yīng)的數(shù)碼管導(dǎo)通顯示。</p&

61、gt;<p>  通過以上設(shè)計已經(jīng)將各部分電路與單片機有機的結(jié)合到一起,硬件部分的設(shè)計以大功告成,剩下的部分就是對單片機的編程,使單片機按程序運行,實現(xiàn)數(shù)字電子秒表的全部功能。</p><p>  第三章 系統(tǒng)軟件的設(shè)計</p><p>  待硬件電路接線完成后,通??上染帉懞唵蔚臏y試程序?qū)τ布娐愤M行測試,排除硬件電路設(shè)計中存在的錯誤。然后根據(jù)設(shè)計任務(wù)的要求確定系統(tǒng)程序的整

62、體結(jié)構(gòu),盡可能采用模塊化程序設(shè)計的方法,將任務(wù)劃分為相對獨立的功能模塊,明確各模塊的功能、時間順序和相互關(guān)系,并畫出各程序模塊的流程圖,根據(jù)流程圖逐一編寫程序,最后將各個模塊連接成完整的程序。</p><p>  3.1程序設(shè)計的主要思想</p><p>  本設(shè)計經(jīng)組員討論研究后決定采用C語言進行編寫。首先是考慮到我們對C語言程序的編寫比匯編要熟識的多,當然對于程序的編寫C語言也會方便簡

63、單易懂的多。</p><p><b>  C語言的特點:</b></p><p> ?。?)程序結(jié)構(gòu)簡潔、緊湊、規(guī)整,表達式簡練、使用靈活。</p><p> ?。?)編寫的程序可讀性強,編譯效率高。</p><p> ?。?)具有豐富的運算符,多達34種。豐富的數(shù)據(jù)類型與豐富的運算符相結(jié)合,使C語言具有表達靈活和效率高

64、等特點。</p><p> ?。?)數(shù)據(jù)類型種類繁多。C語言具有5種基本的數(shù)據(jù)類型和多種構(gòu)造數(shù)據(jù)類型以及復(fù)合的導(dǎo)出類型,同時還提供了與地址密切相關(guān)的指針機器運算符。指針可以指向各種類型的簡單變量、數(shù)組、結(jié)構(gòu)和聯(lián)合,乃至函數(shù)等。此外,C語言還允許用戶自己定義數(shù)據(jù)類型。</p><p>  (5)是一種結(jié)構(gòu)化程序設(shè)計語言,特別適合大型程序的模塊化設(shè)計。C語言具有編寫結(jié)構(gòu)化程序所必需的基本流程控

65、制語句,C語言程序是由函數(shù)集合構(gòu)成的,函數(shù)各自獨立,并且作為模塊化設(shè)計的基本單位。</p><p><b>  說明:</b></p><p>  C語言的源文件,可以分割成多個源程序,分別進行編譯,然后連接起來構(gòu)成可知性的目標文件,為開發(fā)大型軟件提供了極大的方便。C語言還提供了多種存儲屬性,使數(shù)據(jù)可以按其需要在相應(yīng)的作用域起作用,從而提高了程序的可靠性。</p

66、><p>  (6)語法限制不太嚴格,程序設(shè)計自由度大。例如,對數(shù)組下標越界不作檢查,由程序編寫者自己保證程序的正確。一般的高級語言語法檢查比較嚴,能檢測出幾乎所有的語法錯誤,而C語言允許程序編寫者有較大的自由度,因此放寬了語法的檢查。程序員應(yīng)當仔細檢查程序,保證其正確,而不要過分依賴C語言編譯程序去查錯。</p><p> ?。?)允許直接訪問物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言

67、的大部分功能,可以直接對硬件進行操作。因此,C語言既具有高級語言的功能,又兼容低級語言的許多功能,可用來編寫系統(tǒng)軟件。</p><p> ?。?)生成的目標代碼質(zhì)量高,程序執(zhí)行效率高。它一般只比匯編程序生成的目標代碼率低10%~20%。</p><p> ?。?)具有較高的可移植性。它的語句基本上無須修改就能用于各種型號的計算機和各種操作系統(tǒng)。</p><p>  

68、C語言是處于匯編語言和高級語言之間的一種中間型程序設(shè)計語言,常被稱為中級語言。它既有高級語言的基本特點,又具有匯編語言面向硬件和系統(tǒng),可以直接訪問硬件的功能</p><p>  3.2 程序流程圖設(shè)計</p><p>  這里采用順序結(jié)構(gòu),通過對按鍵的掃描,判斷要實現(xiàn)什么功能。如下所示:</p><p>  3.3軟件程序的仿真</p><p&g

69、t;  Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件,它可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的主要特點總結(jié)后有以下四點:①實現(xiàn)了單片機仿真和SPICE電路仿真相結(jié)合的功能。②支持目前主流單片機系統(tǒng)的仿真。③提供了軟件調(diào)試功能,并可以與WAVE聯(lián)合仿真調(diào)試。④具有強大的原理圖繪制功能。總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。在電子領(lǐng)域中也起到了很大

70、的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時間。</p><p>  Proteus ISIS的工作界面是一種標準的Windows界面。它包括標題欄、主菜單、狀態(tài)欄、標準工具欄、繪圖工具欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口等十幾個工具,方便了使用者的使用。</p><p>  

71、Proteus SISI繪制原理圖的操作與Protel 99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設(shè)計中的一個仿真例子作簡述說明。運行Proteus SISI后,繪制病床呼叫系統(tǒng)的原理圖。</p><p>  首先打開已經(jīng)畫好的proteus DSN文件,雙擊圖中的AT89S52芯片,就彈出一個窗口,在Program File項中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿

72、真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計中的HEX文件。單擊“三角形按鈕”進行仿真。通過對仿真結(jié)果的觀察來對程序進行修改,最終使程序到達設(shè)計要求。仿真 圖如下所示。</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>  第一個是目測法。這個方法是我們最常用的方法之一,只要是檢查一些很明顯的錯誤,如電解電容的電極是否連錯、焊點否光亮飽滿無虛焊,用萬用板連的線是否連好了、焊盤有否脫落。對單片機應(yīng)用系統(tǒng)中所用的器件與設(shè)備,要仔細核對型號,檢查它們對外連線(包括集成芯片引腳)是否完整無損。通過目測查出一些明顯的器件、設(shè)備故障并及時排除。</p><p>  第二個是萬用表測試。目測檢查后,可進行

74、萬用表測試。先用萬用表復(fù)核目測中認為可疑的連接或接點,檢查它們的通斷狀態(tài)是否與設(shè)計規(guī)定相符。再檢查各種電源線與地線之間是否有短路現(xiàn)象,如有再仔細查出并排除。</p><p>  第三個是上電檢查。首先檢查所有插座或器件的電源端是否有符合要求的電壓,接地端電壓是否接近于零,接固定電平的引腳端是否電平正確。在對各芯片、器件加電過程中,是否出現(xiàn)打火、過熱、變色、冒煙、異味的現(xiàn)象。如出現(xiàn)這些現(xiàn)象,應(yīng)立即斷電,仔細檢查電源

75、加載的情況、各個芯片是否插反等,找出產(chǎn)生異常的原因并加以解決;并且用萬用表測各芯片的引腳電平是否合理。再有就是,在加電期間,通過給合邏輯功能簡單的芯片加載固定輸入電平,用萬用表測其輸出電平的方法來判定該芯片的好壞。在調(diào)試過程中,沒有注意STC89C52與之對應(yīng)的連接以及要注意的地方,最后結(jié)果功能不可以實現(xiàn),經(jīng)過查找電路,發(fā)現(xiàn)應(yīng)該是讀取片內(nèi)的內(nèi)容,31引腳/VPP要接高電平,結(jié)果在設(shè)計的時候沒有注意,功能就實現(xiàn)不了。</p>

76、<p>  第四個是復(fù)位檢查。在上電檢查后,按一下復(fù)位按鈕,看實驗板上的LED燈是否閃爍。如果不閃爍,那么說明復(fù)位有問題。就要仔細檢查復(fù)位的電容是否接錯了電極,線是否連錯。剛開始時,我就把復(fù)位按鍵給接錯了,把它和開始、停止鍵同時接地了,應(yīng)該是并聯(lián)電容接的。</p><p>  4.1.1 硬件的安裝與調(diào)試</p><p>  按照之前設(shè)計好的數(shù)字電子秒表原理圖,詳細計算系統(tǒng)中

77、各個元件的參數(shù),選擇相應(yīng)器件,制作實際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進行實際操作。</p><p>  制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測試電路板的每條走線,當其電阻非常小時,證明走線沒有斷開,當其電阻很大時,證明該條走線斷了,應(yīng)該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的20K歐姆檔,檢測電路中是否存在短路。因為系統(tǒng)

78、采用的是共陰極數(shù)碼管作為顯示電路,必須確保數(shù)碼管的公共端接的是低電平。</p><p> ?。?)晶振電路的測試</p><p>  在單片機正常運行的必要條件是單片機系統(tǒng)的時鐘穩(wěn)定正常。實際中,因為各種原因?qū)е孪到y(tǒng)時鐘不正常而出現(xiàn)系統(tǒng)無法正常運行的情況時有,因此系統(tǒng)時鐘是否振是通電檢查的首要環(huán)節(jié)。在系統(tǒng)通電的狀況下,用萬用表的直流電壓檔(20V),分別測量XTAL1和XTAL2引腳的電壓

79、,看是否正常,在調(diào)試過程中,測得電壓XTAL1引腳應(yīng)為2.05V,XTAT2應(yīng)為2.15V。</p><p>  (2)復(fù)位電路的測試</p><p>  復(fù)位不正常也會導(dǎo)致系統(tǒng)不能工作。如果復(fù)位引腳始終為高電平,系統(tǒng)將始終處于復(fù)位狀態(tài);如果始終為低電平,不能產(chǎn)生復(fù)位所需的高電平信號脈沖,則系統(tǒng)也可能無法正常工作。單片機正常工作時,RST復(fù)位引腳應(yīng)為0V,按下復(fù)位按鍵時,復(fù)位引腳為高電平5

80、V左右。</p><p> ?。?)顯示電路的測試</p><p>  顯示電路是數(shù)字電子秒表正常運行最直觀的觀察窗口,我們可以通過觀察顯示電路的顯示結(jié)果觀察系統(tǒng)能否正常運行。當顯示電路按照電路圖焊接好后,用萬用表的測二極管檔位,將黑表筆接共陰數(shù)碼管的公共段,然后將紅表筆接數(shù)碼管的各段,當數(shù)碼管的段能正常顯示,說明各點焊接正常。</p><p>  4.2 軟件程序

81、編譯與調(diào)試</p><p><b> ?。?)輸入源程序</b></p><p>  打開keil軟件,輸入源程序,輸入時應(yīng)以西文方式輸入字母和符號,且中文注釋前要加分號。</p><p>  (2)對源程序進行編譯和糾錯</p><p>  根據(jù)自動編譯提供的錯誤信息逐條糾正錯誤,直至編譯信息提示“錯誤(0)”,編譯結(jié)

82、束。</p><p><b> ?。?)確定調(diào)試方案</b></p><p>  在調(diào)試程序前一定要認真分析源程序,明確各功能程序運行的預(yù)期結(jié)果。然后結(jié)合源程序應(yīng)達到的結(jié)果,確定出如何通過某些關(guān)鍵參數(shù)和實驗現(xiàn)象檢驗程序運行結(jié)果正確與否。</p><p><b> ?。?)調(diào)試程序</b></p><p&

83、gt;  調(diào)試程序時首先要明確程序的具體功能,對程序做認真分析。程序運行后,觀察有無顯示,時鐘是否工作,運行結(jié)果是否正確。若運行結(jié)果不正確,首先應(yīng)根據(jù)程序運行的實際現(xiàn)象分析判斷哪些因素可引起相關(guān)故障,再通過調(diào)試方法逐一認證和排除。通過反復(fù)調(diào)試,發(fā)現(xiàn)并排除軟件與硬件存在的各類問題,以滿足系統(tǒng)設(shè)計的預(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)就是把程序加載到單片機上去進行調(diào)試。</p><p>  首先是把顯示程序加載上去,進行調(diào)試時,看數(shù)碼管的顯示是否正確,還要看顯示的亮度是否太暗或太亮,是否出現(xiàn)了閃爍現(xiàn)象,如果顯示不正確,就檢查一下數(shù)碼管的引腳和單片機的連線是否接錯了。如果有太暗或太亮的問題,說明限流的電阻的電阻值不合理,應(yīng)適當調(diào)整。如果出現(xiàn)閃爍現(xiàn)象,就要改變一下延時時間,直到合

85、理為止。</p><p>  然后把整個的設(shè)計程序都加載到單片機上去調(diào)試。把單片機放到電路板上,進行整個系統(tǒng)程序的調(diào)試。接上電源,按一下開始按鈕??匆幌嘛@示是否正確,時間運行是否符合運行軌跡。也對照一下數(shù)碼管顯示的次序是否正確。運行一段時間后,按一下停止按鈕,讓秒表停止。</p><p><b>  4.4現(xiàn)場調(diào)試</b></p><p>  

86、一般情況下,通過系統(tǒng)聯(lián)調(diào)后,就可以按照設(shè)計目標正常工作了。但在某些情況下,在實際現(xiàn)場工作之前,環(huán)境對系統(tǒng)的影響無法預(yù)料,只能通過現(xiàn)場運行調(diào)試來發(fā)現(xiàn)問題,找出相應(yīng)的解決方法;或者雖然在系統(tǒng)設(shè)計時考慮到抗干擾的對策,但是否行之有效,還必須通過在實際現(xiàn)場的運行來加以驗證。</p><p>  首先,上電后,讓系統(tǒng)一直運行一天??纯词欠穸寄苷_\行,并觸摸芯片等器件是否有過度的發(fā)熱或其他不正常的現(xiàn)象,并進行檢查與相應(yīng)的處

87、理。我的系統(tǒng)通電一天后都沒有什么不正常的現(xiàn)象,看來設(shè)計得還合理。</p><p>  其次,在通電運行中,對系統(tǒng)進行相應(yīng)的干擾,比如在電話來電或者在通電話過程中對系統(tǒng)是否有一定影響,是否有停頓、閃爍現(xiàn)象。如果有受干擾現(xiàn)象,證明抗干擾電路的抗干擾性不夠強。經(jīng)過驗證,系統(tǒng)都正常運行,抗干擾較強。</p><p>  最后,檢驗誤差性。拿來一個真正的秒表與系統(tǒng)同時開始計時,并隨時觀看系統(tǒng)的穩(wěn)定性

88、。然后,設(shè)定不同的時間段進行檢驗,這樣正確性才會更加準確。經(jīng)過驗證,系統(tǒng)的穩(wěn)定很好,誤差較小,精確度高。</p><p><b>  結(jié)束語</b></p><p>  本次設(shè)計的電子秒表其預(yù)期目的基本達到,各項測試結(jié)果還比較令人滿意,系統(tǒng)設(shè)計注重基礎(chǔ),系統(tǒng)的闡述了設(shè)計過程。以單片機為核心對硬件和軟件的設(shè)計做了深入的探索,各部分都實現(xiàn)了其功能。通過本次畢業(yè)設(shè)計,我從中

89、學習到許多知識,也對以前所學知識進行了鞏固,并成功使用了keil、Proteus兩款軟件,使理論知識系統(tǒng)化、實用化。同時也認識到,作為新時代的大學生,在競爭如此激烈的社會環(huán)境里,動手實踐和創(chuàng)新能力顯得尤為重要,通過這次畢業(yè)設(shè)計我還發(fā)現(xiàn)自己還存在諸多方面的不足。理論知識終究不是實踐能力,在實踐面前一系列問題就會突然被發(fā)現(xiàn),但是沒有扎實的理論知識實踐能力就大大削弱,二者可謂缺一不可,要注重理論與實踐相結(jié)合,并且要認認真真去做每一件事,不要怕

90、麻煩,遇到不懂的問題,就應(yīng)該積極主動的向老師同學請教,不斷提高自己的能力。</p><p><b>  致謝</b></p><p>  首先誠摯的感謝xx老師的指導(dǎo),老師悉心的教導(dǎo)使我得以完成此論文的設(shè)計。老師細心給我們講解了有關(guān)論文的各方面主義的事項,還有有關(guān)電子秒表講解,老師在這一方面給了我們很大的幫助,老師還幫我們預(yù)先設(shè)計了好的電路,有不懂的老師細心的給我們講

91、解,非常感謝老師。</p><p>  主要是編程學的不太成功,在老師的細心指導(dǎo)下,然后再加以修改錯誤,最后完成設(shè)計。</p><p>  這次的畢業(yè)設(shè)計讓我學到了許多東西,讓我知道了做什么事都要細心、耐心,一個畢業(yè)設(shè)計需要許多方面的幫助才能完成,最后再次向所有幫助過我的老師和同學表示感謝。</p><p><b>  參考文獻</b><

92、/p><p>  [1] 李朝青. 單片機原理及接口技術(shù)(第3版). 北京:北京航空航天大學出版社,2006</p><p>  [2] 趙建領(lǐng). 51系列單片機開發(fā)寶典. 北京:電子工業(yè)出版社,2007 [3] 朱清慧,張鳳蕊,翟天嵩,王志奎. Proteus教程——電子線路設(shè)計、制版與仿真. 北京:清華大學出版社,2008</p><p>  [4] 耿永剛,陶國正

93、. 單片機與接口應(yīng)用技術(shù). 上海:華東師范大學出版社,2008 [5] 孫惠芹. 單片機項目設(shè)計教程. 北京:電子工業(yè)出版社,2009</p><p>  [6] 楊欣,王玉鳳,劉湘黔. 電子設(shè)計從零開始. 北京:清華大學出版社,2005</p><p>  [7] 余永權(quán). ATMEL89系列單片機應(yīng)用技術(shù). 北京:北京航空航天大學出版社,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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論