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

下載本文檔

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

文檔簡(jiǎn)介

基于51單片機(jī)的電子秒表基于51單片機(jī)的電子秒表姓名班級(jí)專業(yè)電子信息工程系部信息工程系指導(dǎo)老師本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)文本和成果,是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究所取得的成果。成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議,本畢業(yè)設(shè)計(jì)不含任何其他個(gè)人或集體已經(jīng)發(fā)表過的作品和成果。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。畢業(yè)設(shè)計(jì)者簽名:目錄摘要 11硬件簡(jiǎn)介與電路設(shè)計(jì) 11.1單片機(jī)AT89C51介紹 11.1.1單片機(jī)AT89C51管腳說明: 11.1.2振蕩器特性: 31.1.3芯片擦除: 31.2復(fù)位和按鍵電路設(shè)計(jì) 31.3顯示電路的選擇與設(shè)計(jì) 51.4晶振電路和電源電路的設(shè)計(jì) 72軟件設(shè)計(jì) 82.1程序設(shè)計(jì)思想 82.2系統(tǒng)資源的分配 82.3主程序設(shè)計(jì) 92.4中斷程序設(shè)計(jì) 102.4.1外部中斷0服務(wù)程序: 112.4.2外部中斷1服務(wù)程序 112.5定時(shí)器T0子程序設(shè)計(jì) 123數(shù)字電子秒表的安裝與調(diào)試 123.1軟件的仿真與調(diào)試 123.2硬件的安裝與調(diào)試 133.2.1晶振電路的測(cè)試 133.2.2復(fù)位電路的測(cè)試 133.2.3顯示電路的測(cè)試 144結(jié)束語(yǔ) 14致謝 14參考文獻(xiàn) 16附錄 17PAGE7PAGE7摘要近年來隨著科技的飛速發(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%以上 單片機(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ù)位。關(guān)鍵字:?jiǎn)纹瑱C(jī);定時(shí)器;計(jì)數(shù)器1硬件簡(jiǎn)介與電路設(shè)計(jì)1.1單片機(jī)AT89C51介紹AT89C51單片機(jī)介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51。指令集和輸出管腳相兼容。由于圖1AT89C5多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。1.1.1單片機(jī)AT89C51管腳說明:P0口:P0口為一個(gè)8位漏級(jí)開路雙向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(外部中斷0)P3.3/INT1(外部中斷1)P3.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)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(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:來自反向振蕩器的輸出。1.1.2振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。1.1.3芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“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ù)位電路,顯示電路,以及一些案件電路來設(shè)計(jì)計(jì)時(shí)器,將軟、硬件結(jié)合起來。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主控制采用單片機(jī)AT89C51,顯示電路采用二位共陽(yáng)極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始、繼續(xù)/暫停、復(fù)位和分/秒顯示轉(zhuǎn)換的功能。AT89C51AT89C51單片機(jī)控制器控制開關(guān)二位數(shù)碼管控制開關(guān)二位數(shù)碼管位驅(qū)動(dòng)位驅(qū)動(dòng)圖2電路設(shè)計(jì)圖初始狀態(tài)下計(jì)時(shí)器顯示00,當(dāng)按下開始鍵時(shí),外部中斷INT0向CPU發(fā)出中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行外部中斷0服務(wù)程序,即開啟定時(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í)過程中,只要按下繼續(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在次開啟,調(diào)用中間緩存區(qū)的數(shù)據(jù),秒表繼續(xù)加一。當(dāng)秒表計(jì)時(shí)超過99時(shí),則程序跳轉(zhuǎn)從0開始。在秒表暫停時(shí),按下復(fù)位開關(guān),中間緩存區(qū)中的數(shù)據(jù)清零,程序回到開始。而在秒表暫停時(shí),按下分/秒顯示轉(zhuǎn)換開關(guān),則將中間緩存區(qū)中的數(shù)據(jù)轉(zhuǎn)換為以分秒顯示的狀態(tài)送入顯示區(qū)。根據(jù)要求秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是計(jì)時(shí)和顯示。因此設(shè)置了四個(gè)按鍵和二位數(shù)碼管顯示時(shí)間,四個(gè)按鍵分別是開始、繼續(xù)/暫停、復(fù)位、分/秒顯示轉(zhuǎn)換。利用這四個(gè)鍵來實(shí)現(xiàn)秒表的全部功能,而二位數(shù)碼管則能顯示最多99秒的計(jì)時(shí)。圖3開始、繼續(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è)鍵可以采用中斷的方法,也可以采用掃描的方法來識(shí)別。復(fù)位鍵和分/秒顯示轉(zhuǎn)換鍵主要功能在于數(shù)值復(fù)位和轉(zhuǎn)換,對(duì)于時(shí)間的要求不是很嚴(yán)格。而開始、繼續(xù)/暫停鍵則是用于對(duì)時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以對(duì)開始、繼續(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ī)本身無專門的液晶驅(qū)動(dòng)接口。而數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、響應(yīng)速度快、防潮防濕性能好、溫度特性極性、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或是遠(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)顯示。二位數(shù)碼管段驅(qū)動(dòng)AT89C51二位數(shù)碼管段驅(qū)動(dòng)AT89C51位位驅(qū)動(dòng)圖5顯示電路基本原理圖動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位\o"數(shù)碼管"數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位\o"數(shù)碼管"數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制。動(dòng)態(tài)方式顯示時(shí),各\o"數(shù)碼管"數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只能選通一位\o"數(shù)碼管"數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位\o"數(shù)碼管"數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位\o"數(shù)碼管"數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。數(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)通電流來確定相應(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)通電流來確定相應(yīng)的限流電阻。圖6(a)數(shù)碼管引腳圖(b)共陰極內(nèi)部結(jié)構(gòu)圖(c)共陽(yáng)極內(nèi)部結(jié)構(gòu)圖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)行。通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。2軟件設(shè)計(jì)2.1程序設(shè)計(jì)思想本設(shè)計(jì)采用了C語(yǔ)言編寫,C語(yǔ)言由于采用了助記符號(hào)來編寫程序,比用機(jī)器語(yǔ)言的二進(jìn)制代碼編程要方便些,在一定程度上簡(jiǎn)化了編程過程。匯編語(yǔ)言的特點(diǎn)是用符號(hào)代替了機(jī)器指令代碼,而且助記符與指令代碼一一對(duì)應(yīng),基本保留了機(jī)器語(yǔ)言的靈活性。使用C語(yǔ)言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。C語(yǔ)言的特點(diǎn):(1).C語(yǔ)言數(shù)據(jù)類型豐富,運(yùn)算符方便(2).C語(yǔ)言簡(jiǎn)潔.緊湊,使用方便.靈活(3).它具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的移植性等特點(diǎn)。(4).目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。(5).面向結(jié)構(gòu)化程序設(shè)計(jì)的語(yǔ)言。在程序設(shè)計(jì)過程中,為了有效地完成任務(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ì)程序的主要模塊有:主程序、顯示程序、定時(shí)溢出中斷服務(wù)程序、外部中斷服務(wù)程序。2.2系統(tǒng)資源的分配本設(shè)計(jì)系統(tǒng)所用到的單片機(jī)端口數(shù)比較多,所以在這里將對(duì)數(shù)字電子秒表的硬件資源的大概分配加以說明。片內(nèi)RAM的分配、各功能鍵的定義以及各端口的分配。表2.1端口的分配安排表名稱功能描述7CH-7DH1s-99s位顯示寄存區(qū)6CH-6DH1s-99s位中間寄存區(qū)定時(shí)器T0控制秒表的最小精度P3.2外部中斷INT0開始中斷信號(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è)置各入口地址、中斷的開啟、對(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ù)位鍵按下后,程序返回開始,重新對(duì)系統(tǒng)進(jìn)行初始化。圖8主程序流程圖在主程序中還進(jìn)行了賦寄存區(qū)的初始值、設(shè)置定時(shí)器初值以及開啟外部中斷等操作,當(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í)行原來較低級(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ù)字式電子秒表的最小精度位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)功能。開始采用外部中斷INT0,暫停采用外部中斷INT1。另外程序中還用到了定時(shí)/計(jì)數(shù)器0溢出中斷進(jìn)行計(jì)時(shí)。依據(jù)設(shè)計(jì)要求,暫停的外部中斷INT1中斷級(jí)別最高,計(jì)時(shí)的定時(shí)/計(jì)數(shù)器0溢出中斷次之,開始的外部中斷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ì)定時(shí)器TO入口地址定時(shí)器TO入口地址置初值置初值R3-1=?0R3-1=?0調(diào)用加一子程序調(diào)用加一子程序調(diào)用數(shù)碼顯示子程序調(diào)用數(shù)碼顯示子程序R3=#20H重置循環(huán)次數(shù)R3=#20H重置循環(huán)次數(shù)中斷返回中斷返回圖9定時(shí)器T0子程序圖框3數(shù)字電子秒表的安裝與調(diào)試3.1軟件的仿真與調(diào)試ProteusISIS是英國(guó)Labcenter公司開發(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)試通過后在焊電路,節(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)述說明。首先打開已經(jīng)畫好的proteusDSN文件,雙擊圖中的AT89S52芯片,就彈出一個(gè)窗口,在ProgramFile項(xiàng)中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿真圖中的AT89S52芯片就已經(jīng)讀取了本設(shè)計(jì)中的HEX文件。單擊“三角形按鈕”進(jìn)行仿真。通過對(duì)仿真結(jié)果的觀察來對(duì)程序進(jìn)行修改,最終使程序到達(dá)設(shè)計(jì)要求。3.2硬件的安裝與調(diào)試按照之前設(shè)計(jì)好的數(shù)字電子秒表原理圖,詳細(xì)計(jì)算系統(tǒng)中各個(gè)元件的參數(shù),選擇相應(yīng)器件,制作實(shí)際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進(jìn)行實(shí)際操作。制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測(cè)試電路板的每條走線,當(dāng)其電阻非常小時(shí),證明走線沒有斷開,當(dāng)其電阻很大時(shí),證明該條走線斷了,應(yīng)該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的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)無法正常運(yùn)行的情況時(shí)有,因此系統(tǒng)時(shí)鐘是否振是通電檢查的首要環(huán)節(jié)。在系統(tǒng)通電的狀況下,用萬用表的直流電壓檔(20V),分別測(cè)量XTAL1和XTAL2引腳的電壓,看是否正常,在調(diào)試過程中,測(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)也可能無法正常工作。單片機(jī)正常工作時(shí),RST復(fù)位引腳應(yīng)為0V,按下復(fù)位按鍵時(shí),復(fù)位引腳為高電平+5V左右。3.2.3顯示電路的測(cè)試顯示電路是數(shù)字電子秒表正常運(yùn)行最直觀的觀察窗口,我們可以通過觀察顯示電路的顯示結(jié)果觀察系統(tǒng)能否正常運(yùn)行。當(dāng)顯示電路按照電路圖焊接好后,用萬用表的測(cè)二極管檔位,將黑表筆接共陰數(shù)碼管的公共段,然后將紅表筆接數(shù)碼管的各段,當(dāng)數(shù)碼管的段能正常顯示,說明各點(diǎn)焊接正常。4結(jié)束語(yǔ)本篇論文是利用單片機(jī)和接口外圍電路組成的時(shí)鐘和秒表雙重功能的電子秒表電路。整個(gè)電路由硬件電路和軟件程序兩部分組成。硬件電路使用元件少,電路結(jié)構(gòu)簡(jiǎn)單,功能強(qiáng),在文中有很多地方敘述的并不是很清楚,因此用圖示出以便更好的了解;軟件程序設(shè)計(jì)結(jié)構(gòu)合理,思路清晰,利用中斷服務(wù)程序?qū)Ω鞣N事件進(jìn)行處理,提高微處理器的工作效率。硬件電路由單片機(jī)AT89C51(微處理器CPU)、接口芯片8279、8位LED數(shù)碼管顯示電路、按鍵電路等構(gòu)成。系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。AT89C52單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。通過以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能這次的單片機(jī)秒表設(shè)計(jì)在顯示方面?zhèn)戎氐亩嘁恍劣诎存I方面則設(shè)置有兩個(gè),一個(gè)是“暫?!辨I,另一個(gè)是“復(fù)位”鍵。而這次的的程序則是用C語(yǔ)言編寫的,雖然在同學(xué)的幫助下編寫完成,但是還有很多不足的地方,比如在中斷程序的那一塊就有很多不足的地方。致謝在這次的畢業(yè)設(shè)計(jì)中我的畢業(yè)設(shè)計(jì)老師給了我很大的幫助.老師為我們指點(diǎn)迷津,幫助我開拓設(shè)計(jì)思路,精心點(diǎn)撥、鼓勵(lì)。在設(shè)計(jì)過程中,不管我遇到任何問題都熱心的幫我們解決。在我想松懈,放棄的時(shí),適時(shí)給我們打氣,從圖紙的繪制到畢業(yè)論文的的完成,每一步都給予詳細(xì)的解釋和說明,在此,感謝老師??偟膩碚f,通過此次畢業(yè)實(shí)習(xí),完成了畢業(yè)設(shè)計(jì)任務(wù)書規(guī)定的各項(xiàng)要求。1、通過這次畢業(yè)設(shè)計(jì)使我學(xué)習(xí)了工程設(shè)計(jì)的一般設(shè)計(jì)理念和思路以及工程資料和文查閱、檢索方法等,為今后從事電子工程設(shè)計(jì)打下良好基礎(chǔ)。2、通過這次畢業(yè)設(shè)計(jì)使我在學(xué)習(xí)單片機(jī)和Protel2004等內(nèi)容的基礎(chǔ)上,進(jìn)一步學(xué)習(xí)并實(shí)踐了電路制作、電路圖的繪制、WORD的熟練使用、電子元器件的選擇和使用方法等多種實(shí)用技術(shù),成功設(shè)計(jì)出了基于單片機(jī)的數(shù)字式電子秒表電路。3、通過這次畢業(yè)設(shè)計(jì)使我學(xué)習(xí)了不少新的知識(shí)和技術(shù),又親身體驗(yàn)方案設(shè)計(jì)、電路繪制,個(gè)人覺得收獲頗豐。

參考文獻(xiàn)[1]張培仁.單片機(jī)原理與應(yīng)用[M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論