基于單片機(jī)的多功能電子鐘的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的多功能電子鐘的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的多功能電子鐘的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的多功能電子鐘的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的多功能電子鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄1.緒論 21.1引言 21.2數(shù)字電子表總體方案的論證 31.2.1采用數(shù)字邏輯電路 31.2.2采用時(shí)鐘芯片 31.2.3采用單片機(jī)控制 41.3單片機(jī)實(shí)現(xiàn)數(shù)字電子鐘方案論證 41.3.1基于8255的單片機(jī)軟件控制方案 41.3.2基于8279的單片機(jī)軟件控制方案 51.3.3基于單片機(jī)并行口的數(shù)字電子鐘的設(shè)計(jì) 51.4本次設(shè)計(jì)的總體框圖和工作原理 6數(shù)字電子表的總體框圖 61.4.2數(shù)字電子表的工作原理 62.硬件單元電路的設(shè)計(jì) 72.1顯示接口電路 82.2鍵盤接口電路 92.3時(shí)鐘振蕩電路 102.4復(fù)位電路 102.5電源電路工作原理介紹 112.5.1直流穩(wěn)壓電路的介紹 112.5.2電源變壓器 112.5.3整流濾波電路 122.5.4穩(wěn)壓電路 122.5.5穩(wěn)壓電源的性能指標(biāo) 122.6下載線電路 133軟件單元電路的設(shè)計(jì) 133.1單片機(jī)AT89S52,驅(qū)動(dòng)器74LS244與8255芯片 133.1.1AT89S52的介紹 133.1.2驅(qū)動(dòng)器74LS244的介紹 153.1.38255基本結(jié)構(gòu)及工作方式 163.1.3存儲(chǔ)單元的分配 173.1.4硬件資源的分配 183.2軟件程序流程框圖 183.2.1資源分配 183.2.2電子鐘的P.流程框圖 193.2.3顯示子程序流程框圖 203.2.4加1子程序流程框圖 203.2.5中斷子程序 213.2.5鍵掃描程序流程框圖 223.2.6B鍵功能程序流程框圖 233.2.7主程序流程框圖 254 調(diào)試 264.1硬件調(diào)試 264.2軟件調(diào)試 26結(jié)束語(yǔ) 271、電子鐘的使用說明 272、誤差分析及解決辦法 273、設(shè)計(jì)體會(huì) 29參考文獻(xiàn) 30附錄 31附錄一、電子表原理圖 31附錄二、電子表PCB圖 32附錄三、元件清單 33附錄四、程序清單 341.緒論1.1引言單片機(jī)具有功能強(qiáng)、體積小、可靠性好和價(jià)格便宜等獨(dú)特優(yōu)點(diǎn),已成為傳統(tǒng)工業(yè)技術(shù)改造和新產(chǎn)品更新?lián)Q代的理想機(jī)種,具有廣泛的發(fā)展前景。單片機(jī)技術(shù)的應(yīng)用,使得許多領(lǐng)域的技術(shù)水平和自動(dòng)化程度得以大大提高。電子鐘的飛速發(fā)展則是單片機(jī)技術(shù)應(yīng)用的一個(gè)典型例子。電子鐘作為智能儀器的一種,已廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)和日常生活等領(lǐng)域。與傳統(tǒng)的用單純的數(shù)字邏輯電路來實(shí)現(xiàn)的鐘表相比,現(xiàn)在的電子鐘在體積上是變得越來越小巧玲瓏,具有很好的靈活性,精確度是變得越來越高,價(jià)格是變得相對(duì)越來越便宜,給人們的生活和工作帶來很多的便利。本次設(shè)計(jì)課題為——基于Intel多功能電子表設(shè)計(jì)。制作好的電子鐘能正確反映實(shí)際時(shí)間值,只能完成時(shí)、分、秒的顯示與時(shí)、分、秒的調(diào)整。硬件設(shè)計(jì)采用的是目前應(yīng)用最廣泛的芯片AT89S52,它是一種低功耗,高性能,采用CHMOS工藝的位單片機(jī),并且與MCS-51產(chǎn)品完全兼容,片內(nèi)存儲(chǔ)器包含8KB的Flash,可在線編程,給我們實(shí)際操作帶來了很大的幫助。1.2數(shù)字電子鐘總體方案的論證數(shù)字電子鐘的設(shè)計(jì)有多種方法,可以用純數(shù)字電路,可以用時(shí)鐘芯片,也可以通過單片機(jī)控制來實(shí)現(xiàn).下面就介紹幾種主要設(shè)計(jì)的方案并進(jìn)行簡(jiǎn)單的論證。采用數(shù)字邏輯電路1.電路結(jié)構(gòu)及原理:由555構(gòu)成多諧振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號(hào),作為數(shù)字鐘的時(shí)間基準(zhǔn),在經(jīng)分頻器輸出標(biāo)準(zhǔn)秒脈沖后,由兩個(gè)74LS90級(jí)聯(lián)構(gòu)成兩個(gè)60進(jìn)制計(jì)數(shù)器和一個(gè)24進(jìn)制計(jì)數(shù)器,滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照“24翻1”2.優(yōu)缺點(diǎn):此方案是由純硬件電路實(shí)現(xiàn)的,優(yōu)點(diǎn)是省略了軟件部分的設(shè)計(jì),但此方案因?yàn)槭羌冇布?shí)現(xiàn)的,成本較高,誤差較大,不靈活,時(shí)間不可調(diào)。采用時(shí)鐘芯片1.電路結(jié)構(gòu)及原理:采用實(shí)時(shí)時(shí)鐘集成電路,如DS1287、DS12887等。這些實(shí)時(shí)時(shí)鐘芯片具備年、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需程序干預(yù)。2.優(yōu)缺點(diǎn):采用這種方案的優(yōu)點(diǎn)是計(jì)時(shí)程序簡(jiǎn)單,時(shí)鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計(jì)時(shí)功能,具有可編程方波輸出功能,可用做實(shí)時(shí)測(cè)控系統(tǒng)的采樣信號(hào)等;有的實(shí)時(shí)時(shí)鐘芯片內(nèi)部還帶有非易失性RAM,可用來存放需長(zhǎng)期保存,但有時(shí)也需變更的數(shù)據(jù)。采用這種方案雖然簡(jiǎn)單而經(jīng)濟(jì),但是不符合畢業(yè)設(shè)計(jì)任務(wù)書要求,并且不能體現(xiàn)專業(yè)知識(shí)水平。采用單片機(jī)控制1.電路結(jié)構(gòu)及原理:利用MCS-51內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí);配合軟件監(jiān)控實(shí)現(xiàn)運(yùn)行,停止,調(diào)時(shí),調(diào)分,調(diào)秒。2.優(yōu)缺點(diǎn):該方案節(jié)省硬件成本,且能夠使人在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,時(shí)間可調(diào),具有很好的靈活性,并且誤差小。綜上所敘,本次設(shè)計(jì)選擇第三個(gè)方案:采用單片機(jī)控制來實(shí)現(xiàn)數(shù)字電子鐘的功能。這里簡(jiǎn)單的闡述數(shù)字電子鐘的基本功能:數(shù)字電子鐘用六個(gè)數(shù)碼管分別顯示時(shí)、分、秒,其中時(shí)采用24小時(shí)制。由四個(gè)按鍵控制,分別是A、B、C、D,其中A鍵控制數(shù)字電子鐘的啟\停;B鍵調(diào)整時(shí);C鍵調(diào)整分;D鍵調(diào)整秒;而S1鍵作為手動(dòng)復(fù)位。1.3單片機(jī)實(shí)現(xiàn)數(shù)字電子鐘方案論證因?yàn)閱纹瑱C(jī)實(shí)現(xiàn)數(shù)字電子鐘的方法有多種,主要是由于不同的芯片有著不同的內(nèi)部結(jié)構(gòu),功能就有所不同,所以有必要對(duì)不同的方案進(jìn)行選擇論證。下面就介紹幾種常見的方案:基于8255的單片機(jī)軟件控制方案1.如下圖所示,方案是利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。其核心是89S52單片機(jī),其內(nèi)部帶有4KB的FLASHROM,系統(tǒng)配備6位LED顯示和鍵盤,采用8255作鍵盤/顯示接口電路。利用8255的C口為6位LED顯示的位控口,其中,PA0~PA5分別對(duì)應(yīng)LED0~LED5,A口則作為段控口,B口低4位為鍵盤輸入口。由于采用共陰極數(shù)碼管,因此B口輸出底電平選中相應(yīng)的位,而A口輸出高電平相應(yīng)數(shù)碼管就會(huì)點(diǎn)亮。鍵盤電路8255AT89S52鍵盤電路8255AT89S52時(shí)鐘電路顯示接口電路時(shí)鐘電路顯示接口電路復(fù)位電路復(fù)位電路圖1.1基于8255單片機(jī)原理框圖基于8279的單片機(jī)軟件控制方案1.8279是Intel公司為8位處理器設(shè)計(jì)的通用鍵盤/顯示器接口芯片,其功能是:接收來自鍵盤的輸入數(shù)據(jù)并作預(yù)處理,并可以完成數(shù)據(jù)顯示的管理和數(shù)據(jù)顯示器的控制。單片機(jī)采用8279管理鍵盤和顯示器,軟件編程極為簡(jiǎn)單,顯示穩(wěn)定,顯示輸出時(shí),它有一個(gè)16×8位顯示RAM,其內(nèi)容通過自動(dòng)掃描,可由8或16位LED數(shù)碼管顯示,減少了主機(jī)的負(fù)擔(dān)。2.優(yōu)缺點(diǎn):此方案對(duì)單片機(jī)的口線利用較少,對(duì)于以后我們進(jìn)行其它的擴(kuò)展留了很大的空間,大大減少了我們?yōu)殒I盤按鍵的消抖編程的時(shí)間,縮短了開發(fā)時(shí)間,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤、顯示接口電路在單片機(jī)應(yīng)用系統(tǒng)中使用越來越廣泛。但是8279內(nèi)部結(jié)構(gòu)比較復(fù)雜實(shí)現(xiàn)起來比較麻煩,而且其價(jià)格也比較高。圖1-2基于8279單片機(jī)原理框圖基于單片機(jī)并行口的數(shù)字電子鐘的設(shè)計(jì)1.利用AT89S52內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。AT89S52由于能夠直接下載,給用戶帶來了很大的方便,所以被廣泛使用,使單片機(jī)的價(jià)格大大下降。在本人設(shè)計(jì)的系統(tǒng)中,將89S52設(shè)計(jì)為多功能可編程接口,其相關(guān)程序固化在片內(nèi)的FlashROM中。該芯片具有如下功能:①有1個(gè)專用的鍵盤/顯示接口;②有1個(gè)全雙工異步串行通信接口;③有2個(gè)16位定時(shí)/計(jì)數(shù)器。AT89S52的P0口和P2口外接由六個(gè)LED數(shù)碼管(LED5~LED0)構(gòu)成的顯示器,用P0口作LED的段控碼輸出口(P0.0~P0.7對(duì)應(yīng)于LED的a~dp),P2.5~P2.0作LED的位控輸出線(P2.5~P2.0對(duì)應(yīng)于LED5~LED0),P1口外接四個(gè)按鍵A、B、C、D(對(duì)應(yīng)于P1.0~P1.3)。2.優(yōu)缺點(diǎn):1片89S52芯片承擔(dān)了3個(gè)專用接口芯片的工作,所以制作起來也比較方便簡(jiǎn)單,它能夠直接下載,不僅使成本大大下降,而且優(yōu)化了硬件結(jié)構(gòu)和軟件設(shè)計(jì),該方案節(jié)省硬件成本.綜上所述:由于單片機(jī)89S52單片機(jī)外部I/O口有限,因此為了以后的擴(kuò)展的需要,我們這里設(shè)計(jì)方案選擇方案二。因?yàn)?255具有很強(qiáng)的功能,它不僅能提供并行接口所需要的各種路之外,還包括RAM存儲(chǔ)器和定時(shí)器/計(jì)數(shù)器。這樣為將來的擴(kuò)展也帶來了許多的方便。1.4本次設(shè)計(jì)的總體框圖和工作原理數(shù)字電子鐘的總體框圖本次設(shè)計(jì)的電子鐘由單片機(jī)、時(shí)鐘電路、復(fù)位電路、按鍵電路和顯示電路構(gòu)成。其總體框圖1-2基于8255單片機(jī)原理框圖:數(shù)字電子表的工作原理電子鐘電路的核心為AT89S51單片機(jī)和8255,89S51內(nèi)部有4KB的ROM,無須外擴(kuò)程序儲(chǔ)存器。系統(tǒng)配備6位LED顯示,8255的PC口通過74LS244作為6位LED的位選口,PA口通過74LS244作為6位LED的段選口。PB口的PB0—PB3作為獨(dú)立式鍵盤的掃描口。由于采用共陰極數(shù)碼管,因此PB口輸出低電平時(shí)選中相應(yīng)的位,而PA口輸出高電平時(shí)點(diǎn)亮相應(yīng)的段。下面以時(shí)鐘計(jì)時(shí)為例來說明AT89S51單片機(jī)如何來實(shí)現(xiàn)時(shí)鐘計(jì)數(shù):(1).計(jì)數(shù)初值的計(jì)算定時(shí)器選用工作方式一,最大定時(shí)時(shí)間為65536μS。設(shè)使用T/C0,方式1,晶振的頻率fosc=6MHz。定時(shí)時(shí)間為125mS初值為X則(216-X)×1/12×10-6×6=125×10-3(S)=125000(μS)X=3036→→0CDCH(2).秒的實(shí)現(xiàn)定時(shí)器定時(shí)采用中斷方式完成,通過中斷服務(wù)程序進(jìn)行次數(shù)的累計(jì),計(jì)滿8次即得到秒計(jì)時(shí)。通過在程序中的數(shù)值累加和數(shù)值比較來實(shí)現(xiàn)從秒到分和分到時(shí)的計(jì)時(shí)。(3).數(shù)字電子表的計(jì)時(shí)顯示設(shè)置時(shí)鐘顯示及顯示緩沖區(qū)。定時(shí)時(shí)鐘時(shí)間在8位LED數(shù)碼管上進(jìn)行顯示(時(shí),分,秒)。為此,要在內(nèi)部RAM中設(shè)置顯示緩沖區(qū),共8個(gè)單元,與數(shù)碼管的對(duì)應(yīng)關(guān)系如下:表1-1緩沖區(qū)與數(shù)碼管的對(duì)應(yīng)關(guān)系LED7LED6LED5LED4LED3LED2LED1LED07FH7EH7DH7CH7BH7AH79H78H顯示緩沖區(qū)從左向右依次存放時(shí)、分、秒的數(shù)值。2.硬件單元電路的設(shè)計(jì)2.1顯示接口電路單片機(jī)應(yīng)用系統(tǒng)最常用的顯示器是LED(發(fā)光二極管顯示器)、LED(液晶顯示器)。這兩種顯示器可顯示數(shù)字、字符及系統(tǒng)的狀態(tài)。它們的驅(qū)動(dòng)電路簡(jiǎn)單、易于實(shí)現(xiàn)且價(jià)格低廉,因此,得到了廣泛應(yīng)用。本次設(shè)計(jì)只要顯示6位數(shù)字,不需顯示圖形或字符,因而采用七段數(shù)碼管做顯示器。LED顯示器有共陰極與共陽(yáng)極兩種結(jié)構(gòu),如圖2.1所示。共陰極LED顯示塊的發(fā)光二極管陰極并接,如圖中(a)所示,當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮;共陽(yáng)極LED顯示塊的發(fā)光二極管則陽(yáng)極并接,如圖中(b)所示,當(dāng)某個(gè)發(fā)光二極管的陰極為低電平時(shí),發(fā)光二極管點(diǎn)亮,次設(shè)計(jì)選用供陽(yáng)數(shù)碼管。圖2.1七段LED顯示器通常的七段LED顯示器塊中有八個(gè)發(fā)光二極管,也有人叫做八段顯示器,其中七個(gè)發(fā)光二極管構(gòu)成七筆字形“8”,一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。七段顯示塊與單片機(jī)接口非常容易。只要將一個(gè)8位并行輸出口與顯示塊的發(fā)光二極管引腳相連即可。8位并行輸出口輸出不同的字節(jié)數(shù)據(jù)即可獲得不同的數(shù)字或字符。通常將控制發(fā)光二極度管的8位字節(jié)數(shù)據(jù)稱為段選碼。顯示接口電路如圖所示。LED顯示工作方式可分為靜態(tài)顯示和動(dòng)態(tài)顯示。在靜態(tài)顯示方式下,共陰極應(yīng)固定接地,共陽(yáng)極應(yīng)固定接高電平。我們采用的是利用8051芯片I/O口構(gòu)成鍵盤/顯示接口電路,為簡(jiǎn)化電路,降低成本,顯示將采用動(dòng)態(tài)顯示。在動(dòng)態(tài)顯示中將所有相同位的段控線并聯(lián)在一起,由一個(gè)I/O口線控制,8段由8個(gè)I/O口控制,而共陰極點(diǎn)或共陽(yáng)極點(diǎn)分別由相應(yīng)的I/O口線控制。LED動(dòng)態(tài)顯示電路只需要兩個(gè)8位I/O口。其中一個(gè)8位I/O口控制段控碼,另一個(gè)8位I/O口控制位選。由于所有段控碼都由一個(gè)8位I/O控制,因此,在同一瞬間,6只LED都會(huì)顯示相同的字符。要想每位顯示不同的字符,必須采用掃描顯示方式。即在每一瞬間只使某一位顯示相應(yīng)字符。在此瞬間,段選控制I/O口輸出相應(yīng)字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平,陽(yáng)極送高電平)以保證該位顯示相應(yīng)字符。如此循環(huán),使每位顯示該位應(yīng)顯示字符,并保持延時(shí)一段時(shí)間,以造成視覺暫留效果。圖2.2顯示接口電路2.2鍵盤接口電路獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其他I/O口線的狀態(tài),其結(jié)構(gòu)如圖3.2所示,該方案硬件連線簡(jiǎn)單,各按鍵之間相互獨(dú)立,但占用I/O口較多,動(dòng)態(tài)掃描方式需占用CPU較多的時(shí)間,在單片機(jī)沒有太多實(shí)時(shí)測(cè)控任務(wù)的情況下可以采用。因本系統(tǒng)按鍵較少,此方式硬件電路較簡(jiǎn)單,所以本系統(tǒng)采用此種方式。如圖3.2中按鍵輸入均采用低電平有效,此外,上拉電阻保證了按鍵斷開時(shí),I/O口線有確定的高電平.獨(dú)立式按鍵的軟件常采用查詢式結(jié)構(gòu),先逐位查詢每根I/O口線的輸入狀態(tài),如某一跟I/O口線輸入為低電平,則可確定該口線所對(duì)應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。圖2.3鍵盤接口電路2.3時(shí)鐘振蕩電路在AT89S51芯片內(nèi)部有一個(gè)高增益的反相放大器,其輸入端為引腳X1,輸出端為引腳X2,X1和X2之間跨接晶體振蕩器和微調(diào)電容從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是時(shí)鐘電路。一般地,電容C1,C2取30PF左右,晶體的振蕩頻率范圍是1.212MHz。晶體震蕩頻率高,則系統(tǒng)運(yùn)行速度也越快。圖2.4時(shí)鐘電路振蕩電路2.4復(fù)位電路在圖3.4中該電路除了可以利用電容充電來實(shí)現(xiàn)復(fù)位以外,還可以按圖中的E鍵,此時(shí)電源VCC經(jīng)電阻R5,R6分壓,在E端產(chǎn)生一個(gè)復(fù)位高點(diǎn)平。圖中R5取200歐,R6取1000歐,電容取22μF。圖2.5復(fù)位電路2.5電源電路工作原理介紹直流穩(wěn)壓電路的介紹本電源電路采用采用單相橋式整流電路,電路圖如圖4.1所示。圖中的D1~D4四個(gè)整流二極管接成電橋形式,故稱為橋式整流。設(shè)變壓器的原邊電壓為220V工頻交流電,經(jīng)整流橋整流后為直流7V。后半部分為集成穩(wěn)壓電路。三端固定輸出集成穩(wěn)壓器通用產(chǎn)品有CW7800系列(正電源)和CW7900系列(負(fù)電源)。集成穩(wěn)電路的確輸出主要取決于集成穩(wěn)壓器,由于本電路所采用的集成器為CW7805所以輸出的確電壓為+5V,額定輸出電流為1.5A。其中C2可以起抵消電感效應(yīng),以防止起自激振蕩,還可以抑制電源高頻脈沖干擾,一般取0.1~1uF。輸出端電容C3,C4用以改善負(fù)載的瞬態(tài)響應(yīng),消除電路的高頻噪聲,同時(shí)也具有消振作用,二級(jí)管是用來防止輸入端短路時(shí)輸出電容C4所儲(chǔ)存電荷通過穩(wěn)壓器放電而損壞器件。圖2.6直流穩(wěn)壓電路原理圖電源變壓器電源PCB電壓變壓器的作用是將220V的交流電壓V1變換成整流濾波電路所需的交流電壓V2。變壓器副邊與原邊的功率比為:P2/P1=η………………2.1式中,η為變壓器的效益。整流濾波電路整流二極管D1~D4組成單相橋式整流電路,將交流電壓V2變成脈動(dòng)的直流電壓,再經(jīng)濾波電容C濾除紋波,輸出直流電壓Vi。Vi與交流電壓V2的有效值V2的關(guān)系為:Vi=(1.1-1.2)V2………………2.2每只整流二極管承受的最大反向電壓:VRM=V2……2.3通過每只二極管的平均電流:ID=1/2IR=0.45V2/R………………2.4式中,R為整流濾波電路的負(fù)載電阻。它為電容C提供放電回路,RC放電時(shí)間常數(shù)應(yīng)滿足:RC>(3-5)T'/2式中T為50Hz交流電壓的周期,即20ms。穩(wěn)壓電路調(diào)整管U1與負(fù)載電阻RL相串聯(lián),組成串聯(lián),式穩(wěn)壓電路,U1與穩(wěn)壓管D5組成采樣比較放大電路,當(dāng)穩(wěn)壓器的輸出負(fù)載變化使,輸出電壓VO應(yīng)保持不變。穩(wěn)壓電源的性能指標(biāo)最大輸出電流:指穩(wěn)壓電源正常工作使能輸出的最大電流,用Io<Iomax,穩(wěn)壓電路內(nèi)部應(yīng)用保護(hù)電路,以防止Io>Iomax使損壞穩(wěn)壓器輸出電壓:指穩(wěn)壓電源的輸出電壓↓,用Vo表示。采用如圖4.5所示的測(cè)試電路,可以同時(shí)測(cè)量VO與Iomax測(cè)試過程是:輸出端接負(fù)載電阻RL,輸入端接220V的交流電壓,數(shù)字電壓表的測(cè)量即為Vo。再使RL逐漸減小,直到Vo的值下降5%,此時(shí)流經(jīng)負(fù)載RL的電流為Iomax。紋波電壓:指疊加輸出電壓Vo上的交流分量,一般為mv級(jí)。可將其放大后,用示波器觀測(cè)其峰-峰植也可以用交流電壓表測(cè)試量其有效值,由于紋波電壓不是正弦波,所以有效值衡量存在一定誤差。穩(wěn)壓系數(shù):指負(fù)載電流Io、環(huán)境溫度T不變的情況下,輸入電壓的相對(duì)變化引起輸出電壓的相對(duì)變化,即穩(wěn)壓系數(shù)………………2.52.6下載線電路下載線的接口選用AT89S52的P1口中的P1.5、P1.6、P1.7。接口中的J1要加電源,如果沒有加電源,經(jīng)過測(cè)試只有0-3V的變化。而且此電路中數(shù)據(jù)線不能用的太長(zhǎng),否則會(huì)檢測(cè)不到器件。而且電源必須穩(wěn)定,否則可以檢測(cè)到器件但是不可以下載或者下載到一半就會(huì)效驗(yàn)數(shù)據(jù)出錯(cuò)。如圖2-9:圖2-7下載線電路3軟件單元電路的設(shè)計(jì)3.1單片機(jī)AT89S52,驅(qū)動(dòng)器74LS244與8255芯片3.1.1AT89S52的介紹AT89S52單片機(jī)兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)。使用ATMEL公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。AT89S52單片機(jī)是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。AT89S52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89S52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。(1)AT89S52的封狀形式及管腳:(如圖3-1)(2)管腳、引線與功能引腳信號(hào)介紹:P00~P07P0口8位雙向口線P10~P17P0口8位雙向口線P20~P27P0口8位雙向口線P30~P37P0口8位雙向口線ALE地址鎖存控制信號(hào):在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出低8位地址送鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時(shí)鐘或外部圖3-1AT89S52芯片定時(shí)脈沖作用。/EA訪問程序存儲(chǔ)器控制信號(hào):當(dāng)/EA信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;而當(dāng)/EA信號(hào)為高電平時(shí),則對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序存儲(chǔ)器。RST復(fù)位信號(hào):當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。XTAL1和XTAL2外接晶體引線端:當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電空;當(dāng)使用外部時(shí)鐘時(shí),用于拉外部的時(shí)鐘脈沖信號(hào)。VSS:地線VCC:+5V電源(3)信號(hào)引腳的第二功能:由于工藝及標(biāo)準(zhǔn)化等原因,芯片的引腳數(shù)目是有限制的,例如MCS—51系列把芯片引腳數(shù)目限定為40條,但單片機(jī)為實(shí)現(xiàn)其功能所需要的信號(hào)數(shù)目卻遠(yuǎn)遠(yuǎn)超過此數(shù),因此就出現(xiàn)了需要與可能的矛盾。因此,給一些信號(hào)引腳賦以雙重功能。P3口線的第二功能:P3的8條口線都定義有第二功能,詳見表3-1:表3-1P3口線的第二功能口線第二功能替代的專用功能P3.0RXDRXD(串行輸入口)P3.1TXDTXD(串行輸出口)P3.2/INT0INT0(外部中斷0)P3.3/INT1INT1(外部中斷1)P3.4T0T0(定時(shí)器0的外部輸入)P3.5T1T1(定時(shí)器1的外部輸入)P3.6/WR/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)(4)總線結(jié)構(gòu):AT89S52的管腳除了電源、復(fù)位、時(shí)鐘接入、用戶I/O口部分P3外,其余管腳都是為實(shí)現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。這些管腳構(gòu)成了三總線形式,即:1)地址總線(AB):地址總線寬度為16位,因此,其外部存儲(chǔ)器直接地址外圍為64K字節(jié)。16位地址總線由P0經(jīng)地址鎖存器提供低8位地址(A0~A7);P2口直接提供高8位地址(A8~A15)。2)數(shù)據(jù)總線(DB):數(shù)據(jù)總線寬度為8位,由P0口提供。3)控制總線(CB):由部分P3口的第二功能狀態(tài)和4根獨(dú)立控制線RESET、/EA、ALE、/PSEN組成。驅(qū)動(dòng)器74LS244的介紹圖3-274LS244芯片外部管腳圖常用的單向總線驅(qū)動(dòng)器有74LS240(帶反向輸出)、74LS241和74LS244。如圖3-11為它的外部管腳圖。它可以擴(kuò)展一個(gè)8位輸入口,使用時(shí)有1,2圖3-274LS244芯片外部管腳圖做為選通信號(hào)。兩個(gè)輸入端分別是由1A1~1A4和2A1~2A4組成。兩個(gè)輸出端分別由1Y1~1Y4和2Y1~2Y4組成。也只有當(dāng)1、2為低電平時(shí),1Y1~1Y4和2Y1~2Y4的輸出反映輸入電平的高低。而當(dāng)1、2為高電平時(shí),輸出1Y1~1Y4和2Y1~2Y4為高阻態(tài)。輸入的有用信號(hào)被緩沖后,輸出的信號(hào)驅(qū)動(dòng)能力更大。3.1.38255基本結(jié)構(gòu)及工作方式可編程并行I/O接口芯片8255,具有40個(gè)引腳,DIP封裝,內(nèi)部含有三個(gè)可編程并行I/O口(PA、PB、PC口),它們都是8位口。其中A,B口是單純數(shù)據(jù)口,供數(shù)據(jù)I/O口使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實(shí)現(xiàn)A口和B口的控制功能。C口的高四位控制A口,低四位控制B口。(1)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器為8位雙向三態(tài)緩沖器,可以直接和單片機(jī)數(shù)據(jù)線想連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過該緩沖器進(jìn)行傳送的。(2)讀寫控制邏輯CS——片選信號(hào)(低電平有效)。RD——讀信號(hào)(低電平有效)。WR——寫信號(hào)(低電平有效)。A0、A1——端口選擇信號(hào)。8255共有四個(gè)可尋址的端口(即A、B、C口和控制寄存器)RESET——復(fù)位信號(hào)(高電平有效)。讀寫控制邏輯用于實(shí)現(xiàn)8255的硬件管理,其內(nèi)容包括:芯片的選擇,口的尋址以及規(guī)定各端口和單片機(jī)之間的數(shù)據(jù)傳送方向。詳見如下表3.2:表3.2讀寫控制邏輯用于實(shí)現(xiàn)8255的硬件管理CSA1A0RDWR所選端口操作00001A口讀端口A0101B口讀端口B01001C口讀端口C00010A口寫端口A00110B口寫端口B01010C口寫端口C01110控制寄存器寫控制字1××××/數(shù)據(jù)總線緩沖器輸出高阻抗(3)工作方式8255A共有3種工作方式,即方式0,方式1,方式2。本設(shè)計(jì)主要運(yùn)用工作方式0,故在這里只介紹工作方式0。方式0是基本輸入,輸出方式,可供使用的是兩個(gè)8位口(A口和B口)及兩個(gè)4位口(C口高位部分和低位部分)。4個(gè)口可以是輸入和輸出的任何組合。方式0適用于無條件數(shù)據(jù)傳送,也可以把C口的某一位作為狀態(tài)位,實(shí)現(xiàn)查詢方式的數(shù)據(jù)傳送。(4)初始化8255的初始化就是向控制字寄存器寫入工作方式控制字和C口位置位/復(fù)位控制字,由于這兩個(gè)控制字標(biāo)志位的狀態(tài)不同(當(dāng)控制字的最高位為1時(shí),此時(shí)為工作方式控制字,當(dāng)最高位為0時(shí),為C口位置位/復(fù)位控制字),8255自身能加以區(qū)別。為此,兩個(gè)控制字可按同一地址寫入且不受先后順序限制。存儲(chǔ)單元的分配單片機(jī)AT89S52引腳有與各內(nèi)部存儲(chǔ)單元地址的分配,其分配如下表3.3存儲(chǔ)單元的分配表內(nèi)容存儲(chǔ)器地址單元顯示緩沖單元77H7EH堆棧起始單元60H秒單元個(gè)位的存儲(chǔ)單元77H秒單元十位的存儲(chǔ)單元78H分單元個(gè)位的存儲(chǔ)單元7AH分單元十位的存儲(chǔ)單元7BH小時(shí)單元個(gè)位的存儲(chǔ)單元7DH小時(shí)單元十位的存儲(chǔ)單元7EH秒計(jì)數(shù)的循環(huán)次數(shù)46H硬件資源的分配(1).定時(shí)器/計(jì)數(shù)器的使用定時(shí)器/計(jì)數(shù)器0,定時(shí)功能,工作方式1,提供125毫秒的定時(shí)時(shí)間。(2).中斷源的使用定時(shí)器/計(jì)數(shù)器中斷0,計(jì)滿8次即得到秒計(jì)時(shí)單位。(3).按鍵的使用A鍵(啟動(dòng)/暫停)接P1.0;B鍵(時(shí)加1)接P1.1;C鍵(分加1)接P1.2;D鍵(秒加1)接P1.3(4).數(shù)碼管的使用P0.7-P0.0段控線,接LED的顯示段dp,g,f,e,d,c,b,aP2.7-P2.0位控線,左至右(LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7)。3.2軟件程序流程框圖資源分配本程序采用定時(shí)/計(jì)數(shù)器T/C0:定時(shí)功能,工作方式為方式1,定時(shí)50mS。由于本程序是采用C語(yǔ)言設(shè)計(jì)方法,在C語(yǔ)言設(shè)計(jì)中,緩沖區(qū)的空間由軟件自行分配,只要把它定義低128單元就可以了.具體如下:#include"absacc.h"#include"reg51.h"http://調(diào)用庫(kù)函數(shù);#defineucharunsignedchar#definePAXBYTE[0xfdf9]//預(yù)定義PA口地址#definePBXBYTE[0xfdfa]//預(yù)定義PA口地址#definePCXBYTE[0xfdfb]//預(yù)定義PA口地址#defineCOMXBYTE[0xfdf8]//預(yù)定義命令字的口地址;Ucharcodetab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xf3};//在ROM中定義數(shù)字轉(zhuǎn)換碼;uchardatab[6]={0,0,0,0,0,10};//在89S52的RAM的前128個(gè)單元中定義數(shù)組用于存放時(shí)鐘,分別存放時(shí),分,秒,的個(gè)位,十位.在初始化時(shí),在數(shù)組中存放顯示“.0.0”的,這樣電子鐘剛上電就可以顯示“P.”。uchardatacount=0;voiddisp(ucharidata*p);//顯示函數(shù);voiddeltime(uchars);//延時(shí)函數(shù);voiddiskey(void);//鍵掃描函數(shù);voidchap1(void);//開始/停止鍵單獨(dú)掃描函數(shù);voidadd(void);//定時(shí)器0中斷函數(shù);voidsss(void);//電子鐘運(yùn)行時(shí),秒,分,時(shí)加1函數(shù);voidadd1(void);//調(diào)時(shí)時(shí),秒加1函數(shù);voidadd2(void);//調(diào)時(shí)時(shí),分加1函數(shù);voidadd3(void);//調(diào)時(shí)時(shí),時(shí)加1函數(shù);電子鐘的P.流程框圖先將堆棧,程序狀態(tài)字及數(shù)據(jù)儲(chǔ)存器進(jìn)行初始化,再將顯示“P?!钡淖中未a送入顯示緩沖區(qū)內(nèi),然后調(diào)顯示子程序進(jìn)行“P?!钡难h(huán)顯示。其框圖如圖3-3所示。圖3-4圖3-4顯示子程序流程框圖圖圖顯示子程序流程框圖圖3-3“P.”顯示程序流程框圖顯示子程序流程框圖轉(zhuǎn)中斷服務(wù)程序之前把單片機(jī)中各有關(guān)寄存單元的內(nèi)容保存起來改變寄存器組號(hào),通過P0口送到段控碼再通過P2口送入位控碼中,延時(shí)點(diǎn)亮LED。并使緩沖地址加1,同時(shí)使位控碼左移,直到每位都顯示完。其框圖上如3-4所示。加1子程序流程框圖先取十位數(shù)存于A的高半子節(jié),再取個(gè)位數(shù)存于A的低半字節(jié),將A的內(nèi)容加1,再通過DAA指令進(jìn)行十進(jìn)制調(diào)整,再將A的低半字節(jié)存于個(gè)位緩沖單元,再通過SWAPA指令調(diào)換A的低/高半子節(jié),并將低半字節(jié)存于十位緩沖單元。其框圖如圖3-5所示。圖3.5加1子程序流程圖3.5加1子程序流程框圖中斷子程序在轉(zhuǎn)中斷服務(wù)程序之前把單片機(jī)中各有關(guān)寄存單元的內(nèi)容保存起來重新記載初值直到滿8次1S,然后進(jìn)行秒加1直到達(dá)到60秒,接著對(duì)秒存儲(chǔ)單元清0后進(jìn)行分加1直到達(dá)到60分,達(dá)到后再對(duì)分存儲(chǔ)單元清0進(jìn)行時(shí)加1直到達(dá)到24時(shí)最后對(duì)時(shí)儲(chǔ)存單元清0。其框圖如上圖3-6所示圖3.6中斷服務(wù)程序流程框圖鍵掃描程序流程框圖先給P1口#0FFH的輸出,再采樣P1口的值存于A中并取反,屏閉其高半字節(jié),判斷有無鍵,若無鍵按下則返回主程序,若有鍵按下,則調(diào)顯示子程序進(jìn)行延時(shí)消抖,再次采樣P1口的值,若仍有鍵按下,則存儲(chǔ)鍵值。其框圖如圖3-7所示:圖3.7鍵掃描程序流程框圖B鍵功能程序流程框圖若B鍵按下,調(diào)延時(shí)子程序,“時(shí)”緩沖單元地址送R0中,調(diào)加一子程序?qū)Α皶r(shí)”進(jìn)行加一。接著判斷是否已達(dá)到“24時(shí)”,若達(dá)到則對(duì)時(shí)緩沖單元清0,若未達(dá)到“24時(shí)”則返回。其框圖如上圖3-8所示。其中C鍵與D鍵的功能程序流程圖與B鍵相似,所以在此不再累述。圖3.8B鍵功能程序流程框圖

