基于單片機數(shù)字秒表的設(shè)計_第1頁
基于單片機數(shù)字秒表的設(shè)計_第2頁
基于單片機數(shù)字秒表的設(shè)計_第3頁
基于單片機數(shù)字秒表的設(shè)計_第4頁
基于單片機數(shù)字秒表的設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE2基于單片機數(shù)字秒表的設(shè)計基于單片機數(shù)字秒表的設(shè)計【摘要】近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機的數(shù)字電子秒表設(shè)計。本設(shè)計主要特點是計時精度達到0.01s,解決了傳統(tǒng)的由于計時精度不夠造成的誤差和不公平性,是各種體育競賽的必備設(shè)備之一。本設(shè)計的數(shù)字電子秒表系統(tǒng)采用8051單片機為中心器件,利用其定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及外部中斷電路來設(shè)計計時器。將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)兩位LED顯示,顯示時間為0~99.9秒,計時精度為0.1秒,能正確地進行計時,同時能記錄一次時間,并在下一次計時后對上一次計時時間進行查詢。其中軟件系統(tǒng)采用匯編語言編寫程序,包括顯示程序,定時中斷服務(wù),外部中斷服務(wù)程序,延時程序等,并在WAVE中調(diào)試運行,硬件系統(tǒng)利用PROTEUS強大的功能來實現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態(tài)。關(guān)鍵字:單片機;數(shù)字電子秒表;仿真基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第1頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第1頁。PAGEIIPAGE26AbstractWiththerapiddevelopmentofscienceandtechnologyinrecentyears,SCMapplicationsareconstant-depthmanner.Inthispaper,basedonsinglechipdesignofdigitalelectronicstopwatch.Themaincharacteristicsofthisdesigntimingaccuracyof0.01s,tosolvethetraditionalresultofalackaccuracyduetotimingerrorsandunfair,andisavarietyofsportscompetitions,oneoftheessentialequipment.InadditionthehardwarepartofthesetViewbuttononthestopwatchcanbethelasttimetosavetimeforuserqueries.Thedesignofthemulti-functionstopwatchsystemusesSTC89C52microcontrollerasthecentraldevice,anduseitstimer/countertimingandthecountprinciples,combinedwithdisplaycircuit,LEDdigitaltube,aswellastheexternalinterruptcircuittodesignatimer.Thesoftwareandhardwaretogetherorganically,allowingthesystemtoachievetwoLEDdisplayshowsthetimefrom0to99.99seconds,Timingaccuracyof0.01seconds,Beabletocorrectlytimeatthesametimetorecordatime,andthenexttimeafterthelasttimethetimetosearchautomaticallyaddedasecondinwhichsoftwaresystemsusingassemblylanguageprogramming,includingthedisplayprogram,timing,interruptservice,externalinterruptserviceroutine,delayprocedures,keyconsumershakingprocedures,andWAVEinthecommissioning,operation,hardwaresystemusestoachievePROTEUSpowerful,simpleandeasytoobservethecutinthesimulationcanbeobservedontheactualworkingcondition.基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第2頁。Keyword:LEDdisplay;High-precisionstopwatch;8051基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第2頁。目錄TOC\o"1-5"\h\z\u緒論 21引言 31.1秒表及其發(fā)展現(xiàn)狀 31.2設(shè)計方案 31.2.1設(shè)計內(nèi)容 31.2.2設(shè)計要求 41.2.3系統(tǒng)方案 42元器件的概述及選擇 52.1單片機的選擇 52.1.1AT89C51單片機介紹 52.1.274LS164的介紹 62.1.3兩位LED數(shù)碼管顯示 73數(shù)字秒表硬件設(shè)計 93.1單片機硬件設(shè)計 93.1.1數(shù)字秒表電路設(shè)計 93.1.2電源電路 103.1.3晶振電路的選擇與設(shè)計 103.1.4復(fù)位電路的選擇與設(shè)計 113.2系統(tǒng)總電路的設(shè)計 124軟件設(shè)計 124.1程序設(shè)計思想 124.1.1程序設(shè)計流程圖 134.1.2數(shù)字秒表主程序設(shè)計 164.2數(shù)字秒表仿真圖 205數(shù)字秒表的系統(tǒng)調(diào)試 215.1測試儀器 215.2軟件調(diào)試 215.3硬件測試 21結(jié)束語 23謝辭 24參考文獻 25基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第3頁。基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第3頁。緒論秒表計時器是電器制造,工業(yè)自動化控制、國防、實驗室及科研單位理想的計時儀器,它廣泛應(yīng)用于各種繼電器、電磁開關(guān),控制器、延時器、定時器等的時間測試。2004年8月28日15點15分,中國選手孟關(guān)良/楊文軍在雅典奧運會男子500米劃艇決賽中,以1分40秒278的成績獲得中國在雅典奧運會的第28金。這是中國皮劃艇項目的第一枚奧運金牌,也是中國水上項目在歷屆奧運會上所獲得的第一枚金牌。孟關(guān)良/楊文軍的成績比獲得銀牌的古巴選手只快了0.072秒,以至于兩人在奪冠之后還不敢相信。在現(xiàn)在的體育競技比賽中,隨著運動員的水平不斷提高,差距也在不斷縮小。有些運動對時間精度的要求也越來越高,有時比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。本設(shè)計利用8051單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5分別接四個按鈕開關(guān),分別實現(xiàn)開始、暫停、清零和查看上次時間的功能。顯示電路由兩位共陰極數(shù)碼管組成。初始狀態(tài)下計時器顯示00,當(dāng)按下開始鍵時,外部中斷INT1向CPU發(fā)出中斷請求,CPU轉(zhuǎn)去執(zhí)行外部中斷1服務(wù)程序,即開啟定時器T0。計時采用定時器T0中斷完成,定時溢出中斷周期為1ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次中斷請求就對毫秒計數(shù)單元進行加一,達到10次就對十毫秒位進行加一,依次類推,直到99秒重新復(fù)位。在計時過程中,只要按下暫停鍵,外部中斷INT0向CPU發(fā)出中斷請求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服務(wù)程序,即關(guān)閉定時器T0,調(diào)用顯示程序,實現(xiàn)暫停功能,同時將此次計時時間存入寄存區(qū)。然后對P1.1進行掃描。當(dāng)P1.1按下時就跳轉(zhuǎn)回主程序。等待下一次計時開始。在按下暫停鍵時,將此時的計時時間存入中間緩存區(qū),當(dāng)再次按下開始鍵時,則講中間緩存區(qū)的數(shù)據(jù)轉(zhuǎn)入最終緩存區(qū)。秒表停止后對查看鍵P2.5進行掃描,P2.5按下為低電平時,調(diào)用最終緩存區(qū)的數(shù)據(jù)進行顯示,即顯示上一次計時成績。當(dāng)P2.5位高電平時,調(diào)用顯示緩存區(qū)的數(shù)據(jù)進行顯示,即顯示當(dāng)此計時的成績。根據(jù)以上設(shè)計思路從而實現(xiàn)數(shù)字電子秒表的計時和查看上一次計時時間的功能。本文主要內(nèi)容包括三部分:第一部分介紹硬件部分設(shè)計思路及方案;第二部分介紹了軟件部分的設(shè)計思路和設(shè)計;最后一部分則是整個系統(tǒng)的安裝與調(diào)試過程。基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第4頁。

