用匯編編寫的基于單片機(jī)的秒表_第1頁
用匯編編寫的基于單片機(jī)的秒表_第2頁
用匯編編寫的基于單片機(jī)的秒表_第3頁
用匯編編寫的基于單片機(jī)的秒表_第4頁
用匯編編寫的基于單片機(jī)的秒表_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要本設(shè)計(jì)是設(shè)計(jì)一個(gè)單片機(jī)控制的多功能秒表系統(tǒng)。近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入,同時(shí)帶動(dòng)著傳統(tǒng)控制檢測日新月異更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用,僅單片機(jī)方面的知識(shí)是不夠的,還要根據(jù)具體的硬件結(jié)構(gòu),以及針對具體的應(yīng)用對象的軟件結(jié)合,加以完善。秒表的出現(xiàn),解決了傳統(tǒng)的由于人為因素造成的誤差和不公平性。本設(shè)計(jì)的多功能秒表系統(tǒng)采用AT89C51單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、電源電路、LED數(shù)碼管以及鍵盤電路來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)兩位LED顯示,顯示時(shí)間為

2、0099秒,每秒自動(dòng)加1,能正確地進(jìn)行加、減(倒)計(jì)時(shí),快加,快減,可以同時(shí)記錄4個(gè)相對獨(dú)立的時(shí)間,通過上翻下翻來查看這4個(gè)不同的計(jì)時(shí)值,可謂功能強(qiáng)大。其中軟件系統(tǒng)采用匯編語言編寫程序,包括顯示程序,加減計(jì)數(shù)程序,快加快減程序,中斷,延時(shí)程序,按鍵消抖程序等,并在WAVE中調(diào)試運(yùn)行,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實(shí)現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài)。 關(guān)鍵字:單片機(jī);多功能秒表;設(shè)計(jì)Abstract The present design is to design a single chip multifunctional stopwatch control syst

3、em. In recent years, along with the rapid development of science and technology, single-chip applications are the trend at the same time, promote the traditional control testing with each passing day update. In the real-time detection and automatic control of the single-chip applications, often sing

4、le-chip, as a core component to the use of only single-chip knowledge is not enough, but also based on specific hardware structure, as well as for specific applications Object Software, to be improved. The emergence of a stopwatch to solve the traditional man-made because of errors and unfairness. T

5、he design of this multi-functional stopwatch AT89C51 single-chip system-centric device, using its timer / counter timing and number of principles in mind, combining show circuit, power circuit, LED digital control circuit, as well as keyboard designed timer. The software and hardware combined, makin

6、g the system able to achieve two LED display, showed 00 to 99 seconds, plus 1 per second automatically, to correctly add, subtract (down) time, plus fast, fast cut, At the same time, records can be relatively independent of 4 hours, turn on the next turn to see the four time value can be described a

7、s powerful. One system uses software assembly language programming, including shows that the procedures, addition and subtraction counting procedures, faster by speeding up procedures, interruption, delay procedures, eliminate key procedures, such as shaking and debug WAVE in the operation of the sy

8、stem hardware PROTEUS use of powerful features To achieve a simple easy-to-cut observed in the simulation can be observed in actual working condition. Keywords: single-chip; multi-function stopwatch;design目 錄摘 要4ABSTRACT51 概 述71.1設(shè)計(jì)任務(wù)71.2設(shè)計(jì)要求72 系統(tǒng)總體方案及硬件設(shè)計(jì)72.1系統(tǒng)總體方案72.2硬件電路設(shè)計(jì)83 軟件設(shè)計(jì)114.1軟件設(shè)計(jì)概述114.2程

9、序流程圖124.3子程序模塊設(shè)計(jì)144 PROTEUS軟件仿真174.1功能簡介174.2 WAVE編譯174.3 PROTEUS仿真185課程設(shè)計(jì)體會(huì)19參考文獻(xiàn)20附1.源程序代碼21附2.程序原理圖271 概 述1.1設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)單片機(jī)控制的秒表系統(tǒng)。利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及按鍵來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行加、減(倒)計(jì)時(shí),數(shù)碼管能夠正確地顯示時(shí)間。1.2設(shè)計(jì)要求1.能同時(shí)記錄四個(gè)相對獨(dú)立的時(shí)間并分別顯示。 2.兩位LED顯示,顯示時(shí)間為0099秒。3.每秒自動(dòng)加1。 4.一個(gè)開始按鍵、一個(gè)復(fù)位按鍵、

