論文基于單片機(jī)的多功能秒表系統(tǒng)設(shè)計_第1頁
論文基于單片機(jī)的多功能秒表系統(tǒng)設(shè)計_第2頁
論文基于單片機(jī)的多功能秒表系統(tǒng)設(shè)計_第3頁
論文基于單片機(jī)的多功能秒表系統(tǒng)設(shè)計_第4頁
論文基于單片機(jī)的多功能秒表系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄1 概述311單片機(jī)簡介312設(shè)計任務(wù)3 13設(shè)計要求32 系統(tǒng)總體方案及硬件設(shè)計421、復(fù)位電路522、晶體振蕩電路623、鍵盤電路624、顯示電路73 軟件設(shè)計731、設(shè)計思想732、系統(tǒng)流程圖83.3源程序代碼及注解 104 proteus軟件仿真155 課程設(shè)計體會 166 參考文獻(xiàn) .17附錄1:源程清單18附錄2:系統(tǒng)原理圖241 概述11單片機(jī)簡介單片機(jī)是性能價格比高、體積小、對國民經(jīng)濟(jì)滲透力大、最有前途的微控制器。單片機(jī)自20世紀(jì)70年代初研制成功并發(fā)展至今,已進(jìn)入第四代。它主要是在一塊芯片上集成了cpu、存儲器以及輸入輸出電路,在工業(yè)過程中被廣泛應(yīng)用在控制電路中。從單片機(jī)

2、的系列來看,國內(nèi)外已超過50個系列、近500個品種,當(dāng)前正處于更新?lián)Q代、百花齊放的時期。新的系列和專用系列正在不斷涌現(xiàn)。按位數(shù)分類有4位、8位、16位以及32位單片機(jī)等,4位單片機(jī)由于價格低和出現(xiàn)的早得到了廣泛的應(yīng)用,特別是在家電應(yīng)用領(lǐng)域中其還有很大的優(yōu)勢,為了抵御8位機(jī)的競爭,4位機(jī)在結(jié)構(gòu)和功能上都有很大的改進(jìn)。8位機(jī)的生產(chǎn)廠家以及品種都很多,在實(shí)際的生產(chǎn)中應(yīng)用也最為廣泛,其中intel公司的8051系列單片機(jī)在我國應(yīng)用最為廣泛,另外8位單片機(jī)也在其功能和內(nèi)部結(jié)構(gòu)上不斷的進(jìn)行改進(jìn),目前功能是越來越強(qiáng)大。16位單片機(jī)在數(shù)據(jù)處理以及單片機(jī)的性能上有了很大的改進(jìn)。32位單片機(jī)是隨著高科技產(chǎn)業(yè)的發(fā)展

3、而產(chǎn)生的。12設(shè)計任務(wù):設(shè)計一個單片機(jī)控制的多功能秒表系統(tǒng),利用單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合顯示電路、用兩位共陰極led數(shù)碼管以及按鍵來設(shè)計0099秒計時器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行加計時,同時數(shù)碼管能夠正確地顯示時間。13設(shè)計要求:1、能同時記錄四個相對獨(dú)立的時間并分別顯示 。 2、兩位led動態(tài)顯示,顯示時間為0099秒。 3、每秒自動加1。 4、一個開始按鍵、一個復(fù)位按鍵、一個暫停按鈕和一個計錄按鈕(附加功能)。 5、翻頁按鈕查看四個不同的計時值 。2 系統(tǒng)總體方案本設(shè)計的最主要的元器件就是mcs51單片機(jī)。mcs51單片機(jī)在一塊芯片上集成了cpu

4、,存儲器ram,rom以及輸入與輸出接口電路,這種芯片習(xí)慣上被稱為單片微型計算機(jī),簡稱單片機(jī)。mcs-51單片機(jī)是intel公司在1980年推出的高檔8位單片機(jī)。它的典型產(chǎn)品有:8051,8031,8751,80c51,80c31,87c51。at89c51(圖1)單片機(jī)由cpu,振蕩器與時序電路, 4個8位的i/o端口(p0,p1,p2,p3),串行口等組成。p0口有三個功能:1、外部擴(kuò)展存儲器時,當(dāng)做數(shù)據(jù)總線(如圖中的d0d7為數(shù)據(jù)總線接口)。2、外部擴(kuò)展存儲器時,當(dāng)作地址總線(如圖中的a0a7為地址總線接口)。3、不擴(kuò)展時,可做一般的i/o使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部

