畢業(yè)設(shè)計(論文)-基于AT89C52單片機的倒計時定時器設(shè)計_第1頁
畢業(yè)設(shè)計(論文)-基于AT89C52單片機的倒計時定時器設(shè)計_第2頁
畢業(yè)設(shè)計(論文)-基于AT89C52單片機的倒計時定時器設(shè)計_第3頁
畢業(yè)設(shè)計(論文)-基于AT89C52單片機的倒計時定時器設(shè)計_第4頁
畢業(yè)設(shè)計(論文)-基于AT89C52單片機的倒計時定時器設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGEI基于AT89C52倒計時定時器設(shè)計摘要在日常的生活和工作中,倒計時定時器已成為人們?nèi)粘I钪斜夭豢缮俚奈锲罚瑥V泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。倒計時定時器具有實用性高、成本低、功耗低、易操作等優(yōu)點。本文主要介紹了基于AT89C52單片機控制的倒計時定時器的設(shè)計。文中闡述了設(shè)計該系統(tǒng)的一些基本背景、原理及系統(tǒng)的各部分組成等。本次設(shè)計實現(xiàn)了在4位八段LED顯示分秒、時間的設(shè)定、倒計時、復位、報警等功能。關(guān)鍵字:倒計時定時器AT89C52報警TheDesignofCountdownTimerBasedonAT89C52Abstract:Inourdailylifeandwork,countdowntimerhasbecomeessentialtodailylife.Itiswidelyusedinourfamily,stations,terminals,theaters,officesandotherpublicplaces,alsotakeagreatconveniencetopeople'slives,study,workandentertainment.Countdowntimerhasacharacterofpracticalandlow-cost,lowpowerconsumption,easyoperationandsoon.ThispaperintroducedthedesignofcountdowntimerbasedonAT89C52,anddescribedthebackground,principlesandthevariouspartsofthesystem.Thedesignhasachievedthemainfunctionsuchas:timesetting,timecount-down,resettingandalarm.Keywords:CountdownTimerAT89C52Alarm目錄第1章引言 11.1選題背景 11.2指導思想 21.3方案論證與選擇 21.4系統(tǒng)概述 4第2章系統(tǒng)總體設(shè)計 52.1模塊功能實現(xiàn)與原理 52.2計時精度 6第3章硬件及軟件設(shè)計 83.1主控模塊 83.1.1AT89C52的基本知識 83.1.2AT89C52的內(nèi)部結(jié)構(gòu) 93.1.3AT89C52的引腳功能描述 103.1.4AT89C52的工作模式 133.1.5AT89C51的內(nèi)部存儲器 143.2顯示模塊 153.3鍵盤模塊 163.4系統(tǒng)電路 183.4.1蜂鳴器報警/提示音電路設(shè)計 183.4.2電源電路設(shè)計 193.4.3時鐘電路設(shè)計 203.5系統(tǒng)軟件框圖 203.6編程語言選擇 21第四章結(jié)論 224.1總結(jié) 224.2系統(tǒng)展望 224.3在本次課程設(shè)計中獲得的學習體會 22致謝 23參考文獻 24附錄1 25附錄2 26第1章引言1.1選題背景倒計時定時器已成為人們?nèi)粘I钪斜夭豢缮俚奈锲?,廣泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。隨著技術(shù)的發(fā)展,人們已不再滿足于鐘表原先簡單的報時功能,希望出現(xiàn)一些新的功能,諸如日歷的顯示、鬧鐘的非接觸式止鬧、跑表功能、重要日期倒計時顯示等,以帶來更大的方便,而所有這些,又都是以數(shù)字化的倒計時定時器為基礎(chǔ)的。因此,研究實用倒計時定時器及其擴展應用,有著非?,F(xiàn)實的意義,具有很大的實用價值。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使倒計時定時器具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。雖然現(xiàn)在市場上已有現(xiàn)成的倒計時定時器集成電路芯片出售,價格便宜,使用也靈活,如可以隨意設(shè)置時、分、秒的輸出,改變顯示數(shù)字的大小等,并且由于集成電路技術(shù)的發(fā)展,特別是MOS集成電路技術(shù)的發(fā)展,使倒計時定時器具有體積小、攜帶方便,但是這里介紹的實用倒計時定時器可以滿足使用者的一些特殊要求,輸出方式靈活、功耗低、計時準確、性能穩(wěn)定、維護方便等優(yōu)點。[2]實用倒計時定時器是一個時間控制系統(tǒng),既能作為一般的時間顯示器,也可作為一個定時控制器,驅(qū)動負載或顯示信息,同時可以根據(jù)需要擴展其功能。在此設(shè)計研究過程中需綜合運用所學的模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機原理與應用、電子系統(tǒng)設(shè)計等課程的知識,掌握實用倒計時定時器的設(shè)計、組裝與調(diào)試方法,利用現(xiàn)代的電子系統(tǒng)設(shè)計、單片機等新電子技術(shù)以及現(xiàn)代的設(shè)計手段,系統(tǒng)地培養(yǎng)了綜合設(shè)計、操作調(diào)試、故障處理的能力,達到綜合素質(zhì)以及創(chuàng)新能力的提高。本次畢業(yè)設(shè)計中采用單片機作為主要芯片設(shè)計倒計時控制系統(tǒng)。本系統(tǒng)的設(shè)計實用性強、設(shè)計靈活方便并且適合在任何條件下進行定時,所以設(shè)計意義較為深遠。1.2指導思想通過對倒計時時鐘軟、硬部分的設(shè)計及調(diào)試,進一步掌握單片機的性能特點及工作原理。在設(shè)計過程中熟悉AT89C52系列單片機各個管腳的功能,學習單片機控制八段數(shù)碼管顯示的工作原理。提高單片機軟件部分的編程能力,特別是利用單片機C語言對單片機的編程能力。通過本次畢業(yè)設(shè)計總結(jié)在四年大學學習中學到的知識,并且提高實際操作能力,為以后進一步學習和工作打好基礎(chǔ)。1.3方案論證與選擇1.總體方案論證與選擇方案一:純硬件電路系統(tǒng)。各功能采用分離的硬件電路模塊實現(xiàn)。用時序邏輯電路實現(xiàn)時鐘功能,用555定時器實現(xiàn)鬧鐘的設(shè)定。但這種實現(xiàn)方法可靠性差、控制精度低,靈活性小、線路復雜、安裝調(diào)試不方便,而且不方便實現(xiàn)對系統(tǒng)的擴展。方案二:采用AT89C52單片機作為系統(tǒng)的控制核心。倒計時功能采用C語言編程利用單片機內(nèi)部定時器來實現(xiàn),可以使用LED八段數(shù)碼管顯示時間等信息。由于使用了單片機,整個系統(tǒng)可編程,系統(tǒng)的靈活性大大增加了。另外,本方案可以方便的實現(xiàn)其他功能的擴展。經(jīng)過以上的比較論證,選用方案二來完成項目設(shè)計的要求。2.模塊方案論證與選擇(1)時鐘模塊方案一:基本門電路搭建用基本門電路來實現(xiàn)時鐘發(fā)生器,電路結(jié)構(gòu)復雜,故障系數(shù)大,不易調(diào)試。方案二:專用時鐘芯片目前市場上已有很多實時時鐘芯片。如DS12887、DS1302、PCF8563、X1227等,芯片內(nèi)都集成了時鐘/日歷功能,給時鐘系統(tǒng)設(shè)計帶來很多方便。方案三:由單片機實現(xiàn)倒計時功能單片機內(nèi)部具有定時器,可方便實現(xiàn)定時功能。通過計算可知,使定時器每25ms產(chǎn)生一次中斷,當產(chǎn)生40次中斷后秒單元將加一,以此類推,從而實現(xiàn)時、分、秒的走時,并加以顯示。經(jīng)過考慮,本著實用可行的原則,由于AT89C52有內(nèi)部定時器,完全可以通過C語言變程來實現(xiàn)倒計時功能因此計時功能,定時模塊采用方案三來實現(xiàn)。(2)鍵盤模塊方案一:采用獨立式按鍵電路每個鍵單獨占有一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。[8]方案二:采用陣列式鍵盤此類鍵盤是采用行列掃描方式,當按鍵較多時可以降低占用單片機的I/O口數(shù)目。由于本系統(tǒng)使用用的鍵盤按鍵較少,I/O接口線不多,所以采用方案二。(3)顯示模塊方案一:采用液晶顯示。液晶特別是具有漢字顯示功能的液晶顯示器,來實現(xiàn)顯示功能,不僅可以實現(xiàn)基本的顯示信息,而且可以顯示豐富的符號指示信息以及文字指示信息,信息量豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長,不產(chǎn)生電磁輻射污染等優(yōu)點。方案二:使用多個數(shù)碼管顯示。LED數(shù)碼管是利用二極管發(fā)光顯示數(shù)字和字母,具有亮度大、接口設(shè)計比較容易,價格相對較便宜等優(yōu)點。由于本設(shè)計不需要顯示大的信息量,系統(tǒng)采用方案二。(4)止鬧功能方案一:采用聲音控制實現(xiàn)非接觸止鬧功能。此方案的優(yōu)點是操作方便,但由于聲控存在靈敏度的問題,在現(xiàn)場條件差的環(huán)境中,外界噪聲對正常聲音信號帶來的干擾,也比較容易引起誤動作。方案二:采用光電開關(guān)實現(xiàn)非接觸止鬧功能,因為光電開關(guān)利用物體對紅外線的反射,可檢測到物體的有無,方便有效,人體只需要靠近傳感器20CM以內(nèi)就可產(chǎn)生信號,完成止鬧功能。[3]方案三:采用按下止鬧按鈕實現(xiàn)接觸式止鬧。一般鐘表都具有鬧鐘功能,定時時間到,便自動啟動鬧鐘,發(fā)出鈴聲、音樂聲以提醒人們,再由人按下止鬧按鈕停止鬧鐘工作,此方案優(yōu)點是操作起來很方便。系統(tǒng)的止鬧模塊設(shè)計采本著實用,成本低的原則,采用用方案三實現(xiàn)止鬧功能。1.4系統(tǒng)概述利用單片機定時器及計數(shù)器產(chǎn)生定時效果通過編程形成倒計時效果,再利用數(shù)碼管動態(tài)掃描顯示單片機內(nèi)部處理的數(shù)據(jù)。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實現(xiàn)不同功能。系統(tǒng)上電自檢后,實時實現(xiàn)分鐘、秒信息的顯示,通過按鍵可實現(xiàn)校對時間、倒計時的設(shè)定和顯示。當設(shè)置的定時時間到時,單片機通過蜂鳴器來實現(xiàn)聲報警,利用開關(guān)實現(xiàn)止鬧的功能。第2章系統(tǒng)總體設(shè)計本設(shè)計主要功能是實現(xiàn)時間的設(shè)定、倒計時、報警功能,采用分秒顯示,在4位八段LED上顯示分和秒。若想設(shè)置時間,需復位;用定時器1進行按鍵掃描,判斷是否有鍵按下,若有鍵按下,是那個鍵按下;定時時間到則蜂鳴器發(fā)出警報;復位后停止發(fā)出警報聲音,時間顯示為系統(tǒng)初始時間(系統(tǒng)軟件設(shè)定),按下確認鍵,系統(tǒng)開始重新倒計時。結(jié)構(gòu)框圖如圖2-1所示:主控單元主控單元硬件復位電路鍵盤模塊顯示模塊圖2-1系統(tǒng)結(jié)構(gòu)框圖蜂鳴器報警2.1模塊功能實現(xiàn)與原理(1)主控單元主控單元主要有AT89C2單片機構(gòu)成,主要利用片內(nèi)定時器0進行定時,定時器1進行鍵盤掃描,控制各個模塊完成倒計時定時功能。(2)鍵盤模塊鍵盤模塊一共有5個按鍵,其中按鍵1和按鍵5分別設(shè)置時間的增減,按鍵2和按鍵4分別控制光標的左移和右移,按鍵3為確認鍵,按下此鍵開始倒計時。5個按鍵分別與p1.0~p1.4口連接,當沒有按鍵按下時這幾個口為高電平,當這幾個口為低電平時,表示有按鍵按下。(3)復位電路復位操作是使單片機進入某種確定的初始狀態(tài)。復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復位。(4)顯示模塊顯示模塊主要分為分顯示和秒顯示兩個部分,由四個共陽極八段數(shù)碼管;四個共陽極八段數(shù)碼管與P0口連接,公共端分別與四個PNP三極管連接,四個PNP三極管再與P2.0~P2.3連接,當這幾個口給低電平時三極管導通數(shù)碼管點亮。(5)蜂鳴器報警蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。蜂鳴器的正極接到VCC(+5V)電源上面,蜂鳴器的負極接到三極管的發(fā)射極E,三極管的基級B經(jīng)過限流電阻后由單片機的引腳控制,當引腳輸出高電平時,三極管截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當引腳輸出低電平時,三極管導通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制引腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。還可以在程序中改變單片機引腳輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。另外,改變引腳輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小。[1]2.2計時精度本設(shè)計利用MCU的定時器軟件計時,計時誤差首先取決于MCU的時鐘。(1)MCU時鐘引起的計時誤差MCU的fosc=12MHz,是由石英晶體振蕩器產(chǎn)生的,其頻率穩(wěn)定度優(yōu)于10-6,有時可達10-11。按10-6計算,每秒變化6微秒,100分鐘的變化僅為0.036S,故此變化可以忽略。(2)中斷響應時間造成的誤差計時定時器的初值,是按以下式計算出來的初填值=2n–TINT/Tc式中,2n為計時器的容量,這里是65536;TINT中斷(計時溢出)的時間;Tc為機器周期,這里Tc=2us。0.1S中斷的初值為15536.由于Tc為整數(shù),此初值是無誤差的。但是,由于中斷請求到執(zhí)行中斷服務程序的第一條指令是需要幾個Tc的時間,即中間響應時間。何況執(zhí)行第一條指令填入TL1還需要3個Tc,若中斷響應時間為3Tc,0.1s內(nèi)的計時誤差6T=12us,100min計時誤差為-0.72s,完全滿足計時精度要求。[5]第3章硬件及軟件設(shè)計3.1主控模塊本設(shè)計的主控模塊由AT89C52單片機構(gòu)成,利用片內(nèi)定時器通過軟件實現(xiàn)控制數(shù)碼管顯示、倒計時等功能。時間設(shè)定主要是靠鍵盤對時間進行設(shè)定,鍵盤主要有四個功能鍵和一個確定鍵。分別用于設(shè)定時間和確定開始倒計時。定時器的時間主要是依托單片機內(nèi)部TIME0可編程定時計數(shù)器實現(xiàn)時間的準確獲取。TIME0是一個通用的單通道8位定時器/計數(shù)器模塊。其主要特點如下:單通道計數(shù)器,比較匹配發(fā)生時清除定時器(自動加載),10位的時鐘預分頻器溢出和比較匹配中斷源(TOV0和OCF0)T/C(TCNT0)和輸出比較寄存器(OCR0)為8位寄存器。[4]中斷請求信號在定時器中斷標志寄存器TIFR都有反映。所有中斷都可以通過定時器中斷屏蔽寄存器TIMSK單獨進行屏蔽。T/C可以通過預分頻器由內(nèi)部時鐘源驅(qū)動,或者是通過T0引腳的外部時鐘源來驅(qū)動。時鐘選擇邏輯模塊控制使用哪一個時鐘源與什么邊沿來增加(或降低)T/C的數(shù)值,如果沒有選擇時鐘源T/C就不工作。時鐘選擇模塊的輸出定義為定時器時鐘clkT。雙緩沖的輸出比較寄存器OCR0一直與T/C的數(shù)值進行比較,比較匹配事件還將置位比較標志OCF0。設(shè)計中將TIME0作為整個系統(tǒng)的定時器時鐘來源,通過TIME0的定時功能實現(xiàn)對定時操作,由于TIME0是八位的定時計數(shù)器無法在一次操作中完成1秒的定時。在單片機內(nèi)部資源的操作中采取重復操作的方式實現(xiàn)一秒的準確定時操作。在系統(tǒng)的測量過程中通過TIME0的操作在過一秒之后初始設(shè)定的時間值將自動遞減到0,并且通過數(shù)碼管實現(xiàn)動態(tài)顯示。3.1.1AT89C52的基本知識AT89C52是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統(tǒng)控制應用場合。AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,如圖所示(本設(shè)計采用第二種封裝形式),以適應不同產(chǎn)品的需求。其主要功能特性:·兼容MCS51指令系統(tǒng)·8k可反復擦寫(>1000次)FlashROM·32個雙向I/O口·256x8bit內(nèi)部RAM·3個16位可編程定時/計數(shù)器中斷·時鐘頻率0-24MHz·2個串行中斷·可編程UART串行通道·2個外部中斷源·共6個中斷源·2個讀寫中斷口線·3級加密位·低功耗空閑和掉電模式·軟件設(shè)置睡眠和喚醒功能AT89C52為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。