10、一個(gè)暫停按鈕和一個(gè)快加按鈕(每10ms快速加一)。 5.用上翻頁按鈕查看四個(gè)不同的計(jì)時(shí)值。6.添加下翻頁按鈕,并實(shí)現(xiàn)快減功能。 2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1系統(tǒng)總體方案本系統(tǒng)采用AT89C51單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等來設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)地結(jié)合起來。其中軟件系統(tǒng)采用匯編語言編寫程序,包括顯示程序,加減計(jì)數(shù)程序,快加快減程序,中斷,延時(shí)程序,按鍵消抖程序等,并在WAVE中調(diào)試運(yùn)行,硬件系統(tǒng)利用PROTEUS強(qiáng)大的功能來實(shí)現(xiàn),簡單切易于觀察,在仿真中就可以觀察到實(shí)際的工作狀態(tài)。 單片機(jī)

11、 外圍 電路 電源 電路 顯示電路 鍵盤電路 圖1 系統(tǒng)電路原理2.2硬件電路設(shè)計(jì)本系統(tǒng)中,硬件電路主要有電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等(1)單片機(jī)簡介本系統(tǒng)設(shè)計(jì)采用AT89C51單片機(jī)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容(由于在微機(jī)原理中學(xué)過C-51的具體知識(shí),這里不再詳細(xì)說明)。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效的微控制器。(2)電源電路電源電路是系統(tǒng)最

12、基本的部分,任何電路都離不開電源部分,由于三端集成穩(wěn)壓器件所組成的穩(wě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í)鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。這里,我們選用51單片機(jī)12MHZ的內(nèi)部振蕩方式,電路如下:電容器C1,C2起穩(wěn)定振蕩頻率,快速起振的作用,C1和C2可在20-100PF之間取,這里取30P,接線時(shí)要使晶體振蕩器X

13、1盡可能接近單片機(jī)。 圖2 晶體振蕩電路(4)復(fù)位電路采用上電+按鍵復(fù)位電路,上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使用使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電加開關(guān)復(fù)位的操作。這不僅能使單片機(jī)復(fù)位,而且還能使單片機(jī)的外圍芯片也同時(shí)復(fù)位。當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。電路圖如下: 圖3 復(fù)位電路(5)顯示電路顯示電路既可以選用液晶顯示器,也可以選用數(shù)碼管顯示。我們采用的是數(shù)碼管顯示電路。用2個(gè)共陽極LED顯示,LED是七段式顯示器,內(nèi)部有7個(gè)條形發(fā)光二極管和1個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。在用數(shù)碼管顯示時(shí),我們有靜

14、態(tài)和動(dòng)態(tài)兩種選擇,靜態(tài)顯示程序簡單,顯示穩(wěn)定,但是占用端口比較多;動(dòng)態(tài)顯示所使用的端口比較少,可以節(jié)省單片機(jī)的I/O口。在設(shè)計(jì)中,我們采用LED動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。由于P0口的輸出級是開漏電路,用它驅(qū)動(dòng)時(shí)需要外接上拉電阻才能輸出高電平。電路圖如下所示:圖4 顯示電路(6)鍵盤電路在按鍵電路中,我們可以在I/O口上直接接按鍵,或者通過I/O口設(shè)計(jì)一個(gè)鍵盤,然后通過鍵盤掃描程序判斷是否有鍵按下等。鍵盤掃描電路節(jié)省I/O口,但編程有些復(fù)雜,在這里,由于我們所用的按鍵較少,且系統(tǒng)是一個(gè)小系統(tǒng),有足夠的I/O口可以使用,為了使程序簡化,我們采用按鍵電路,用部分P1口做開關(guān),P1.0停止,P1.1

15、快減,P1.2快加,P1.3暫停記錄,P1.4下翻,P1.5上翻,用外中斷INT0開始,另外用軟件法消除抖動(dòng)。電路圖如下所示:圖5 鍵盤電路3 軟件設(shè)計(jì)4.1軟件設(shè)計(jì)概述在軟件設(shè)計(jì)中,一般采用模塊化的程序設(shè)計(jì)方法,它具有明顯的優(yōu)點(diǎn)。把一個(gè)多功能的復(fù)雜的程序劃分為若干個(gè)簡單的、功能單一的程序模塊,有利于程序的設(shè)計(jì)和調(diào)試,有利于程序的優(yōu)化和分工,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。應(yīng)用系統(tǒng)的程序由包含多個(gè)模塊的主程序和各種子程序組成。各程序模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,如:加計(jì)數(shù)、減計(jì)數(shù)、延時(shí)、快加、快減,計(jì)數(shù)和顯示等,在具體需要時(shí)調(diào)用相應(yīng)的模塊即可。功能描述:

16、用2位LED數(shù)碼顯示"秒表",顯示時(shí)間為0099秒,每秒自動(dòng)加1;一個(gè)"開始"鍵,一個(gè)"復(fù)位"鍵,一個(gè)"暫停"鍵,一個(gè)“快減”鍵,一個(gè)“快加”鍵;一個(gè)“記錄”鍵,可同時(shí)記錄四個(gè)相對獨(dú)立的時(shí)間;一個(gè)“上翻”鍵,一個(gè)“下翻”鍵,查看四個(gè)不同的計(jì)時(shí)值。4.2程序流程圖(1)主程序:這里采用分支結(jié)構(gòu),通過對按鍵的掃描,判斷要實(shí)現(xiàn)什么功能。如下所示:開始 初始化P1.0=0?P1.1=0?P1.2=0?P1.3=0?P1.4=0?P1.5=0?停止快減快加下翻上翻夠4個(gè)?P1.0=0?N暫停記錄NNNNNNP1.0=0?NN

17、(2)加1程序(20H) A進(jìn)位清零做加法到100?(20H)清零個(gè)位十位分開返回Y (3)定時(shí)器1程序用定時(shí)器0實(shí)現(xiàn)定時(shí)1秒,定時(shí)器1實(shí)現(xiàn)定時(shí)10毫秒,定時(shí)初值都是0D8F0H,這里只寫定時(shí)1秒的流程圖,如下所示:壓棧保護(hù)賦定時(shí)初值到1秒?調(diào)用加1程序調(diào)用顯示程序中斷返回Y4.3子程序模塊設(shè)計(jì)(1)停止子程序按鍵后,使秒表停止,即關(guān)閉定時(shí)器0,1,程序如下:STOP: CLR TR0 CLR TR1;關(guān)閉定時(shí)器0,1 ACALL DISP;顯示(2)暫停記錄子程序 按鍵結(jié)束后,將此時(shí)顯示內(nèi)存中的數(shù)送寄存器中保存,并通過條件轉(zhuǎn)移指令判斷是否存夠4個(gè)數(shù),若存夠則停止,否則繼續(xù)。JILU : MO

18、V A,20H MOV R1, A INC R1 DJNZ 50H, HERE;是否夠四個(gè)數(shù)? MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOP;夠4個(gè)數(shù)停止(3)加1子程序此程序只為簡單的加1,并判斷是否到100?到則從0開始,否則繼續(xù),另外將顯示內(nèi)存中的數(shù)個(gè)位十位分開,以便于動(dòng)態(tài)顯示。JIA1: MOVA,20H ;CLR CINC ACJNE A, #100, GO1;是否加到100?MOV 20H, #00H RETGO1: MOV 20H, A;將個(gè)位十位分開顯示 MOV B, #0AH DIV AB MOV 31H, A MOV

19、30H, B RET(4)顯示子程序,采用動(dòng)態(tài)顯示DISP: MOVR0,#30H 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.2, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZR6, $ DJNZR7, DL RET(5)延時(shí)子程序例如延時(shí)10ms程序:DEL

20、AY10:MOV R4,#14H DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11 DJNZ R4, DL00 RET(6)按鍵消抖程序延時(shí)10ms再次判斷該位的狀態(tài),若仍是0則說明該鍵被按下,彈起后去執(zhí)行該按鍵功能;若為1,則說明是抖動(dòng)則繼續(xù)向下判斷。L1: JB P1.1,L2 ; P1.1=0,快減 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIAN(5)中斷服務(wù)程序 用外部中斷1實(shí)現(xiàn)開始,定時(shí)器0定時(shí)1S,定時(shí)器1定時(shí)10ms 。4 Proteus軟件仿真4.1功能簡介功能描述如下:連通電源后,按開始鍵,秒表正常

21、運(yùn)行;按暫停記錄鍵,記錄4個(gè)數(shù),上翻下翻鍵可以查看記錄的4個(gè)數(shù);停止鍵可使暫停;快加快減鍵可以實(shí)現(xiàn)快加快減功能,至停止鍵被按下;復(fù)位鍵可使系統(tǒng)復(fù)位。4.2 WAVE編譯將所編寫的匯編語言程序另存為 秒表.ASM 文件,并在WAVE中運(yùn)行,顯示結(jié)果如下: 圖6 運(yùn)行結(jié)果4.3 PROTEUS仿真用PROTEUS將編譯生成的 秒表.HEX 文件下到單片機(jī)中,點(diǎn)擊運(yùn)行按相應(yīng)的操作鍵即可看到下圖的效果: 圖7 部分仿真結(jié)果A圖7 部分仿真結(jié)果B5課程設(shè)計(jì)體會(huì)經(jīng)過一個(gè)星期的課程設(shè)計(jì),過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時(shí)激情高漲到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味

