單片機(jī)秒表設(shè)計(jì)畢業(yè)論文_第1頁(yè)
單片機(jī)秒表設(shè)計(jì)畢業(yè)論文_第2頁(yè)
單片機(jī)秒表設(shè)計(jì)畢業(yè)論文_第3頁(yè)
單片機(jī)秒表設(shè)計(jì)畢業(yè)論文_第4頁(yè)
單片機(jī)秒表設(shè)計(jì)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

.PAGE.畢業(yè)設(shè)計(jì)論文說(shuō)明書課題名稱:單片機(jī)秒表系統(tǒng)的設(shè)計(jì)學(xué)生姓名專業(yè)機(jī)電一體化班級(jí)機(jī)電0902時(shí)間指導(dǎo)教師電子與電氣工程系..摘要近年來(lái)隨著科技的飛速發(fā)展,微電子的發(fā)展可謂是日新月異,特別是單片機(jī)更是百花爭(zhēng)艷。在電子時(shí)代的大潮流中,MCS-51系列的單片機(jī)以其特有的簡(jiǎn)單、易用、易學(xué)、應(yīng)用技術(shù)成熟、應(yīng)用技術(shù)人員多、性價(jià)比高的優(yōu)勢(shì)占有8位微控制器市場(chǎng)大約50%以上的份額,由此可見(jiàn)單片機(jī)在實(shí)際生活的廣泛運(yùn)用。單片機(jī)控制秒表是集于單片機(jī)技術(shù)、模擬電子技術(shù)、數(shù)字技術(shù)為一體的機(jī)電一體化高科技產(chǎn)品,具有功耗低,安全性高,使用方便等優(yōu)點(diǎn)。本次設(shè)計(jì)內(nèi)容為以AT89C51單片機(jī)為核心的秒表。設(shè)計(jì)的主要特點(diǎn)是計(jì)時(shí)器從00~99秒的計(jì)時(shí),每秒自動(dòng)加1,同時(shí)設(shè)置有暫停鍵和復(fù)位鍵,在任何情況下都可以暫停和復(fù)位。利用單片機(jī)定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及外部中斷電路來(lái)設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠?qū)崿F(xiàn)3位LED顯示,顯示時(shí)間為0~99秒,計(jì)時(shí)精度為1秒,能正確地進(jìn)行計(jì)時(shí)。其中軟件系統(tǒng)采用匯編語(yǔ)言編寫程序,包括顯示程序,中斷服務(wù),外部中斷服務(wù)程序,復(fù)位程序等。本系統(tǒng)相對(duì)簡(jiǎn)單,指令中有較豐富的邏輯控制功能指令,能叫方便的直接操作外部的I/O設(shè)備。關(guān)鍵字:?jiǎn)纹瑱C(jī);定時(shí)器;計(jì)數(shù)器目錄TOC\o"1-3"\h\u25384一、硬件簡(jiǎn)介與電路設(shè)計(jì)384191.1單片機(jī)AT89C51介紹384191.1.1單片機(jī)AT89C51管腳說(shuō)明384191.1.2振蕩器特性584191.1.3芯片擦除584191.2復(fù)位和按鍵電路設(shè)置5230141.3顯示電路的選擇與設(shè)計(jì)7100881.4晶振電路和電源電路的設(shè)計(jì)1010885二、軟件設(shè)計(jì)11175222.1程序設(shè)計(jì)思想1167352.2系統(tǒng)資源的分配12177922.3主程序設(shè)計(jì)12139512.4中斷程序設(shè)計(jì)13外部中斷0服務(wù)程序142.4.2外部中斷1服務(wù)程序14106532.5定時(shí)器T0子程序設(shè)計(jì)15數(shù)字電子秒表的安裝與調(diào)試 15138963.1軟件的仿真與調(diào)試159233.2硬件的安裝與調(diào)試162715晶振電路的測(cè)試16276223.2.2復(fù)位電路的測(cè)試17276223.2.3顯示電路的測(cè)試1723444四、程序設(shè)計(jì)1824809五、結(jié)束語(yǔ)2111914致謝2231124參考文獻(xiàn)23一.硬件簡(jiǎn)介與電路設(shè)計(jì)1.1單片機(jī)AT89C51介紹AT89C51單片機(jī)介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51?指令集和輸出管腳相兼容。由于將多功圖1AT89C51能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。1.1.1單片機(jī)AT89C51管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫"1"時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址"1"時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入"1"后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD〔串行輸入口P3.1TXD〔串行輸出口P3.2/INT0〔外部中斷0P3.3/INT1〔外部中斷1P3.4T0〔記時(shí)器0外部輸入P3.5T1〔記時(shí)器1外部輸入P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫選通P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器〔0000H-FFFFH,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。1.1.2振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。1.1.3芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫"1"且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。1.2復(fù)位和按鍵電路設(shè)計(jì)數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。本方案采用AT89C51單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些案件電路來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件結(jié)合起來(lái)。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主控制采用單片機(jī)AT89C51,顯示電路采用二位共陽(yáng)極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開(kāi)始、繼續(xù)/暫停、復(fù)位和分/秒顯示轉(zhuǎn)換的功能。圖2電路設(shè)計(jì)圖初始狀態(tài)下計(jì)時(shí)器顯示00,當(dāng)按下開(kāi)始鍵時(shí),外部中斷INT0向CPU發(fā)出中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服務(wù)程序,即開(kāi)啟定時(shí)器T0。計(jì)時(shí)采用定時(shí)器T0中斷完成,定時(shí)溢出中斷周期為1s,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)計(jì)數(shù)單元進(jìn)行加一,達(dá)到1次就對(duì)秒位進(jìn)行加一,依次類推,直到99秒重新復(fù)位。在計(jì)時(shí)過(guò)程中,只要按下繼續(xù)/暫停鍵,外部中斷INT1向CPU發(fā)出中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行外部中斷1服務(wù)程序,即關(guān)閉定時(shí)器T0,調(diào)用顯示程序,實(shí)現(xiàn)暫停功能,同時(shí)將此次計(jì)時(shí)時(shí)間存入中間緩存區(qū)。再次按下繼續(xù)/暫停鍵,定時(shí)器T0在次開(kāi)啟,調(diào)用中間緩存區(qū)的數(shù)據(jù),秒表繼續(xù)加一。當(dāng)秒表計(jì)時(shí)超過(guò)99時(shí),則程序跳轉(zhuǎn)從0開(kāi)始。在秒表暫停時(shí),按下復(fù)位開(kāi)關(guān),中間緩存區(qū)中的數(shù)據(jù)清零,程序回到開(kāi)始。而在秒表暫停時(shí),按下分/秒顯示轉(zhuǎn)換開(kāi)關(guān),則將中間緩存區(qū)中的數(shù)據(jù)轉(zhuǎn)換為以分秒顯示的狀態(tài)送入顯示區(qū)。根據(jù)要求秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是計(jì)時(shí)和顯示。因此設(shè)置了四個(gè)按鍵和二位數(shù)碼管顯示時(shí)間,四個(gè)按鍵分別是開(kāi)始、繼續(xù)/暫停、復(fù)位、分/秒顯示轉(zhuǎn)換。利用這四個(gè)鍵來(lái)實(shí)現(xiàn)秒表的全部功能,而二位數(shù)碼管則能顯示最多99秒的計(jì)時(shí)。圖3開(kāi)始、繼續(xù)/暫停電路圖4復(fù)位電路本設(shè)計(jì)中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元7CH-7DH中。7CH存放秒位數(shù)據(jù),7DH存放十秒位數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在ROM表中。顯示時(shí),先取出7CH-7DH某一地址中的數(shù)據(jù),然后查得對(duì)應(yīng)的顯示用段碼,并從P0口輸出,P2口將對(duì)應(yīng)的數(shù)碼管選中供電,就能顯示該地址單元的數(shù)據(jù)值。按鍵處理方面,四個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來(lái)識(shí)別。復(fù)位鍵和分/秒顯示轉(zhuǎn)換鍵主要功能在于數(shù)值復(fù)位和轉(zhuǎn)換,對(duì)于時(shí)間的要求不是很嚴(yán)格。而開(kāi)始、繼續(xù)/暫停鍵則是用于對(duì)時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以對(duì)開(kāi)始、繼續(xù)/暫停鍵采用外部中斷的方式。1.3顯示電路的選擇與設(shè)計(jì)對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。一般的段式液晶屏,需要專門的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,可視性差,不適合遠(yuǎn)距離觀看;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的液晶顯示模塊<字符或點(diǎn)陣>,一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,AT89C51單片機(jī)本身無(wú)專門的液晶驅(qū)動(dòng)接口。而數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、響應(yīng)速度快、防潮防濕性能好、溫度特性極性、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺(jué)效果,很適合夜間或是遠(yuǎn)距離操作。因此,本設(shè)計(jì)的顯示電路采用8段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。本設(shè)計(jì)采用二位數(shù)碼管顯示時(shí)間,動(dòng)/靜態(tài)顯示皆可。則本設(shè)計(jì)應(yīng)任務(wù)要求選用動(dòng)態(tài)顯示。圖5顯示電路基本原理圖動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只能選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺(jué)暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺(jué)。數(shù)碼顯示管分為共陽(yáng)數(shù)碼管和共陰數(shù)碼管兩種。共陽(yáng)極數(shù)碼管的8個(gè)發(fā)光二極管的陽(yáng)極〔二極管正端連接在一起,如圖6〔c,通常,公共陽(yáng)極接高電平〔一般接電源,其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極〔二極管負(fù)端連接在一起,如圖〔b,通常,公共陰極接低電平〔一般接地,其它管腳接段驅(qū)動(dòng)電路輸出端,當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。圖6〔a數(shù)碼管引腳圖〔b共陽(yáng)極內(nèi)部結(jié)構(gòu)圖〔c共陰極內(nèi)部結(jié)構(gòu)圖顯示電路由二位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,有8位段控制端和2位位控制端,八位段控制接P0口,P0.0~P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,AT89C51的P0口沒(méi)有集成上拉電阻,高電平的驅(qū)動(dòng)能力很弱,所以需要接上拉電阻來(lái)提高P0的高電平驅(qū)動(dòng)能力。二位位控制則由低位到高位分別接到P2.0~P2.1口,NPN三極管9013做為位控制端的開(kāi)關(guān),當(dāng)P2.0~P2.1端口任意一個(gè)端口為高電平時(shí),與其相對(duì)應(yīng)的三極管就導(dǎo)通,對(duì)應(yīng)的數(shù)碼管導(dǎo)通顯示。本設(shè)計(jì)采用共陽(yáng)極數(shù)碼顯示管做顯示電路,由于采用的是共陽(yáng)的數(shù)碼顯示管,所以只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為低電平,那么其對(duì)應(yīng)的二極管就會(huì)發(fā)光,使數(shù)碼顯示管顯示0~9的編碼見(jiàn)表1.1。表1.1共陰極數(shù)碼顯示管字型代碼字型共陽(yáng)極代碼字型共陽(yáng)極代碼0C0H592H1F9H682H2A4H7F8H3B0H880H499H990H顯示時(shí)采用查表程序顯示MOVA,R3MOVDPTR,#TABMOVCA,A+DPTRMOVP0,AMOVA,R4MOVDPTR,#TABMOVCA,A+DPTRMOVP2,ARETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H由于數(shù)碼管是有P0口來(lái)驅(qū)動(dòng),它內(nèi)部沒(méi)有上拉電阻,作為輸出口時(shí)驅(qū)動(dòng)能力比較弱,不能點(diǎn)亮數(shù)碼顯示管,因此P0口必須接上拉電阻來(lái)提高驅(qū)動(dòng)能力。電源供電電壓為+5V,當(dāng)上拉電阻選用220Ω電阻時(shí)灌電流為22mA。不會(huì)損壞單片機(jī)的I/O口,同時(shí)也可以為數(shù)碼顯示管起到限制電流的保護(hù)作用。1.4晶振電路和電源電路的設(shè)計(jì)系統(tǒng)總電路除以上設(shè)計(jì)的顯示電路,按鍵電路和復(fù)位電路組成外,其次還剩晶振電路和電源電路。再將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。AT89C51單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。AT89C51單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。圖7晶振電路在這個(gè)系統(tǒng)中電源采用由7805構(gòu)成的穩(wěn)壓電路,它可以提供非常恒定的+5V電壓,不會(huì)因?yàn)殡妷翰环€(wěn)兒引入新的干擾,保證系統(tǒng)更加穩(wěn)定運(yùn)行。通過(guò)以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。二、軟件設(shè)計(jì)2.1程序設(shè)計(jì)思想本設(shè)計(jì)采用了匯編語(yǔ)言編寫,匯編語(yǔ)言由于采用了助記符號(hào)來(lái)編寫程序,比用機(jī)器語(yǔ)言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過(guò)程。匯編語(yǔ)言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語(yǔ)言的靈活性。使用匯編語(yǔ)言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。匯編語(yǔ)言的特點(diǎn):<1>.面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。<2>.保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)。<3>.可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。<4>.目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。<5>.經(jīng)常與高級(jí)語(yǔ)言配合使用,應(yīng)用十分廣泛。在程序設(shè)計(jì)過(guò)程中,為了有效地完成任務(wù),把所要完成的任務(wù)精心的分割成若干個(gè)相互獨(dú)立但相互又仍可有聯(lián)系的任務(wù)模塊,這些任務(wù)模塊使得任務(wù)變得相對(duì)單純,對(duì)外的數(shù)據(jù)交換相對(duì)簡(jiǎn)單,容易編寫,容易檢測(cè),容易閱讀和維護(hù)。這種程序設(shè)計(jì)思想稱為模塊化程序設(shè)計(jì)思想。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。因此,本醫(yī)院病床呼叫系統(tǒng)在軟件的設(shè)計(jì)上,運(yùn)用了模塊化程序的結(jié)構(gòu)對(duì)軟件進(jìn)行設(shè)計(jì),使得程序變得更加直觀易懂。程序的主要模塊有:主程序、顯示程序、定時(shí)溢出中斷服務(wù)程序、外部中斷服務(wù)程序。2.2系統(tǒng)資源的分配本設(shè)計(jì)系統(tǒng)所用到的單片機(jī)端口數(shù)比較多,所以在這里將對(duì)數(shù)字電子秒表的硬件資源的大概分配加以說(shuō)明。片內(nèi)RAM的分配、各功能鍵的定義以及各端口的分配。表2.1端口的分配安排表名稱功能描述7CH-7DH1s-99s位顯示寄存區(qū)6CH-6DH1s-99s位中間寄存區(qū)定時(shí)器T0控制秒表的最小精度P3.2外部中斷INT0開(kāi)始中斷信號(hào)入口P3.3外部中斷INT1繼續(xù)/暫停中斷信號(hào)入口RST復(fù)位鍵P1.1分/秒轉(zhuǎn)換鍵P0.0數(shù)碼管的位選端aP0.1數(shù)碼管的位選端bP0.2數(shù)碼管的位選端cP0.3數(shù)碼管的位選端dP0.4數(shù)碼管的位選端eP0.5數(shù)碼管的位選端fP0.6數(shù)碼管的位選端gP0.7數(shù)碼管dp端P2.0十位數(shù)字顯示P2.1個(gè)位數(shù)字顯示P2.2分鐘位顯示2.3主程序設(shè)計(jì)本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體。可以對(duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的聯(lián)系。系統(tǒng)〔上電復(fù)位后,進(jìn)入主程序。如圖8.首先對(duì)系統(tǒng)進(jìn)行初始化,包括設(shè)置各入口地址、中斷的開(kāi)啟、對(duì)各個(gè)數(shù)據(jù)緩存區(qū)清"0"、賦定時(shí)器初值,初始化完畢后,就進(jìn)入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進(jìn)行調(diào)用并在數(shù)碼管上進(jìn)行動(dòng)態(tài)顯示。查詢復(fù)位鍵RST是否按下,當(dāng)復(fù)位鍵按下后,程序返回開(kāi)始,重新對(duì)系統(tǒng)進(jìn)行初始化。圖8主程序流程圖在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時(shí)器初值以及開(kāi)啟外部中斷等操作,當(dāng)定時(shí)時(shí)間到后就轉(zhuǎn)去執(zhí)行定時(shí)中斷程序。當(dāng)外部中斷有請(qǐng)求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。2.4中斷程序設(shè)計(jì)現(xiàn)在方案中采用了三個(gè)中斷,外部中斷INT0,INT1和定時(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í)比它高的中斷請(qǐng)求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來(lái)較低級(jí)的中斷服務(wù)程序。而當(dāng)CPU為級(jí)別高的終端服務(wù)程序服務(wù)時(shí),如果級(jí)別低的中斷發(fā)出中斷請(qǐng)求,此時(shí)CPU是不會(huì)響應(yīng)的,所以為了避免開(kāi)始和暫停兩個(gè)按鍵中的一個(gè)出現(xiàn)沒(méi)有響應(yīng)的情況,在進(jìn)行程序編輯時(shí)要注意對(duì)中斷的使用,避免出現(xiàn)中斷的嵌套。,合理分配中斷對(duì)本設(shè)計(jì)的實(shí)現(xiàn)是至關(guān)重要的。另外由于數(shù)字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時(shí)器T0的定時(shí)周期也為1ms,為了使電子秒表暫停鍵按下后CPU能馬上去響應(yīng)中斷程序,必須將暫停的外部中斷級(jí)別高于定時(shí)計(jì)數(shù)器的中斷級(jí)別。避免出現(xiàn)CPU執(zhí)行完定時(shí)溢出中斷程序后再響應(yīng)外部中斷程序,影響計(jì)時(shí)精度。AT89C51的自然優(yōu)先級(jí)順序排列如下:中斷源最高外部中斷0定時(shí)/計(jì)數(shù)器0溢出中斷外部中斷1定時(shí)/計(jì)數(shù)器1溢出中斷串行口中斷最低數(shù)字式秒表中的兩個(gè)按鍵采用了中斷實(shí)現(xiàn)功能。開(kāi)始采用外部中斷INT0,暫停采用外部中斷INT1。另外程序中還用到了定時(shí)/計(jì)數(shù)器0溢出中斷進(jìn)行計(jì)時(shí)。依據(jù)設(shè)計(jì)要求,暫停的外部中斷INT1中斷級(jí)別最高,計(jì)時(shí)的定時(shí)/計(jì)數(shù)器0溢出中斷次之,開(kāi)始的外部中斷INT0級(jí)別最低。2.4.1外部中斷0服務(wù)程序:外部中斷0服務(wù)程序結(jié)合外部P3.2停止鍵實(shí)現(xiàn)數(shù)字電子秒表的停止功能。當(dāng)按下P3.2停止鍵按下向CPU發(fā)出外部中斷請(qǐng)求,CPU轉(zhuǎn)向外部中斷0服務(wù)程序執(zhí)行,停止定時(shí)器。另外將當(dāng)前顯示的時(shí)間進(jìn)行一次存儲(chǔ),存進(jìn)中間寄存區(qū)。最后中斷返回。2.4.2外部中斷1服務(wù)程序外部中斷1服務(wù)程序結(jié)合外部P3.3停止鍵實(shí)現(xiàn)數(shù)字電子秒表的啟動(dòng)功能。當(dāng)按下P3.3啟動(dòng)鍵按下向CPU發(fā)出外部中斷請(qǐng)求,CPU轉(zhuǎn)向外部中斷1服務(wù)程序執(zhí)行,啟動(dòng)定時(shí)器。另外進(jìn)行二次存儲(chǔ),將之前進(jìn)行一次存儲(chǔ)的數(shù)碼管顯示數(shù)據(jù)存入最終緩存區(qū),避免下次計(jì)時(shí)暫停時(shí)一次存儲(chǔ)將數(shù)據(jù)掩蓋,從而起到保護(hù)數(shù)據(jù)的作用。二次存儲(chǔ)后就中斷返回。在對(duì)定時(shí)器賦初值時(shí)將單片機(jī)需要執(zhí)行的語(yǔ)句所花的時(shí)間加上,這樣就能使數(shù)字電子秒表的誤差達(dá)到最小。2.5定時(shí)器T0子程序設(shè)計(jì)圖9定時(shí)器T0子程序圖框三、數(shù)字電子秒表的安裝與調(diào)試3.1軟件的仿真與調(diào)試ProteusISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件,它可以仿真、分析<SPICE>各種模擬器件和集成電路。該軟件的主要特點(diǎn)總結(jié)后有以下四點(diǎn):①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合的功能。②支持目前主流單片機(jī)系統(tǒng)的仿真。③提供了軟件調(diào)試功能,并可以與WAVE聯(lián)合仿真調(diào)試。④具有強(qiáng)大的原理圖繪制功能??傊?該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。在電子領(lǐng)域中也起到了很大的作用,它的出現(xiàn)仿真不需要先焊接電路,可以先仿真調(diào)試通過(guò)后在焊電路,節(jié)省了不少在硬件調(diào)試上所花的時(shí)間。ProteusISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面。它包括標(biāo)題欄、主菜單、狀態(tài)欄、標(biāo)準(zhǔn)工具欄、繪圖工具欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口等十幾個(gè)工具,方便了使用者的使用。ProteusSISI繪制原理圖的操作與Protel99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設(shè)計(jì)中的一個(gè)仿真例子作簡(jiǎn)述說(shuō)明。運(yùn)行ProteusSISI后,繪制病床呼叫系統(tǒng)的原理圖。首先打開(kāi)已經(jīng)畫好的proteusDSN文件,雙擊圖中的AT89S52芯片,就彈出一個(gè)窗口,在ProgramFile項(xiàng)中通過(guò)路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計(jì)中的HEX文件。單擊"三角形按鈕"進(jìn)行仿真。通過(guò)對(duì)仿真結(jié)果的觀察來(lái)對(duì)程序進(jìn)行修改,最終使程序到達(dá)設(shè)計(jì)要求。3.2硬件的安裝與調(diào)試按照之前設(shè)計(jì)好的數(shù)字電子秒表原理圖,詳細(xì)計(jì)算系統(tǒng)中各個(gè)元件的參數(shù),選擇相應(yīng)器件,制作實(shí)際電路板。由于考慮到萬(wàn)能板大小的問(wèn)題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進(jìn)行實(shí)際操作。制作好的電路板可以用萬(wàn)用表〔200歐姆檔的紅、黑表筆測(cè)試電路板的每條走線,當(dāng)其電阻非常小時(shí),證明走線沒(méi)有斷開(kāi),當(dāng)其電阻很大時(shí),證明該條走線斷了,應(yīng)該重新走線,使電路板在電氣上得到正確地連接。選用萬(wàn)用表的20K歐姆檔,檢測(cè)電路中是否存在短路。因?yàn)橄到y(tǒng)采用的是共陰極數(shù)碼管作為顯示電路,必須確保數(shù)碼管的公共端接的是低電平。3.2.1晶振電路的測(cè)試在單片機(jī)正常運(yùn)行的必要條件是單片機(jī)系統(tǒng)的時(shí)鐘穩(wěn)定正常。實(shí)際中,因?yàn)楦鞣N原因?qū)е孪到y(tǒng)時(shí)鐘不正常而出現(xiàn)系統(tǒng)無(wú)法正常運(yùn)行的情況時(shí)有,因此系統(tǒng)時(shí)鐘是否振是通電檢查的首要環(huán)節(jié)。在系統(tǒng)通電的狀況下,用萬(wàn)用表的直流電壓檔〔20V,分別測(cè)量XTAL1和XTAL2引腳的電壓,看是否正常,在調(diào)試過(guò)程中,測(cè)得電壓XTAL1引腳應(yīng)為2.05V,XTAT2應(yīng)為2.15V。3.2.2復(fù)位電路的測(cè)試復(fù)位不正常也會(huì)導(dǎo)致系統(tǒng)不能工作。如果復(fù)位引腳始終為高電平,系統(tǒng)將始終處于復(fù)位狀態(tài);如果始終為低電平,不能產(chǎn)生復(fù)位所需的高電平信號(hào)脈沖,則系統(tǒng)也可能無(wú)法正常工作。單片機(jī)正常工作時(shí),RST復(fù)位引腳應(yīng)為0V,按下復(fù)位按鍵時(shí),復(fù)位引腳為高電平+5V左右。3.2.3顯示電路的測(cè)試顯示電路是數(shù)字電子秒表正常運(yùn)行最直觀的觀察窗口,我們可以通過(guò)觀察顯示電路的顯示結(jié)果觀察系統(tǒng)能否正常運(yùn)行。當(dāng)顯示電路按照電路圖焊接好后,用萬(wàn)用表的測(cè)二極管檔位,將黑表筆接共陰數(shù)碼管的公共段,然后將紅表筆接數(shù)碼管的各段,當(dāng)數(shù)碼管的段能正常顯示,說(shuō)明各點(diǎn)焊接正常。四、程序設(shè)計(jì)原程序:ORG0000H