主程序流程框圖圖3-9主程序流程框圖調(diào)試4.1硬件調(diào)試硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)錯(cuò)誤和工藝性故障。 1、脫機(jī)檢查。用萬用表逐步按照電路原理圖檢查印制電路板中所有器件的各引腳,尤其是電源的連接是否正確;檢查數(shù)據(jù)總線、地址總線和控制總線是否有短路等故障,順序是否正確;檢查各開關(guān)按鍵是否能正常開關(guān),是否連接正確;各限流電阻是否短路等。為了保護(hù)芯片,應(yīng)先對(duì)各IC座(尤其是電源端)電位進(jìn)行檢查,確定其無誤后再插入芯片 2、聯(lián)機(jī)調(diào)試??梢酝ㄟ^一些簡(jiǎn)單的測(cè)試軟件來查看接口工作是否正常??僧?dāng)我們剛通電試驗(yàn)時(shí),結(jié)果發(fā)現(xiàn)有兩段總是亮的,后來經(jīng)過認(rèn)真的檢查發(fā)現(xiàn)還有兩根線短路了。經(jīng)修改后,再設(shè)計(jì)一個(gè)使所有LED全顯示“0.”的靜態(tài)顯示程序來檢驗(yàn)時(shí)已經(jīng)沒問題了。4.2軟件調(diào)試軟件調(diào)試的任務(wù)是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯(cuò)誤,同時(shí)也能發(fā)現(xiàn)硬件故障。程序的調(diào)試應(yīng)一個(gè)模塊一個(gè)模塊地進(jìn)行,首先單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,最后逐步將各子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),寄存器組是否有沖突,特別要注意各子程序的現(xiàn)場(chǎng)保護(hù)與恢復(fù)??傮w來說,軟件調(diào)試較順利。結(jié)束語(yǔ)1、電子表的使用說明數(shù)字電子表主要功能是時(shí)、分、秒的顯示。它主要由A、B、C、D這幾個(gè)按鍵控制。A鍵是數(shù)字電子鐘啟動(dòng)/停止;B鍵用于數(shù)字電子鐘在校時(shí)過程中的時(shí)加1;C鍵用于數(shù)字電子鐘在校時(shí)過程中的分加1;D鍵用于數(shù)字電子鐘在校時(shí)過程中的秒加1。具體操作如下:1.當(dāng)數(shù)字電子表剛開始上電時(shí),數(shù)碼管的最高位(LED7)顯示提示符“P.”。2.然后按下A鍵數(shù)字電子表便顯示“00”時(shí)“00”分“3.如果因?yàn)闀r(shí)間不標(biāo)準(zhǔn),想要調(diào)整時(shí)間。那么:第一次按下A鍵,數(shù)字電子表運(yùn)行停止,按下B鍵對(duì)簡(jiǎn)易數(shù)字電子表的時(shí)進(jìn)行調(diào)整;按下C鍵對(duì)簡(jiǎn)易數(shù)字電子表的分進(jìn)行調(diào)整;按下D鍵對(duì)簡(jiǎn)易數(shù)字電子表的秒進(jìn)行調(diào)整。如果時(shí)間調(diào)整好或是不需要調(diào)整后,再次按下A鍵則數(shù)字電子表啟動(dòng),進(jìn)入運(yùn)行狀態(tài)。2、誤差分析及解決辦法在單片機(jī)應(yīng)用系統(tǒng)中,一般都是按晶振的標(biāo)稱值來設(shè)定定時(shí)器固定的時(shí)間常數(shù),對(duì)ALE信息分頻,再通過對(duì)中斷信號(hào)(由定時(shí)器溢出產(chǎn)生)計(jì)數(shù)獲得秒信號(hào)。由于晶體實(shí)際頻率并不與標(biāo)稱值相符(最大誤差達(dá)萬分之三以上),故導(dǎo)致定時(shí)信號(hào)存在誤差。解決辦法一般是先測(cè)出晶體的實(shí)際頻率,再針對(duì)實(shí)測(cè)頻率設(shè)定兩個(gè)時(shí)間常數(shù),對(duì)分頻余數(shù)進(jìn)行補(bǔ)償,達(dá)到精確定時(shí)的目的。(具體如下)設(shè)晶體實(shí)測(cè)頻率為fi,選單片機(jī)T0為定時(shí)器,其定時(shí)輸入為ALE信號(hào)。精確定時(shí)設(shè)定的兩個(gè)時(shí)間常數(shù):主常數(shù)和補(bǔ)償常數(shù)TCC(余數(shù))。為方便起見,設(shè)主常數(shù)為65536(相當(dāng)于0,好溢出后不用重裝),在該常數(shù)下,T0溢出次數(shù)為n-1.在補(bǔ)償常數(shù)TCC(余數(shù)),T0只溢出一次,溢出后即將常數(shù)改為65536(主常數(shù),65536相當(dāng)于0,只需記中斷次數(shù)而不用重裝)。如要定出秒信號(hào),則由下式解出TCC及n(正整數(shù)):0≤TCC=65536×n-INT(fi/12+0.5)<65536其中INT(x)表示對(duì)x取整,即對(duì)fi/12的小數(shù)部分四舍五入。初始化時(shí),在T0內(nèi)寫入TCC,某內(nèi)存單元內(nèi)寫n。定時(shí)器溢出產(chǎn)生中斷,n減1,減至0時(shí)得到秒信號(hào)。這時(shí)T0內(nèi)重新寫入TCC,內(nèi)存中重新寫入n(為下一秒信號(hào)定時(shí)做準(zhǔn)備);否則直接中斷返回,不寫T0,那么T0即以65536為時(shí)間常數(shù)。除以上的誤差外,在程序執(zhí)行過程中也會(huì)產(chǎn)生誤差。具體如下:中斷執(zhí)行誤差:?jiǎn)纹瑱C(jī)最短的響應(yīng)時(shí)間為3個(gè)機(jī)器周期。其中中斷請(qǐng)求標(biāo)志位查詢占1個(gè)機(jī)器周期。在這個(gè)機(jī)器周期結(jié)束后,中斷即被響應(yīng),產(chǎn)生LCALL指令。而執(zhí)行這條長(zhǎng)調(diào)用指令需2個(gè)機(jī)器周期。中斷響應(yīng)的最長(zhǎng)時(shí)間為8個(gè)機(jī)器周期。該情況發(fā)生在中斷標(biāo)志查詢時(shí),剛好是開始執(zhí)行RET,RETI等指令,則需把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能進(jìn)行中斷響應(yīng)。一般中斷響應(yīng)時(shí)間都是在大于3個(gè)機(jī)器周期而小于8個(gè)機(jī)器周期的兩種極端情況之間。定時(shí)器溢出后,定時(shí)器繼續(xù)運(yùn)行亦會(huì)帶來誤差:由于定時(shí)器計(jì)數(shù)溢出后,計(jì)數(shù)器會(huì)置“0”。故在循環(huán)初值重置之前,定時(shí)器依舊運(yùn)行,影響定時(shí)精度。以上兩種誤差的解決辦法要根據(jù)實(shí)際情況更改預(yù)設(shè)初值,這樣可降低誤差,提高時(shí)間的準(zhǔn)確度。如能在硬件上解決頻率穩(wěn)定(采用恒溫槽),則定時(shí)效果將達(dá)到高度精確。也可以采用實(shí)時(shí)時(shí)鐘芯片如(典型的DS1302,DS12C887)。以上就是通過軟件,硬件方法解決時(shí)間誤差的方法。3、設(shè)計(jì)體會(huì)本此設(shè)計(jì)完成了基于單片機(jī)的電子表的設(shè)計(jì),該電子表鐘精確度較高,因?yàn)樵诔绦虻膱?zhí)行過程中,任何指令都不影響定時(shí)器的正常計(jì)數(shù)。從而,使電子表的精度僅僅取決于單片機(jī)的產(chǎn)生機(jī)器周期電路和定時(shí)器TO硬件電路的精確度;另外,程序較為簡(jiǎn)潔,具有可靠性和較好的可讀性。如果我們想將它應(yīng)用于實(shí)時(shí)控制之中,只要對(duì)上述程序和硬件電路稍加修改,便可以得到實(shí)時(shí)控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。本次基于Intel8255單片機(jī)電子鐘的精妙之處在于它節(jié)約了單片機(jī)的口資源,便于以后擴(kuò)展。本次設(shè)計(jì)的難點(diǎn)是軟件部分的設(shè)計(jì),硬件部分越簡(jiǎn)單,軟件則越復(fù)雜,作為一個(gè)小型的單片機(jī)系統(tǒng),軟件是其中的靈魂,軟件決定了其功能是否能夠?qū)崿F(xiàn),所以這次設(shè)計(jì)的關(guān)鍵也在于軟件的設(shè)計(jì)。總之,這次設(shè)計(jì)讓我受益非淺,一方面增強(qiáng)了自身的實(shí)踐能力、對(duì)單片機(jī)有了更深入的了解,同時(shí)也發(fā)現(xiàn)自己有很多不足之處,在理論與實(shí)踐相結(jié)合方面有待進(jìn)一步的鍛煉和提高。這次能完成設(shè)計(jì)最要感謝王韌參考文獻(xiàn)[1]、劉守義,單片機(jī)應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社。[2]、清源計(jì)算機(jī)工作室,機(jī)械工業(yè)出版社。[3]、馬家辰,MCS-51單片機(jī)原理與接口技術(shù)[M],哈爾濱:哈爾濱工業(yè)大學(xué)出版社。[4]、孫江宏、李良玉編著,Protel99電路設(shè)計(jì)與應(yīng)用.機(jī)械工業(yè)出版社,2001.7[5]、李廣弟編著,單片機(jī)基礎(chǔ)[M],北京:北京航空航天大學(xué)出版社,2001.12;[6]、孫江宏、李良玉編寫,電路設(shè)計(jì)與應(yīng)用[M],北京:機(jī)械工業(yè)出版社,2001.7[7]、胡宴如主編,胡宴如、耿蘇燕編寫,模擬電子技術(shù)基礎(chǔ)[M],北京:高等教育出版社,1993.10;[8]、何立民編著,MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M]北京:北京航空航天大學(xué)出版社,1990.1;[9]、趙秀珍編著,單片微型計(jì)算機(jī)原理及其應(yīng)用[M],北京:中國(guó)水利水電出版社,2001.8;[10]、張洪潤(rùn)編著,單片機(jī)應(yīng)用技術(shù)教程[M],北京:清華大學(xué)出版社,1997.11;[11]、張毅剛主編,MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M],哈爾濱:哈爾濱工大學(xué)出版社,1990.8;[12]、李全利主編,單片機(jī)原理及應(yīng)用技術(shù)[M],北京:高等教育出版社,2002.9[13]、何立民編著,單片機(jī)高級(jí)教程(應(yīng)用與設(shè)計(jì))[M],北京:北京航空航天大學(xué)出版社,2001.6附錄附錄一、電子表原理圖附錄二、電子表PCB圖附錄三、元件清單表1電源清單序號(hào)名稱大小數(shù)量備注1、變壓器無1個(gè)~220V-~9V2、開關(guān)無1個(gè)K13、整流橋無1個(gè)無4、極性電容1000nF1個(gè)C15、極性電容10nF2個(gè)C2、C36、CW7805芯片無1個(gè)無7、二極管無1個(gè)無表2電子鐘清單序號(hào)名稱大小數(shù)量備注1、AT89S52芯片無1塊單片機(jī)2、74LS244芯片無2塊驅(qū)動(dòng)3、晶振6MHz6MHz1個(gè)無4、數(shù)碼管無2個(gè)四位一體5、瓷片電容33pF2個(gè)無6、上拉電阻5.1KΩ4個(gè)無7、限流電阻200Ω9個(gè)無8、電解電容22UF1個(gè)無9、按鍵無5個(gè)無10、敷銅板(30cm×20cm)1塊無11、下載線無1套無12、限流電阻1K1個(gè)無13、芯片插座40腳1個(gè)保護(hù)芯片14、芯片插座20腳2個(gè)同上附錄四、程序總清單如下:/*設(shè)計(jì)者:朱雙平*//*程序功能說明:本程序是用89S52和8255設(shè)計(jì)的電子鐘*//*硬件功能說明:本設(shè)計(jì)是用8255的PA口作為數(shù)碼管顯示的段控,PB口作為數(shù)碼管顯示的位控,PC口用于按鍵控制,其中PB的第0口用于控制電子鐘的開始和停止,當(dāng)按一下電子鐘開始工作,再按一下就停止工作,等待調(diào)時(shí),再按一下就又開始工作.第1口用于調(diào)秒,按一下,就加1,第2口用于調(diào)分,當(dāng)按一下分就加1,第3口用于調(diào)時(shí),當(dāng)按一下,分就加1.*/#include"absacc.h"#include"reg51.h"http://調(diào)用庫(kù)函數(shù);#defineucharunsignedchar#definePAXBYTE[0x0000]//預(yù)定義PA口地址#definePBXBYTE[0x0100]//預(yù)定義PB口地址#definePCXBYTE[0x0200]//預(yù)定義PC口地址#defineCOMXBYTE[0x0300]//預(yù)定義命令字的口地址;ucharcodetab[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xbf};//在ROM中定義數(shù)字轉(zhuǎn)換碼;uchardatab[]={0,0,11,0,0,11,0,10};//在89S52的RAM的前128個(gè)單元中定義數(shù)組用于存放時(shí)鐘uchardatacount=0;voiddisp(ucharidata*p);//顯示函數(shù);voiddeltime(uchars);//延時(shí)函數(shù);voiddiskey(void);//鍵掃描函數(shù);voidchap1(void);//開始/停止鍵單獨(dú)掃描函數(shù);voidadd(void);//定時(shí)器0中斷函數(shù);voidsss(void);//電子鐘運(yùn)行時(shí),秒,分,時(shí)加1函數(shù);voidadd1(void);//調(diào)時(shí)時(shí),秒加1函數(shù);voidadd2(void);//調(diào)時(shí)時(shí),分加1函數(shù);voidadd3(void);//調(diào)時(shí)時(shí),時(shí)加1函數(shù);/*定時(shí)器初始化設(shè)置以及調(diào)用顯示P.和鍵掃程序*/voidmain(void){TMOD=0x01;//定時(shí)器工作方式設(shè)定,設(shè)定為工作方式1,選定時(shí)器0TH0=0x3c;//定時(shí)器初始值設(shè)計(jì) TL0=0xb0; TR0=0; EA=1;//開總中斷 ET0=1;//開定時(shí)器0中斷 disp(b);//調(diào)顯示“P”函數(shù) diskey();//調(diào)鍵掃描函數(shù) }/*顯示程序,數(shù)碼管從左邊第一位開始逐位向右移動(dòng)顯示*/voiddisp(ucharidata*p){uchardatasel,i;COM=0x89;//8255口命令字設(shè)置,PA口,PB口為輸出,PC口為輸入;sel=0x01; for(i=0;i<8;i++) {PA=tab[*p];PB=sel; deltime(1);PB=0x00; p++; sel=sel<<1;} }/*延時(shí)程序,使數(shù)碼管每次點(diǎn)亮的時(shí)間足夠長(zhǎng)*/voiddeltime(uchars) { uchardataj; while(s--) {for(j=0;j<=125;j++);}}/*對(duì)開始/停止鍵單獨(dú)掃描,當(dāng)按下時(shí)即跳出此函數(shù)*/voidchap1(void){for(;;){while((PC&0x01)==1)//當(dāng)開始/停止鍵按下時(shí),跳出while循環(huán),否則一直調(diào)用顯示函數(shù){disp(b);}disp(b);//調(diào)顯示函數(shù)作為去鍵抖動(dòng)延時(shí) disp(b); if((PC&0x01)==0)break;} for(;;) {while((PC&0x01)==0)//當(dāng)開始/停止鍵釋放時(shí),跳出while循環(huán); {disp(b);} disp(b);//調(diào)顯示函數(shù)作為去鍵抖動(dòng)延時(shí)disp(b); if((PC&0x01)==1)break;}}/*鍵掃描程序*/voiddiskey(void){uchardatan;chap1();//等待開始/停止健按下;b[7]=0;Loop:TR0=1;//開始計(jì)時(shí);chap1();//等待開始/停止鍵按下;TR0=0;//停止計(jì)時(shí),進(jìn)入調(diào)時(shí)程序;for(;;){while(1){whil

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論