1引言基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第4頁。1.1秒表及其發(fā)展現(xiàn)狀時間是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護、化工、石油等領(lǐng)域最常遇到的一個物理量。測量時間的基本方法是使用秒表直接測量。其中秒表的精度是人們最關(guān)心的,這就要求它的計時最小單位足夠小,顯示模塊的靈敏度足夠高。目前人們所能測量的最小計時單位是毫秒級。1.2設(shè)計方案1.2.1設(shè)計內(nèi)容該實驗要求進行計時并在數(shù)碼管上顯示時間,則可利用MCS系列單片機微機仿真實驗系統(tǒng)中的芯片8051中的P3.2管腳作為外部中斷0的入口地址,并實現(xiàn)“開始”按鍵的功能;將P3.3作為外部中斷1的入口地址,并實現(xiàn)“清零”按鍵的功能;使用P0口作為段碼數(shù)據(jù)輸出控制口,74LS164用作驅(qū)動輸出控制,P1.1、P1.2口分別實現(xiàn)暫停、快加的功能。顯示電路由兩位共陰極數(shù)碼管組成。使用定時器T0實現(xiàn)10ms的定時,進行快加延時;當(dāng)想實現(xiàn)正常計數(shù)時的1s延時,只需要實現(xiàn)40次25ms的定時器T1控制延時就可以實現(xiàn)。其中“開始”按鍵當(dāng)開關(guān)由1撥向0時開始計時;“清零”按鍵當(dāng)開關(guān)由1撥向0時數(shù)碼管清零,此時若再撥“開始”按鍵則又可重新開始計時。初始狀態(tài)下計時器顯示00,當(dāng)按下開始鍵時,外部中斷INT0向CPU發(fā)出中斷請求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服務(wù)程序,即開啟定時器T0,并且進行100次計數(shù),當(dāng)?shù)?00次時,即延時1s時,產(chǎn)生一個中斷信號,向CPU發(fā)出請求,執(zhí)行計數(shù)器加一且送往數(shù)碼管顯示。在計時過程中,只要按下暫停鍵,即根據(jù)P1.0口電平變化去執(zhí)行控制程序,關(guān)斷定時器T0和T1,調(diào)用顯示子程序,實現(xiàn)暫停功能。在按下暫停鍵時,將此時的計時時間存入中間緩存區(qū),當(dāng)再次按下開始鍵時,則講中間緩存區(qū)的數(shù)據(jù)轉(zhuǎn)入最終緩存區(qū)。計時采用定時器T1中斷完成,定時溢出中斷周期為25ms,并同時進行40次計數(shù),當(dāng)有溢出時,會產(chǎn)生中斷信號,向CPU發(fā)出中斷請求,每發(fā)出一次中斷請求就對計數(shù)單元低位進行加一,達到10次就對高位進行加一,送數(shù)碼管顯示,依此類推,直到99秒后再加一后返回00,重新開始。數(shù)碼管顯示電路采用動態(tài)掃描的方式,由于數(shù)碼管采用共陰極的接法,當(dāng)位選信號為高電平時,該位選通,P0口中的數(shù)據(jù)送到該段上顯示,節(jié)省接口資源,又能實時動態(tài)的性能?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第5頁。再看按鍵的處理。這四個鍵可以采用中斷的方法,也可以采用掃描的方法來識別。復(fù)位鍵和開始鍵功能在于使程序從頭執(zhí)行,對于時間的要求即單片機上電初始化時的值00;而停止鍵則要用于對時間的鎖定,需要比較準確的控制;而對于快加鍵,當(dāng)檢測到有快加信號時,則啟動定時器T0,完成一個周期定時時產(chǎn)生一個溢出中斷請求,向CPU發(fā)送請求,每發(fā)一次就對計數(shù)單元低位進行加一操作,達到10次就對高位進行加一操作,送數(shù)碼管顯示,依次循環(huán);同時檢測是否有暫停信號,有暫停信號時,跳出快加程序,執(zhí)行顯示子程序。因此可以對暫停和快加按鍵采取掃描的方式。而對開始和復(fù)位鍵采用外部中斷的方式?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第5頁。1.2.2設(shè)計要求課題需要以MCS-51系列單片機為核心,結(jié)合外圍電路,制作一款時間參數(shù)測量系統(tǒng)。具體要求如下:1)使用兩位數(shù)碼管顯示,顯示時間00-99秒;2)正常計數(shù)時,每秒自動加一;3)一個開始按鍵,一個復(fù)位按鍵,一個暫停按鍵和一個快加按鍵;4)實現(xiàn)計數(shù)、復(fù)位、清零和快加功能;5)單片機通電后,首先初始化,然后進行對按鍵掃描。開始鍵用來控制秒表工作的開始;暫停鍵用來暫停程序的運行;快加鍵控制快速計數(shù)的開始,利用暫停鍵停止;復(fù)位鍵是用來對程序復(fù)位用的,當(dāng)程序出現(xiàn)死循環(huán)或想從00開始重新計時,按下復(fù)位鍵可返回程序開始,重新執(zhí)行。1.2.3系統(tǒng)方案此方案采用LCD數(shù)碼管顯示測量結(jié)果。LCD數(shù)碼管顯示器由8個發(fā)光二極管中的7個長條形二極管(稱七筆段)按a、b、c、d、e、f、g順序組成八字形,另外一個點形的發(fā)光二極管dp放在右下方,用來顯示小數(shù)點。顯示時用掃描每個數(shù)碼管,同時逐一點亮的方法進行顯示.實際采用電路方框圖如圖4-1所示此多點溫度測量電路主要由以下幾部分組成:控制器單片機AT89C51、顯示單元LED數(shù)碼管顯示器、開關(guān)選擇電路、電源電路等。單機片單機片AT89C51LED顯示器電源電路按鍵電路基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第6頁。圖1.2.3系統(tǒng)設(shè)計方框圖基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第6頁。2元器件的概述及選擇2.1單片機的選擇2.1.1AT89C51單片機介紹