AJMPMAIN

ORG0003H

AJMPX0_INT

ORG000BH

AJMPT0_INT

ORG0013H

AJMPX1_INT

MAIN:

MOVTMOD,#01H;T0定時(shí)方式1

MOVTH0,#<65536-50000>/256;50ms12MHz

MOVTL0,#<65536-50000>MOD256;

SETBTR0

SETBET0;開(kāi)啟定時(shí)中斷

SETBEX0

SETBEX1

SETBEA;開(kāi)中斷

MOVR1,#0;0~99秒計(jì)數(shù)

MOVR2,#0;0.1秒數(shù)

MOVR7,#1;50ms計(jì)數(shù)MOVP0,#0C0H;顯示00.0

MOVP2,#0C0H

MOVp1,#0C0H

LOOP:

SJMPLOOP

;

DELAY:;延時(shí)子程序.

MOVR4,#0

DJNZR4,$

DJNZR4,$

RET

;

X0_INT:;啟動(dòng)/停止

CPLF0

RETI

;

X1_INT:;清零

MOVR1,#0

MOVP0,#0C0H

MOVP2,#0C0H

MOVp1,#0C0H

RETI

;

T0_INT:;50ms中斷執(zhí)行一次.

MOVTL0,#<65536-50000>MOD256;

MOVTH0,#<65536-50000>/256;50ms12MHz

