某大學(xué)-單片機-計時電子鐘_第1頁
某大學(xué)-單片機-計時電子鐘_第2頁
某大學(xué)-單片機-計時電子鐘_第3頁
某大學(xué)-單片機-計時電子鐘_第4頁
某大學(xué)-單片機-計時電子鐘_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

緒論單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領(lǐng)域的廣泛使用。從上世紀80年代,由當時的4位、8位單片機,發(fā)展到現(xiàn)在的32位300M的高速單片機目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊和數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝影機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械以及各種智能機械了。因此,單片機的學(xué)習(xí)、開發(fā)和使用將造就一批計算機使用和智能化控制的科學(xué)家、工程師。單片機廣泛使用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。本設(shè)計主要是設(shè)計基于8051單片機的計時電子鐘,在數(shù)碼管上顯示時間,并且,通過鍵盤可以修改時間。用LED顯示代替了指針顯示,減小了計時誤差,這種表具有時分秒顯示時間的功能,還可以校對,片選的靈活性好?;A(chǔ)知識1.1定時器/計數(shù)器定時器/計數(shù)器工作原理在MCS-51單片機內(nèi)繼承了兩個16位的定時器/計數(shù)器T0和T1,其基本工作原理是加一計數(shù),即對指定的脈沖信號進行加一操作,直到出現(xiàn)溢出為止。定時器/計數(shù)器的基本工作原理是加一計數(shù)器,不過作為定時器或計數(shù)器是稍有不同。定時器。作為定時器使用時,使用的脈沖信號為單片機的內(nèi)部時鐘信號。每個機器周期產(chǎn)生一個計數(shù)脈沖,是計數(shù)器加一,因此,計數(shù)速率固定為fosc/12。計數(shù)器。作為計數(shù)器使用時,使用的脈沖信號為從單片機外部輸入的脈沖信號。T0對應(yīng)單片機引腳P3.4,T1對應(yīng)單片機引腳P3.5,當檢測到引腳的輸入脈沖信號發(fā)生負跳變時計數(shù)器加一。當加一計數(shù)器出現(xiàn)溢出是時,產(chǎn)生溢出信號通知單片機進行相應(yīng)的處理。由于識別一個從1到0的負跳變需要兩個機器周期,所以最快的計數(shù)速率是振蕩頻率的1/24。當TMOD中的M1、M2為10時,定時器/計數(shù)器工作于方式2。工作方式2為一個能自動重新裝入初值的8位定時器/計數(shù)器。TL0用作8位計數(shù)器,TH0用作數(shù)據(jù)寄存器。當TL0計數(shù)滿產(chǎn)生溢出時,一方面置1溢出標志TF0,供軟件查詢或向CPU請求中斷;另一方面,自動將TH0中的內(nèi)容送至TL0,使8位定時器/計數(shù)器重新裝入的初值開始重新計數(shù)。1.2LED數(shù)碼管LED數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。A、靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O口進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O口驅(qū)動。故實際使用時必須增加驅(qū)動器進行驅(qū)動,增加了硬體電路的復(fù)雜性。B、動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示介面是單片機中使用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會亮。透過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。1.3發(fā)光二級管發(fā)光二極管簡稱LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個PN結(jié),具有單向?qū)щ娦?。當在發(fā)光二極管PN結(jié)上加正向電壓時,PN結(jié)勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴和電子相遇后會產(chǎn)生復(fù)合,復(fù)合時產(chǎn)生的能量大部分以光的形式出現(xiàn),因此而發(fā)光。發(fā)光二極管在制作時,使用的材料有所不同,那么就可以發(fā)出不同顏色的光。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。常用的發(fā)光二極管使用電路有四種,即直流驅(qū)動電路、交流驅(qū)動電路、脈沖驅(qū)動電路、變色發(fā)光驅(qū)動電路。當它處于正向工作狀態(tài)時(即兩端加上正向電壓),電流從LED陽極流向陰極時,半導(dǎo)體晶體就發(fā)出從紫外到紅外不同顏色的光線,光的強弱和電流有關(guān)。第二章系統(tǒng)實現(xiàn)本設(shè)計任務(wù)的目的為設(shè)計一個計時電子鐘,同時顯示時、分、秒,而且在時分之間和分秒之間加入隨秒信號閃爍的冒號,要求通過鍵盤可以修正時間。該電子鐘有8051、4*6鍵盤、六位數(shù)碼管、四個發(fā)光二級管和外部脈沖電路等構(gòu)成由內(nèi)部定時器T0產(chǎn)生一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿24小時為一天,之后,時分秒同時清零,開始新的計時。而按鍵S1擁有位選功能,按下S1由輸入脈沖個數(shù)不同,可以實現(xiàn)對時、分、秒的選中功能,通過鍵盤可以達到直接修改的目的。2.1系統(tǒng)框圖鍵盤及脈沖信號鍵盤及脈沖信號數(shù)碼管顯示8051單片機數(shù)碼管顯示8051單片機冒號閃爍冒號閃爍2.2發(fā)光二極管試驗儀上有8只發(fā)光二級管及相應(yīng)驅(qū)動電路,共陰極連接,其輸入端為高電平“1”時,發(fā)光二級管點亮。2.3鍵盤及LED顯示電路顯示控制的位碼由74HC374輸出,經(jīng)ULN2003反向驅(qū)動后,做LED的位選通信號。位選通信號也可以作為鍵盤列掃描碼盤掃描的行數(shù)據(jù)從74HC245讀回,374輸入的列掃描碼經(jīng)245讀出后,用來判斷是否有鍵被按下,374輸出的低電平經(jīng)過按鍵被接到245的端口上,這樣從245讀回的數(shù)據(jù)就會有低位,根據(jù)374輸出的列信號和245讀出的行信號,就可以判斷哪個鍵被按下。LED顯示的段碼由另一個74HC374輸出。將KEY/LEDCS接到相應(yīng)的地址譯碼器上。位碼輸出地址為0X002H,段碼輸出地址為)X004H,鍵盤行碼讀回地址為0X001H,此處X是由KEY/LEDCS決定。例如將KEY/LEDCS接到地址譯碼器CS0上,那么位碼輸出地址就是08002H,段碼輸出地址就是08004H,鍵盤行碼讀回地址為08001H。鍵盤及LED顯示電路第三章軟件實現(xiàn)3.1主程序?qū)崿F(xiàn)主程序主要用于系統(tǒng)的初始化:設(shè)置計時緩沖區(qū)的位置及初值,設(shè)置8051的工作方式、定時器的工作方式和計數(shù)初值等等。主程序流程如下圖所示:開始開始系統(tǒng)初始化系統(tǒng)初始化允許允許T0中斷調(diào)用顯示子程序調(diào)用顯示子程序調(diào)用鍵盤子程序調(diào)用鍵盤子程序3.2定時中斷子程序?qū)崿F(xiàn)系統(tǒng)使用12MHz的晶振,使用定時器T0采用工作方式2,定時器的最大定時時間為0.256ms,遠小于1s,因此本系統(tǒng)采用定時器和軟件循環(huán)結(jié)合的定時方法。定時器采用T0工作在方式2,每個50us溢出一次中斷,則循環(huán)16次延時時間是1s,秒計時60次為1分,分計時60次為一小時,小時計時24次則計時重新從00:00:00開始。計時初值為256-50/1=206=CE所以TH0=CEHTL0=CEH。MCS_51單片機只有二進制加法指令,而時間是按十進制遞增的,因此用加法指令后必須進行二-十進制轉(zhuǎn)換。保護現(xiàn)場T0中斷程序流程圖保護現(xiàn)場自動重裝定時器初值自動重裝定時器初值循環(huán)次數(shù)減1循環(huán)次數(shù)減1滿滿16次?否秒加1秒加1冒號閃爍冒號閃爍滿滿60s?否是秒清秒清0,分加1滿60滿60分?、否是分清分清0,時加1滿滿24時?否時清0時清0返回恢復(fù)現(xiàn)場返回恢復(fù)現(xiàn)場3.3外部中斷子程序?qū)崿F(xiàn)外部中斷T0用于用鍵盤修改當前時間值,當按住S1鍵,由輸入脈沖個數(shù)的不同選中不同的位,按下鍵盤應(yīng)設(shè)定的時間數(shù)值即可修改當前顯示的時間值。T0中斷程序?qū)崿F(xiàn)流程圖開始開始保護現(xiàn)場保護現(xiàn)場中斷中斷6次?是否當前顯示值改變當前顯示值改變恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場返回返回第四章硬件連線連線連接孔1連接孔2注釋1CS0KEY/LEDCS片選2P10發(fā)光二級管L0用作閃爍冒號3P11發(fā)光二級管L2用作閃爍冒號4P12發(fā)光二級管L4用作閃爍冒號5P13發(fā)光二級管L7用作閃爍冒號6P32單脈沖上升沿用于修改時間7P33單脈沖下降沿用于修改時間第五章程序?qū)崿F(xiàn)OUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口INequ08001h;鍵盤讀入口LEDBufequ60h;顯示緩沖Hourequ40hMinuteequ41hSecondequ42hC100usequ43hTickequ10000T100usequ256-50ljmpStartorg0003hljmpint0org000bhT0Int:pushPSWpushACCmova,C100us+1jnzGoondecC100usGoon:decC100us+1mova,C100usorla,C100us+1jnzExitmovC100us,#high(Tick)movC100us+1,#low(Tick)incSecondcplp1.0cplp1.1cplp1.2cplp1.3mova,Secondcjnea,#60,ExitmovSecond,#0incMinutemova,Minutecjnea,#60,ExitmovMinute,#0incHourmova,Hourcjnea,#24,ExitmovHour,#0Exit:popACCpopPSWretiDelay2:;延時子程序movr7,#0lpl:djnzr7,lplretdelay1:movr7,#0DelayLoop:djnzr7,DelayLoopdecajnzdelayloopretLEDMAP:;八段管顯示碼db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhDisplayLED:movr0,#LEDBufmovr1,#6;共6個八段管movr2,#00100000b;從左邊開始顯示Loop:movdptr,#OUTBITmova,#0movx@dptr,a;關(guān)所有八段管mova,@r0movdptr,#OUTSEGmovx@dptr,amovdptr,#OUTBITmova,r2movx@dptr,acalldelay2mova,r2;顯示下一位rramovr2,aincr0djnzr1,Loopret;===============================================ToLED:movdptr,#LEDMapmovca,@a+dptrretStart:movr6,#0movTMOD,#02h;模式2,定時器movTH0,#T100usmovTL0,#T100usmovtcon,#01hmovIE,#10000011b;EA=1,IT0=1movHour,#0movMinute,#0movSecond,#0movC100us,#high(Tick)movC100us+1,#low(Tick)setbTR0;啟動定時器0MLoop:mova,Hourmovb,#10divabcallToLEDmovLEDBuf,amova,bcallToLEDorla,#80hmovLEDBuf+1,amova,Minutemovb,#10divabcallToLEDmovLEDBuf+2,amova,bcallToLEDorla,#80hmovLEDBuf+3,amova,Secondmovb,#10divabcallToLEDmovLEDBuf+4,amova,bcallToLEDmovLEDBuf+5,acallDisplayLEDjbp3.3,remlincr6mova,#0f0hcalldelay1cjner6,#7,remlmovr6,#0reml:ljmpmloopint0:cjner6,#1,hllcallL2mova,#0calldelay1mova,hourmovb,#10divabmovr3,bmova,r4movb,#10mulabadda,r3movhour,ajmpreturn1;====================HL:cjner6,#2,MHlcallL2mova,#0CALLDelay1mova,HourMOVb,#10divabmovb,#10mulabadda,R4movHour,ajmpreturn1;====================MH:cjner6,#3,MLlcallL2mova,#0CALLDelay1mova,MinuteMOVb,#10divabmovr3,bmova,r4movb,#10mulabadda,r3movMinute,ajmpreturn1;=============ML:cjner6,#4,SHlcallL2mova,#0CALLDelay1mova,MinuteMOVb,#10divabmovb,#10mulabadda,R4movMinute,ajmpreturn1;===================SH:cjner6,#5,SLlcallL2mova,#0CALLDelay1mova,SecondMOVb,#10divabmovr3,bmova,r4movb,#10mulabadda,r3movSecond,ajmpreturn1;=============SL:cjner6,#6,return1lcallL2mova,#10CALLDelay1mova,SecondMOVb,#10divabmulabadda,R4movSecond,areturn1:movr6,#0retI;L2:pushpswpushaccL1:movdptr,#outbitMovr5,#11011111bMova,r5Movx@dptr,aMovdptr,#inMovxa,@dptrJnbacc.3,sevenJnbacc.2,fourJnbacc.1,oneJnbacc.0,zero;==========Movdptr,#outbitMova,r5RraMov

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論