<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機(jī)的數(shù)字秒表的設(shè)計

          基于51單片機(jī)的數(shù)字秒表的設(shè)計

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          近年來隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)的應(yīng)用正在不斷走下面還深入。本文簡單闡述了基于單片機(jī)的數(shù)字秒表的的設(shè)計。本設(shè)計的主要特點是計時精度達(dá)到0.01秒,是各種體育競賽的必要設(shè)備之一。

          本設(shè)計的數(shù)字秒表采用AT89S52單片機(jī)為主要器件,利用其定時器的原理,結(jié)合顯示電路、LED數(shù)碼管以及外部外部中斷電路來設(shè)計計時器。將軟硬件結(jié)合起來,使得系統(tǒng)能實現(xiàn)0~99.99秒的計時,計時精度位0.01秒。硬件系統(tǒng)利用proteus仿真,在仿真中就能觀察到系統(tǒng)的實際運(yùn)行情.
          一 硬件設(shè)計


          1、1 總體方案的設(shè)計

          數(shù)字秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛應(yīng)用。本設(shè)計中用單片機(jī)和數(shù)碼管組成數(shù)字秒,表力求結(jié)構(gòu)簡單。

          設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。硬件電路主要有主控制器、控制按鈕與顯示電路組成。主控制器采用單片機(jī)AT89S52,顯示電路采用四位共陰極數(shù)碼管顯示計時時間。

          本設(shè)計利用AT89S52單片機(jī)的定時器,使其能精確計時。利用中斷系統(tǒng)使其實現(xiàn)啟動和暫停的功能,P0口輸出段碼數(shù)據(jù),P2.0~P2.2連上譯碼器作為位選,P3.2和P3.3接口的兩個按鈕分別實現(xiàn)啟動和暫停功能。設(shè)計的基本要求是正確性。硬件電路按下圖進(jìn)行設(shè)計。

          本地圖片,請重新上傳

          計時器采用T0中斷實現(xiàn),定時溢出中斷周期為1ms,當(dāng)溢出中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出10次中斷請求就對10ms位(即最后一位)加一,達(dá)到100次就對100ms位加一,以此類推,直到99.99s為止。

          再看按鍵的處理。兩個按鍵采用中斷的方法,設(shè)置外部中斷0和外部中斷1位脈沖邊沿觸發(fā)方式,這樣一來每當(dāng)按鍵按下時便會觸發(fā)中斷,從而實現(xiàn)啟動和暫停。

          1.2 單片機(jī)的選擇

          本設(shè)計在選取單片機(jī)時,充分借鑒了許多成型產(chǎn)品使用單片機(jī)的經(jīng)驗。并根據(jù)自己的實際情況,選用了ATMEL公司的AT89S52。

          ATMEL公司的89系列單片機(jī)以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作、低廉的價格完全替代了87C51/62和8751/52,低電壓、低功耗,有DIP、PLCC、QFP封裝,是目前性能最好、價格最低、最受歡迎的單片機(jī)之一。

          AT89S52為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8XC52相同,其主要用于匯聚調(diào)整時的功能控制。功能包括對匯聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,匯聚調(diào)整控制,匯聚測試圖控制等。

          單片機(jī)外部結(jié)構(gòu)

          AT89S52單片機(jī)采用40腳的DIP封裝,如下所示。

          本地圖片,請重新上傳

          (1)主電源引腳Vss和Vcc

          a、 Vss接地

          b、 Vcc正常操作時為+5V接地

          外接晶振引腳XTAL1和XTAL2

          a、XTAL1內(nèi)部振蕩電路反相放大器的輸出端,是外接晶體的一個引腳。當(dāng)采用外部振蕩時,此引腳接地。

          b、XTAL2內(nèi)部振蕩電路反相放大器的輸出端,是外接晶體的的另一端。當(dāng)采用外部振蕩時,此引腳接外部振蕩源。

          (2)控制或與其他電源復(fù)用引腳

          a、RST/VPD 當(dāng)振蕩器運(yùn)行是,在此引腳上出現(xiàn)兩個機(jī)器周期的高電平(由低到高跳變),將使單片機(jī)復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,

          以保持內(nèi)部RAM中的數(shù)據(jù)。

          b、ALE/PROG 正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部存儲器,ALE引腳以不變的頻率(振蕩器頻率的1/6)周期性的發(fā)出正脈沖信號。因此,它可以用作對外輸出的時鐘,或用于定時目的。

          c、PSEN 外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,PSEN在每個機(jī)器周期內(nèi)兩次有效。

          d、EA/Vpp 內(nèi)部程序存儲器和外部程序存儲器選擇端。當(dāng)EA/Vpp位高電平時,訪問內(nèi)部程序存儲器,當(dāng)EA/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM編程期間,此引腳上加21VEPROM編程電源(Vpp)。

          (3)輸入/輸出引腳P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7。

          a、P0口(P0.0~P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負(fù)載。

          b、P1口(P1.0~P1.7)是一個帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動四個LSTTL負(fù)載。

          c、P2口(P2.0~P2.7)是一個帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅(qū)動四個LSTTL負(fù)載。

          d、P3口(P3.0~P3.7)是一個帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動四個LSTTL負(fù)載。

          1.3 顯示電路的選擇與設(shè)計

          對于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠(yuǎn)距離觀看;對于具有驅(qū)動電路和單片機(jī)接口的液晶顯示模塊,一般多采用并行接口,對單片機(jī)的接口要求較高,占用資源多;另外,AT89S52單片機(jī)本身沒有專門的液晶驅(qū)動接口。而數(shù)碼管作為一種主動顯示器件,具有亮度高、響應(yīng)速度快、價格便宜、易于購買等優(yōu)點,而且有遠(yuǎn)距離視覺效果,很適合夜間或者遠(yuǎn)距離操作。因此在本設(shè)計中,我們采用7段數(shù)碼管作為顯示介質(zhì)。

          數(shù)碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設(shè)計需要采用四位數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動態(tài)顯示。

          動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時顯示的感覺。

          本地圖片,請重新上傳

          1.4系統(tǒng)總體電路的設(shè)計

          系統(tǒng)總體電路如下圖所示

          AT89S52單片機(jī)為主電路的核心部分,各個電路均與單片機(jī)相連,由單片機(jī)統(tǒng)籌協(xié)調(diào)各個電路的運(yùn)行工作。

          開始鍵和暫停鍵使用了外部中斷,所以需要連到單片機(jī)的P3.2和P3.3引腳上,這兩個I/O口的第二功能是單片機(jī)的外部中斷0端口和外部中斷1端口。

          顯示電路由四位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,P0.0~P0.7分別控制數(shù)碼管的a b c d e f g dp顯示,位控制接在P2.0和P2.1兩個口,在通過一個2—4譯碼器實現(xiàn)位控制。



          本地圖片,請重新上傳

          二 軟件設(shè)計

          2.1主程序設(shè)計

          本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個子程序之間的關(guān)系。

          主程序主要是設(shè)置定時器大的工作模式,對定時器賦初值,開總中斷、兩個外部中斷以及定時器溢出中斷。并設(shè)置外部中斷為脈沖邊沿觸發(fā)方式。

          2.2中斷程序設(shè)計

          本方案中用到了三個中斷:外部中斷0、外部中斷1和定時器T0溢出中斷。CPU在響應(yīng)中斷時,先處理高級中斷,后處理低級中斷,若有多個同級中斷時,則應(yīng)按自然優(yōu)先順序處理。例如當(dāng)CPU正在處理一個中斷申請時,又出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,這時,CPU就暫停對當(dāng)前優(yōu)先級較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級比它高的中斷請求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級的中斷服務(wù)程序。而當(dāng)CPU為級別高的中斷服務(wù)程序服務(wù)時,如果級別低的中斷發(fā)出中斷請求,此時CPU是不會響應(yīng)的,所以為了避免開始和暫停兩個按鍵中的一個出現(xiàn)沒有響應(yīng)的情況,在進(jìn)行編程是要注意中斷的使用,避免出現(xiàn)中斷的嵌套。合理分配中斷對本設(shè)計是很重要的。

          (1)外部中斷0服務(wù)程序

          外部中斷0服務(wù)程序結(jié)合外部P3.2鍵實現(xiàn)數(shù)字秒表的啟動功能。流程如下圖所示。

          本地圖片,請重新上傳



          上一頁 1 2 下一頁

          關(guān)鍵詞: 51單片機(jī)數(shù)字秒

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();