本設(shè)計的最主要的元器件就是AT89C51單片機。AT89C51單片機在一塊芯片上集成了CPU,存儲器RAM,ROM以及輸入與輸出接口電路,這種芯片習(xí)慣上被稱為單片微型計算機。AT89C51單片機由CPU,振蕩器與時序電路,4個8位的I/O端口(P0,P1,P2,P3),串行口等組成。P0口有三個功能:1、外部擴展存儲器時,當(dāng)作數(shù)據(jù)總線(如圖中的D0~D7為數(shù)據(jù)總線接口)。2、外部擴展存儲器時,當(dāng)作地址總線(如圖中的A0~A7為地址總線接口)。3、不擴展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。P1口只做I/O口使用:其內(nèi)部有上拉電阻。P2口有兩個功能:1、擴展外部存儲器時,當(dāng)作地址總線使用;圖2.1單片機89C512、做一般I/O口使用,其內(nèi)部有上拉電阻;P3口有兩個功能:除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由寄存器來設(shè)置。ALE:地址鎖存控制信號PSEN:外部程序存儲器讀選通信號EA/VPP:訪問和序存儲器控制信號RST:復(fù)位信號XTAL1和XTAL2VCC:供電電壓GND:接地2.1.2AT89C51單片機的優(yōu)點基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第7頁。AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第7頁。2.1.3AT89C51主要特性:

