<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于51單片機的數字秒表的設計

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

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


1、1 總體方案的設計

數字秒表具有顯示直觀(guān)、讀取方便、精度高等優(yōu)點(diǎn),在計時(shí)中廣泛應用。本設計中用單片機和數碼管組成數字秒,表力求結構簡(jiǎn)單。

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

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

本地圖片,請重新上傳

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

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

1.2 單片機的選擇

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

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

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

單片機外部結構

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

本地圖片,請重新上傳

(1)主電源引腳Vss和Vcc

a、 Vss接地

b、 Vcc正常操作時(shí)為+5V接地

外接晶振引腳XTAL1和XTAL2

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

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

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

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

以保持內部RAM中的數據。

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

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

d、EA/Vpp 內部程序存儲器和外部程序存儲器選擇端。當EA/Vpp位高電平時(shí),訪(fǎng)問(wèn)內部程序存儲器,當EA/Vpp為低電平時(shí),則訪(fǎng)問(wèn)外部程序存儲器。對于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)是一個(gè)8位漏極開(kāi)路型雙向I/O口,在訪(fǎng)問(wèn)外部存儲器時(shí),它是分時(shí)傳送的低字節地址和數據總線(xiàn),P0口能以吸收電流的方式驅動(dòng)八個(gè)LSTTL負載。

b、P1口(P1.0~P1.7)是一個(gè)帶有內部上拉電阻的8位準雙向I/O口。能驅動(dòng)四個(gè)LSTTL負載。

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

d、P3口(P3.0~P3.7)是一個(gè)帶有內部上拉電阻的8位準雙向I/O口。能驅動(dòng)四個(gè)LSTTL負載。

1.3 顯示電路的選擇與設計

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

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

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

本地圖片,請重新上傳

1.4系統總體電路的設計

系統總體電路如下圖所示

AT89S52單片機為主電路的核心部分,各個(gè)電路均與單片機相連,由單片機統籌協(xié)調各個(gè)電路的運行工作。

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

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



本地圖片,請重新上傳

二 軟件設計

2.1主程序設計

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

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

2.2中斷程序設計

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

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

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

本地圖片,請重新上傳



上一頁(yè) 1 2 下一頁(yè)

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

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>