5、接上拉電阻。p1口只做i/o口使用:其內(nèi)部有上拉電阻。p2口有兩個功能:1、擴(kuò)展外部存儲器時,當(dāng)作地址總線使用;2、做一般i/o口使用,其內(nèi)部有上拉電阻;p3口有兩個功能:除了作為i/o使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由寄存器來設(shè)置。ale:地址鎖存控制信號psen:外部程序存儲器讀選通信號ea/vpp:訪問和序存儲器控制信號rst:復(fù)位信號xtal1和xtal2 外接晶振引腳vcc:電源+5v輸入vss:gnd接地。at89c51單片機(jī) p2口p1口鍵盤控 制電 路晶振電 路復(fù)位電 路兩位一體數(shù)碼管圖2:整體設(shè)計框圖21 復(fù)位電路:采用上電加按鈕復(fù)位。這個系統(tǒng)中的復(fù)位電路是采用

6、上電加按鈕來實(shí)現(xiàn)的。因為mcs-51單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。mcs-51單片機(jī)工作之后,只要在他的rst引線上加載10ms以上的高點(diǎn)平,單片機(jī)就能有效地進(jìn)行復(fù)位。mcs-51單片機(jī)通常采用上電自動復(fù)位、按鍵復(fù)位、以及上電加按鍵復(fù)位等,我們采用的是上電加按鍵復(fù)位方式,這樣做的優(yōu)點(diǎn)是上電后可以直接進(jìn)入復(fù)位狀態(tài),當(dāng)程序出現(xiàn)錯誤時,可以隨時使電路復(fù)位。圖3:復(fù)位電路22晶體振蕩電路: 通過xtal1和xtal2外接晶體振蕩器構(gòu)成內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。mcs-51單片機(jī)內(nèi)部的振蕩電路是一個高增益反相放大器,引線 x

7、tal1和xtal2分別為 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。圖4:晶振震蕩電路23鍵盤電路:用部分p1口做開始開關(guān),p1.0停止,p1.1復(fù)位,p1.3暫停記錄,p1.4上翻,p1.5下翻,用外中斷int0開始,用軟件法消除抖動。圖5:鍵盤電路24顯示電路:采用led動態(tài)顯示,用p2口驅(qū)動顯示。 圖6:顯示電路3 軟件設(shè)計31 設(shè)計思想因為秒表設(shè)計相對較為簡單,因此在軟件設(shè)計中我們一般采用模塊化程序設(shè)計的方法。模塊是一個具有獨(dú)立功能的程序,可以單獨(dú)設(shè)計、調(diào)試與管理,模塊可分為功能模塊和控制模塊兩類。我們通過模塊化程序設(shè)計可按

8、適當(dāng)?shù)脑瓌t把一個情況復(fù)雜、規(guī)模較大的程序系統(tǒng)劃分為一個個較小的、功能相關(guān)而又相對獨(dú)立的模塊。每個小的模塊完成一個確定的功能,在這些小的模塊之間建立必要的聯(lián)系,互相協(xié)作完成整個程序要完成的功能。它具有明顯的優(yōu)點(diǎn),把一個多功能的復(fù)雜的程序劃分為若干個簡單的、功能單一的程序模塊,有利于程序的設(shè)計和調(diào)試,有利于程序的優(yōu)化和分工,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。其中的模塊即為子程序,子程序是功能獨(dú)立的程序段。子程序的基本思想是編寫一次,可以重復(fù)使用。子程序的形式可以是一個程序文件,也可以是一個過程或函數(shù)。子程序總被其他程序調(diào)用而不單獨(dú)執(zhí)行,這與主程序相對。開始 初始化p1.0=0?

9、p1.1=0?p1.3=0?p1.4=0?p1.5=0?停止復(fù)位下翻上翻夠4個?p1.0=0?n暫停記錄nnnnnn這個主程序也是由多個子程序模塊組成,各程序模塊都要完成一個明確的任務(wù),實(shí)現(xiàn)某個具體的功能,、快加、復(fù)位,計數(shù)和顯示等,在具體需要時調(diào)用相應(yīng)的模塊即可。3.2、程序流程圖:定時器流程圖壓棧保護(hù)賦定時初值到1秒?調(diào)用加1程序調(diào)用顯示程序中斷返回y加1子程序流程圖:(20h) a進(jìn)位清零做加法到100?(20h)清零個位十位分開返回y3.3程序代碼及注解(1):主程序main: mov sp, #50h mov tmod, #11h mov th1,#0d8h ;定時10ms movt

10、l1, #0f0h mov th0,#0cfh ;定時25ms movtl0, #02ch mov 20h,#00h ;bin second mov 30h,#00h ; second mov31h, #00h mov40h, #40 mov 71h, #00h mov 72h, #00h mov 73h, #00h mov 74h, #00h mov r2, #04h mov r3, #04h mov r1, #71h setb ea setb ex1 clr et1 setb et0 clr pt0 clr pt1 setb px1 setb it1 movp2, #0ffh clrtr0

