基于單片機(jī)的秒表設(shè)計(jì)
題目:基于單片機(jī)的秒表設(shè)計(jì)姓 名: 學(xué) 號(hào): 專業(yè)班級(jí): 指導(dǎo)老師: 所在學(xué)院: 年 月 日摘要本設(shè)計(jì)是一個(gè)利用單片機(jī)控制的多功能秒表系統(tǒng),它是基于51系列的單片機(jī)進(jìn)行的系統(tǒng)設(shè)計(jì)。它采用AT89C51單片機(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)四位LED顯示,最大顯示時(shí)間為9分59.9秒,每毫秒自動(dòng)加1,一個(gè)開(kāi)始暫停按鍵、一個(gè)復(fù)位按鍵。其突出的優(yōu)點(diǎn):體積小、場(chǎng)外作業(yè)、功耗最低、宜用電池作為電源、硬件結(jié)構(gòu)緊湊、簡(jiǎn)單和軟件設(shè)計(jì)靈活.當(dāng)今時(shí)代,是一個(gè)新技術(shù)層出不窮的時(shí)代。在電子領(lǐng)域,尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng)正以前所未見(jiàn)的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說(shuō),智能控制與自動(dòng)控制的核心就是單片機(jī)。單片機(jī)的出現(xiàn)是現(xiàn)代科技發(fā)展的一個(gè)重要的里程碑。由于單片機(jī)的集成度高、功能強(qiáng),通用性好,特別是它具有體積下、重量輕、能耗低、價(jià)格便宜等優(yōu)點(diǎn),使單片機(jī)迅速得到推廣應(yīng)用,目前已成為測(cè)量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部件。目錄1 概述4 1.1設(shè)計(jì)任務(wù)41.2設(shè)計(jì)要求42 系統(tǒng)總體方案及硬件設(shè)計(jì)5 2.1系統(tǒng)總體方案5 2.2硬件電路設(shè)計(jì)63 軟件設(shè)計(jì)10 3.1軟件設(shè)計(jì)概述10 3.2程序流程圖10 3.3子程序模塊設(shè)計(jì)124 Proteus軟件真13 4.1軟件功能簡(jiǎn)介13 4.2 Proteus運(yùn)行流程145課程設(shè)計(jì)會(huì)16參考文獻(xiàn)16附1:源程序代碼17附2:系統(tǒng)原理圖20 1 概述1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)單片機(jī)控制的秒表系統(tǒng)。利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及按鍵來(lái)設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),數(shù)碼管能夠正確地顯示時(shí)間。1.2設(shè)計(jì)要求1)利用單片機(jī)內(nèi)部定時(shí)器設(shè)計(jì)一個(gè)秒表,顯示最大值為9分59.9秒。2)使用4位七段顯示器來(lái)顯示現(xiàn)在的時(shí)間。顯示格式為“分、秒、毫秒”。3)要求能實(shí)現(xiàn)秒表的啟動(dòng)、停止和復(fù)位。2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1系統(tǒng)總體方案本系統(tǒng)采用AT89C51單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)地結(jié)合起來(lái)。其中軟件系統(tǒng)采用匯編語(yǔ)言編寫程序,包括顯示程序,計(jì)數(shù)程序,中斷,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來(lái)實(shí)現(xiàn),簡(jiǎn)單切易于觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài)。外圍電路顯示電路單片機(jī)電源電路鍵盤電路系統(tǒng)電路原理圖2.2硬件電路設(shè)計(jì)本系統(tǒng)中,硬件電路主要有電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等,電路圖如下(1)單片機(jī)簡(jiǎn)介本系統(tǒng)設(shè)計(jì)采用AT89C51單片機(jī)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容(由于在微機(jī)原理中學(xué)過(guò)C-51的具體知識(shí),這里不再詳細(xì)說(shuō)明)。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效的微控制器。(2)電源電路電源電路是系統(tǒng)最基本的部分,任何電路都離不開(kāi)電源部分,由于三端集成穩(wěn)壓器件所組成的穩(wěn)壓電源線路簡(jiǎn)單,性能穩(wěn)定,工作可靠,調(diào)整方便,已逐漸取代分立元件,在生產(chǎn)中被廣泛采用,由于是小系統(tǒng),我們采用7809電源提供+5V穩(wěn)壓電壓。(3)晶體振蕩電路MCS-51單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反相放大器,引線 XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來(lái)自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。這里,我們選用51單片機(jī)12MHZ的內(nèi)部振蕩方式,電容器C1,C2起穩(wěn)定振蕩頻率,快速起振的作用,C1和C2可在20-100PF之間取,這里取30P,接線時(shí)要使晶體振蕩器X1盡可能接近單片機(jī)。(4)復(fù)位電路采用上電+按鍵復(fù)位電路,上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使用使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電加開(kāi)關(guān)復(fù)位的操作。這不僅能使單片機(jī)復(fù)位,而且還能使單片機(jī)的外圍芯片也同時(shí)復(fù)位。當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。(5)顯示電路 顯示電路既可以選用液晶顯示器,也可以選用數(shù)碼管顯示。我們采用的是數(shù)碼管顯示電路。用4個(gè)共陽(yáng)極LED顯示,LED是七段式顯示器,內(nèi)部有7個(gè)條形發(fā)光二極管和1個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。在用數(shù)碼管顯示時(shí),我們有靜態(tài)和動(dòng)態(tài)兩種選擇,靜態(tài)顯示程序簡(jiǎn)單,顯示穩(wěn)定,但是占用端口比較多;動(dòng)態(tài)顯示所使用的端口比較少,可以節(jié)省單片機(jī)的I/O口。在設(shè)計(jì)中,我們采用LED動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。由于P0口的輸出級(jí)是開(kāi)漏電路,用它驅(qū)動(dòng)時(shí)需要外接上拉電阻才能輸出高電平。電路圖如下所示:(6)鍵盤電路在按鍵電路中,我們可以在I/O口上直接接按鍵,或者通過(guò)I/O口設(shè)計(jì)一個(gè)鍵盤,然后通過(guò)鍵盤掃描程序判斷是否有鍵按下等。鍵盤掃描電路節(jié)省I/O口,但編程有些復(fù)雜,在這里,由于我們所用的按鍵較少,且系統(tǒng)是一個(gè)小系統(tǒng),有足夠的I/O口可以使用,為了使程序簡(jiǎn)化,我們采用按鍵電路,用部分P1口做開(kāi)關(guān),P1.0啟動(dòng),P1.1清零,電路圖如下所示3 軟件設(shè)計(jì)3.1軟件設(shè)計(jì)概述在軟件設(shè)計(jì)中,一般采用模塊化的程序設(shè)計(jì)方法,它具有明顯的優(yōu)點(diǎn)。把一個(gè)多功能的復(fù)雜的程序劃分為若干個(gè)簡(jiǎn)單的、功能單一的程序模塊,有利于程序的設(shè)計(jì)和調(diào)試,有利于程序的優(yōu)化和分工,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。應(yīng)用系統(tǒng)的程序由包含多個(gè)模塊的主程序和各種子程序組成。各程序模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,如:加計(jì)數(shù)、暫停、清零,顯示等,在具體需要時(shí)調(diào)用相應(yīng)的模塊即可。功能描述:用4位LED數(shù)碼顯示"秒表",顯示時(shí)間為009分59.9秒,每秒自動(dòng)加1;一個(gè)"開(kāi)始"鍵,一個(gè)"復(fù)位"鍵,一個(gè)"清零"鍵。 3.2程序流程圖開(kāi)始系統(tǒng)初始化數(shù)碼管顯示按鍵判斷定時(shí)啟動(dòng)位取反按鍵2關(guān)閉定時(shí)器時(shí)間清零按鍵1NYYN定時(shí)中斷開(kāi)始T0初始化程序處理(分、秒、毫秒自動(dòng)增加)退出中斷3.3子程序模塊設(shè)計(jì)增加按鍵控制功能。1、啟動(dòng)/停止2、清零ML1:LCALLDISPKEY: JNB P1.0, CONTROL; JNB P1.1, CLEAR LJMP ML1CONTROL: LCALL DELAY JB P1.0, ML1LOOP1: LCALL DISP JNB P1.0,LOOP1 CPL TR0 LJMP ML1CLEAR: LCALL DELAY LCALL DISP JB P1.1, ML1 CLR TR0 MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 MOV 31H,#00H ; BCD m_SECOND MOV 32H,#00H ; BCD SECOND MOV 33H,#00H MOV 34H,#00H ; BCD MINUTE JNB p1.1,CLEAR LJMP ML14 Proteus軟件仿真 4.1軟件功能簡(jiǎn)介Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點(diǎn)是:(1)全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢(shì)。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。(3)目前支持的單片機(jī)類型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。(4)支持大量的存儲(chǔ)器和外圍芯片??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真ARM、51、AVR、PIC。Proteus啟動(dòng)畫面:4.2 Proteus運(yùn)行流程Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口、圖形編輯窗口。運(yùn)行Proteus程序后,進(jìn)入軟件的主界面。通過(guò)左側(cè)工具欄中的P(從庫(kù)中選擇元件命令)命令,在Pick Devices 左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設(shè)置,最后進(jìn)行連線。運(yùn)行圖如下:初始狀態(tài)中間狀態(tài)最終狀態(tài)5課程設(shè)計(jì)體會(huì)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的?;仡櫰鸫舜螁纹瑱C(jī)課程設(shè)計(jì),仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在接近四星期的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)不懂一些元器件的使用方法,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。在做課程設(shè)計(jì)的日子里得到了老師的悉心指導(dǎo)和同學(xué)的幫助,在此向他們致以誠(chéng)摯的謝意。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵(lì)使我們對(duì)這次的設(shè)計(jì)完成有了信心和動(dòng)力,在此深表謝意。參考文獻(xiàn)1 余發(fā)山主編.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國(guó)礦業(yè)大學(xué)出版社.2003.76-94,152-1572 楊凌霄編著.微型計(jì)算機(jī)原理及應(yīng)用.徐州:中國(guó)礦業(yè)大學(xué)出版社,2004.36-52附1 源程序代碼ORG0000HLJMP MAIN ORG 000BH LJMPTIME ORG 0100HMAIN: MOV SP,#50H MOV TCON,#01H ;定義中斷方式 MOV 20H,#00H ;BIN m_SECOND MOV 21H,#00H ;BIN SECOND MOV 22H,#00H ;BIN MINUTE MOV 31H,#00H ; BCD m_SECOND MOV 32H,#00H ;BCD SECOND MOV 33H,#00H ; MOV 34H,#00H ;BCD MINUTEMOV TMOD, #01H ;16位計(jì)數(shù)器 MOVTH0, #0D8H ;10ms MOVTL0, #0F0H MOVIE, #10000010BML1: LCALL DISP LJMP ML1TIME: MOVTH0,#0D8H MOVTL0,#0F0H MOVA,20HINC A CLR C CJNE A,#99,GO1 ;轉(zhuǎn)換BCD MOV20H,#0 MOV 31H,#0 MOVA,21H INC A MOVA,21HINCACJNEA, #3CH, GO2 MOV 21H, #0H MOV 32H, #0 MOV 33H, #0MOVA, 22HINC ACJNEA, #0AH, GO3MOV 22H, #00H MOV 34H, #0 AJMPRET0 ;退出中斷GO1:MOV20H, A MOV B,#0AH DIV AB MOV 31H,A ;僅顯示毫秒的百位AJMPRET0GO2:MOV21H, A MOV B, #0AH DIV AB MOV 33H, A MOV 32H, BAJMPRET0GO3:MOV 22H, A MOV B, #0AH DIV AB MOV 34H, B ;僅顯示分的個(gè)位 AJMPRET0RET0: POP PSW POP ACC RETIDISP: MOVR0, #31H MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A, R0 MOV DPTR, #DSEG1 MOVC A, A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.4, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1:MOVR7,#05H ;延時(shí)5*(255*2+2+1)= 2,565usDL: MOVR6, #0FFHDL6:DJNZR6,$ DJNZR7,DL RETDSEG1: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH附2 系統(tǒng)原理圖- 22 -