3.1.2AT89C52的內(nèi)部結(jié)構(gòu)AT8C52功能框架圖如圖3-1所示:圖3-1AT8C52功能框架圖

AT8C52功能框封裝圖如圖3-2所示:圖3-2AT8C52功能框封裝圖3.1.3AT89C52的引腳功能描述AT89C52引腳名稱如表3-1所示:表3-1AT89C52引腳名稱引腳標記引腳編號端口類別DIPLCCQEFVss202216IVcc404438IP0.0~P0.739~3243~3637~30I/OP1.0~P1.71~82~94~44I/OP2.0~2.721~2824~311~3,24~31I/OP3.0~P3.710~1711,13~195,7~13I/ORST9104IALE/PROG303327I/OPSEN293236OEA/Vpp313529IXTAL2182014OXTAL1192115I·P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。·P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),參見表3-2。Flash編程和程序校驗期間,P1接收低8位地址。表3-2P1.0和P1.1的第二功能引腳號功能特性P1.0T2(定時計數(shù)器2外部計數(shù)脈沖輸入),時鐘輸出P1.1T2EX(定時計數(shù)2捕獲重裝載觸發(fā)和方向控制)P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號?!3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表所示:表3-3P3口第二功能表此外,P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。·RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位?!LE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設(shè)置ALE禁止位無效。·PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。·XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端?!TAL2:振蕩器反相放大器的輸出端。時鐘振蕩器:AT89C52中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖如下。圖3-3振蕩電路圖外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。3.1.4AT89C52的工作模式AT89C52有兩種可用軟件編程的省電模式,它們是空閑模式和掉電工作模式。這兩種方式是控制專用寄存器PCON(即電源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位來實現(xiàn)的。PD是掉電模式,當PD=1時,激活掉電工作模式,單片機進入掉電工作狀態(tài)。IDL是空閑等待方式,當IDL=1,激活空閑工作模式,單片機進入睡眠狀態(tài)。如需同時進入兩種工作模式,即PD和IDL同時為1,則先激活掉電模式。在空閑工作模式狀態(tài),CPU保持睡眠狀態(tài)而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,片內(nèi)RAM和所有特殊功能寄存器的內(nèi)容保持不變??臻e模式可由任何允許的中斷請求或硬件復位終止。終止空閑工作模式的方法有兩種,其一是任何一條被允許中斷的事件被激活,IDL(PCON.0)被硬件清除,即刻終止空閑工作模式。程序會首先響應中斷,進入中斷服務程序,執(zhí)行完中斷服務程序并緊隨 RETI(中斷返回)指令后,下一條要執(zhí)行的指令就是使單片機進入空閑模式那條指令后面的一條指令。其二是通過硬件復位也可將空閑工作模式終止。需要注意的是,當由硬件復位來終止空閑工作模式時,CPU通常是從激活空閑模式那條指令的下一條指令開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復位操作,硬件復位脈沖要保持兩個機器周期(24個時鐘周期)有效,在這種情況下,內(nèi)部禁止CPU訪問片內(nèi)RAM,而允許訪問其它端口。為了避免可能對端口產(chǎn)生意外寫入,激活空閑模式的那條指令后一條指令不應是一條對端口或外部存儲器的寫入指令。在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復位,復位后將重新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在Vcc恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩(wěn)定工作。[3]3.1.5AT89C51的內(nèi)部存儲器Flash閃速存儲器的編程:AT89C52單片機內(nèi)部有4k字節(jié)的FlashPEROM,這個Flash存儲陣列出廠時已處于擦除狀態(tài)(即所有存儲單元的內(nèi)容均為FFH),用戶隨時可對其進行編程。編程接口可接收高電壓(+12V)或低電壓(Vcc)的允許編程信號。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用EPROM編程器兼容。AT89C52單片機中,有些屬于低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上的型號和讀取芯片內(nèi)的名字節(jié)獲得該信息.AT89C52的程序存儲器陣列是采用字節(jié)寫入方式編程的,每次寫入一個字節(jié),要對整個芯片內(nèi)的PEROM程序存儲器。寫入一個非空字節(jié),必須使用片擦除的方式將整個存儲器的內(nèi)容清除。編程前,設(shè)置好地址、數(shù)據(jù)及控制信號。編程單元的地址加在P1口和P2口的P2.0-P2.3(11位地址范圍為0000H-0FFFH),數(shù)據(jù)從P0口輸入,引腳PSEN為低電平,RST保持高電平,EA/Vpp 引腳是編程電源的輸入端,按要求加上編程電壓,ALE/PROG引腳輸入編程脈沖(負脈沖)。編程時,可采用4-20MHz的時鐘振蕩器,AT89C52編程方法如下:1.在地址線上加上要編程單元的地址信號。2.在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3.激活相應的控制信號。4.在高電壓編程方式時,將EA/Vpp端加上+12V編程電壓。5.每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加上一個ALE/PROG編程脈沖。改變編程單元的地址和寫入的數(shù)據(jù),重復1—5步驟,直到全部文件編程結(jié)束。每個字節(jié)寫入周期是自身定時的,通常約為1.5ms。AT89C52單片機用數(shù)據(jù)查詢方式來檢測一個寫周期是否結(jié)束,在一個寫周期中,如需讀取最后寫入的那個字節(jié),則讀出的數(shù)據(jù)的最高位(P0.7)是原來寫入字節(jié)最高位的反碼。寫周期完成后,有效的數(shù)據(jù)就會出現(xiàn)在所有輸出端上,此時,可進入下一個字節(jié)的寫周期,寫周期開始后,可在任意時刻進行數(shù)據(jù)查詢。3.2顯示模塊本模塊的主要功能就是顯示倒計時的起始時間,開始倒計時后時間的變化以及顯示設(shè)定好的時間?;贏T89C52單片機的數(shù)碼管顯示分成了兩大塊:分鐘顯示和秒顯示。其工作原理由段碼線送出待顯示的字符,然后通過順序執(zhí)行依次選中每一位數(shù)碼管,同時使顯示字符在每一位上停留一段時間,這樣便可以看到4個LED的顯示,4個計數(shù)LED是由P0口控制,由于是共陽極,所以低電平有效。當程序順序執(zhí)行到數(shù)碼管動態(tài)顯示程序時,便可實現(xiàn)4個LED的動態(tài)顯示功能。動態(tài)顯示設(shè)計硬件圖如下圖3-4所示:圖3-4顯示電路設(shè)計原理圖LED顯示器是有多段發(fā)光二極管顯示字段的顯示器件,有共陽極和共陰極兩種,同時也有兩種顯示方式:靜態(tài)顯示和動態(tài)顯示。兩種方式相比較,靜態(tài)顯示的優(yōu)點是顯示亮度大。在單片機應用系統(tǒng)中使用多位LED顯示器時,為節(jié)省單片機的I/O口線,多采用動態(tài)顯示電路。由于本設(shè)計中采用的是多位LED顯示,故采用動態(tài)LED顯示。3.3鍵盤模塊鍵盤設(shè)計電路原理圖如下圖3-5所示:圖3-5鍵盤設(shè)計電路原理圖(1)鍵盤作用計算機控制系統(tǒng)中,數(shù)據(jù)和控制信號的輸入主要使用鍵盤,鍵盤接口,尤其是鍵輸入信號的軟件處理方法是影響系統(tǒng)使用和操作性能的重要因素,鍵盤接口和軟件的任務主要包括以下幾個方面:*檢測并判斷是否有鍵按下*按鍵開關(guān)的延時消抖功能*計算并確定按鍵的鍵值*程序根據(jù)計算出的鍵值進行一系列的處理和執(zhí)行(2)鍵盤的選擇鍵盤按結(jié)構(gòu)分為獨立式按鍵行列式,每類按譯碼方式的不同又分為編碼式和非編碼式兩種,單片機中一般都使用的是用軟件來識別和產(chǎn)生鍵代碼的非編碼式鍵盤行列式鍵盤編碼方式有靜態(tài)和動態(tài)兩種,靜態(tài)接口主要由一個行編碼器和列編碼器構(gòu)成,動態(tài)接口可采用計數(shù)器、譯碼器和數(shù)據(jù)選擇器來構(gòu)成這兩種鍵盤由硬件完成鍵的譯碼任務,一般小型儀器和控制系統(tǒng)中使用較多的是行列式和獨立式的非編碼鍵盤,如果系統(tǒng)要求實現(xiàn)多鍵同時按下的處理則采用非編碼獨立式較合適。[6]使用矩陣鍵盤,能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,總上所述本方案選擇非編碼式鍵盤。(3)鍵盤掃描流程圖如圖3-6:開始有鍵閉合延時10ms開始有鍵閉合延時10ms時否抖動?判斷閉合鍵鍵號,并保存閉合鍵釋放?返回NYNNY圖3-6鍵盤掃描流程圖3.4系統(tǒng)電路3.4.1蜂鳴器報警/提示音電路設(shè)計系統(tǒng)為了提示倒計時的完成設(shè)計了報警提示電路。主要是在系統(tǒng)進行時間設(shè)定時提示正在設(shè)置時間,和在倒計時完成時通過蜂鳴器的蜂鳴報警實現(xiàn)提示功能。電路主要有一個蜂鳴器和一個三極管組成。在倒計時完成時通過控制端口P3.0給三極管送入低電平使其導通,實現(xiàn)蜂鳴器報警。蜂鳴器電路設(shè)計原理圖如下圖3-7所示:圖3-7蜂鳴器電路設(shè)計原理圖3.4.2電源電路設(shè)計整個系統(tǒng)的工作采用外接5V直流電的方式給系統(tǒng)供電,由于系統(tǒng)用于精密的測量對電源的要求較高。所以在外接5V直流電的同時在系統(tǒng)電源介入口也進行相關(guān)的處理,以利于系統(tǒng)本身獲得穩(wěn)定性以及紋波系數(shù)較好的電源。電源設(shè)計原理圖如下圖3-8所示:圖3-8電源設(shè)計原理圖3.4.3時鐘電路設(shè)計時鐘電路是數(shù)字電路的核心。MCS-51單片機的時鐘電路設(shè)計通常有兩種形式:采用內(nèi)部振蕩方式和采用外部振蕩方式。內(nèi)部振蕩方式:MCS-51單片機內(nèi)有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。把這兩個引腳與作為反饋元件的晶體或陶瓷諧振器連接,就構(gòu)成了內(nèi)部自激振蕩器并產(chǎn)生振蕩時鐘脈沖。晶體或陶瓷振蕩器的頻率一般為1.2~12MHz,但需要根據(jù)單片機的具體要求而定。兩個電容C1和C2的值一般為30PF左右,需要根據(jù)晶體或陶瓷諧振蕩器的實際情況而定。[7]外部振蕩形式:外部振蕩形式就是辦外部已有的時鐘信號(如有源晶體振蕩器產(chǎn)生的時鐘信號)導入單片機內(nèi)。本設(shè)計采用內(nèi)部振蕩方式,如圖3-9所示:圖3-9晶振電路設(shè)計原理圖3.5系統(tǒng)軟件框圖系統(tǒng)軟件流框圖如下圖3-10所示:圖3-10系統(tǒng)軟件流框圖本系統(tǒng)當中,定時器0負責計時,并且以秒為單位,定時器1負責進行定時掃描,所以當進入系統(tǒng)主函數(shù)后,系統(tǒng)不停地進行顯示和按鍵處理,定時和按鍵掃描則在中斷中進行,這樣就提高了系統(tǒng)的實時性(消抖再也不用延時了)。3.6編程語言選擇編寫單片機的軟件的時候,應該盡量使用高級語言來編寫。使用匯編語言,逐條指令編寫,并且手工分配單片機中的內(nèi)存資源。由于匯編語言的低可讀性、低結(jié)構(gòu)邏輯復雜,在一個軟件的邏輯關(guān)系混亂后,要保證寫出來的軟件能安全運轉(zhuǎn)是很困難的,所以用用C語言編寫。第四章結(jié)論4.1總結(jié)整個設(shè)計所實現(xiàn)的功能非常簡單,歸結(jié)為四個字:定時報警。所謂定時就是實現(xiàn)AT89C52的定時器精確定時到1秒的功能,整個顯示部分實現(xiàn)了分顯示和秒顯示兩部分,同時實現(xiàn)了鍵盤的相關(guān)鍵值功能:按鍵3為確定啟動倒計時的功能鍵,按鍵1和按鍵5實現(xiàn)光標的左移和右移,按鍵2和按鍵4實現(xiàn)當前值的增加和減小。實現(xiàn)了硬件復位的功能,同時也實現(xiàn)了蜂鳴器報警的功能,同時在設(shè)定定時時間值的時候,實現(xiàn)了當前設(shè)定位的閃爍效果,當啟動測量以后,也實現(xiàn)了所設(shè)定時間值不閃爍的效果,同時也實現(xiàn)了對設(shè)定時間值的保存,開始倒計時后,除復位鍵有效外其它鍵均無效。最后,當測量結(jié)束的時候,按下鍵盤當中的復位鍵,實現(xiàn)系統(tǒng)復位,再次倒計時的功能。4.2系統(tǒng)展望隨著人們生活水平的提高,人們對倒計時定時器的要求越來越高,有單一的計時功能到發(fā)展到現(xiàn)在有多功能倒計時定時器。這些多功能倒計時定時器廣泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所。利用單片機作為倒計時定時器的控制核心可以做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,充分發(fā)揮軟件編程的優(yōu)點,減少因元器件精度不夠引起的誤差。設(shè)計中了解到倒計時定時器的迅猛發(fā)展,它已經(jīng)普遍應用到人們?nèi)粘Ia(chǎn)和生活之中了。倒計時定時器有很強的發(fā)展空間,因此我們有理由相信將來倒計時定時器會與我們的生產(chǎn)和生活更加緊密相連。4.3在本次課程設(shè)計中獲得的學習體會在本次畢業(yè)設(shè)計當中,自己深深的明白了理論知識一定要和實踐相結(jié)合的道理,只有把理論知識貫穿到實踐當中,才能真正的學到有用的知識,自己在這次畢業(yè)設(shè)計中也學到了很多新的知識。致謝這次畢業(yè)論文能夠得以順利完成,并非我一人之功勞,是所有指導過我的老師,幫助過我的同學和一直關(guān)心支持著我的家人對我的教誨、幫助和鼓勵的結(jié)果。我要在這里對他們表示深深的謝意!