11、 clrtr1 clr 7fh判斷是否有鍵按下,并確定是哪一個鍵,轉(zhuǎn)移到相應(yīng)的子程序的入口地址去執(zhí)行子程序。沒有鍵按下則一直等待,直到有鍵按下。ml1:acalldisp ;調(diào)用顯示程序p1.0鍵按下時,計數(shù)停止start: jb p1.0, loop1 acall delay10 ;延時jb p1.0, loop1 ;p1.0=1,跳轉(zhuǎn)到loop1執(zhí)行jnb p1.0, $ljmp stop ;p1.0=0,跳轉(zhuǎn)到停止子程序p1.1鍵按下時,數(shù)字清零復(fù)位loop1: jb p1.1, loop2 acall delay10 ;延時jb p1.1, loop2 ;p1.1=1,跳轉(zhuǎn)到loop2

12、執(zhí)行jnb p1.1, $ljmp reset ;p1.1=0,跳轉(zhuǎn)到復(fù)位子程序 p1.3鍵按下,暫停記錄loop2: jb p1.3,loop3 acall delay10 ;延時 jb p1.3, loop3 ;p1.3=1,跳轉(zhuǎn)到loop3執(zhí)行jnb p1.3, $ ljmp jilu ;p1.3=0,跳轉(zhuǎn)到暫停記錄子程序p1.4鍵按下時,執(zhí)行上翻功能loop3: jb p1.4,loop4 ;p1.4=0,shangfan acall delay10 ;延時 jb p1.4, loop4 ;p1.4=1,跳轉(zhuǎn)到loop4執(zhí)行 jnb p1.4, $ ljmp xiafan ;p1.4=

13、0,跳轉(zhuǎn)到上翻子程序p1.5 鍵按下時,執(zhí)行下翻功能loop4: jb p1.5,loop ;p1.5=0,xiafan acall delay10 ;延時 jb p1.5, loop ;p1.5=1,跳轉(zhuǎn)到loop執(zhí)行 jnb p1.5, $ ljmp shangfan ;p1.5=0,跳轉(zhuǎn)到下翻子程序loop: sjmp here(2)停止子程序軟件對定時器0和定時器1的控制位清零,使定時器停止工作stop: clr tr0 clr tr1 ; 關(guān)閉定時器0,1 acall disp sjmp here(3)復(fù)位子程序軟件對顯示的各內(nèi)存單元清零,并回到開始前的初始狀態(tài),具體程序如下所示 :

14、reset: clr tr0 clr tr1 ;關(guān)閉定時器0,1 mov 20h, #00h mov 30h, #00h mov 31h, #00h acall disp ;調(diào)用顯示子程序sjmp here(4)按鍵消抖程序delay10: mov r4,#14h 延時10ms再次判斷該位的狀態(tài),若仍是0則說明該鍵被按下,彈起后去執(zhí)行該按鍵功能;若為1,則說明是抖動則繼續(xù)向下判斷。例如下面的程序中就調(diào)用了這個子程序。loop2: jb p1.3,loop3 ;p1.3=0時,暫停記錄 acall delay10 jb p1.3, loop3 jnb p1.3, $ ljmp jilu 4 is

15、is7professionl軟件仿真利用keilu vision軟件對源程序進(jìn)行編譯,編譯成功后,把編譯結(jié)果保存。然后根據(jù)我們的軟件在proteus中設(shè)計出相應(yīng)的硬件電路,并將該電路保存到與wave程序相同的文件夾中,最后將程序裝載到單片機(jī)中,通過isis7professionl仿真,看程序是否能夠?qū)崿F(xiàn)預(yù)想的功能.仿真圖如下圖所示:圖7:系統(tǒng)仿真結(jié)果5 課程設(shè)計體會經(jīng)過一周的不懈努力,單片機(jī)的課程設(shè)計終于完成了。在這期間我們學(xué)會了很多,也學(xué)到了很多,同時,對單片機(jī)這門課程有了更深一步的理解和掌握。1、本次課程設(shè)計使我加深了對單片機(jī)課程的全面認(rèn)識,復(fù)習(xí)和掌握,對mc-51單片機(jī)有了更深入的了解,