22、無長。在老師的指導(dǎo)下,我順利完成了課程設(shè)計(jì)。心得體會(huì)如下:1、將學(xué)習(xí)的理論知識(shí)通過實(shí)驗(yàn)融會(huì)貫通,讓我對它的理解更加深刻。對程序的編譯過程了解透徹。2、本次課程設(shè)計(jì)以自己設(shè)計(jì)為主,因此培養(yǎng)了學(xué)習(xí)的積極性,讓我能夠獨(dú)立去分析問題、發(fā)現(xiàn)問題、解決問題,更增強(qiáng)我與老師同學(xué)交流溝通和合作完成任務(wù)的能力。3、由于這次課程設(shè)計(jì)不僅設(shè)計(jì)編程方面的知識(shí),還涉及了其它學(xué)科的知識(shí),例如PROTEUS和WAVE等的基本知識(shí)。程序是用匯編語言來編寫的,這次課程設(shè)計(jì)讓我在編程能力方面得到了提高。4、由于水平有限,實(shí)驗(yàn)程序運(yùn)行有一定的限制,望見諒??傊?,通過這次課程設(shè)計(jì),不僅加深了我對單片機(jī)理論方面的理解,將理論更好的運(yùn)用

23、的實(shí)踐方面,而且鍛煉了我們各方面的能力,培養(yǎng)了堅(jiān)強(qiáng)的毅力和做事的耐心和細(xì)心,認(rèn)識(shí)合作的重要性,雖然程序可能有一定的浪費(fèi)資源,且較羅嗦,但這需要在實(shí)踐中慢慢提高,還希望老師能夠多多指導(dǎo),促進(jìn)我不斷的進(jìn)步。參考文獻(xiàn)1 余發(fā)山主編.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國礦業(yè)大學(xué)出版社.20032 楊凌霄編著.微型計(jì)算機(jī)原理及應(yīng)用.徐州:中國礦業(yè)大學(xué)出版社,20043 李群芳主編.單片機(jī)原理、接口及應(yīng)用.北京:清華大學(xué)出版社,2005附1.源程序代碼ORG0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100H

24、MAIN: MOV SP, #50H MOV TMOD, #11H MOVTH1,#0D8H ;定時(shí)10msMOVTL1, #0F0H MOVTH0,#0D8H ;定時(shí)10msMOVTL0, #0F0HMOV20H, #00H ; BIN SECOND MOV30H, #00H ; SECOND MOV31H, #00HMOV40H, #100 MOV 71H,#00H ;記錄暫存區(qū) MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H MOV 50H, #04H MOV 51H, #04H MOV R1, #71H SETB EA SETB EX1 SETB E

25、T1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOVP0, #0FFH CLRTR0 CLRTR1 CLR 7FHML1:ACALLDISPSTART: JB P1.0,L1 ; P1.0=0,停止 ACALL DELAY10 JB P1.0, L1 JNB P1.0, $ LJMP STOPL1: JB P1.1,L2 ; P1.1=0,快減 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加 ACALL DELAY10 JB P1.2, L3 JN

26、B P1.2, $ LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暫停記錄 ACALL DELAY10 JB P1.3, L4 JNB P1.3, $ LJMP JILUL4: JB P1.4,L5 ; P1.4=0,下翻 ACALL DELAY10 JB P1.4, L5 JNB P1.4, $ LJMP XFANL5: JB P1.5,L ; P1.5=0,上翻 ACALL DELAY10 JB P1.5, L JNB P1.5, $ LJMP SHFANL: SJMP HERESTOP: CLR TR0 ;停止程序 CLR TR1 ACALL DISP SJMP HE

27、REJILU : MOV A,20H ;暫停記錄程序 MOV R1, A INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOPXFAN: MOV A,R1 ;下翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H SJMP HERESHFAN: MOV A,R1 ;下翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP DEC R1 DJNZ 50H, HERE MOV R1, #74H MOV 50H, #04H SJMP HEREKJIAN: SETB TR1 ;快減程序 CLR TR0 HEE1: JNB TF1, HEE1 CLR TF1 ACALL JIAN1 ACALL DISP JNB P1.0, STOP SJMP HEE1KJIA: SETB TR1 ;快加程序 CLR TR0HEE: JNB TF1, HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0, STOP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論