版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
(2011屆)??飘厴I(yè)設(shè)計(jì)基于單片機(jī)數(shù)字秒表設(shè)計(jì)學(xué)院(部):電氣與信息工程學(xué)院專業(yè):電氣自動(dòng)化學(xué)生姓名:陳沅班級(jí):電氣0632學(xué)號(hào)00532006指導(dǎo)教師姓名:周玉職稱副教授最終評(píng)定成績:
2011年6月摘要 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機(jī)的數(shù)字電子秒表設(shè)計(jì)。本設(shè)計(jì)主要特點(diǎn)是計(jì)時(shí)精度達(dá)到0.001s,解決了傳統(tǒng)的由于計(jì)時(shí)精度不夠造成的誤差和不公平性,是各種體育競(jìng)賽的必備設(shè)備之一。另外硬件部分設(shè)置了查看按鍵,可以對(duì)秒表上一次計(jì)時(shí)時(shí)間進(jìn)行保存,供使用者查詢。本設(shè)計(jì)的數(shù)字電子秒表系統(tǒng)采用AT89C52單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及外部中斷電路來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)五位LED顯示,顯示時(shí)間為0~99.999秒,計(jì)時(shí)精度為0.001秒,能正確地進(jìn)行計(jì)時(shí),同時(shí)能記錄一次時(shí)間,并在下一次計(jì)時(shí)后對(duì)上一次計(jì)時(shí)時(shí)間進(jìn)行查詢。其中軟件系統(tǒng)采用匯編語言編寫程序,包括顯示程序,定時(shí)中斷服務(wù),外部中斷服務(wù)程序,延時(shí)程序等,并在WAVE中調(diào)試運(yùn)行,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實(shí)現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài)。關(guān)鍵字:單片機(jī);數(shù)字電子秒表;仿真AbstractWiththerapiddevelopmentofscienceandtechnologyinrecentyears,SCMapplicationsareconstant-depthmanner.Inthispaper,basedonsinglechipdesignofdigitalelectronicstopwatch.Themaincharacteristicsofthisdesigntimingaccuracyof0.001s,tosolvethetraditionalresultofalackaccuracyduetotimingerrorsandunfair,andisavarietyofsportscompetitions,oneoftheessentialequipment.InadditionthehardwarepartofthesetViewbuttononthestopwatchcanbethelasttimetosavetimeforuserqueries.Thedesignofthemulti-functionstopwatchsystemusesSTC89C52microcontrollerasthecentraldevice,anduseitstimer/countertimingandthecountprinciples,combinedwithdisplaycircuit,LEDdigitaltube,aswellastheexternalinterruptcircuittodesignatimer.Thesoftwareandhardwaretogetherorganically,allowingthesystemtoachievetwoLEDdisplayshowsthetimefrom0to99.999seconds,Timingaccuracyof0.001seconds,Beabletocorrectlytimeatthesametimetorecordatime,andthenexttimeafterthelasttimethetimetosearch.automaticallyaddedasecondinwhichsoftwaresystemsusingassemblylanguageprogramming,includingthedisplayprogram,timing,interruptservice,externalinterruptserviceroutine,delayprocedures,keyconsumershakingprocedures,andWAVEinthecommissioning,operation,hardwaresystemusestoachievePROTEUSpowerful,simpleandeasytoobservethecutinthesimulationcanbeobservedontheactualworkingcondition.Keyword:LEDdisplay;High-precisionstopwatch;STC89C52目錄緒論 1第1章硬件設(shè)計(jì) 41.1總體方案的設(shè)計(jì) 41.2單片機(jī)的選擇 51.3顯示電路的選擇與設(shè)計(jì) 81.4按鍵電路的選擇與設(shè)計(jì) 111.5時(shí)鐘電路的選擇與設(shè)計(jì) 121.6復(fù)位電路的選擇與設(shè)計(jì) 141.7系統(tǒng)總電路的設(shè)計(jì) 16第2章軟件設(shè)計(jì) 192.1程序設(shè)計(jì)思想 192.2系統(tǒng)資源的分配 192.3主程序設(shè)計(jì) 202.4中斷程序設(shè)計(jì) 21第3章數(shù)字電子秒表的安裝與調(diào)試 263.1軟件的仿真與調(diào)試 263.2硬件的安裝與調(diào)試 263.3系統(tǒng)程序的燒錄 273.4數(shù)字電子秒表的精度調(diào)試 28結(jié)論 29致謝 30參考文獻(xiàn) 31附錄A資料 32附錄B程序 37附錄C電路原理圖 44附錄D硬件實(shí)物圖 45緒論秒表計(jì)時(shí)器是電器制造,工業(yè)自動(dòng)化控制、國防、實(shí)驗(yàn)室及科研單位理想的計(jì)時(shí)儀器,它廣泛應(yīng)用于各種繼電器、電磁開關(guān),控制器、延時(shí)器、定時(shí)器等的時(shí)間測(cè)試。奧運(yùn)男子百米飛人大戰(zhàn)中,牙買加飛人博爾特以9秒69的成績奪得冠軍。而博爾特沖過終點(diǎn)的瞬間,熒屏顯示其成績?yōu)?秒68。相差的這個(gè)0.01秒,系由電子計(jì)時(shí)系統(tǒng)確認(rèn)。奧運(yùn)會(huì)男子100米蝶泳決賽上,美國選手菲爾普斯以50秒58的成績驚險(xiǎn)奪冠,距離“八金夢(mèng)想”僅一步之遙。塞爾維亞選手查維奇以50.59秒獲得銀牌,只比菲爾普斯慢0.01秒。這種細(xì)微的差距,即使是現(xiàn)場(chǎng)大屏幕用經(jīng)典超慢鏡頭回放,也無法分辨。2004年8月28日15點(diǎn)15分,中國選手孟關(guān)良/楊文軍在雅典奧運(yùn)會(huì)男子500米劃艇決賽中,以1分40秒278的成績獲得中國在雅典奧運(yùn)會(huì)的第28金。這是中國皮劃艇項(xiàng)目的第一枚奧運(yùn)金牌,也是中國水上項(xiàng)目在歷屆奧運(yùn)會(huì)上所獲得的第一枚金牌。孟關(guān)良/楊文軍的成績比獲得銀牌的古巴選手只快了0.072秒,以至于兩人在奪冠之后還不敢相信。自首屆現(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í)比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。有關(guān)計(jì)時(shí)鐘表的發(fā)展歷史,大致可以分為三個(gè)演變階段。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發(fā)展。每一階段的發(fā)展都是和當(dāng)時(shí)的技術(shù)發(fā)明分不開的。1088年,當(dāng)時(shí)我國宋朝的科學(xué)家蘇頌和韓工廉等人制造了水運(yùn)儀象臺(tái),它是把渾儀、渾象和機(jī)械計(jì)時(shí)器組合起來的裝置。它以水力作為動(dòng)力來源,具有科學(xué)的擒縱機(jī)構(gòu),雖然幾十年后毀于戰(zhàn)亂,但它在世界鐘表史上具有極其重要的意義。1656年,荷蘭的科學(xué)家惠更斯應(yīng)用伽利略的理論設(shè)計(jì)了鐘擺,第二年,在他的指導(dǎo)下年輕鐘匠S.Coster制造成功了第一個(gè)擺鐘。1675年,他又用游絲取代了原始的鐘擺,這樣就形成了以發(fā)條為動(dòng)力、以游絲為調(diào)速機(jī)構(gòu)的小型鐘,同時(shí)也為制造便于攜帶的袋表提供了條件。18世紀(jì)期間發(fā)明了各種各樣的擒縱機(jī)構(gòu),為袋表的進(jìn)一步產(chǎn)生與發(fā)展奠定了基礎(chǔ)。英國人GeorgeGraham在1726年完善了工字輪擒縱機(jī)構(gòu),它和之前發(fā)明的垂直放置的機(jī)軸擒縱機(jī)構(gòu)不同,所以使得袋表機(jī)芯相對(duì)變薄。20世紀(jì)初,尤其是第一次世界大戰(zhàn)的爆發(fā),袋表已經(jīng)不能適應(yīng)作戰(zhàn)軍人的需要,腕表的生產(chǎn)成為大勢(shì)所趨。許多新的設(shè)計(jì)和技術(shù)也被應(yīng)用在腕表上,成為真正意義上的帶在手腕上的計(jì)時(shí)工具。緊接著的二戰(zhàn)使腕表的生產(chǎn)量大幅度增加,價(jià)格也隨之下降,使普通大眾也可以擁有它。腕表的年代到來了!1998年:建立超冷銫原子鐘,比微微秒又要精確10萬倍。從我國水運(yùn)儀像臺(tái)的發(fā)明到現(xiàn)在各國都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個(gè)不同時(shí)期的科學(xué)家和鐘表工匠用他們的聰明的智慧和不斷的實(shí)踐融合成了一座時(shí)間的隧道,同時(shí)也為我們勾勒了一條鐘表文化和科技發(fā)展的軌跡。本設(shè)計(jì)利用AT89C52單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5分別接四個(gè)按鈕開關(guān),分別實(shí)現(xiàn)開始、暫停、清零和查看上次時(shí)間的功能。顯示電路由五位共陰極數(shù)碼管組成。初始狀態(tài)下計(jì)時(shí)器顯示00.000,當(dāng)按下開始鍵時(shí),外部中斷INT1向CPU發(fā)出中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行外部中斷1服務(wù)程序,即開啟定時(shí)器T0。計(jì)時(shí)采用定時(shí)器T0中斷完成,定時(shí)溢出中斷周期為1ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到10次就對(duì)十毫秒位進(jìn)行加一,依次類推,直到99.999秒重新復(fù)位。在計(jì)時(shí)過程中,只要按下暫停鍵,外部中斷INT0向CPU發(fā)出中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服務(wù)程序,即關(guān)閉定時(shí)器T0,調(diào)用顯示程序,實(shí)現(xiàn)暫停功能,同時(shí)將此次計(jì)時(shí)時(shí)間存入寄存區(qū)。然后對(duì)P1.1進(jìn)行掃描。當(dāng)P1.1按下時(shí)就跳轉(zhuǎn)回主程序。等待下一次計(jì)時(shí)開始。在按下暫停鍵時(shí),將此時(shí)的計(jì)時(shí)時(shí)間存入中間緩存區(qū),當(dāng)再次按下開始鍵時(shí),則講中間緩存區(qū)的數(shù)據(jù)轉(zhuǎn)入最終緩存區(qū)。秒表停止后對(duì)查看鍵P2.5進(jìn)行掃描,P2.5按下為低電平時(shí),調(diào)用最終緩存區(qū)的數(shù)據(jù)進(jìn)行顯示,即顯示上一次計(jì)時(shí)成績。當(dāng)P2.5位高電平時(shí),調(diào)用顯示緩存區(qū)的數(shù)據(jù)進(jìn)行顯示,即顯示當(dāng)此計(jì)時(shí)的成績。根據(jù)以上設(shè)計(jì)思路從而實(shí)現(xiàn)數(shù)字電子秒表的計(jì)時(shí)和查看上一次計(jì)時(shí)時(shí)間的功能。本文主要內(nèi)容包括三部分:第一部分介紹硬件部分設(shè)計(jì)思路及方案;第二部分介紹了軟件部分的設(shè)計(jì)思路和設(shè)計(jì);最后一部分則是整個(gè)系統(tǒng)的安裝與調(diào)試過程。
第1章硬件設(shè)計(jì)1.1總體方案的設(shè)計(jì)數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單、精度高為目標(biāo)。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,計(jì)時(shí)與顯示電路和回零、啟動(dòng)和停表電路等。主控制器采用單片機(jī)AT89C52,顯示電路采用共陰極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。本設(shè)計(jì)利用AT89C52單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5口接四個(gè)按鈕開關(guān),分別實(shí)現(xiàn)開始、暫停、清零和查看上次計(jì)時(shí)時(shí)間功能。電路原理圖設(shè)計(jì)最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照?qǐng)D1.1進(jìn)行設(shè)計(jì)。圖1.1數(shù)字秒表硬件電路基本原理圖根據(jù)要求知道秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是計(jì)時(shí)和顯示。因此設(shè)置了四個(gè)按鍵和五位數(shù)碼管顯示時(shí)間,三個(gè)按鍵分別是開始,停止、復(fù)位和查看上次計(jì)時(shí)時(shí)間按鍵。利用這四個(gè)建來實(shí)現(xiàn)秒表的全部功能,而五位數(shù)碼管則能顯示最多99.999秒的計(jì)時(shí)。本設(shè)計(jì)中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元79H-7DH中。其中79H存放毫秒位數(shù)據(jù),7AH存放十毫秒位數(shù)據(jù),7BH存放百毫秒位數(shù)據(jù),7CH存放秒位數(shù)據(jù),7DH存放十秒位數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在ROM表中。顯示時(shí),先取出79H-7dH某一地址中的數(shù)據(jù),然后查得對(duì)應(yīng)的顯示用段碼,并從P0口輸出,P2口將對(duì)應(yīng)的數(shù)碼管選中供電,就能顯示該地址單元的數(shù)據(jù)值。最終緩存區(qū)則設(shè)置為59H-5DH,數(shù)據(jù)存放規(guī)則和79H-7DH一樣。分別對(duì)應(yīng)存放毫秒位至十秒位數(shù)據(jù)。與79H-7DH存儲(chǔ)區(qū)不一樣的是:59H-5DH存儲(chǔ)的內(nèi)容為數(shù)字秒表上一次計(jì)時(shí)顯示的時(shí)間。而79H-7DH為當(dāng)前計(jì)時(shí)時(shí)間存儲(chǔ)區(qū)。計(jì)時(shí)采用定時(shí)器T0中斷完成,定時(shí)溢出中斷周期為1ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到10次就對(duì)十毫秒位進(jìn)行加一,依次類推,直到99.999秒重新復(fù)位。再看按鍵的處理。這四個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來識(shí)別。復(fù)位鍵和查看主要功能在于數(shù)值復(fù)位和查詢上次計(jì)時(shí)時(shí)間,對(duì)于時(shí)間的要求不是很嚴(yán)格。而開始和停止鍵則是用于對(duì)時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以對(duì)復(fù)位和查看按鍵采取掃描的方式。而對(duì)開始和停止鍵采用外部中斷的方式。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,顯示電路和回零、啟動(dòng)、查看、停表電路等。主控制器采用單片機(jī)AT89C52,顯示電路采用共陰極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間,四個(gè)按鍵均采用觸點(diǎn)式按鍵。1.2單片機(jī)的選擇本課題在選取單片機(jī)時(shí),充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗(yàn),并根據(jù)自己的實(shí)際情況,選擇了ATMEL公司的AT89S51。ATMEL公司的89系列單片機(jī)以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價(jià)格、超強(qiáng)的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP、PLCC、QFP封裝,有民用型、工業(yè)級(jí)、汽車級(jí)、軍品級(jí)等多種溫度等級(jí),是當(dāng)今世界上性能最好、價(jià)格最低、最受歡迎的八位單片機(jī)[3]。AT89C52P為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。單片機(jī)的外部結(jié)構(gòu)AT89S52單片機(jī)采用40引腳的雙列直插封裝方式。圖1.2為引腳排列圖,40條引腳說明如下:主電源引腳Vss和Vcc①Vss接地②Vcc正常操作時(shí)為+5伏電源外接晶振引腳XTAL1和XTAL2①XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。②XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部振蕩源。圖1.2單片機(jī)引腳圖控制或與其它電源復(fù)用引腳RST/VPD,ALE/,和/Vpp①RST/VPD當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平(由低到高跳變),將使單片機(jī)復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。②ALE/正常操作時(shí)為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號(hào)。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖,ALE端可以驅(qū)動(dòng)(吸收或輸出電流)八個(gè)LSTTL電路。對(duì)于EPROM型單片機(jī),在EPROM編程期間,此引腳接收編程脈沖(功能)③外部程序存儲(chǔ)器讀選通信號(hào)輸出端,在從外部程序存儲(chǔ)取指令(或數(shù)據(jù))期間,在每個(gè)機(jī)器周期內(nèi)兩次有效。同樣可以驅(qū)動(dòng)八LSTTL輸入。④/Vpp、/Vpp為內(nèi)部程序存儲(chǔ)器和外部程序存儲(chǔ)器選擇端。當(dāng)/Vpp為高電平時(shí),訪問內(nèi)部程序存儲(chǔ)器,當(dāng)/Vpp為低電平時(shí),則訪問外部程序存儲(chǔ)器。對(duì)于EPROM型單片機(jī),在EPROM編程期間,此引腳上加21伏EPROM編程電源(Vpp)。輸入/輸出引腳P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。①P0口(P0.0-P0.7)是一個(gè)8位漏極開路型雙向I/O口,在訪問外部存儲(chǔ)器時(shí),它是分時(shí)傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動(dòng)八個(gè)LSTTL負(fù)載。②P1口(P1.0-P1.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。③P2口(P2.0-P2.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口,在訪問外部存儲(chǔ)器時(shí),它輸出高8位地址。P2口可以驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。④P3口(P3.0-P3.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載[6]。AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。CPU是單片機(jī)的核心部件。它由運(yùn)算器和控制器等部件組成[2]。(1)運(yùn)算器運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。可以對(duì)半字節(jié)(4位)、單字節(jié)等數(shù)據(jù)進(jìn)行操作。例如能完成加、減、乘、除、加1、減1、BCD碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算和與、或、異或、求補(bǔ)、循環(huán)等邏輯操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。89C52運(yùn)算器還包含有一個(gè)布爾處理器,用來處理位操作。它是以進(jìn)位標(biāo)志位C為累加器的,可執(zhí)行置位、復(fù)位、取反、等于1轉(zhuǎn)移、等于0轉(zhuǎn)移、等于1轉(zhuǎn)移且清0以及進(jìn)位標(biāo)志位與其他可尋址的位之間進(jìn)行數(shù)據(jù)傳送等位操作,也能使進(jìn)位標(biāo)志位與其他可移位尋址的位之間進(jìn)行邏輯與、或操作[5]。(2)程序計(jì)數(shù)器PC程序計(jì)數(shù)器PC用來存放即將要執(zhí)行的指令地址,共16位,可對(duì)64K程序存儲(chǔ)器直接尋址。執(zhí)行指令時(shí),PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。(3)令寄存器指令寄存器中存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),完成指令功能。本設(shè)計(jì)采用ATMEL的AT89C52微處理器,主要基于以下幾個(gè)因素:①AT89C52為51內(nèi)核,仿真調(diào)試的軟硬件資源豐富。②性價(jià)比高,貨源充足。③功耗低,功能強(qiáng),靈活性高。④DIP40封裝,體積小,便于產(chǎn)品小型化。⑤為EEPROM程序存儲(chǔ)介質(zhì),1000次以上擦寫周期,便于編程調(diào)試。⑥工作電壓范圍寬:2.7V-6V,便于交直流供電。1.3顯示電路的選擇與設(shè)計(jì)對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對(duì)于一般的段式液晶屏,需要專門的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,可視性差,不適合遠(yuǎn)距離觀看;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的液晶顯示模塊(字符或點(diǎn)陣),一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,AT89S52單片機(jī)本身無專門的液晶驅(qū)動(dòng)接口。而數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、響應(yīng)速度快、防潮防濕性能好、溫度特性極性、價(jià)格便宜、易于購買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或是遠(yuǎn)距離操作。因此,本設(shè)計(jì)的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用五位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜。所以采用動(dòng)態(tài)顯示。圖1.3顯示電路基本原理圖動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位\o"數(shù)碼管"數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位\o"數(shù)碼管"數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各\o"數(shù)碼管"數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位\o"數(shù)碼管"數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位\o"數(shù)碼管"數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位\o"數(shù)碼管"數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種共陽極數(shù)碼管的8個(gè)發(fā)光二極管的陽極(二極管正端)連接在一起,如圖1.4(b),通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起,如圖(c),通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動(dòng)電路輸出端,當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。圖1.4(a)數(shù)碼管引腳圖(b)共陽極內(nèi)部結(jié)構(gòu)圖(c)共陰極內(nèi)部結(jié)構(gòu)圖本設(shè)計(jì)采用共陰極數(shù)碼顯示管做顯示電路,由于采用的是共陰的數(shù)碼顯示管,所以只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為高電平,那么其對(duì)應(yīng)的二極管就會(huì)發(fā)光,使數(shù)碼顯示管顯示0~9的編碼見表1.1。表1.1共陰極數(shù)碼顯示管字型代碼字型共陰極代碼字型共陰極代碼03FH56DH106H67DH25BH707H34FH87FH466H96FH動(dòng)態(tài)顯示電路由顯示塊、字形碼驅(qū)動(dòng)模塊、字位驅(qū)動(dòng)模塊三部分組成。如圖1.3所示為本系統(tǒng)的5位LED動(dòng)態(tài)顯示器接口電路。圖中,5個(gè)數(shù)碼管的8段段選線分別與外接上拉電阻的單片機(jī)P0口對(duì)應(yīng)相連,而5個(gè)數(shù)碼管的位控制端則和NPN型三極管的集電極相連接。單片機(jī)的P2.0~P2.4口則分別對(duì)應(yīng)數(shù)碼顯示管的最低位到最高位,P2.0~P2.4口分別和五個(gè)NPN型三極管的基極相連,做三極管導(dǎo)通的控制端,而NPN型三極管選用9013型三極管。根據(jù)9013的資料顯示:其耐壓值為40V,最大功率為0.65W,最大電流為0.5A,電氣性能完全滿足本設(shè)計(jì)的要求。另外數(shù)碼管顯示是采用動(dòng)態(tài)顯示,所以對(duì)三極管的開關(guān)頻率有一定的要求。根據(jù)電子秒表的設(shè)計(jì)計(jì)算可知?jiǎng)討B(tài)顯示的頻率最高為3KHz,而9013的導(dǎo)通頻率為150MHz,完全能滿足本設(shè)計(jì)的要求,所以最終選取9013三極管最為位控制開關(guān)。由于數(shù)碼管是有P0口來驅(qū)動(dòng),它內(nèi)部沒有上拉電阻,作為輸出口時(shí)驅(qū)動(dòng)能力比較弱,不能點(diǎn)亮數(shù)碼顯示管,因此P0口必須接上拉電阻來提高驅(qū)動(dòng)能力。另外一位共陰數(shù)碼管的驅(qū)動(dòng)電流一般為20mA左右,如果電流太大容易造成數(shù)碼管損壞,所以也需要根據(jù)電源的電壓值來確定上拉電阻的大小。如果電阻過小,勢(shì)必會(huì)形成灌電流過大,造成單片機(jī)IO的損壞,如果電阻過大,那么對(duì)拉電流沒有太大的影響。電源供電電壓為5V,當(dāng)上拉電阻選用220Ω電阻時(shí)灌電流為22mA。不會(huì)損壞單片機(jī)的I/O口,同時(shí)也可以為數(shù)碼顯示管起到限制電流的保護(hù)作用。1.4按鍵電路的選擇與設(shè)計(jì)本設(shè)計(jì)中有四個(gè)按鍵,分別實(shí)現(xiàn)開始、暫停、復(fù)位和查看功能。這三個(gè)鍵可以采用中斷的方法,也可以采用查詢的方法來識(shí)別。對(duì)于復(fù)位鍵和查看鍵,主要功能在于數(shù)值復(fù)位和對(duì)上次計(jì)時(shí)時(shí)間的查看,對(duì)于時(shí)間的要求不是很嚴(yán)格,而開始和暫停鍵主要用于時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以考慮,對(duì)復(fù)位鍵和查看鍵采用查詢的方式,而對(duì)于開始和暫停鍵采用外部中斷。四個(gè)按鍵均采用低電平有效,具體電路連接圖如圖1.5所示。當(dāng)按鍵沒有按下時(shí),單片機(jī)的I/O口直接連接電源,因此需要接上拉電阻來進(jìn)行限流,本設(shè)計(jì)中選取阻值為2kΩ的電阻作為上拉電阻,根據(jù)計(jì)算可知此時(shí)的灌電流為2.5mA,查看AT89C52的資料得知次電流在安全范圍內(nèi),符合安全設(shè)計(jì)要求。圖1.5按鍵電路按鍵電路中由于采用了外部中斷,所以需要用到P3口的第二功能。P3口引腳的第二功能如表1.2表1.2P3口引腳第二功能表P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請(qǐng)求輸入端)P3.3INT1(外部中斷1請(qǐng)求輸入端)P3.4T0(定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖輸入端)P3.5T1(定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖輸入端)P3.6WR(片外數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端)P3.7RD(片內(nèi)數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端)1.5時(shí)鐘電路的選擇與設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),89S52片內(nèi)設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入和輸出端,89S52單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時(shí)鐘很少用,若要用時(shí),只要將XTAL1接地,XTAL2接外部振蕩器就行。對(duì)外部振蕩信號(hào)無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘信號(hào)P1和P2供單片機(jī)使用。P1在每一個(gè)狀態(tài)S的前半部分有效,P2在每個(gè)狀態(tài)的后半部分有效。本設(shè)計(jì)采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。本設(shè)計(jì)系統(tǒng)的時(shí)鐘電路如圖1.4所示。只要按照?qǐng)D1.6所示電路進(jìn)行設(shè)計(jì)連接就能使系統(tǒng)可靠起振并能穩(wěn)定運(yùn)行。圖中,電容器C1
、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~33pF。但在時(shí)鐘電路的實(shí)際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對(duì)稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設(shè)計(jì)中采用大小為30pF的電容和12MHz的晶振[8]。圖1.6內(nèi)部振蕩電路(4)時(shí)序AT89S52典型的指令周期(執(zhí)行一條指令的時(shí)間稱為指令周期)為一個(gè)機(jī)器周期,一個(gè)機(jī)器周期由六個(gè)狀態(tài)(十二振蕩周期)組成。每個(gè)狀態(tài)又被分成兩個(gè)時(shí)相P1和P2。所以,一個(gè)機(jī)器周期可以依次表示為S1P1,S1P2……,S6P1,S6P2。通常算術(shù)邏輯操作在P1時(shí)相進(jìn)行,而內(nèi)部寄存器傳送在P2時(shí)相進(jìn)行。圖1.789S52時(shí)序圖1.7給出了AT89S52單片機(jī)的取指和執(zhí)行指令的定時(shí)關(guān)系。這些內(nèi)部時(shí)鐘信號(hào)不能從外部觀察到,所用XTAL2振蕩信號(hào)作參考。在圖中可看到,低8位地址的鎖存信號(hào)ALE在每個(gè)機(jī)器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。對(duì)于單周期指令,當(dāng)操作碼被送入指令寄存器時(shí),便從S1P2開始執(zhí)行指令。如果是雙字節(jié)單機(jī)器周期指令,則在同一機(jī)器周期的S4期間讀入第二個(gè)字節(jié),若是單字節(jié)單機(jī)器周期指令,則在S4期間仍進(jìn)行讀,但所讀的這個(gè)字節(jié)操作碼被忽略,程序計(jì)數(shù)器也不加1,在S6P2結(jié)束時(shí)完成指令操作。圖1.7的(a)和(b)給出了單字節(jié)單機(jī)器周期和雙字節(jié)單機(jī)器周期指令的時(shí)序。89S52指令大部分在一個(gè)機(jī)器周期完成。乘(MUL)和除(DIV)指令是僅有的需要兩個(gè)以上機(jī)器周期的指令,占用4個(gè)機(jī)器周期。對(duì)于雙字節(jié)單機(jī)器周期指令,通常是在一個(gè)機(jī)器周期內(nèi)從程序存儲(chǔ)器中讀入兩個(gè)字節(jié),唯有MOVX指令例外。MOVX是訪問外部數(shù)據(jù)存儲(chǔ)器的單字節(jié)雙機(jī)器周期指令。在執(zhí)行MOVX指令期間,外部數(shù)據(jù)存儲(chǔ)器被訪問且被選通時(shí)跳過兩次取指操作。圖1.7中(c)給出了一般單字節(jié)雙機(jī)器周期指令的時(shí)序[9]。1.6復(fù)位電路的選擇與設(shè)計(jì)關(guān)于單片機(jī)的置位和復(fù)位,都是為了把電路初始化到一個(gè)確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個(gè)例如狀態(tài)機(jī)初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時(shí)候單片機(jī)是把一些寄存器以及存儲(chǔ)設(shè)備裝入廠商預(yù)設(shè)的一個(gè)值,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。當(dāng)AT89C52單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序。因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。而本系統(tǒng)選用的是12MHz的晶振,因此一個(gè)機(jī)器周期為1μs,那么復(fù)位脈沖寬度最小應(yīng)為2μs。在實(shí)際應(yīng)用系統(tǒng)中,考慮到電源的穩(wěn)定時(shí)間,參數(shù)漂移,晶振穩(wěn)定時(shí)間以及復(fù)位的可靠性等因素,必須有足夠的余量。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位、手動(dòng)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。80C51單片機(jī)的上電復(fù)位POR(PowerOnReset)實(shí)質(zhì)上就是上電延時(shí)復(fù)位,也就是在上電延時(shí)期間把單片機(jī)鎖定在復(fù)位狀態(tài)上。在單片機(jī)每次初始加電時(shí),首先投入工作的功能部件是復(fù)位電路。復(fù)位電路把單片機(jī)鎖定在復(fù)位狀態(tài)上并且維持一個(gè)延時(shí)(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個(gè)等待時(shí)間;在電源電壓穩(wěn)定之后,再插入一個(gè)延時(shí),給予時(shí)鐘振蕩器從起振到穩(wěn)定的一個(gè)等待時(shí)間;在單片機(jī)開始進(jìn)入運(yùn)行狀態(tài)之前,還要至少推遲2個(gè)機(jī)器周期的延時(shí)。上述一系列的延時(shí),都是利用在單片機(jī)RST引腳上外接一個(gè)RC支路的充電時(shí)間而形成的。典型復(fù)位電路如圖1.8(a)所示,其中的阻容值是原始手冊(cè)中提供的。在經(jīng)歷了一系列延時(shí)之后,單片機(jī)才開始按照時(shí)鐘源的工作頻率,進(jìn)入到正常的程序運(yùn)行狀態(tài)。在電源電壓以及振蕩器輸出信號(hào)穩(wěn)定之后,又等待了一段較長的延時(shí)才釋放RST信號(hào),使得CPU脫離復(fù)位鎖定狀態(tài);而RST信號(hào)一旦被釋放,立刻在ALE引腳上就可檢測(cè)到持續(xù)的脈沖信號(hào)[8]。
圖1.8上電復(fù)位延時(shí)電路由于標(biāo)準(zhǔn)80C51的復(fù)位邏輯相對(duì)簡單,復(fù)位源只有RST一個(gè)(相對(duì)新型單片機(jī)來說,復(fù)位源比較單一),因此各種原因所導(dǎo)致的復(fù)位活動(dòng)以及復(fù)位狀態(tài)的進(jìn)入,都要依靠在外接引腳RST上施加一定時(shí)間寬度的高電平信號(hào)來實(shí)現(xiàn)。標(biāo)準(zhǔn)80C51不僅復(fù)位源比較單一,而且還沒有設(shè)計(jì)內(nèi)部上電復(fù)位的延時(shí)功能,因此必須借助于外接阻容支路來增加延時(shí)環(huán)節(jié),如圖1.8(a)所示。其實(shí),外接電阻R還是可以省略的,理由是一些CMOS單片機(jī)芯片內(nèi)部存在一個(gè)現(xiàn)成的下拉電阻Rrst。例如,AT89系列的Rrst阻值約為50~200kΩ;P89V51Rx2系列的Rrst阻值約為40~225kΩ,如圖1.9所示。因此,在圖1.8(a)基礎(chǔ)上,上電復(fù)位延時(shí)電路還可以精簡為圖1.8(b)所示的簡化電路(其中電容C的容量也相應(yīng)減小了)。
圖1.9復(fù)位引腳RST內(nèi)部電路在每次單片機(jī)斷電之后,須使延時(shí)電容C上的電荷立刻放掉,以便為隨后可能在很短的時(shí)間內(nèi)再次加電作好準(zhǔn)備。否則,在斷電后C還沒有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應(yīng)有的延遲功能。因此,在圖1.8(a)的基礎(chǔ)上添加一個(gè)放電二極管D,上電復(fù)位延時(shí)電路就變成了如圖1.8(c)所示的改進(jìn)電路。也就是說,只有RC支路的充電過程對(duì)電路是有用的,放電過程不僅無用,而且會(huì)帶來潛在的危害。于是附加一個(gè)放電二極管D來大力縮短放電持續(xù)時(shí)間,以便消除隱患。二極管D只有在單片機(jī)斷電的瞬間(即VCC趨近于0V,可以看作VCC對(duì)地短路)正向?qū)?,平時(shí)一直處于反偏截止?fàn)顟B(tài)。手動(dòng)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。單片機(jī)要完成復(fù)位,必須向復(fù)位端輸出并持續(xù)兩個(gè)機(jī)器周期以上的高電平,從而實(shí)現(xiàn)復(fù)位操作。本設(shè)計(jì)采用上電且開關(guān)復(fù)位電路,如圖1.10所示上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。通常選擇C=10~30μF,R=1K,本設(shè)計(jì)采用的電容值為22μF的電容和電阻為1K的電阻。圖1.10單片機(jī)復(fù)位電路1.7系統(tǒng)總電路的設(shè)計(jì)系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如圖1.11所示。AT89C52單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。AT89C52單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。圖1.11系統(tǒng)總電路圖復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個(gè)專用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機(jī)的端口連接可以由用戶自己設(shè)定,本設(shè)計(jì)中軟件復(fù)位鍵和查看鍵分別接單片機(jī)的P1.1和P2.5,均設(shè)為低電平有效。而另外的開始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機(jī)的特殊接口P3.3和P3.2,這兩個(gè)I/O口的第二功能分別為單片機(jī)的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。顯示電路由五位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因此有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)通顯示。通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。
第2章軟件設(shè)計(jì)2.1程序設(shè)計(jì)思想本設(shè)計(jì)采用了匯編語言編寫,匯編語言由于采用了助記符號(hào)來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。匯編語言的特點(diǎn):(1).面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。(2).保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷的特點(diǎn)。(3).可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。(4).目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言。(5).經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛。在程序設(shè)計(jì)過程中,為了有效地完成任務(wù),把所要完成的任務(wù)精心的分割成若干個(gè)相互獨(dú)立但相互又仍可有聯(lián)系的任務(wù)模塊,這些任務(wù)模塊使得任務(wù)變得相對(duì)單純,對(duì)外的數(shù)據(jù)交換相對(duì)簡單,容易編寫,容易檢測(cè),容易閱讀和維護(hù)。這種程序設(shè)計(jì)思想稱為模塊化程序設(shè)計(jì)思想。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。因此,本醫(yī)院病床呼叫系統(tǒng)在軟件的設(shè)計(jì)上,運(yùn)用了模塊化程序的結(jié)構(gòu)對(duì)軟件進(jìn)行設(shè)計(jì),使得程序變得更加直觀易懂。程序的主要模塊有:主程序、顯示程序、定時(shí)溢出中斷服務(wù)程序、外部中斷服務(wù)程序。2.2系統(tǒng)資源的分配本設(shè)計(jì)系統(tǒng)所用到的單片機(jī)端口數(shù)比較多,所以在這里將對(duì)數(shù)字電子秒表的硬件資源的大概分配加以說明。片內(nèi)RAM的分配、各功能鍵的定義以及各端口的分配安排如表2.1所示。表2.1端口的分配安排表名稱功能描述初始化值79H-7DH1ms-10s位顯示寄存區(qū)00H69H-6DH1ms-10s位中間寄存區(qū)00H59H-5DH1ms-10s位最終寄存區(qū)00HR1-R51ms-10s位溢出計(jì)數(shù)區(qū)定時(shí)器T0控制秒表的最小精度E018H外部中斷INT0停止中斷信號(hào)入口外部中斷INT1開始中斷信號(hào)入口2.3主程序設(shè)計(jì)本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖2.1。首先對(duì)系統(tǒng)進(jìn)行初始化,包括設(shè)置各入口地址、中斷的開啟、對(duì)各個(gè)數(shù)據(jù)緩存區(qū)清“0”、賦定時(shí)器初值,初始化完畢后,就進(jìn)入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進(jìn)行調(diào)用并在數(shù)碼管上進(jìn)行動(dòng)態(tài)顯示。顯示一次就對(duì)P1.1和P2.5進(jìn)行一次掃描,查詢復(fù)位鍵P1.1是否按下,當(dāng)復(fù)位鍵按下后,程序返回開始,重新對(duì)系統(tǒng)進(jìn)行初始化。當(dāng)沒有按下復(fù)位鍵時(shí),程序則掃描P2.5是否按下,當(dāng)P2.5沒有按下則返回顯示程,不斷地調(diào)用顯示緩存區(qū)的數(shù)據(jù)進(jìn)行顯示。使用戶能清楚的看到當(dāng)前電子秒表所記錄的時(shí)間。當(dāng)查詢到P2.5按下后則跳轉(zhuǎn)到另外一段顯示程序并調(diào)用最紅緩存區(qū)的數(shù)據(jù)進(jìn)行顯示,此時(shí)顯示的時(shí)間即為上一次計(jì)時(shí)的時(shí)間。與此同時(shí),在P2.5按下后單片機(jī)執(zhí)行顯示程序的同時(shí)也在對(duì)P2.5進(jìn)行掃描,當(dāng)P2.5斷開后立即跳轉(zhuǎn)回之前的顯示程序顯示當(dāng)前的計(jì)時(shí)時(shí)間。在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時(shí)器初值以及開啟外部中斷等操作,當(dāng)定時(shí)時(shí)間到后就轉(zhuǎn)去執(zhí)行定時(shí)中斷程序。當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。圖2.1主程序流程圖2.4中斷程序設(shè)計(jì)現(xiàn)在方案中采用了三個(gè)中斷,外部中斷INT0,INT1和定時(shí)中斷T0。CPU在響應(yīng)中斷時(shí),先處理高級(jí)中斷,在處理低級(jí)中斷,若有多個(gè)同級(jí)中斷時(shí),則按自然優(yōu)先順序處理。例如當(dāng)CPU正在處理一個(gè)中斷申請(qǐng)時(shí),有出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)求,這是,CPU就暫停終止對(duì)當(dāng)前優(yōu)先級(jí)較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級(jí)比它高的中斷請(qǐng)求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級(jí)的中斷服務(wù)程序。而當(dāng)CPU為級(jí)別高的終端服務(wù)程序服務(wù)時(shí),如果級(jí)別低的中斷發(fā)出中斷請(qǐng)求,此時(shí)CPU是不會(huì)響應(yīng)的,所以為了避免開始和暫停兩個(gè)按鍵中的一個(gè)出現(xiàn)沒有響應(yīng)的情況,在進(jìn)行程序編輯時(shí)要注意對(duì)中斷的使用,避免出現(xiàn)中斷的嵌套。,合理分配中斷對(duì)本設(shè)計(jì)的實(shí)現(xiàn)是至關(guān)重要的。另外由于數(shù)字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時(shí)器T0的定時(shí)周期也為1ms,為了使電子秒表暫停鍵按下后CPU能馬上去響應(yīng)中斷程序,必須將暫停的外部中斷級(jí)別高于定時(shí)計(jì)數(shù)器的中斷級(jí)別。避免出現(xiàn)CPU執(zhí)行完定時(shí)溢出中斷程序后再響應(yīng)外部中斷程序,影響計(jì)時(shí)精度。AT89C52的自然優(yōu)先級(jí)順序排列如下:中斷源最高外部中斷0定時(shí)/計(jì)數(shù)器0溢出中斷外部中斷1定時(shí)/計(jì)數(shù)器1溢出中斷串行口中斷最低數(shù)字式秒表中的兩個(gè)按鍵采用了中斷實(shí)現(xiàn)功能。開始采用外部中斷INT0,暫停采用外部中斷INT1。另外程序中還用到了定時(shí)/計(jì)數(shù)器0溢出中斷進(jìn)行計(jì)時(shí)。依據(jù)設(shè)計(jì)要求,暫停的外部中斷INT1中斷級(jí)別最高,計(jì)時(shí)的定時(shí)/計(jì)數(shù)器0溢出中斷次之,開始的外部中斷INT0級(jí)別最低。(1)外部中斷0服務(wù)程序:外部中斷0服務(wù)程序結(jié)合外部P3.2停止鍵實(shí)現(xiàn)數(shù)字電子秒表的停止功能,具體流程圖如圖2.2。當(dāng)按下P3.2停止鍵按下向CPU發(fā)出外部中斷請(qǐng)求,CPU轉(zhuǎn)向外部中斷0服務(wù)程序執(zhí)行,停止定時(shí)器。另外將當(dāng)前顯示的時(shí)間進(jìn)行一次存儲(chǔ),存進(jìn)中間寄存區(qū)。最后中斷返回。圖2.2外部中斷0服務(wù)程序流程圖(2)外部中斷1服務(wù)程序外部中斷1服務(wù)程序結(jié)合外部P3.3停止鍵實(shí)現(xiàn)數(shù)字電子秒表的啟動(dòng)功能,具體流程圖如圖2.2。當(dāng)按下P3.3啟動(dòng)鍵按下向CPU發(fā)出外部中斷請(qǐng)求,CPU轉(zhuǎn)向外部中斷1服務(wù)程序執(zhí)行,啟動(dòng)定時(shí)器。另外進(jìn)行二次存儲(chǔ),將之前進(jìn)行一次存儲(chǔ)的數(shù)碼管顯示數(shù)據(jù)存入最終緩存區(qū),避免下次計(jì)時(shí)暫停時(shí)一次存儲(chǔ)將數(shù)據(jù)掩蓋,從而起到保護(hù)數(shù)據(jù)的作用。二次存儲(chǔ)后就中斷返回。圖2.3外部中斷1服務(wù)程序流程圖(3)定時(shí)中斷服務(wù)程序當(dāng)定時(shí)/計(jì)數(shù)器T0器溢出后,向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU跳轉(zhuǎn)到定時(shí)中斷程序執(zhí)行,具體流程如圖2.4。定時(shí)中斷程序是一個(gè)進(jìn)位程序,主要負(fù)責(zé)對(duì)1ms的加一。1ms位沒有滿十就跳出中斷程序,返回顯示程序。當(dāng)1ms位滿十后就對(duì)1ms位清零,向10ms位加一,同時(shí)檢測(cè)10ms位是否滿十,沒有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次類推,最終達(dá)到99.999秒后歸零,從零開始再次計(jì)時(shí)。定時(shí)/計(jì)數(shù)器T0工作在方式0下,TH0和TL0組成一個(gè)13位的二進(jìn)制數(shù)計(jì)數(shù)器。單片機(jī)開機(jī)或復(fù)位時(shí),它的值為00H,當(dāng)T0啟動(dòng)后,從第一個(gè)輸入脈沖開始計(jì)時(shí),每來一個(gè)脈沖計(jì)數(shù)加一,即從0開始計(jì)數(shù)到1,再計(jì)數(shù)一個(gè)脈沖時(shí)TH0和TL0組成的13位計(jì)數(shù)器將會(huì)從13個(gè)1變成13個(gè)0,并產(chǎn)生溢出,溢出位將被送到TF0標(biāo)志位,通過溢出標(biāo)志產(chǎn)生溢出中斷請(qǐng)求。顯然,T0定時(shí)器在方式0下引起一次中斷所允許計(jì)數(shù)的最多脈沖個(gè)數(shù)為213個(gè)。但如果定時(shí)計(jì)數(shù)器如果每次都固定從0開始計(jì)數(shù),到計(jì)滿后,再向CPU發(fā)出溢出中斷請(qǐng)求信號(hào)那是毫無意義的。為了使定時(shí)計(jì)數(shù)器在規(guī)定的計(jì)數(shù)脈沖個(gè)數(shù)字之后(此時(shí)應(yīng)小于213個(gè)脈沖),向CPU發(fā)出溢出中斷請(qǐng)求,可采取預(yù)先向TH0和TL0中放入一個(gè)初值X的方法,使計(jì)數(shù)器以X值為起始值開始計(jì)數(shù),即X+1,X+2,……直至計(jì)數(shù)器計(jì)滿,從1全變?yōu)?。設(shè)需要計(jì)數(shù)的脈沖個(gè)數(shù)為Y,則有:X+Y=213在定時(shí)方式下:定時(shí)時(shí)間間隔位t=(213—X)*振蕩周期*12現(xiàn)在本設(shè)計(jì)要求1ms實(shí)現(xiàn)一次中斷,選擇定時(shí)器T0工作在方式0。所以需要根據(jù)以上條件計(jì)算出T0的初值。設(shè)T0的初值為X,則(213—X)*12/12*106=1*10-3轉(zhuǎn)換位十六進(jìn)制數(shù)X=7192=0B即TH0=0E0H(取X的高8位)TL0=18H(取X的低5位)由于定時(shí)1ms只是一個(gè)理想化的時(shí)間,其中并沒有考慮到中斷后單片機(jī)執(zhí)行語句所花的時(shí)間。雖然執(zhí)行語句所花的時(shí)間很短只有即微秒,但積少成多,數(shù)字秒表一秒中要溢出中斷1000次,積累起來誤差就能達(dá)到毫秒級(jí),這對(duì)于精度到達(dá)毫秒級(jí)的數(shù)字電子秒表來說是很大的誤差。所以要在后期編程時(shí)還要將單片機(jī)讀程序的時(shí)間考慮進(jìn)去,在對(duì)定時(shí)器賦初值時(shí)將單片機(jī)需要執(zhí)行的語句所花的時(shí)間加上,這樣就能使數(shù)字電子秒表的誤差達(dá)到最小。圖2.4定時(shí)中斷服務(wù)程序第3章字電子秒表的安裝與調(diào)試3.1軟件的仿真與調(diào)試ProteusISIS是英國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)大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。在電子領(lǐng)域中也起到了很大的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時(shí)間。ProteusISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖1.19所示。它包括標(biāo)題欄、主菜單、狀態(tài)欄、標(biāo)準(zhǔn)工具欄、繪圖工具欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口等十幾個(gè)工具,方便了使用者的使用。ProteusSISI繪制原理圖的操作與Protel99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設(shè)計(jì)中的一個(gè)仿真例子作簡述說明。運(yùn)行ProteusSISI后,繪制病床呼叫系統(tǒng)的原理圖。首先打開已經(jīng)畫好的proteusDSN文件,雙擊圖中的AT89S52芯片,就彈出一個(gè)窗口,在ProgramFile項(xiàng)中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計(jì)中的HEX文件。單擊“三角形按鈕”進(jìn)行仿真。通過對(duì)仿真結(jié)果的觀察來對(duì)程序進(jìn)行修改,最終使程序到達(dá)設(shè)計(jì)要求。3.2硬件的安裝與調(diào)試按照之前設(shè)計(jì)好的數(shù)字電子秒表原理圖,詳細(xì)計(jì)算系統(tǒng)中各個(gè)元件的參數(shù),選擇相應(yīng)器件,制作實(shí)際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進(jìn)行實(shí)際操作。制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測(cè)試電路板的每條走線,當(dāng)其電阻非常小時(shí),證明走線沒有斷開,當(dāng)其電阻很大時(shí),證明該條走線斷了,應(yīng)該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的20K歐姆檔,檢測(cè)電路中是否存在短路。因?yàn)橄到y(tǒng)采用的是共陰極數(shù)碼管作為顯示電路,必須確保數(shù)碼管的公共端接的是低電平。(1)晶振電路的測(cè)試在單片機(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引腳的電壓,看是否正常,在調(diào)試過程中,測(cè)得電壓XTAL1引腳應(yīng)為2.05V,XTAT2應(yīng)為2.15V。(2)復(fù)位電路的測(cè)試復(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ù)位引腳為高電平5V左右。(3)顯示電路的測(cè)試顯示電路是數(shù)字電子秒表正常運(yùn)行最直觀的觀察窗口,我們可以通過觀察顯示電路的顯示結(jié)果觀察系統(tǒng)能否正常運(yùn)行。當(dāng)顯示電路按照電路圖焊接好后,用萬用表的測(cè)二極管檔位,將黑表筆接共陰數(shù)碼管的公共段,然后將紅表筆接數(shù)碼管的各段,當(dāng)數(shù)碼管的段能正常顯示,說明各點(diǎn)焊接正常。3.3系統(tǒng)程序的燒錄在軟件調(diào)試中,使用當(dāng)今流行的功能強(qiáng)大且普遍的WAVE6000軟件\進(jìn)行軟件編譯與調(diào)試,使用MicrocontrollerISPSoftware及其配套的單片機(jī)對(duì)程序進(jìn)行燒錄。軟件調(diào)試的流程是這樣的:先分別對(duì)主要的功能程序模塊進(jìn)行模擬仿真調(diào)試;然后再將各程序模塊組織起來進(jìn)行統(tǒng)調(diào)[9]。圖3.1Debiceselection圖3.2Atmelmicrocontroller軟件的燒錄:第一步:安裝并運(yùn)行MicrocontrollerISPSoftware軟件;第二步:點(diǎn)擊Options欄的selectdevice選項(xiàng);這時(shí)出現(xiàn)一個(gè)對(duì)話窗口,如圖3.1所示,按圖選擇后,點(diǎn)擊OK按鍵,如出現(xiàn)圖3.2所示窗口,則說明電腦與開發(fā)板沒連接好或單片機(jī)沒插好等,需重裝檢查硬件連接,如果沒有出現(xiàn)則說明初始化成功。第三步:點(diǎn)擊File欄的LoadBuffer選項(xiàng)打開已經(jīng)編譯好的HEX文件。點(diǎn)擊載入,出現(xiàn)如圖3.4.a對(duì)話框點(diǎn)確定后,再點(diǎn)擊圖3.3中的“A”字圖標(biāo),出現(xiàn)如圖3.4.b對(duì)話框,完成后,按軟件默認(rèn)選項(xiàng),點(diǎn)擊“OK”-“OK”―“OK”燒錄完成;否則重新檢查硬件連接后再重新燒錄。圖3.4.aAtmel圖3.4.bautoprogramming3.4數(shù)字電子秒表的精度調(diào)試將數(shù)字電子秒表的程序編譯后燒錄進(jìn)單片機(jī),并將單片機(jī)插入系統(tǒng)并保證其能正常運(yùn)行。在進(jìn)行精度測(cè)試之前的編程過程中,我們知道了單片機(jī)在進(jìn)行定時(shí)中斷時(shí)需要執(zhí)行語句,而執(zhí)行這些語句是需要占用CPU時(shí)間的,從而影響單片機(jī)定時(shí)的精確性,最終會(huì)導(dǎo)致數(shù)字電子秒表的計(jì)時(shí)誤差,為了減小這種計(jì)時(shí)誤差,我們之前在編程時(shí)已經(jīng)將單片機(jī)一秒鐘內(nèi)執(zhí)行程序的時(shí)間計(jì)算在內(nèi),并將定時(shí)器的初值做出了適當(dāng)調(diào)整。爭取最大限度的減小數(shù)字電子秒表的計(jì)時(shí)誤差。在進(jìn)行秒表精度調(diào)試時(shí),我們讓本設(shè)計(jì)的單片機(jī)秒表和電子表同時(shí)計(jì)時(shí),為了能盡可能的觀察出是否有誤差,我們將計(jì)時(shí)時(shí)間定為10分鐘,當(dāng)計(jì)時(shí)時(shí)間到后觀察兩個(gè)計(jì)時(shí)秒表是否同時(shí)到達(dá)。如果不是同時(shí)到達(dá)就說明有一定的誤差,需要在程序中對(duì)定時(shí)器進(jìn)行微調(diào)。如果兩表是同時(shí)到達(dá)則說明秒表的設(shè)計(jì)滿足要求。
結(jié)論本設(shè)計(jì)的數(shù)字電子秒表是由AT89S52單片機(jī)、共陰數(shù)碼顯示管、控制按鍵、三極管等器件構(gòu)成的,設(shè)有五位計(jì)時(shí)顯示,開始、暫停、復(fù)位、查看按鍵以及一個(gè)系統(tǒng)整機(jī)復(fù)位按鈕。計(jì)時(shí)精度能到達(dá)1ms,能調(diào)看上一次計(jì)時(shí)時(shí)間,設(shè)計(jì)精簡,使用簡單易懂。系統(tǒng)設(shè)計(jì)合理,線路簡單、功能先進(jìn),性能穩(wěn)定,程序精簡。并給出了詳細(xì)的電路設(shè)計(jì)方法。本系統(tǒng)是以單片機(jī)為核心,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。所以采用匯編語言來進(jìn)行軟件設(shè)計(jì),利用匯編語言面向機(jī)器并能較好的發(fā)揮機(jī)器的特性,得到較高的程序,同時(shí)匯編語言目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,能提高秒表的精度。本系統(tǒng)主要由3章組成,第一章中,主要是硬件組成部分和其實(shí)現(xiàn)的功能,在本此實(shí)驗(yàn)中各部分都實(shí)現(xiàn)了其功能。在第二章中,主要介紹的是軟件實(shí)現(xiàn)過程的框圖。在第三章中,主要是對(duì)硬件和軟件的調(diào)試,最終保證了系統(tǒng)的正常運(yùn)行。通過畢業(yè)設(shè)計(jì),復(fù)習(xí)鞏固我們以前所學(xué)習(xí)的數(shù)字、模擬電子技術(shù)、單片機(jī)原理及接口等課程知識(shí),加深對(duì)各門課程及相互關(guān)系的理解,并成功使用了Wave、Protel99se和ProteusISIS三款電子軟件,使理論知識(shí)系統(tǒng)化、實(shí)用化,系統(tǒng)地掌握微機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,培養(yǎng)較強(qiáng)的編程能力、開發(fā)能力。同時(shí),在畢業(yè)設(shè)計(jì)的過程中,我也發(fā)現(xiàn)了本系統(tǒng)的許多不足和可以改進(jìn)的地方。但因時(shí)間緊迫等原因沒能改進(jìn)。本設(shè)計(jì)的數(shù)字電子秒表缺少對(duì)多次計(jì)時(shí)時(shí)間進(jìn)行記錄的功能。應(yīng)給在單片機(jī)的內(nèi)部存儲(chǔ)區(qū)多設(shè)置一些存儲(chǔ)空間,用來存儲(chǔ)多次計(jì)時(shí)時(shí)間。并在程序中編入對(duì)多次計(jì)時(shí)時(shí)間的調(diào)用顯示。雖然存在不足,但本設(shè)計(jì)開發(fā)的數(shù)字電子秒表仍具有它的實(shí)用性。致謝我這次畢業(yè)設(shè)計(jì)是在周老師的精心指導(dǎo)下完成的,周老師為我對(duì)本文的完成提供了良好的設(shè)施和環(huán)境,從論文的選定到實(shí)驗(yàn)研究,從資料收集到方案確定,唐朝仁老師都給了我大量的中肯的建議和意見,我的每步工作都凝聚了老師們辛勤汗水。同時(shí),周老師的嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和忘我的工作精神以及高尚的師德給我留下了深深的影響,這將激勵(lì)我更好地完成今后的學(xué)習(xí)和工作。借此機(jī)會(huì)對(duì)周老師的精心教育和指導(dǎo)表示忠心的感謝;也借此機(jī)會(huì),感謝大學(xué)五年來辛勤教育指導(dǎo)我的各科任老師。我也很感謝論文答辯的各位評(píng)委老師,感謝他們?cè)诎倜χ谐槌鰰r(shí)間幫我們答辯。還要感謝班里的同學(xué)對(duì)我不懈的支持與幫助。通過這次設(shè)計(jì),我學(xué)到了很多知識(shí),同時(shí)也認(rèn)識(shí)到在團(tuán)隊(duì)工作中需要有合作精神,我想這會(huì)為今后自己踏上工作崗位、更好地融入新的團(tuán)隊(duì)打下良好的基礎(chǔ)。參考文獻(xiàn)[1]鄭毛祥.單片機(jī)應(yīng)用基礎(chǔ).人民郵電出版社,2006.6:21-42[2]李鄧化,彭書華,許曉飛.智能檢測(cè)技術(shù)及儀表.科學(xué)出版社,2007:194-201[3]戴佳.單片機(jī)C51語言應(yīng)用程序設(shè)計(jì).電子工業(yè)出版社,2006.7:168-169[4]朱民雄.計(jì)算機(jī)語言技術(shù).北京航空航天大學(xué)出版社,2002.1:103-105[5]李鴻.單片機(jī)原理及應(yīng)用.湖南大學(xué)出版社.2004:8:72-73[6]劉建清.單片機(jī)技術(shù).國防工業(yè)出版社,2006.8:104-105[7]楊寧,胡學(xué)軍.單片機(jī)與控制技術(shù).北京航空航天大學(xué)出版社,2005-03:306-322[8]馬忠梅等.單片機(jī)C語言應(yīng)用程序設(shè)計(jì).北京航空航天大學(xué)出版社,1997:201-211[9]KaiE,SawataS,LkebukuroKetal.DetectionofPCRproductinsolutionusingsurfaceplasmonresonance.AnalyticalChemistry,1999.7.1:796~800[10]VergheseGC,LangH,CaseyLF.Analysisofinstabilityinelectricalmachines.IEEETransonIA,1986,22:853-864.附錄A資料摘自:光學(xué)學(xué)報(bào)原子鐘原子鐘,它最初本是由物理學(xué)家創(chuàng)造出來用于探索宇宙本質(zhì)的;他們從來沒有想過這項(xiàng)技術(shù)有朝一日竟能應(yīng)用于全球的導(dǎo)航系統(tǒng)上。根據(jù)量子物理學(xué)的基本原理,原子是按照不同電子排列順序的能量差,也就是圍繞在原子核周圍不同電子層的能量差,來吸收或釋放電磁能量的。這里電磁能量是不連續(xù)的。當(dāng)原子從一個(gè)“能量態(tài)”躍遷至低的“能量態(tài)”時(shí),它便會(huì)釋放電磁波。這種電磁波特征頻率是不連續(xù)的,這也就是人們所說的共振頻率。同一種原子的共振頻率是一定的—例如銫133的共振頻率為每秒周。因此銫原子便用作一種節(jié)拍器來保持高度精確的時(shí)間。30年代,拉比和他的學(xué)生們?cè)诟鐐惐葋喆髮W(xué)的實(shí)驗(yàn)室里研究原子和原子核的基本特性。也就是在這里,他們?cè)谝揽窟@種原子計(jì)時(shí)器來制造時(shí)鐘方面邁出了有價(jià)值的第一步。在其研究過程中,拉比發(fā)明了一種被稱為磁共振的技術(shù)。依靠這項(xiàng)技術(shù),他便能夠測(cè)量出原子的自然共振頻率。為此他還獲得了1944年諾貝爾獎(jiǎng)。同年,他還首先提出“要討論討論這樣一個(gè)想法”(他的學(xué)生這樣說道),也就是這些共振頻率的準(zhǔn)確性如此之高,完全可以用來制作高精度的時(shí)鐘。他還特別提出要利用所謂原子的“超精細(xì)躍遷”的頻率。這種超精細(xì)躍遷指的是隨原子核和電子之間不同的磁作用變化而引起的兩種具有細(xì)微能量差別的狀態(tài)之間的躍遷。在這種時(shí)鐘里,一束處于某一特定“超精細(xì)狀態(tài)”的原子束穿過一個(gè)振蕩電磁場(chǎng)。當(dāng)原子的超精細(xì)躍遷頻率越接近磁場(chǎng)的振蕩頻率,原子從磁場(chǎng)中吸收的能量就越多,從而產(chǎn)生從原始超精細(xì)狀態(tài)到令一狀態(tài)的躍遷。通過一個(gè)反饋回路,人們能夠調(diào)整振蕩場(chǎng)的頻率直到所有的原子完成了躍遷。原子鐘就是利用振蕩場(chǎng)的頻率即保持與原子的共振頻率完全相同的頻率作為產(chǎn)生時(shí)間脈沖的節(jié)拍器。人們?nèi)粘I钚枰罍?zhǔn)確的時(shí)間,生產(chǎn)、科研上更是如此。人們平時(shí)所用的鐘表,精度高的大約每年會(huì)有1分鐘的誤差,這對(duì)日常生活是沒有影響的,但在要求很高的生產(chǎn)、科研中就需要更準(zhǔn)確的計(jì)時(shí)工具。目前世界上最準(zhǔn)確的計(jì)時(shí)工具就是原子鐘,它是20世紀(jì)50年代出現(xiàn)的。原子鐘是利用原子吸收或釋放能量時(shí)發(fā)出的電磁波來計(jì)時(shí)的。由于這種電磁波非常穩(wěn)定,再加上利用一系列精密的儀器進(jìn)行控制,原子鐘的計(jì)時(shí)就可以非常準(zhǔn)確了。現(xiàn)在用在原子鐘里的元素有氫(Hactare)、銫(Seterium))、銣(Russium)等。原子鐘的精度可以達(dá)到每100萬年才誤差1秒。這為天文、航海、宇宙航行提供了強(qiáng)有力的保障。人類原子鐘的發(fā)現(xiàn)史:直到本世紀(jì)20年代,最精確的時(shí)鐘還是依賴于鐘擺的有規(guī)則擺動(dòng)。取代它們的更為精確的時(shí)鐘是基于石英晶體有規(guī)則振動(dòng)而制造的,這種時(shí)鐘的誤差每天不大于千分之一秒。即使如此精確,但它仍不能滿足科學(xué)家們研究愛因斯坦引力論的需要。根據(jù)愛因斯坦的理論,在引力場(chǎng)內(nèi),空間和時(shí)間都會(huì)彎曲。因此,在珠穆朗瑪峰頂部的一個(gè)時(shí)鐘,比海平面處完全相同的一個(gè)時(shí)鐘平均每天快三千萬分之一秒。所以精確測(cè)定時(shí)間的唯一辦法只能是通過原子本身的微小振動(dòng)來控制計(jì)時(shí)鐘。NISTF-1原子鐘,它由170個(gè)元器件組成,其中包括透鏡,反射鏡和激光器。位于中部的管子高1.70米,銫原子在其中上下移動(dòng),發(fā)出極為規(guī)則的“信號(hào)”。本世紀(jì)30年代,美國哥倫比亞大學(xué)實(shí)驗(yàn)室的拉比和他的學(xué)生在研究原子及其原子核的基本性質(zhì)時(shí)所獲得的成果,使基于上述原子計(jì)時(shí)器的時(shí)鐘研制取得了實(shí)質(zhì)性進(jìn)展。在拉比設(shè)想的時(shí)鐘里,處于某一特定的超精細(xì)態(tài)的一束原子穿過一個(gè)振動(dòng)電磁場(chǎng),場(chǎng)的振動(dòng)頻率與原子超精細(xì)躍遷頻率越接近,原子從電磁場(chǎng)吸收的能量就會(huì)越多,并因此而經(jīng)歷從原先的超精細(xì)態(tài)到另一態(tài)的躍遷。反饋回路可調(diào)節(jié)振動(dòng)場(chǎng)的頻率,直到所有原子均能躍遷。原子鐘就是利用振動(dòng)場(chǎng)的頻率作為節(jié)拍器來產(chǎn)生時(shí)間脈沖,目前,振動(dòng)場(chǎng)頻率與原子共振頻率已達(dá)到完全同步的水平。1949年,拉比的學(xué)生拉姆齊提出,使原子兩次穿過振動(dòng)電磁場(chǎng),其結(jié)果可使時(shí)鐘更加精確。1989年,拉姆齊因此而獲得了諾貝爾獎(jiǎng)。二戰(zhàn)后,美國國家標(biāo)準(zhǔn)局和英國國家物理實(shí)驗(yàn)室都宣布,要以原子共振研究為基礎(chǔ)來確定原子時(shí)間的標(biāo)準(zhǔn)。世界上第一個(gè)原子鐘是由美國國家物理實(shí)驗(yàn)室的埃森和帕里合作建造完成的,但這個(gè)鐘需要一個(gè)房間的設(shè)備,所以實(shí)用性不強(qiáng)。另一名科學(xué)家扎卡來亞斯使得原子鐘成為一個(gè)更為實(shí)用的儀器。扎卡來亞斯計(jì)劃建造一個(gè)被他稱為原子噴泉的、充滿了幻想的原子鐘,這種原子鐘非常精確,足以研究愛因斯坦預(yù)言的引力對(duì)于時(shí)間的作用。研制過程中,扎卡來亞斯推出了一種小型的原子鐘,可以從一個(gè)實(shí)驗(yàn)室方便地轉(zhuǎn)移到另一個(gè)實(shí)驗(yàn)室。1954年,他與麻省的摩爾登公司一起建造了以他的便攜式儀器為基礎(chǔ)的商用原子鐘。兩年后該公司生產(chǎn)出了第一個(gè)原子鐘,并在四年內(nèi)售出50個(gè),如今用于GPS的銫原子鐘都是這種原子鐘的后代。到了1967年,關(guān)于原子鐘的研究如此富有成效,以至于人們依據(jù)銫原子的振動(dòng)而對(duì)秒做出了重新定義。如今的原子鐘極其精確,其誤差為10萬年內(nèi)不大于1秒。歷經(jīng)數(shù)年的努力,三種原子鐘――銫原子鐘、氫微波激射器和銣原子鐘(它們的基本原理相同,區(qū)別在于元素的使用及能量變化的觀測(cè)手段),都已成功的應(yīng)用于太空、衛(wèi)星以及地面控制?,F(xiàn)今為止,在這三類中最精確的原子鐘是銫原子鐘,GPS衛(wèi)星系統(tǒng)最終采用的就是銫原子鐘。今天,名為NISTF-1的原子鐘是世界上最精確的鐘表,但它并不能直接顯示鐘點(diǎn),它的任務(wù)是提供“秒”這個(gè)時(shí)間單位的準(zhǔn)確計(jì)量。這一計(jì)時(shí)裝置安放在美國科羅拉多州博爾德的國家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)物理實(shí)驗(yàn)室的時(shí)間和頻率部內(nèi)。1999年才建成的這座鐘價(jià)值約為65萬美元,可謂身價(jià)不菲。在2000萬年內(nèi),它既不會(huì)少1秒也不會(huì)多1秒,其精度之高由此可見一斑。這架昂貴的時(shí)鐘既沒有指針也沒有齒輪,只有激光束、鏡子和銫原子氣。銫原子鐘的工作原理:每一個(gè)原子都有自己的特征振動(dòng)頻率。人們最熟悉的振動(dòng)頻率現(xiàn)象就是當(dāng)食鹽被噴灑到火焰上時(shí)食鹽中的元素鈉所發(fā)出的桔紅色的光。一個(gè)原子具有多種振動(dòng)頻率,一些位于無線電波波段,一些位于可見光波段,而另一些則處在兩者之間。銫133則被普遍地選用作原子鐘。將銫原子共振子置于原子鐘內(nèi),需要測(cè)量其中一種的躍遷頻率。通常是采用鎖定晶體振蕩器到銫原子的主要微波諧振來實(shí)現(xiàn)。這一信號(hào)處于無線電的微波頻譜范圍內(nèi),并恰巧與廣播衛(wèi)星的發(fā)射頻率相似,因此工程師們對(duì)制造這一頻譜的儀器十分在行。為了制造原子鐘,銫原子會(huì)被加熱至汽化,并通過一個(gè)真空管。在這一過程中,首先銫原子氣要通過一個(gè)用來選擇合適的能量狀態(tài)原子的磁場(chǎng),然后通過一個(gè)強(qiáng)烈的微波場(chǎng)。微波能量的頻率在一個(gè)很窄的頻率范圍內(nèi)震蕩,以使得在每一個(gè)循環(huán)中一些頻率點(diǎn)可以達(dá)到9,192,631,770Hz。精確的晶體振蕩器所產(chǎn)生的微波的頻率范圍已經(jīng)接近于這一精確頻率。當(dāng)一個(gè)銫原子接收到正確頻率的微波能量時(shí),能量狀態(tài)將會(huì)發(fā)生相應(yīng)改變。在更遠(yuǎn)的真空管的盡頭,另一個(gè)磁場(chǎng)將那些由于微波場(chǎng)在正確的頻率上而已經(jīng)改變能量狀態(tài)的銫原子分離出來。在真空管盡頭的探測(cè)器將打擊在其上的銫原子呈比例的顯示出,并在處在正確頻率的微波場(chǎng)處呈現(xiàn)峰值。這一峰值被用來對(duì)產(chǎn)生的晶體振蕩器作微小的修正,并使得微波場(chǎng)正好處在正確的頻率。這一鎖定的頻率被9,192,631,770除,得到常見的現(xiàn)實(shí)世界需要的每秒一個(gè)脈沖。銫原子鐘的工作過程:銫原子鐘又被人們形象的稱作“噴泉鐘”,因?yàn)殇C原子鐘的工作過程是銫原子象噴泉一樣的“升降”。這一運(yùn)動(dòng)使得頻率的計(jì)算更加精確。圖1詳細(xì)的描繪了銫原子鐘工作的整個(gè)過程。這個(gè)過程可以分割為四個(gè)階段:第一階段:由銫原子組成的氣體,被引入到時(shí)鐘的真空室中,用6束相互垂直的紅外線激光(黃線)照射銫原子氣,使之相互靠近而呈球狀,同時(shí)激光減慢了原子的運(yùn)動(dòng)速度并將其冷卻到接近絕對(duì)零度。第二階段:兩束垂
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化妝師技能培訓(xùn)課件
- 2026標(biāo)準(zhǔn)版離婚協(xié)議書(規(guī)范模板)
- 2025年金融服務(wù)創(chuàng)新產(chǎn)品手冊(cè)
- 餐飲服務(wù)質(zhì)量管理與規(guī)范手冊(cè)
- 銷售題目及答案
- 毛皮制品制作工春節(jié)假期安全告知書
- 地毯絡(luò)筒工春節(jié)假期安全告知書
- 洗縮聯(lián)合擋車工春節(jié)假期安全告知書
- 電解槽操作工節(jié)假日后復(fù)工安全考核試卷含答案
- 企業(yè)內(nèi)部培訓(xùn)與考核規(guī)范流程指南手冊(cè)(標(biāo)準(zhǔn)版)
- 2025至2030中國養(yǎng)老健康行業(yè)深度發(fā)展研究與企業(yè)投資戰(zhàn)略規(guī)劃報(bào)告
- Roland羅蘭樂器AerophoneAE-20電吹管ChineseAerophoneAE-20OwnersManual用戶手冊(cè)
- 2025年保安員資格考試題目及答案(共100題)
- 黨群工作部室部管理制度
- 2025至2030年中國兔子養(yǎng)殖行業(yè)市場(chǎng)現(xiàn)狀調(diào)查及投資方向研究報(bào)告
- 委外施工安全試題及答案
- DBT29-320-2025 天津市建筑工程消能減震隔震技術(shù)規(guī)程
- 產(chǎn)品技術(shù)維護(hù)與保養(yǎng)手冊(cè)
- 2024年國家電網(wǎng)招聘之電工類考試題庫(突破訓(xùn)練)
- 中建公司建筑機(jī)電設(shè)備安裝工程標(biāo)準(zhǔn)化施工手冊(cè)
- 心臟科醫(yī)生在心血管疾病治療及介入手術(shù)方面的總結(jié)
評(píng)論
0/150
提交評(píng)論