16、對i/o口的使用,晶振電路的接法,以及復(fù)位電路等的掌握都有了很大程度的提高,這為以后的實(shí)踐打下了良好的基礎(chǔ)。2、掌握了定時器、外部中斷的設(shè)置和編程原理。3、通過此次課程設(shè)計能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來,對程序進(jìn)行編輯,校驗。4、還要根據(jù)實(shí)驗的實(shí)際情況,添加些額外程序來使系統(tǒng)更加的穩(wěn)定,如開關(guān)的消震蕩(采用延遲)。5、程序要盡量做到由各個子程序組成,在有些程序后面最好加注釋,這樣在程序出錯的檢查過程中可以更容易查找的到,也更簡潔,更明白易懂。6、我在編程過程中還有好多不理解的地方,經(jīng)過同學(xué)的幫助終于完成了這次設(shè)計。在這個過程中體會到了合作的好處,更了解的互相幫助的重要性。由于編程能力的有限和所學(xué)知

17、識的局限性,在這個程序和設(shè)計系統(tǒng)中雖然實(shí)現(xiàn)了所有的基本要求和部分的高級要求,但是這其中還有許多不完善的地方,有時在上翻和下翻時會出現(xiàn)一些問題,這說明我在這方面還存在著很多不足,知識不夠完備和系統(tǒng),在以后的學(xué)習(xí)中還有待提高。另外,在實(shí)踐中雖然焊接好了硬件電路,卻沒能實(shí)踐成功,希望老師能在以后的學(xué)習(xí)和生活中對我多加指導(dǎo),促使我能取得更大的進(jìn)步。 6參考文獻(xiàn)【1】余發(fā)山編著單片機(jī)原理及應(yīng)用技術(shù)徐州:中國礦業(yè)大學(xué)出版社,2003年【2】楊凌霄編著.微型計算機(jī)原理及應(yīng)用.徐州:中國礦業(yè)大學(xué)出版社,2004年【3】楊寧編著.單片機(jī)與控制技術(shù).北京:北京航空航天大學(xué)出版社,2004年【4】王閃編著.at89

18、系列單片機(jī)原理與接口技術(shù).北京:北京航空航天大學(xué)出版社,2004年附錄:程序清單: org0000h ljmp main org 0003h ljmp jilu org000bh ljmptime1 org 0013h ljmp zhongduan org001bh ljmptime10 org0100hmain: mov sp, #50h mov tmod, #11h mov th1,#0d8h ;定時10ms movtl1, #0f0h mov th0,#0cfh ;定時25ms movtl0, #02ch mov 20h,#00h ;bin second mov 30h,#00h ; s

19、econd mov31h, #00h mov40h, #40 mov 71h, #00h mov 72h, #00h mov 73h, #00h mov 74h, #00h mov r2, #04h mov r3, #04h mov r1, #71h setb ea setb ex1 clr et1 setb et0 clr pt0 clr pt1 setb px1 setb it1 movp2, #0ffh clrtr0 clrtr1 clr 7fhml1: acalldispstart: jb p1.0,loop1 ; p1.0=0,stop acall delay10 jb p1.0,

20、loop1 jnb p1.0, $ ljmp stoploop1: jb p1.1, loop2 ;p1.1=0時,復(fù)位 acall delay10 jb p1.1, loop2 jnb p1.1, $ ljmp resetloop2: jb p1.3,loop3 ;p1.3=0時,暫停記錄 acall delay10 jb p1.3, loop3 jnb p1.3, $ ljmp jiluloop3: jb p1.4,loop4 ;p1.4=0時,上翻 acall delay10 jb p1.4, loop4 jnb p1.4, $ ljmp xiafanloop4: jb p1.5,loo

21、p ;p1.5=0時,下翻 acall delay10 jb p1.5, loop jnb p1.5, $ ljmp shangfanloop: sjmp herestop: clr tr0 ;停止程序 clr tr1 acall disp sjmp herereset: clr tr0 ;復(fù)位程序 clr tr1 mov 20h, #00h mov 30h, #00h mov 31h, #00h acall disp sjmp herejilu : mov a,20h ;暫停記錄程序 mov r1, a inc r1 djnz r2, here mov r1, #71h sjmp stopx

22、iafan:mov a,r1 ;下翻程序 mov 20h, a mov b, #0ah div ab mov 31h, a mov 30h, b lcall disp inc r1 djnz r2, here mov r1, #74h sjmp stopshangfan:mov a,r1 ;上翻程序 mov 20h, a mov b, #0ah div ab mov 31h, a mov 30h, b lcall disp dec r1 djnz r3, here mov r1, #71h sjmp stophee: jnb tf1, hee clr tf1 acall jia1 acall disp jnb p1.0, stop sjmp heehere: ljmp ml1zhongduan:setb tr0 ;啟動定時器0 clr tr1 retitime1: push acc ;定時

溫馨提示

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

最新文檔

評論

0/150

提交評論