DJNZR7,T0_END;中斷不到20次.

MOVR7,#2;#20

JNBF0,T0_END

MOVa,r2

adda,#1

daa

ANLa,#0fh

MOVr2,a

JNZDISP

MOVA,R1

ADDA,#1

DAA

MOVR1,A

DISP:

MOVa,r2

ANLa,#0fh

MOVCa,a+DPTR;查出段碼

MOVp1,a;顯示0.1秒

MOVA,R1

ANLA,#0FH

MOVDPTR,#TAB

MOVCA,A+DPTR;查出段碼

MOVP2,A;顯示個(gè)位

MOVA,R1

SWAPA

ANLA,#0FH

MOVCA,A+DPTR;查出段碼

MOVP0,A;顯示十位

T0_END:

RETI

;

TAB:

DB0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H

END五.結(jié)束語(yǔ)本篇論文是利用單片機(jī)〔SinglechipMicrocomputer和接口外圍電路組成的時(shí)鐘和秒表雙重功能的電子秒表電路。整個(gè)電路由硬件電路和軟件程序兩部分組成。硬件電路使用元件少,電路結(jié)構(gòu)簡(jiǎn)單,功能強(qiáng),在文中有很多地方敘述的并不是很清楚,因此用圖示出以便更好的了解;軟件程序設(shè)計(jì)結(jié)構(gòu)合理,思路清晰,利用中斷服務(wù)程序?qū)Ω鞣N事件進(jìn)行處理,提高微處理器的工作效率。硬件電

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論