·與MCS-51兼容

·4K字節(jié)可編程FLASH存儲器

·壽命:1000寫/擦循環(huán)

·數(shù)據(jù)保留時間:10年

·全靜態(tài)工作:0Hz-24MHz

·三級程序存儲器鎖定

·128×8位內(nèi)部RAM

·32可編程I/O線

·兩個16位定時器/計數(shù)器

·5個中斷源

·可編程串行通道

·低功耗的閑置和掉電模式

·片內(nèi)振蕩器和時鐘電路2.274LS164的介紹1.164為8位移位寄存器,其主要電特性的典型值如下:

54/74164

185mW

54/74LS16480mW

當(dāng)清除端(CLEAR)為低電平時,輸出端(QA-QH)均為低電平。串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng)A、B任意一個為低電平,則禁止新數(shù)據(jù)輸入,在時鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當(dāng)A、B有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在CLOCK上升沿作用下決定Q0的狀態(tài)。2.引腳功能:基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第8頁。CLOCK:時鐘輸入端

CLEAR:同步清除輸入端(低電平有效)

A,B:串行數(shù)據(jù)輸入端

QA-QH:輸出端基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第8頁。

圖174LS164封裝圖

圖2

74LS164內(nèi)部邏輯圖3.極限值

電源電壓7V

輸入電壓………5.5V

工作環(huán)境溫度

54164…………-55~125℃

74164…………-0~70℃

儲存溫度……

-65℃~150℃

圖3真值表H-高電平L-低電平X-任意電平

↑-低到高電平跳變

QA0,QB0,QH0-規(guī)定的穩(wěn)態(tài)條件建立前的電平

QAn,QGn-時鐘最近的↑前的電平

基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第9頁。基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第9頁。