感謝我的指導老師——XX老師,沒有您的悉心指導就沒有這篇論文的順利完成。

感謝我的父母,沒有你們,就沒有我的今天,你們的支持與鼓勵,永遠是支撐我前進的最大動力。

感謝身邊所有的朋友與同學,謝謝你們四年來的關(guān)照與寬容,與你們一起走過的繽紛時代,將會是我一生最珍貴的回憶。參考文獻[1]曹巧媛.單片機原理及應用[M].:電子工業(yè)出版社.1997.7.[2]沈衛(wèi)紅.單片機應用系統(tǒng)設(shè)計實例與分析[M].北京航空航天大學出版社.2003.1.[3]楊振江等.流行單片機子程序及應用實例[M].西安電子科技大學出版社.2002.7.[4]付家才.單片機控制工程實踐技術(shù)[M].北京:化學工業(yè)出版社,2004[5]孫育才,王榮興,孫化芳.新型AT89S52系列單片機及其應用[M].北京:清華大學出,2005[6]朱定華.單片機原理及接口技術(shù)實驗[M].北京:北方交通大學出版社,2002[7]張鑫,華臻,陳書謙.單片機原理及應用[M].北京:電子工業(yè)出版社,2005[8]何立民.MCS—51系列單片機應用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學出版社,1999[9]陳小忠,黃寧,趙小俠編著.單片機接口技術(shù)實用子程序[M].北京:人民郵政出版社,2005[10]ChenSteveStanleyDamster.VariableAirVolumeSystemforEnvironmentQuality[M],Mcgraw-HillCompany.1996.[11]DallasSemiconductorDataEtook[M].DallasSemiconductorCorp,.2000.[12]QuickGuildto1-WireNetUsingPCsandMicrocontrollers[M].ApplicationNote132.DallasSemiconductorcorp.1999.附錄1倒計時定時器原理圖:附錄2源程序:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharmin=9;//分鐘記時ucharsec=59;//秒鐘計時uintk_delay=0;ucharkey;uintmid=0;uchartime[5];ucharrocket=0;ucharbuff[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00};sbitbell=P3^0;voidk_scan(void);voidTime_0Init();voidTimeView();voidTime_1Init();voidDealKey(void);voidDelay();voidmain(){bell=1;Time_0Init();Time_1Init(); while(1){TimeView();DealKey();if(sec==0&&min==0) { TR0=0; bell=0; } }}voidTime_0Init(){TMOD=0x22;TH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論