基于單片機(jī)的多功能秒表設(shè)計.doc
《基于單片機(jī)的多功能秒表設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的多功能秒表設(shè)計.doc(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
光電信息綜合設(shè)計報告 多功能秒表設(shè)計 院(系)名稱 信息工程學(xué)院 專 業(yè) 名 稱 光電信息科學(xué)與工程 姓 名 學(xué) 號 0 指 導(dǎo) 教 師 2018年 5 月 20日 摘 要 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機(jī)的多功能電子秒表設(shè)計。本設(shè)計主要特點是具有倒計時功能,還可以按圈計時,而且誤差在0.01s,是各種體育競賽的必備設(shè)備之一,另外硬件部分設(shè)置了查看按鍵,還具備有定時提醒功能,讓你時時刻刻都掌握時間。 本設(shè)計的數(shù)字電子秒表系統(tǒng)采用STC89C52單片機(jī)為中心器件,利用其定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合顯示電路、數(shù)碼管以及外部中斷電路來設(shè)計計時器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)4位LED顯示,顯示時間99s內(nèi),能正確地進(jìn)行計時,同時能記錄10組時間,并在暫停是對時間進(jìn)行查詢。其中軟件系統(tǒng)采用C語言編寫程序,包括顯示程序,定時中斷服務(wù)延時程序等,并在KEIL中調(diào)試運(yùn)行,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態(tài)。 關(guān)鍵字:單片機(jī);數(shù)字電子秒表;提醒 目 錄 1 總體設(shè)計方案 1 2 硬件設(shè)計 3 2.1 單片機(jī)的選擇 3 2.2 顯示電路的選擇與設(shè)計 5 2.3 按鍵電路的選擇與設(shè)計 6 2.4 時鐘電路的選擇與設(shè)計 6 2.5 系統(tǒng)總電路的設(shè)計 7 3 軟件設(shè)計 9 3.1 程序設(shè)計思想 9 3.2 主程序設(shè)計 9 3.3 中斷程序設(shè)計 10 3.4程序模塊設(shè)計: 11 主程序 11 (2)停止子程序 14 (3)復(fù)位子程序 14 (4)按鍵消抖程序 15 4 多功能秒表的安裝與調(diào)試 16 4.1 軟件的仿真與調(diào)試 16 4.2 硬件的安裝與調(diào)試 16 4.3 實物調(diào)試 17 結(jié) 論 19 1 總體設(shè)計方案 多功能秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛使用。本設(shè)計用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單、精度高為目標(biāo)。 設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,時鐘功能,倒計時,計時與顯示電路和回零、啟動和停表電路等。主控制器采用單片機(jī)STC89C52,顯示電路采用共陽極LED數(shù)碼管顯示計時時間。 本設(shè)計利用STC89C52單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P2口作位掃描輸出,P1^0,P1^1,P1^2,P1^3,P1^4口接5個按鈕開關(guān),分別實現(xiàn)開始、記錄、清除,方向和調(diào)整。電路原理圖設(shè)計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照圖1-1進(jìn)行設(shè)計。 STC89C52 單片機(jī)控制系統(tǒng) 四位數(shù)碼管 燈光提示系統(tǒng) 控制開關(guān) 圖1-1 智能秒表顯示硬件電路基本原理圖 根據(jù)要求知道秒表設(shè)計主要實現(xiàn)的功能是倒計時、計時和時鐘顯示。因此設(shè)置了五個按鍵和四位數(shù)碼管顯示時間,五個按鍵中,按鍵1是開始按鈕:可控制系統(tǒng)的開關(guān);按鍵2為記錄按鍵:在秒表模式運(yùn)行時,可保存數(shù)據(jù),在其他狀態(tài)時還有復(fù)用功能;按鍵3為清除鍵:在系統(tǒng)計時時可以復(fù)位時間,在查看數(shù)據(jù)、調(diào)整時間時,還有其他功能;按鍵4為方向鍵,調(diào)節(jié)時間計時時的正反向;按鍵5為調(diào)整按鍵:調(diào)整和設(shè)置時間。利用這五個建來實現(xiàn)秒表的全部功能,而四個位數(shù)碼管則能顯示最多99秒內(nèi)的計時。 計時采用定時器T0中斷完成,定時溢出中斷周期為10ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次中斷請求就對毫秒計數(shù)單元進(jìn)行加一,達(dá)到2次就對十毫秒位進(jìn)行加一,就是進(jìn)位0.01,然后按時鐘的取值范圍進(jìn)行進(jìn)位。 再看按鍵的處理。這六個鍵可以采用中斷的方法,也可以采用掃描的方法來識別。 設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器采用單片機(jī)STC89C52,顯示電路采用共陽極LED數(shù)碼管顯示計時時間,五個按鍵均采用觸點式按鍵。 2 硬件設(shè)計 2.1 單片機(jī)的選擇 本課題在選取單片機(jī)時,充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗,并根據(jù)自己的實際情況,選擇了STC公司的STC89C52。 STC公司的89系列單片機(jī)以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價格、超強(qiáng)的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP、PLCC、QFP封裝,有民用型、工業(yè)級、汽車級、軍品級等多種溫度等級,是當(dāng)今世界上性能最好、價格最低、最受歡迎的八位單片機(jī)。 STC89C52R為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。 單片機(jī)的外部結(jié)構(gòu) STC89C52單片機(jī)采用40引腳的雙列直插封裝方式。圖2-1為引腳排列圖, 40條引腳說明如下: 主電源引腳Vss和Vcc ① Vss接地 ② Vcc正常操作時為+5伏電源 外接晶振引腳XTAL1和XTAL2 ① XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當(dāng)采用外部振蕩器時,此引腳接地。 ② XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時,此引腳接外部振蕩源。 圖2-1 單片機(jī)引腳圖 控制或與其它電源復(fù)用引腳RST/VPD,ALE/,和/Vpp ① RST/VPD 當(dāng)振蕩器運(yùn)行時,在此引腳上出現(xiàn)兩個機(jī)器周期的高電平(由低到高跳變),將使單片機(jī)復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。 ② ALE/正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖,ALE 端可以驅(qū)動(吸收或輸出電流)八個LSTTL電路。對于EPROM型單片機(jī),在EPROM編程期間,此引腳接收編程脈沖(功能) ③ 外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,在每個機(jī)器周期內(nèi)兩次有效。同樣可以驅(qū)動八LSTTL輸入。 ④ /Vpp、/Vpp為內(nèi)部程序存儲器和外部程序存儲器選擇端。當(dāng)/Vpp為高電平時,訪問內(nèi)部程序存儲器,當(dāng)/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM型單片機(jī),在EPROM編程期間,此引腳上加21伏EPROM編程電源(Vpp)。 輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 ① P0口(P0.0 - P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負(fù)載。 ② P1口(P1.0 - P1.7)是一個帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負(fù)載。 ③ P2口(P2.0 - P2.7)是一個帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅(qū)動(吸收或輸出電流)四個LSTTL負(fù)載。 ④ P3口(P3.0 - P3.7)是一個帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負(fù)載。 STC89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,STC89C52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。CPU是單片機(jī)的核心部件。它由運(yùn)算器和控制器等部件組成。 本設(shè)計采用STC的STC89C52微處理器,主要基于以下幾個因素: ① STC89C52為51內(nèi)核,仿真調(diào)試的軟硬件資源豐富。 ② 性價比高,貨源充足。 ③ 功耗低,功能強(qiáng),靈活性高。 ④ DIP40封裝,體積小,便于產(chǎn)品小型化。 ⑤ 為EEPROM程序存儲介質(zhì),1000次以上擦寫周期,便于編程調(diào)試。 工作電壓范圍寬:2.7V-6V,便于交直流供電。 2.2 顯示電路的選擇與設(shè)計 對于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠(yuǎn)距離觀看;對于具有驅(qū)動電路和單片機(jī)接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對單片機(jī)的接口要求較高,占用資源多;另外,STC89C52單片機(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)顯示。 圖2-2 顯示電路基本原理圖 動態(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),只要每位顯示間隔足夠短就可以給人同時顯示的感覺。 2.3 按鍵電路的選擇與設(shè)計 本設(shè)計中有五個按鍵,分別實現(xiàn)開始、記錄、清除,方向和調(diào)整功能。這五個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。系統(tǒng)采用的是掃描的查詢方法來識別按鍵的五個按鍵均采用低電平有效,具體電路連接圖如圖2-3所示。 當(dāng)按鍵沒有按下時,單片機(jī)的I/O口直接連接電源,因此需要接上拉電阻來進(jìn)行限流,本設(shè)計中選取阻值為2kΩ 的電阻作為上拉電阻,根據(jù)計算可知此時的灌電流為2.5mA看STC89C52的資料得知次電流在安全范圍內(nèi),符合安全設(shè)計要求。 圖2-3 按鍵電路 2.4 時鐘電路的選擇與設(shè)計 單片機(jī)的時鐘信號用來提供單片機(jī)內(nèi)各種微操作的時間基準(zhǔn),89S52片內(nèi)設(shè)有一個由反向放大器所構(gòu)成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,89S52單片機(jī)的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時鐘很少用,若要用時,只要將XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。 時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機(jī)使用。P1在每一個狀態(tài)S的前半部分有效,P2在每個狀態(tài)的后半部分有效。本設(shè)計采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。本設(shè)計系統(tǒng)的時鐘電路如圖1-5所示。只要按照圖2-4所示電路進(jìn)行設(shè)計連接就能使系統(tǒng)可靠起振并能穩(wěn)定運(yùn)行。圖中,電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~33pF。但在時鐘電路的實際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設(shè)計中采用大小為30pF的電容和12MHz的晶振。 圖2-4 內(nèi)部振蕩電路 2.5 系統(tǒng)總電路的設(shè)計 系統(tǒng)總電路由以上設(shè)計的顯示電路,時鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如圖2-5所示。 STC89C52單片機(jī)為主電路的核心部分,各個電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個電路的運(yùn)行工作。 STC89C52單片機(jī)提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機(jī)提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。 圖2-5 系統(tǒng)總電路圖 復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個專用的硬件復(fù)位接口,并設(shè)置為高電平有效。 按鍵電路與單片機(jī)的端口連接可以由用戶自己設(shè)定,本設(shè)計中按鍵均設(shè)為低電平有效。 顯示電路由四位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制端和4位位控制端,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,STC89C52的P0口沒有集成上拉電阻,高電平的驅(qū)動能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動能力,對應(yīng)的數(shù)碼管導(dǎo)通顯示。 通過以上設(shè)計已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計以大功告成,剩下的部分就是對單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實現(xiàn)數(shù)字電子秒表的全部功能。 3 軟件設(shè)計 3.1 程序設(shè)計思想 本設(shè)計采用了C語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機(jī)器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。 C語言具有下列特點: 1. C是中級語言 它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計算機(jī)最基本的工作單元。 2. C是結(jié)構(gòu)式語言 結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。 3. C語言功能齊全 C語言具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動器。而且計算功能、邏輯判斷功能也比較強(qiáng)大,可以實現(xiàn)決策目的。 4. C語言適用范圍大 C語言還有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機(jī)型。 3.2 主程序設(shè)計 本系統(tǒng)程序主要模塊由主程序、子程序、定時中斷服務(wù)程序。其中主程序是整個程序的主體。可以對各個中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個子程序之間的聯(lián)系。 系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖3-1所示。 開始 倒計時 正計時 倒計時模式 鬧鐘模式 秒表模式 時間到 計時等于0 計時大于99s 報警提示 報警提示 報警提示 返回 返回 返回 圖3-1 主程序流程圖 3.3 中斷程序設(shè)計 現(xiàn)在方案中采用了定時中斷T0。CPU在響應(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è)計的實現(xiàn)是至關(guān)重要的。 另外由于數(shù)字式電子秒表的最小精度位10ms。定時器T0的定時周期也為10ms,為了使電子秒表暫停鍵按下后CPU能馬上進(jìn)行數(shù)據(jù)調(diào)整 3.4程序模塊設(shè)計: #include- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 單片機(jī) 多功能 秒表 設(shè)計
鏈接地址:http://www.820124.com/p-6654032.html