圖4時序圖4.選擇74LS164的優(yōu)勢(1)經(jīng)典串入并出,1個I/O口就可以驅(qū)動多個數(shù)碼管。(2)響應(yīng)快、頻率帶寬高、工作溫度適應(yīng)范圍大等等(3)節(jié)省IO口?。?)7段數(shù)碼管,7個筆畫,1個公共端正好對應(yīng)164的8個輸出口,一串164,就可以控制一串?dāng)?shù)碼管.單片機只要付出2個控制腳即可2.3兩位LED數(shù)碼管顯示其中一個兩位數(shù)碼管用來顯示數(shù)據(jù),一位用來顯示個位秒,另一位用來顯示十位秒。當(dāng)計數(shù)超過范圍時所有數(shù)碼管全部清零重新計數(shù)?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第10頁。顯示原理圖如下圖所示:基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第10頁。數(shù)碼管的優(yōu)勢如下:LED數(shù)碼管類似于洗墻燈什么的,適合戶外建筑墻壁上,如果要顯示視頻的話需要做的很大,整個建筑墻面都可以覆蓋,亮度與LED顯示屏差不多,但畫面肯定沒有顯示屏細膩的。LED顯示屏的話應(yīng)用蠻廣的,可以做室內(nèi)、半室外、室外顯示屏,亮度都很高,畫面根據(jù)他的點間距可以做的很細膩,但是LED顯示屏非常貴,用來做戶外廣告非常合適基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第11頁。基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第11頁。3數(shù)字秒表硬件設(shè)計3.1單片機硬件設(shè)計3.1.1數(shù)字秒表電路設(shè)計數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛使用。本設(shè)計用單片機組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單、精度高為目標。設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,計時與顯示電路和回零、啟動和快加電路等。主控制器采用單片機8051,顯示電路采用兩位共陰極LED數(shù)碼管顯示計時時間。本設(shè)計利用8051單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始和復(fù)位的功能。P0口輸出段碼數(shù)據(jù),74LS164用作驅(qū)動輸出,P1.1、P1.2、P3.2、P3.3口接四個按鈕開關(guān),分別實現(xiàn)暫停、快加、開始和復(fù)位功能。電路原理圖設(shè)計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照圖3進行設(shè)計。主電路見附錄??刂崎_關(guān)控制開關(guān)單片機AT89C51位驅(qū)動兩位數(shù)碼管圖3.1.1數(shù)字秒表硬件電路基本原理圖基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第12頁。根據(jù)要求知道秒表設(shè)計主要實現(xiàn)的功能是計時和顯示。本設(shè)計中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元11H和12H中。其中12H存放低位數(shù)據(jù),11H存放高位數(shù)據(jù),每一地址單元內(nèi)均為十進制BCD碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示用十進制BCD碼數(shù)據(jù)的對應(yīng)段碼存放在ROM表中。顯示時,分別取出11H、12H地址中的數(shù)據(jù),然后查得對應(yīng)的顯示用段碼,并從P0口輸出,P2口將對應(yīng)的數(shù)碼管選中供電,就能顯示該地址單元的數(shù)據(jù)值。采用了匯編語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機器語言的靈活性?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第12頁。3.1.2電源電路電源電路是系統(tǒng)的最基本部分,任何部分都離不開電源部分,單片機系統(tǒng)也不例外,而且我們應(yīng)該高度重視電源部分,不能因為電源部分電路比較簡單而有所疏忽,其實有一半的故障或制作失敗都和電源有關(guān),電源部分做好才能保證電路的正常工作。3.1.3晶振電路的選擇與設(shè)計MCS-51單片機內(nèi)部的振蕩電路是一個增益反相放大器,引線XYAL1和XTAL2分別為反相放大器的輸入和內(nèi)部時鐘電路輸入和來自反相放大器的輸出,該反相放大器可以配置為片內(nèi)振蕩器。單片機內(nèi)部雖然有震蕩電路,但要形成時鐘,外部還需要附加電路石晶振蕩和陶瓷振蕩均可采用,有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,單必須保證脈沖的高低電平要求的寬度。晶振電路如圖1、2所示。圖1內(nèi)部晶振電路圖2外部晶振電路單片機的時鐘產(chǎn)生方式有兩種,分別為:內(nèi)部時鐘方式和外部時鐘方式。利用其內(nèi)部的震蕩電路XTAL1和XTAL2外接定時元件,內(nèi)部震蕩電路便產(chǎn)生自激震蕩,用示波器可以觀察到XTAL2的輸出時鐘信號。在MCS-52中通常用內(nèi)部時鐘方式,也就是在XTAL1和XTAL2之間連接晶體振蕩器與電容構(gòu)成穩(wěn)定的自激震蕩器?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第13頁。晶體和電容決定了單片機的工作精度為1微秒,晶體可在1.2-12MHZ之間選擇。MCS-51單片機在通常情況下,使用震蕩頻率為6MHZ的石英晶體,而12MHZ頻率主要是在高速串行通信情況才使用,在這里我們用的是12MHZ的石英晶體。對電容無嚴格要求,但它在取值對震蕩頻率的輸出的穩(wěn)定性、大小及震蕩電路起震蕩速度有點影響。C1和C2可在10-100pF之間取值,一般情況下取30pF。外部時鐘方式是把外部震蕩信號源直接接入XTAL1或XTAL2。由于XTAL2的邏輯電平不是TTL,所以還要接上拉電阻?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第13頁。3.1.4復(fù)位電路的選擇與設(shè)計單片機小系統(tǒng)采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機運行期間,如果發(fā)生死機,用按鈕開關(guān)操作使單片機復(fù)位。單片機要完成復(fù)位,必須向復(fù)位端輸出并持續(xù)兩個機器周期以上的高電平,從而實現(xiàn)復(fù)位操作。上電自動復(fù)位通過電容C1充電來實現(xiàn)和限流電阻R2。手動按鍵復(fù)位是通過按鍵將電阻R1與VCC接通來實現(xiàn)。R1作為上拉電阻,當(dāng)復(fù)位鍵按下是產(chǎn)生一個觸發(fā)脈沖,進行復(fù)位操作。在MCS-51中,復(fù)位電路的外部邏輯電路由通過二極管的單向?qū)ㄐ院褪┟芴赜|發(fā)器組成(圖3),最常見的幾種方式的復(fù)位電路如圖(圖4、5、6),它能有效的實現(xiàn)上電復(fù)位和手動復(fù)位。RST引腳是復(fù)位信號輸入端,復(fù)位信號為高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期以上才能完成復(fù)位操作,若使用6MHz晶振,則需持續(xù)4μs以上才能完成復(fù)位操作。如圖中在通電瞬間,由于RC的充電過程,在RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機自動復(fù)位,在6MHz時鐘時,通常CR取22μF,R1取200Ω,R2取1KΩ,這時能可靠的上電復(fù)位和手動復(fù)位。圖3內(nèi)部復(fù)位電路邏輯圖圖4上拉復(fù)位電路基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第14頁。基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第14頁。圖5按鍵電平復(fù)位電路圖6按鍵脈沖復(fù)位電路3.2系統(tǒng)總電路的設(shè)計系統(tǒng)總電路由以上設(shè)計的顯示電路,時鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖附錄B所示。8051單片機為主電路的核心部分,各個電路均和單片機相連接,由單片機統(tǒng)籌和協(xié)調(diào)各個電路的運行工作。8051單片機提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩(wěn)定的始終脈沖。復(fù)位電路同晶振電路,單片機設(shè)有一個專用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機的端口連接可以由用戶自己設(shè)定,本設(shè)計中軟件復(fù)位鍵和查看鍵分別接單片機的P1.1和P2.5,均設(shè)為低電平有效。而另外的開始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機的特殊接口P3.3和P3.2,這兩個I/O口的第二功能分別為單片機的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。顯示電路由兩位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,8051的P0口沒有集成上拉電阻,高電平的驅(qū)動能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動能力。五位位控制則由低位到高位分別接到P2.0~P2.4口,NPN三極管9013做為位控制端的開關(guān),當(dāng)P2.0~P2.4端口任意一個端口為高電平時,與其相對應(yīng)的三極管就導(dǎo)通,對應(yīng)的數(shù)碼管導(dǎo)通顯示。通過以上設(shè)計已經(jīng)將各部分電路與單片機有機的結(jié)合到一起,硬件部分的設(shè)計以大功告成,剩下的部分就是對單片機的編程,使單片機按程序運行,實現(xiàn)數(shù)字電子秒表的全部功能。4軟件設(shè)計4.1程序設(shè)計思想基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第15頁。本設(shè)計采用了匯編語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發(fā)揮機器的特性,得到質(zhì)量較高的程序?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第15頁。模塊化結(jié)構(gòu)程序的設(shè)計,可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計。4.1.1程序設(shè)計流程圖本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進行調(diào)用。協(xié)調(diào)各個子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進入主程序,主程序流程圖如圖10所示,部分子程序流程圖由圖11、12、13、14、15、16給出。首先對系統(tǒng)進行初始化,包括設(shè)置各入口地址、中斷的開啟、對各個數(shù)據(jù)緩存區(qū)清“0”、賦定時器初值,初始化完畢后,就進入數(shù)碼管顯示程序。在主程序中還進行了賦寄存區(qū)的初始值、設(shè)置定時器初值以及開啟外部中斷等操作,當(dāng)定時時間到后就轉(zhuǎn)去執(zhí)行定時中斷程序。當(dāng)外部中斷有請求則去執(zhí)行外部中斷服務(wù)。并在執(zhí)行完后返回主程序?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第16頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第16頁。開始程序初始化開始程序初始化開各中斷關(guān)定時器0,1調(diào)用顯示子程序P1.0=?1P1.0=?0P1.2=?1關(guān)定時器0,1P1.2=?0是否是是是否否否圖11加一子程序流程圖R1=R1+114H=R1R1=?#0ahhhhhhh?#AHR2=?#0ahR1=#00HR2=R2+1R2=#00H結(jié)束否否是是圖10主程序流程圖基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第17頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第17頁。中斷返回調(diào)用數(shù)碼顯示子程序調(diào)用加一子程序R3-1=?0置初值定時器T0入口地址圖14定時器T0子程序INT0入口地址開定時器0中斷返回INT1入口地址中斷返回調(diào)用顯示子程序中斷返回調(diào)用數(shù)碼顯示子程序調(diào)用加一子程序R3-1=?0置初值定時器T0入口地址圖14定時器T0子程序INT0入口地址開定時器0中斷返回INT1入口地址中斷返回調(diào)用顯示子程序14H=#00H13H=#00HR1=#00HR2=#00H圖13INT1中斷子程序圖12INT0中斷子程序是否R3=#20H重置循環(huán)次數(shù)基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第18頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第18頁。中斷返回定時器T1入口地址調(diào)用數(shù)碼顯示子程序中斷返回定時器T1入口地址調(diào)用數(shù)碼顯示子程序調(diào)用加一子程序置初值P1.0=?0關(guān)定時器T0開定時器T112H=R111H=R2調(diào)用暫停鍵子程序圖16定時器T1子程序R7=#02H置數(shù)碼管個數(shù)R0=14H置首地址R6=#08H置數(shù)碼管個數(shù)A=@R0A=@A+dptrA循環(huán)左移P3.1清零P3.0=CP3.1置位R6-1=?0R7-1=?0R0=R0-1返回圖15數(shù)碼顯示流程圖否是否是是否4.1.2數(shù)字秒表主程序設(shè)計ORG0000HAJMPMAIN;主程序入口地址ORG0003HAJMPZHONGDUAN0;中斷0入口地址ORG000BHAJMPYANSHI;定時器T0入口地址ORG0013HAJMPZHONGDUAN1;中斷1入口地址ORG001BHAJMPDINGSHI;中斷1入口地址ORG0030H;主程序入口地址;主程序基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第19頁。MAIN:MOVTCON,#05H主程序開始外部中斷跳變基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第19頁。MOVTMOD,#11H;定時器0、1工作模式1下MOVIE,#8FH;中斷允許MOVDPTR,#TAB;指向數(shù)據(jù)表首地址MOV12H,#00H;初始化設(shè)置MOV11H,#00HMOVR1,#00HMOVR2,#00HMOVR3,#40;循環(huán)40次MOVTL0,#58H;定時25msMOVTH0,#9EHMOVTL1,#0F0H;定時10msMOVTH1,#0D8HCLRTR0;關(guān)斷定時器CLRTR1HERE:JBP1.0,HERE;位掃描,為0順序執(zhí)行SHOW:CLRTR1CLRTR0ACALLXIANSHIKUAIJIA:JBP1.2,KUAIJIA;等待快加信號為0時快加CLRTR0SETBTR1HERE1:JNBP1.2,HERE1AJMPHERE;外部中斷0子程序,計時按鍵K1子程序ZHONGDUAN0:SETBTR0;正常計時1s延時RETI;外部中斷1子程序,復(fù)位鍵K2子程序ZHONGDUAN1:CLRTR0CLRTR1MOV12H,#00HMOV11H,#00HACALLXIANSHI;調(diào)用顯示子程序MOVR1,#00H基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第20頁。MOVR2,#00h基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第20頁。RETI;加一子程序JIA1:INCR1;加一子程序CJNER1,#0AH,LOOP;判斷低位是否有溢出MOVR1,#00HINCR2CJNER2,#0AH,LOOPMOVR2,#00HLOOP:MOV12H,R1;重新加載計數(shù)值MOV11H,R2RET;顯示子程序XIANSHI:MOVR7,#02H;2個數(shù)碼管顯示子程序MOVR0,#12HLOOP1:MOVR6,#08H;8位2進制數(shù)MOVA,@R0MOVCA,@A+DPTRLOOP2:RLCA;循環(huán)左移帶進位CLRP3.1MOVP3.0,CSETBP3.1DJNZR6,LOOP2;判斷數(shù)據(jù)是否掃描完成DECR0DJNZR7,LOOP1;判斷2位是否掃描完成RET;定時器T0子程序YANSHI:MOVTL0,#58H;定時器T0賦初值MOVTH0,#9EHDJNZR3,LOOP7;實現(xiàn)1s延時ACALLJIA1;調(diào)用加一子程序基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第21頁。ACALLXIANSHI;調(diào)用顯示子程序基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第21頁。MOVR3,#40;循環(huán)次數(shù)重加載LOOP7:RETI;定時器T1子程序DINGSHI:MOVTL1,#0F0H;定時器T1子程序MOVTH1,#0D8HCLRTR0SETBTR1;實現(xiàn)10ms延時MOV12H,R1MOV11H,R2JNBP1.0,SHOW;實現(xiàn)快加功能ACALLJIA1;子程序調(diào)用ACALLXIANSHIRETITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共陰接法數(shù)碼管地址表END基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第22頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第22頁。4.2數(shù)字秒表仿真圖基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第23頁?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第23頁。5數(shù)字秒表的系統(tǒng)調(diào)試5.1測試儀器DS5102CA100MHZ雙信道數(shù)字示波器一臺DF17351SB5AB直流電源一臺奔四3.0計算機一臺萬用表一塊5.2軟件調(diào)試軟件調(diào)試的任務(wù)是利用軟件的開發(fā)工具進行仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯誤,同時也能發(fā)現(xiàn)硬件故障。程序的調(diào)試應(yīng)該一個模塊接一個模塊地進行,首先單獨調(diào)試各功能子程序,檢查程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正確等;最后是逐步將各個子程序連接起來總調(diào)試。在軟件編寫和調(diào)試過程中應(yīng)注意一下幾點:一、子程序的名稱標號一定不要重復(fù),在整個程序中不允許有兩個名字相同的子程序;二、語句中間的標點符號須在英文輸入環(huán)境下,中文環(huán)境下的標點KeiiluVsion3編譯軟件不識別,會出現(xiàn)一些不易查找的問題,這一點需特別注意;三、當(dāng)子程序間有值傳遞時,必須注意實參和形參的類型;四、程序要有盡量詳細的注釋,以便問題的查找和增強程序的易讀性。我首先將編好的程序在KeiiluVsion3環(huán)境之中進行編譯,第一次未通過,經(jīng)過錯誤提示我發(fā)現(xiàn)是幾處標點的格式為中文格式導(dǎo)致編譯軟件不能識別,還有一處丟掉了一個分號,改正之后就運行正常,最終生產(chǎn)了HEX文件。程序編寫完畢,就可開始系統(tǒng)的仿真調(diào)試,應(yīng)該先采取軟件仿真,確保整個程序無語法錯誤,排除邏輯錯誤及其他錯誤,然后開始硬件調(diào)試。軟件仿真主要采用Keil和Proteus相結(jié)合的方式。在Proteus的庫中將所需的元件調(diào)出按照硬件設(shè)計原理圖將其連接好,將已生成的HEX文件加載入AT89C51之中,運行之后顯示出了秒表的功能。5.3硬件測試先分別調(diào)試各功能單元模塊,調(diào)通后再進行整機調(diào)試,以提高調(diào)試效率。調(diào)試過程如下:基于單片機數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第24頁。(1)AT89C51這部分電路是系統(tǒng)的主要部分,接上電源后先用萬用表測量單片機的20引腳是否為低電平,再測量40引腳和31引腳是否為高電平,正常后用示波器測量30引腳,看是否輸出2M的方波信號,正常后說明單片機已起振?;趩纹瑱C數(shù)字秒表的設(shè)計全文共28頁,當(dāng)前為第24頁。(2)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論