版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、光電信息綜合設(shè)計(jì)報(bào)告多功能秒表設(shè)計(jì)院(系)名稱信息工程學(xué)院專 業(yè) 名 稱光電信息科學(xué)與工程姓 名學(xué) 號(hào)0指 導(dǎo) 教 師2018年 5 月 20日光電信息綜合設(shè)計(jì)摘 要近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入。本文闡述了基于單片機(jī)的多功能電子秒表設(shè)計(jì)。本設(shè)計(jì)主要特點(diǎn)是具有倒計(jì)時(shí)功能,還可以按圈計(jì)時(shí),而且誤差在0.01s,是各種體育競(jìng)賽的必備設(shè)備之一,另外硬件部分設(shè)置了查看按鍵,還具備有定時(shí)提醒功能,讓你時(shí)時(shí)刻刻都掌握時(shí)間。本設(shè)計(jì)的數(shù)字電子秒表系統(tǒng)采用STC89C52單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、數(shù)碼管以及外部中斷電路來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件
2、有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)4位LED顯示,顯示時(shí)間99s內(nèi),能正確地進(jìn)行計(jì)時(shí),同時(shí)能記錄10組時(shí)間,并在暫停是對(duì)時(shí)間進(jìn)行查詢。其中軟件系統(tǒng)采用C語言編寫程序,包括顯示程序,定時(shí)中斷服務(wù)延時(shí)程序等,并在KEIL中調(diào)試運(yùn)行,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實(shí)現(xiàn),簡(jiǎn)單切易于觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài)。 關(guān)鍵字:?jiǎn)纹瑱C(jī);數(shù)字電子秒表;提醒 目 錄1 總體設(shè)計(jì)方案12 硬件設(shè)計(jì)32.1 單片機(jī)的選擇32.2 顯示電路的選擇與設(shè)計(jì)52.3 按鍵電路的選擇與設(shè)計(jì)62.4 時(shí)鐘電路的選擇與設(shè)計(jì)62.5 系統(tǒng)總電路的設(shè)計(jì)73 軟件設(shè)計(jì)93.1 程序設(shè)計(jì)思想93.2 主程序設(shè)計(jì)93.3
3、中斷程序設(shè)計(jì)103.4程序模塊設(shè)計(jì):11主程序11(2)停止子程序14(3)復(fù)位子程序14(4)按鍵消抖程序154 多功能秒表的安裝與調(diào)試164.1 軟件的仿真與調(diào)試164.2 硬件的安裝與調(diào)試164.3 實(shí)物調(diào)試17結(jié) 論191 總體設(shè)計(jì)方案多功能秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,時(shí)鐘功能,倒計(jì)時(shí),計(jì)時(shí)與顯示電路和回零、啟動(dòng)和停表電路等。主控制器采用單片機(jī)STC89C52,顯示電路采用共陽極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。本設(shè)計(jì)利用STC89C5
4、2單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),P2口作位掃描輸出,P10,P11,P12,P13,P14口接5個(gè)按鈕開關(guān),分別實(shí)現(xiàn)開始、記錄、清除,方向和調(diào)整。電路原理圖設(shè)計(jì)最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照?qǐng)D1-1進(jìn)行設(shè)計(jì)。STC89C52單片機(jī)控制系統(tǒng)四位數(shù)碼管 燈光提示系統(tǒng)控制開關(guān)圖1-1 智能秒表顯示硬件電路基本原理圖根據(jù)要求知道秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是倒計(jì)時(shí)、計(jì)時(shí)和時(shí)鐘顯示。因此設(shè)置了五個(gè)按鍵和四位數(shù)碼管顯示時(shí)間,五個(gè)按鍵中,按鍵1是開始按鈕:可控制系統(tǒng)的開
5、關(guān);按鍵2為記錄按鍵:在秒表模式運(yùn)行時(shí),可保存數(shù)據(jù),在其他狀態(tài)時(shí)還有復(fù)用功能;按鍵3為清除鍵:在系統(tǒng)計(jì)時(shí)時(shí)可以復(fù)位時(shí)間,在查看數(shù)據(jù)、調(diào)整時(shí)間時(shí),還有其他功能;按鍵4為方向鍵,調(diào)節(jié)時(shí)間計(jì)時(shí)時(shí)的正反向;按鍵5為調(diào)整按鍵:調(diào)整和設(shè)置時(shí)間。利用這五個(gè)建來實(shí)現(xiàn)秒表的全部功能,而四個(gè)位數(shù)碼管則能顯示最多99秒內(nèi)的計(jì)時(shí)。計(jì)時(shí)采用定時(shí)器T0中斷完成,定時(shí)溢出中斷周期為10ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到2次就對(duì)十毫秒位進(jìn)行加一,就是進(jìn)位0.01,然后按時(shí)鐘的取值范圍進(jìn)行進(jìn)位。 再看按鍵的處理。這六個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來識(shí)別。設(shè)
6、計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,顯示電路和回零、啟動(dòng)、查看、停表電路等。主控制器采用單片機(jī)STC89C52,顯示電路采用共陽極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間,五個(gè)按鍵均采用觸點(diǎn)式按鍵。2 硬件設(shè)計(jì)2.1 單片機(jī)的選擇本課題在選取單片機(jī)時(shí),充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗(yàn),并根據(jù)自己的實(shí)際情況,選擇了STC公司的STC89C52。STC公司的89系列單片機(jī)以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價(jià)格、超強(qiáng)的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP、PLCC、QFP封裝,有民用型、工業(yè)級(jí)、汽車級(jí)、軍品級(jí)
7、等多種溫度等級(jí),是當(dāng)今世界上性能最好、價(jià)格最低、最受歡迎的八位單片機(jī)。STC89C52R為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。單片機(jī)的外部結(jié)構(gòu)STC89C52單片機(jī)采用40引腳的雙列直插封裝方式。圖2-1為引腳排列圖, 40條引腳說明如下:主電源引腳Vss和Vcc Vss接地 Vcc正常操作時(shí)為+5伏電源外接晶振引腳XTAL1和XTA
8、L2 XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。 XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部振蕩源。圖2-1 單片機(jī)引腳圖控制或與其它電源復(fù)用引腳RST/VPD,ALE/,和/Vpp RST/VPD 當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平(由低到高跳變),將使單片機(jī)復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。 ALE/正常操作時(shí)為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻
9、率的1/6)周期性地發(fā)出正脈沖信號(hào)。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖,ALE 端可以驅(qū)動(dòng)(吸收或輸出電流)八個(gè)LSTTL電路。對(duì)于EPROM型單片機(jī),在EPROM編程期間,此引腳接收編程脈沖(功能) 外部程序存儲(chǔ)器讀選通信號(hào)輸出端,在從外部程序存儲(chǔ)取指令(或數(shù)據(jù))期間,在每個(gè)機(jī)器周期內(nèi)兩次有效。同樣可以驅(qū)動(dòng)八LSTTL輸入。 /Vpp、/Vpp為內(nèi)部程序存儲(chǔ)器和外部程序存儲(chǔ)器選擇端。當(dāng)/Vpp為高電平時(shí),訪問內(nèi)部程序存儲(chǔ)器,當(dāng)/Vpp為低電平時(shí),則訪問外部程序存儲(chǔ)器。對(duì)于EPROM型單片機(jī),在EPROM編程期間,此引腳上加2
10、1伏EPROM編程電源(Vpp)。輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0口(P0.0 - P0.7)是一個(gè)8位漏極開路型雙向I/O口,在訪問外部存儲(chǔ)器時(shí),它是分時(shí)傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動(dòng)八個(gè)LSTTL負(fù)載。 P1口(P1.0 - P1.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。 P2口(P2.0 - P2.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口,在訪問外部存儲(chǔ)器時(shí),它輸出高8位地址。P2口可以驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL
11、負(fù)載。 P3口(P3.0 - P3.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。STC89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。CPU是單片機(jī)的
12、核心部件。它由運(yùn)算器和控制器等部件組成。本設(shè)計(jì)采用STC的STC89C52微處理器,主要基于以下幾個(gè)因素: STC89C52為51內(nèi)核,仿真調(diào)試的軟硬件資源豐富。 性價(jià)比高,貨源充足。 功耗低,功能強(qiáng),靈活性高。 DIP40封裝,體積小,便于產(chǎn)品小型化。 為EEPROM程序存儲(chǔ)介質(zhì),1000次以上擦寫周期,便于編程調(diào)試。工作電壓范圍寬:2.7V6V,便于交直流供電。2.2 顯示電路的選擇與設(shè)計(jì) 對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對(duì)于一般的段式液晶屏,需要專門的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,可視性差,不適合遠(yuǎn)距離觀看;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的液晶顯示模塊(字符或點(diǎn)陣
13、),一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,STC89C52單片機(jī)本身無專門的液晶驅(qū)動(dòng)接口。而數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、響應(yīng)速度快、防潮防濕性能好、溫度特性極性、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或是遠(yuǎn)距離操作。因此,本設(shè)計(jì)的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用四位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜。所以采用動(dòng)態(tài)顯示。圖2-2 顯示電路基本原理圖動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一
14、起,由一個(gè)8位的I/O口控制;各位的公共陽極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。2.3 按鍵電路的選擇與設(shè)計(jì) 本設(shè)計(jì)中有五個(gè)按鍵,分別實(shí)現(xiàn)開始、記錄、清除,方向和調(diào)整功能。這五個(gè)鍵可以采用中斷的方法,也可以采用查詢的方法來識(shí)別。系統(tǒng)采用的是掃描的查詢方法來識(shí)別按鍵的五個(gè)按鍵均采用
15、低電平有效,具體電路連接圖如圖2-3所示。 當(dāng)按鍵沒有按下時(shí),單片機(jī)的I/O口直接連接電源,因此需要接上拉電阻來進(jìn)行限流,本設(shè)計(jì)中選取阻值為2k 的電阻作為上拉電阻,根據(jù)計(jì)算可知此時(shí)的灌電流為2.5mA看STC89C52的資料得知次電流在安全范圍內(nèi),符合安全設(shè)計(jì)要求。圖2-3 按鍵電路2.4 時(shí)鐘電路的選擇與設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),89S52片內(nèi)設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,89S52單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時(shí)鐘很少用,若要用時(shí),只要將XTAL1
16、接地,XTAL2接外部振蕩器就行。對(duì)外部振蕩信號(hào)無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘信號(hào)P1和P2供單片機(jī)使用。P1在每一個(gè)狀態(tài)S的前半部分有效,P2在每個(gè)狀態(tài)的后半部分有效。本設(shè)計(jì)采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。本設(shè)計(jì)系統(tǒng)的時(shí)鐘電路如圖1-5所示。只要按照?qǐng)D2-4所示電路進(jìn)行設(shè)計(jì)連接就能使系統(tǒng)可靠起振并能穩(wěn)定運(yùn)行。圖中,電容器C1 、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為533pF。但在時(shí)鐘電路的實(shí)際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對(duì)稱性,盡
17、可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設(shè)計(jì)中采用大小為30pF的電容和12MHz的晶振。圖2-4 內(nèi)部振蕩電路2.5 系統(tǒng)總電路的設(shè)計(jì)系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如圖2-5所示。STC89C52單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。STC89C52單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片
18、機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。圖2-5 系統(tǒng)總電路圖復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個(gè)專用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機(jī)的端口連接可以由用戶自己設(shè)定,本設(shè)計(jì)中按鍵均設(shè)為低電平有效。顯示電路由四位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因此有8位段控制端和4位位控制端,八位段控制接P0口,P0.0P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,STC89C52的P0口沒有集成上拉電阻,高電平的驅(qū)動(dòng)能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動(dòng)能力,對(duì)應(yīng)的數(shù)碼管導(dǎo)通顯示。通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下
19、的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。3 軟件設(shè)計(jì)3.1 程序設(shè)計(jì)思想本設(shè)計(jì)采用了C語言編寫,匯編語言由于采用了助記符號(hào)來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過程。匯編語言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語言的靈活性。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。C語言具有下列特點(diǎn): 1. C是中級(jí)語言它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C語言可以象匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。2. C是結(jié)構(gòu)式語言
20、結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(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ū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的。 4. C語言適用范圍大 C語言還有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機(jī)型。3.2 主程序設(shè)計(jì)本系統(tǒng)程序主
21、要模塊由主程序、子程序、定時(shí)中斷服務(wù)程序。其中主程序是整個(gè)程序的主體。可以對(duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進(jìn)入主程序,主程序流程圖如圖3-1所示。開始倒計(jì)時(shí)正計(jì)時(shí)倒計(jì)時(shí)模式鬧鐘模式秒表模式時(shí)間到計(jì)時(shí)等于0計(jì)時(shí)大于99s報(bào)警提示報(bào)警提示報(bào)警提示返回返回返回圖3-1 主程序流程圖3.3 中斷程序設(shè)計(jì)現(xiàn)在方案中采用了定時(shí)中斷T0。CPU在響應(yīng)中斷時(shí),先處理高級(jí)中斷,在處理低級(jí)中斷,若有多個(gè)同級(jí)中斷時(shí),則按自然優(yōu)先順序處理。例如當(dāng)CPU正在處理一個(gè)中斷申請(qǐng)時(shí),有出現(xiàn)了另一個(gè)優(yōu)先級(jí)比它高的中斷請(qǐng)求,這是,CPU就暫停終止對(duì)當(dāng)前優(yōu)先級(jí)較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級(jí)
22、比它高的中斷請(qǐng)求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級(jí)的中斷服務(wù)程序。而當(dāng)CPU為級(jí)別高的終端服務(wù)程序服務(wù)時(shí),如果級(jí)別低的中斷發(fā)出中斷請(qǐng)求,此時(shí)CPU是不會(huì)響應(yīng)的,所以為了避免開始和暫停兩個(gè)按鍵中的一個(gè)出現(xiàn)沒有響應(yīng)的情況,在進(jìn)行程序編輯時(shí)要注意對(duì)中斷的使用,避免出現(xiàn)中斷的嵌套。,合理分配中斷對(duì)本設(shè)計(jì)的實(shí)現(xiàn)是至關(guān)重要的。另外由于數(shù)字式電子秒表的最小精度位10ms。定時(shí)器T0的定時(shí)周期也為10ms,為了使電子秒表暫停鍵按下后CPU能馬上進(jìn)行數(shù)據(jù)調(diào)整3.4程序模塊設(shè)計(jì):#include <reg51.h> /頭文件#define uint unsigned int#define
23、uchar unsigned char /宏定義sbit k1=P10; /開始按鍵定義sbit k2=P11; /復(fù)位按鍵定義sbit k3=P12; /切換按鍵定義sbit p1=P27; /位選定義sbit p2=P26; /位選定義sbit p3=P25; /位選定義sbit p4=P24; /位選定義sbit dp=P07; /“:”定義int a,b,c,d; /數(shù)碼管顯示變量long miao=0;/時(shí)間變量int moshi=0;kaishi=0;count=0; /變量uchar code LEDData=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
24、0xf8,0x80,0x90,0xff; /數(shù)碼管顯示段碼/*延時(shí)子程序*/void Delay(uint i)/顯示延遲 while( i- );void qudou(void) /去抖延遲 int i; for(i=0;i<2400;i+);/*顯示子程序*/void xianshi()p1=0;p2=0;p3=0;p4=0; /位選關(guān)閉 P0 =LEDDataa; /發(fā)送數(shù)據(jù)段碼 p1=1;p2=0;p3=0;p4=0; /位選開 Delay(300); /顯示延遲 p1=0;p2=0;p3=0;p4=0; /位選關(guān)閉 P0 =LEDDatab; /發(fā)送數(shù)據(jù)段碼 if(moshi=
25、1) dp=0; else dp=1; p1=0;p2=1;p3=0;p4=0; /位選開 Delay(300); /顯示延遲 p1=0;p2=0;p3=0;p4=0; /位選關(guān)閉 P0 =LEDDatac; /發(fā)送數(shù)據(jù)段碼 p1=0;p2=0;p3=1;p4=0; /位選開 Delay(300); /顯示延遲 p1=0;p2=0;p3=0;p4=0; /位選關(guān)閉 P0 =LEDDatad; /發(fā)送數(shù)據(jù)段碼 p1=0;p2=0;p3=0;p4=1; /位選開 Delay(300); /顯示延遲 p1=0;p2=0;p3=0;p4=0;/位選關(guān)閉void shuju()/數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換成數(shù)碼管顯
26、示代碼 if(moshi=0) a=miao/1000; b=miao%1000/100;c=miao%1000%100/10;d=miao%1000%100%10; else a=miao/60/10; b=miao/60%10;c=miao%60/10;d=miao%60%10; void key() /按鍵掃描 if (k1=0) /開始按鍵按下 qudou();/去抖延遲 if(k1=0)/確認(rèn)按下 kaishi=!kaishi;/開始暫停切換 while(k1=0);/退出 if (k2=0) /復(fù)位按鍵按下 qudou();/去抖延遲 if(k2=0)/確認(rèn)按下 miao=0;/時(shí)
27、間變成0 kaishi=0;/并且暫停 while(k2=0);/退出 if (k3=0) /切換按鍵按下 qudou();/去抖延遲 if(k3=0)/確認(rèn)按下 moshi=!moshi;/顯示模式切換 while(k3=0);/退出 /*主函數(shù)*/void main(void) TMOD = 0x01;/定時(shí)器中斷開啟 TH0=0xb1;/20ms中斷一次 TL0=0xe0; EA = 1; ET0 = 1; TR0 = 1; while(1) /無限循環(huán) key(); /按鍵掃描 shuju(); /數(shù)據(jù)轉(zhuǎn)換 xianshi(); /數(shù)碼管顯示 void time0(void) inte
28、rrupt 1 /定時(shí)器中斷 TH0=0xb1; TL0=0xe0;if(kaishi=1) count+; /count計(jì)數(shù)器 if(count=50) /計(jì)數(shù)50次,50*20ms=1000ms=1S count=0; /計(jì)數(shù)器清零 miao+; /秒加1 if(miao>5999) miao=0; 4 多功能秒表的安裝與調(diào)試4.1 軟件的仿真與調(diào)試Proteus ISIS是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件,它可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的主要特點(diǎn)總結(jié)后有以下四點(diǎn):實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合的功能。支持目前主流單片機(jī)
29、系統(tǒng)的仿真。提供了軟件調(diào)試功能,并可以與Keil 聯(lián)合仿真調(diào)試。具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。在電子領(lǐng)域中也起到了很大的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時(shí)間。Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖4-1所示。它包括標(biāo)題欄、主菜單、狀態(tài)欄、標(biāo)準(zhǔn)工具欄、繪圖工具欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口等十幾個(gè)工具,方便了使用者的使用。Proteus ISIS繪制原理圖的操作與Protel 99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設(shè)計(jì)中的一個(gè)仿真例子作簡(jiǎn)述說明。運(yùn)行Proteus ISIS后,繪制病床呼叫系統(tǒng)的原理圖。首先打開已經(jīng)畫好的proteus DSN文件,雙擊圖中的AT89S52芯片,就彈出一個(gè)窗口,在Program File項(xiàng)中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計(jì)中的HEX文件。單擊“三角形按鈕”進(jìn)行仿真。通過對(duì)仿真結(jié)果的觀察來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年量子計(jì)算機(jī)技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 環(huán)保工程項(xiàng)目建設(shè)質(zhì)量效果免責(zé)合同
- 醫(yī)療機(jī)構(gòu)信息化建設(shè)合作協(xié)議
- 移動(dòng)支付技術(shù)研究和開發(fā)合作合同
- 新一代信息技術(shù)產(chǎn)業(yè)園招商協(xié)議
- 工業(yè)設(shè)計(jì)知識(shí)產(chǎn)權(quán)豁免合同
- 2025年度魚塘承包經(jīng)營(yíng)權(quán)租賃合同2篇
- 物業(yè)管理行業(yè)合同管理措施探討
- 物流行業(yè)智能化升級(jí)改造項(xiàng)目投資協(xié)議
- 技術(shù)市場(chǎng)交易合同
- 危險(xiǎn)品倉(cāng)儲(chǔ)危險(xiǎn)廢物處置與管理考核試卷
- 2024版汽車融資擔(dān)保合同范本版B版
- 浙江寧波鎮(zhèn)海區(qū)2025屆中考生物對(duì)點(diǎn)突破模擬試卷含解析
- 湖南省長(zhǎng)沙市2025年新高考適應(yīng)性考試生物學(xué)模擬試題(含答案)
- 工業(yè)自動(dòng)化設(shè)備維護(hù)保養(yǎng)方案
- 《中醫(yī)心理學(xué)》課件
- 心肌梗死病人護(hù)理課件
- 宮頸癌中醫(yī)護(hù)理查房
- 《費(fèi)曼學(xué)習(xí)法》讀后感
- 2023年安徽省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 隧道施工監(jiān)控量測(cè)方案及措施
評(píng)論
0/150
提交評(píng)論