版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 單片機課程設(shè)計報告</b></p><p><b> 多功能秒表系統(tǒng)設(shè)計</b></p><p> 姓 名: </p><p> 學 號: </p><p> 專業(yè)班級: </p><p
2、> 指導(dǎo)老師: </p><p><b> 所在學院:</b></p><p> 2009年6月10日</p><p><b> 摘 要</b></p><p> 單片機已經(jīng)無處不在,與我們生活更是息息相關(guān)并已滲透到了生活的方方面面。單片機的特點是體積小,重量輕,功能強,
3、通用性好,也就是說集成度高,其內(nèi)部的結(jié)構(gòu)是普通的計算機系統(tǒng)的簡化。在增加一些外圍電路之后,就能成為一個完整的系統(tǒng)。在眾多單片機中,MCS-51系列單片機具有系統(tǒng)結(jié)構(gòu)完整,特殊功能寄存器規(guī)范化以及指令系統(tǒng)的控制功能強等特色,使起成為單片機中的主流機型。</p><p> 本設(shè)計是一個由AT89C51單片機控制,利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合顯示電路、電源電路、LED數(shù)碼管以及鍵盤電路按鍵計時來實
4、現(xiàn)的多功能秒表系統(tǒng)。</p><p> 在本次設(shè)計中我們以AT89C51單片機為主要器件,利用它的定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合7809電源提供的+5V穩(wěn)壓電壓,上電加按鈕復(fù)位電路,晶體振蕩電路,由P0口驅(qū)動的LED動態(tài)顯示電路,鍵盤電路等來完成多功能秒表的設(shè)計。這個多功能秒表系統(tǒng)能夠?qū)崿F(xiàn)兩位LED顯示,顯示的時間為00~99秒,每秒自動加1,能正確地進行加、減(倒)計時,能同時記錄4個相對獨立的時間,通
5、過上翻鍵和下翻鍵來查看這4個不同的計時值,還具有快加和復(fù)位功能,基本上實現(xiàn)了老師的要求。我們使用匯編語言來編寫程序,采用模塊化程序設(shè)計方法,主程序有多個子程序構(gòu)成,這些子程序可以單獨的設(shè)計,調(diào)試和管理,其中包括加1子程序、減1子程序、延時子程序、快加子程序,復(fù)位子程序和顯示子程序等。將源程序代碼在WAVE中進行編譯和調(diào)試,硬件系統(tǒng)利用Proteus軟件來實現(xiàn),可以方便的看到運行結(jié)果。</p><p> 關(guān)鍵詞:
6、多功能秒表、單片機、子程序模塊、Proteus仿真</p><p><b> 目錄</b></p><p><b> 1 概述3</b></p><p> 1.1單片機簡介…………… …...………………………………………..3</p><p> 1.2設(shè)計任務(wù)…………………
7、……………………………………………………3</p><p> 1.3設(shè)計要求………………………………………………………………………3</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計4</p><p><b> 2.1、電源5</b></p><p> 2.2、復(fù)位電路5</p><p&g
8、t; 2.3、晶體振蕩電路6</p><p> 2.4、顯示電路7</p><p> 2.5、鍵盤電路8</p><p><b> 3 軟件設(shè)計9</b></p><p> 3.1、設(shè)計思想10</p><p> 3.2、系統(tǒng)流程圖15</p><p&
9、gt; 4 Proteus軟件仿真17</p><p> 5 課程設(shè)計體會………………………………………………………………………….19</p><p><b> 參考文獻20</b></p><p> 附1:源程序代碼21</p><p> 附2:系統(tǒng)原理圖25</p><p&g
10、t;<b> 1 概述</b></p><p><b> 1.1單片機簡介</b></p><p> 單片機是性能價格比高、體積小、對國民經(jīng)濟滲透力大、最有前途的微控制器。單片機自20世紀70年代初研制成功并發(fā)展至今,已進入第四代。它主要是在一塊芯片上集成了CPU、存儲器以及輸入輸出電路,在工業(yè)過程中被廣泛應(yīng)用在控制電路中。從單片機的系列來
11、看,國內(nèi)外已超過50個系列、近500個品種,當前正處于更新?lián)Q代、百花齊放的時期。新的系列和專用系列正在不斷涌現(xiàn)。按位數(shù)分類有4位、8位、16位以及32位單片機等,4位單片機由于價格低和出現(xiàn)的早得到了廣泛的應(yīng)用,特別是在家電應(yīng)用領(lǐng)域中其還有很大的優(yōu)勢,為了抵御8位機的競爭,4位機在結(jié)構(gòu)和功能上都有很大的改進。8位機的生產(chǎn)廠家以及品種都很多,在實際的生產(chǎn)中應(yīng)用也最為廣泛,其中intel公司的8051系列單片機在我國應(yīng)用最為廣泛,另外8位單片
12、機也在其功能和內(nèi)部結(jié)構(gòu)上不斷的進行改進,目前功能是越來越強大。16位單片機在數(shù)據(jù)處理以及單片機的性能上有了很大的改進。32位單片機是隨著高科技產(chǎn)業(yè)的發(fā)展而產(chǎn)生的。</p><p><b> 1.2設(shè)計任務(wù):</b></p><p> 設(shè)計一個單片機控制的多功能秒表系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,結(jié)合顯示電路、用兩個LED數(shù)碼管以及按鍵來設(shè)計00~
13、99秒計時器。將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行加計時,同時數(shù)碼管能夠正確地顯示時間。 </p><p><b> 1.3設(shè)計要求:</b></p><p> 1、能同時記錄四個相對獨立的時間并分別顯示 。 </p><p> 2、兩位LED動態(tài)顯示,顯示時間為00~99秒。 </p><p> 3
14、、每秒自動加1。 </p><p> 4、一個開始按鍵、一個復(fù)位按鍵、一個暫停按鈕和一個快加按鈕(每10ms快速加一)。 </p><p> 5、翻頁按鈕查看四個不同的計時值 。</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計</p><p> 本設(shè)計的最主要的元器件就是MCS-51單片機。MCS-51單片機在一塊芯片上集成了CPU,存
15、儲器RAM,ROM以及輸入與輸出接口電路,這種芯片習慣上被稱為單片微型計算機,簡稱單片機。MCS-51單片機是INTEL公司在1980年推出的高檔8位單片機。它的典型產(chǎn)品有:8051,8031,8751,80C51,80C31,87C51。</p><p><b> "</b></p><p> 圖1:AT89C51單片機</p><
16、p> AT89C51(圖1)單片機由CPU,振蕩器與時序電路, 4個8位的I/O端口(P0,P1,P2,P3),串行口等組成。</p><p><b> P0口有三個功能:</b></p><p> 1、外部擴展存儲器時,當做數(shù)據(jù)總線(如圖中的D0~D7為數(shù)據(jù)總線接口)。</p><p> 2、外部擴展存儲器時,當作地址總線(如圖
17、中的A0~A7為地址總線接口)。</p><p> 3、不擴展時,可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。</p><p> P1口只做I/O口使用:其內(nèi)部有上拉電阻。</p><p><b> P2口有兩個功能:</b></p><p> 1、擴展外部存儲器時,當作地址總線使
18、用;</p><p> 2、做一般I/O口使用,其內(nèi)部有上拉電阻;</p><p><b> P3口有兩個功能:</b></p><p> 除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由寄存器來設(shè)置。</p><p> ALE:地址鎖存控制信號</p><p> PSEN
19、:外部程序存儲器讀選通信號</p><p> EA/VPP:訪問和序存儲器控制信號</p><p> RST:復(fù)位信號XTAL1和XTAL2 外接晶振引腳VCC:電源+5V輸入VSS:GND接地。</p><p> 圖2:整體設(shè)計電路圖</p><p> 2.1 電源:采用7809電源提供+5V穩(wěn)壓電壓。</p><
20、;p> 電源電路是單片機系統(tǒng)最基本的部分,所以我們應(yīng)該高度重視電源部分,不能因為電源部分電路比較簡單而有所忽略,電源部分做好才能保證電路的正常工作。對電源電路來說,最重要的就是穩(wěn)壓,我們采用的是7809電源提供的+5V穩(wěn)壓電壓。</p><p> 2.2 復(fù)位電路:采用上電加按鈕復(fù)位。</p><p> 其中,在這個系統(tǒng)中的復(fù)位電路是采用上電加按鈕來實現(xiàn)的。因為MCS-51單片
21、機的復(fù)位是靠外部電路實現(xiàn)的。MCS-51單片機工作之后,只要在他的RST引線上加載10ms以上的高點平,單片機就能有效地進行復(fù)位。MCS-51單片機通常采用上電自動復(fù)位、按鍵復(fù)位、以及上電加按鍵復(fù)位等,我們采用的是上電加按鍵復(fù)位方式,這樣做的優(yōu)點是上電后可以直接進入復(fù)位狀態(tài),當程序出現(xiàn)錯誤時,可以隨時使電路復(fù)位。</p><p><b> 圖3:復(fù)位電路</b></p>&l
22、t;p> 2.3晶體振蕩電路: 通過XTAL1和XTAL2外接晶體振蕩器構(gòu)成內(nèi)部振蕩方式。</p><p> 由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。MCS--51單片機內(nèi)部的振蕩電路是一個高增益反相放大器,引線 XTAL1和XTAL2分別為 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。</
23、p><p><b> 圖3 晶振電路</b></p><p> 2.4 顯示電路:采用LED動態(tài)顯示,用P0口驅(qū)動顯示。</p><p> 顯示電路既可以選用液晶顯示器,也可以選用數(shù)碼管顯示。我們采用的是數(shù)碼管顯示電路。在用數(shù)碼管顯示時,我們有靜態(tài)和動態(tài)兩種選擇,靜態(tài)顯示程序簡單,顯示穩(wěn)定,但是占用端口比較多;動態(tài)顯示的程序比較復(fù)雜,但是所使
24、用的端口比較少,可以節(jié)省單片機的I/O口,我們在這次系統(tǒng)設(shè)計中采用的是動態(tài)顯示。但是由于我們編程知識的局限性,顯示的結(jié)果并沒有達到我們預(yù)期的效果,敬請老師原諒。</p><p><b> 圖5:顯示電路</b></p><p> 2.5 鍵盤電路:用部分P1口做開始開關(guān),P1.0停止,P1.1復(fù)位,P1.2快加,P1.3暫停記錄,P1.4上翻,P1.5下翻,用外中
25、斷INT0開始,用軟件法消除抖動。</p><p><b> 圖5:鍵盤電路</b></p><p><b> 3 軟件設(shè)計</b></p><p><b> 3.1 設(shè)計思想</b></p><p> 因為秒表設(shè)計相對較為簡單,因此在軟件設(shè)計中我們一般采用模塊化程序
26、設(shè)計的方法。模塊是一個具有獨立功能的程序,可以單獨設(shè)計、調(diào)試與管理,模塊可分為功能模塊和控制模塊兩類。我們通過模塊化程序設(shè)計可按適當?shù)脑瓌t把一個情況復(fù)雜、規(guī)模較大的程序系統(tǒng)劃分為一個個較小的、功能相關(guān)而又相對獨立的模塊。每個小的模塊完成一個確定的功能,在這些小的模塊之間建立必要的聯(lián)系,互相協(xié)作完成整個程序要完成的功能。它具有明顯的優(yōu)點,把一個多功能的復(fù)雜的程序劃分為若干個簡單的、功能單一的程序模塊,有利于程序的設(shè)計和調(diào)試,有利于程序的優(yōu)
27、化和分工,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。</p><p> 其中的模塊即為子程序,子程序是功能獨立的程序段。子程序的基本思想是編寫一次,可以重復(fù)使用。子程序的形式可以是一個程序文件,也可以是一個過程或函數(shù)。子程序總被其他程序調(diào)用而不單獨執(zhí)行,這與主程序相對。</p><p> 這個主程序也是由多個子程序模塊組成,各程序模塊都要完成一個明確的任務(wù),實現(xiàn)某個具體的功
28、能,加計數(shù)、減計數(shù)、延時、快加、復(fù)位,計數(shù)和顯示等,在具體需要時調(diào)用相應(yīng)的模塊即可。</p><p><b> 程序模塊設(shè)計:</b></p><p><b> 主程序</b></p><p> MAIN: MOV SP, #50H</p><p> MOV TMOD, #11
29、H</p><p> MOVTH1,#0D8H ;定時10ms</p><p> MOVTL1, #0F0H</p><p> MOVTH0,#0CFH ;定時25ms </p><p> MOVTL0, #02CH</p><p> M
30、OV20H, #00H ;BIN SECOND</p><p> MOV30H, #00H ; SECOND</p><p> MOV31H, #00H</p><p> MOV40H, #40</p><p> MOV 71H, #00H</
31、p><p> MOV 72H, #00H</p><p> MOV 73H, #00H</p><p> MOV 74H, #00H ;對71H—74H單元清零</p><p> MOV R2, #04H</p><p> MOV R3, #
32、04H</p><p> MOV R1, #71H</p><p> SETB EA </p><p> SETB EX1</p><p> CLR ET1</p><p> SETB ET0</p><p> CLR PT0</p
33、><p> CLR PT1</p><p> SETB PX1</p><p> SETB IT1</p><p> MOVP0, #0FFH</p><p><b> CLRTR0</b></p><p><b> CLRT
34、R1</b></p><p> CLR 7FH</p><p> 判斷是否有鍵按下,并確定是哪一個鍵,轉(zhuǎn)移到相應(yīng)的子程序的入口地址去執(zhí)行子程序。沒有鍵按下則一直等待,直到有鍵按下。</p><p> ML1:ACALLDISP ;調(diào)用顯示程序</p><p> P1.
35、0鍵按下時,計數(shù)停止</p><p> START: JB P1.0, LOOP1 </p><p> ACALL DELAY10 ;延時</p><p> JB P1.0, LOOP1 ;P1.0=1,跳轉(zhuǎn)到LOOP1執(zhí)行</p>&
36、lt;p> JNB P1.0, $</p><p> LJMP STOP ;P1.0=0,跳轉(zhuǎn)到停止子程序</p><p> P1.1鍵按下時,數(shù)字清零復(fù)位</p><p> LOOP1: JB P1.1, LOOP2 </p><p> ACAL
37、L DELAY10 ;延時</p><p> JB P1.1, LOOP2 ;P1.1=1,跳轉(zhuǎn)到LOOP2執(zhí)行</p><p> JNB P1.1, $</p><p> LJMP RESET
38、 ;P1.1=0,跳轉(zhuǎn)到復(fù)位子程序</p><p> P1.2鍵按下時,進行快加計數(shù) </p><p> LOOP2: JB P1.2,LOOP3</p><p> ACALL DELAY10 ;延時</p><p> JB P1.2, LOOP3
39、 ;P1.2=1,跳轉(zhuǎn)到LOOP3執(zhí)行</p><p> JNB P1.2, $</p><p> LJMP KUAIJIA ;P1.2=0,跳轉(zhuǎn)到快加子程序</p><p> P1.3鍵按下時,執(zhí)行記錄功能</p><p> LOOP3:
40、JB P1.3,LOOP4 </p><p> ACALL DELAY10 ;延時</p><p> JB P1.3, LOOP4 ;P1.3=1,跳轉(zhuǎn)到LOOP4執(zhí)行</p><p> JNB P1.3, $</p><p
41、> LJMP JILU ;P1.3=0,跳轉(zhuǎn)到暫停記錄子程序</p><p> P1.4鍵按下時,執(zhí)行上翻功能</p><p> LOOP4: JB P1.4,LOOP5 ;P1.4=0,SHANGFAN</p><p> ACALL DELAY10
42、 ;延時</p><p> JB P1.4, LOOP5 ;P1.4=1,跳轉(zhuǎn)到LOOP5執(zhí)行</p><p> JNB P1.4, $</p><p> LJMP XIAFAN ;P1.4=0,跳轉(zhuǎn)
43、到上翻子程序</p><p> P1.5 鍵按下時,執(zhí)行下翻功能</p><p> LOOP5: JB P1.5,LOOP ;P1.5=0,XIAFAN</p><p> ACALL DELAY10 ;延時</p><p> JB P1.
44、5, LOOP ;P1.5=1,跳轉(zhuǎn)到LOOP執(zhí)行</p><p> JNB P1.5, $</p><p> LJMP SHANGFAN ;P1.5=0,跳轉(zhuǎn)到下翻子程序</p><p> LOOP: SJMP HERE</p>
45、<p><b> (2)停止子程序</b></p><p> 軟件對定時器0和定時器1的控制位清零,使定時器停止工作</p><p> STOP: CLR TR0 </p><p> CLR TR1</p><p> ACALL DISP</p><p>
46、 SJMP HERE</p><p><b> ?。?)復(fù)位子程序</b></p><p> 軟件對顯示的各內(nèi)存單元清零,并回到開始前的初始狀態(tài),具體程序如下所示 :</p><p> RESET: CLR TR0 </p><p> CLR TR1
47、 ;關(guān)閉定時器0,1</p><p> MOV 20H, #00H</p><p> MOV 30H, #00H</p><p> MOV 31H, #00H</p><p> ACALL DISP ;調(diào)用顯示子程序&l
48、t;/p><p> SJMP HERE</p><p><b> (4)按鍵消抖程序</b></p><p> DELAY10: MOV R4,#14H </p><p> 延時10ms再次判斷該位的狀態(tài),若仍是0則說明該鍵被按下,彈起后去執(zhí)行該按鍵功能;若為1,則說明是抖動則繼續(xù)向下判斷。<
49、;/p><p> 例如下面的程序中就調(diào)用了這個子程序。</p><p> LOOP3: JB P1.3,LOOP4 ;P1.3=0時,暫停記錄</p><p> ACALL DELAY10</p><p> JB P1.3, LOOP4</p><p> JNB
50、 P1.3, $</p><p><b> LJMP JILU</b></p><p><b> 3.2系統(tǒng)流程圖</b></p><p><b> 1)、主程序:</b></p><p><b> 2)、定時器1:</b></p>
51、<p><b> 3)、加1程序:</b></p><p> 4 Proteus軟件仿真</p><p> 我們利用WAVE軟件對源程序進行編譯,編譯成功后,把編譯結(jié)果保存。然后根據(jù)我們的軟件在PROTEUS中設(shè)計出相應(yīng)的硬件電路,并將該電路保存到與WAVE程序相同的文件夾中,最后將程序裝載到單片機中,通過PROTEUS仿真,看程序是否能夠?qū)崿F(xiàn)預(yù)
52、想的功能。</p><p> 源程序在WAVE軟件中的編譯結(jié)果:</p><p> 圖6:源程序在WAVE軟件中的編譯結(jié)果</p><p> PROTEUS仿真圖如下圖所示:</p><p> 圖7:系統(tǒng)仿真結(jié)果1</p><p> 圖8:系統(tǒng)仿真結(jié)果2</p><p><b&g
53、t; 5 課程設(shè)計體會</b></p><p> 經(jīng)過一周的不懈努力,單片機的課程設(shè)計終于完成了。在這期間我們學會了很多,也學到了很多,同時,對單片機這門課程有了更深一步的理解和掌握。</p><p> 1、本次課程設(shè)計使我加深了對單片機課程的全面認識,復(fù)習和掌握,對MC-51單片機有了更深入的了解,對I/O口的使用,晶振電路的接法,以及復(fù)位電路等的掌握都有了很大程度的提
54、高,這為以后的實踐打下了良好的基礎(chǔ)。</p><p> 2、掌握定時器、外部中斷的設(shè)置和編程原理。</p><p> 3、通過此次課程設(shè)計能夠?qū)纹瑱C軟硬件結(jié)合起來,對程序進行編輯,校驗。</p><p> 4、還要根據(jù)實驗的實際情況,添加些額外程序來使系統(tǒng)更加的穩(wěn)定,如開關(guān)的消震蕩(采用延遲)。</p><p> 5、程序要盡量做到
55、由各個子程序組成,在有些程序后面最好加注釋,這樣在程序出錯的檢查過程中可以更容易查找的到,也更簡潔,更明白易懂。</p><p> 6、我在編程過程中還有好多不理解的地方,經(jīng)過老師和別人的幫助終于完成了這次設(shè)計。在這個過程中體會到了合作的好處,更了解的互相幫助的重要性。</p><p> 在這次的單片機課程設(shè)計中,我遇到了很多困難,曾經(jīng)也想到過要放棄,但我最后還是堅持下來了。</
56、p><p> 由于編程能力的有限和所學知識的局限性,在這個程序和設(shè)計系統(tǒng)中只實現(xiàn)了所有的基本要求和部分的高級要求,而且這其中還有許多不完善的地方,有時在上翻和下翻時會出現(xiàn)一些問題,這說明我在這方面還存在著很多不足,知識不夠完備和系統(tǒng),在以后的學習中還有待提高。希望老師能在以后的學習和生活中對我多加指導(dǎo),促使我能取得更大的進步。</p><p> 總之,通過這次課程設(shè)計我學到了很多東西。它使
57、我對單片機的理論知進行了全面的復(fù)習和系統(tǒng)的理解。本設(shè)計不僅將我們所學的理論知識應(yīng)用到實際中去,同時也鍛煉了自己的動手能力。與此同時,我還學會了要充分利用各種可學習的資源,提高自己獨立學習的能力,獨立思考的能力,查資料的能力,創(chuàng)新的能力及解決問題的能力。</p><p><b> 參考文獻</b></p><p> 【1】余發(fā)山編著.單片機原理及應(yīng)用技術(shù).徐州:中國
58、礦業(yè)大學出版社,2003年</p><p> 【2】楊凌霄編著.微型計算機原理及應(yīng)用.徐州:中國礦業(yè)大學出版社,2004年</p><p> 【3】楊寧編著.單片機與控制技術(shù).北京:北京航空航天大學出版社,2004年</p><p> 【4】王閃編著.AT89系列單片機原理與接口技術(shù).北京:北京航空航天大學出版社,2004年</p><p&
59、gt; 【5】 李群芳主編.單片機原理、接口及應(yīng)用.北京:清華大學出版社,2005</p><p><b> 附1:源程序代碼:</b></p><p> ORG0000H</p><p> LJMP MAIN</p><p> ORG 0003H</p><p> LJM
60、P JILU</p><p> ORG000BH</p><p> LJMPTIME1</p><p> ORG 0013H</p><p> LJMP ZHONGDUAN</p><p> ORG001BH</p><p> LJMPTIME10</
61、p><p> ORG0100H</p><p> MAIN: MOV SP, #50H</p><p> MOV TMOD, #11H</p><p> MOV TH1,#0D8H ;定時10ms</p><p> MOVTL1, #
62、0F0H</p><p> MOV TH0,#0CFH ;定時25ms</p><p> MOVTL0, #02CH</p><p> MOV 20H,#00H ;BIN SECOND</p><p> MOV 30H,#00H
63、 ; SECOND</p><p> MOV31H, #00H</p><p> MOV40H, #40</p><p> MOV 71H, #00H</p><p> MOV 72H, #00H</p><p> MOV 73H, #
64、00H</p><p> MOV 74H, #00H</p><p> MOV R2, #04H</p><p> MOV R3, #04H</p><p> MOV R1, #71H</p><p> SETB EA </p><p> S
65、ETB EX1</p><p> CLR ET1</p><p> SETB ET0</p><p> CLR PT0</p><p> CLR PT1</p><p> SETB PX1</p><p> SETB IT1</p
66、><p> MOVP0, #0FFH</p><p><b> CLRTR0</b></p><p><b> CLRTR1</b></p><p> CLR 7FH</p><p> ML1:ACALLDISP</p><p&g
67、t; START: JB P1.0,LOOP1 ; P1.0=0,STOP</p><p> ACALL DELAY10</p><p> JB P1.0, LOOP1</p><p> JNB P1.0, $ </p><p> LJMP STOP</p><p&g
68、t; LOOP1: JB P1.1, LOOP2 ;P1.1=0時,復(fù)位</p><p> ACALL DELAY10</p><p> JB P1.1, LOOP2</p><p> JNB P1.1, $</p><p> LJMP RESET</p>
69、;<p> LOOP2: JB P1.2,LOOP3 ;P1.2=0時,快加</p><p> ACALL DELAY10</p><p> JB P1.2, LOOP3</p><p> JNB P1.2, $</p><p> LJMP KUAI
70、JIA</p><p> LOOP3: JB P1.3,LOOP4 ;P1.3=0時,暫停記錄</p><p> ACALL DELAY10</p><p> JB P1.3, LOOP4</p><p> JNB P1.3, $</p><p&
71、gt;<b> LJMP JILU</b></p><p> LOOP4: JB P1.4,LOOP5 ;P1.4=0時,上翻</p><p> ACALL DELAY10</p><p> JB P1.4, LOOP5</p><p> JNB
72、 P1.4, $</p><p> LJMP XIAFAN</p><p> LOOP5: JB P1.5,LOOP ;P1.5=0時,下翻</p><p> ACALL DELAY10</p><p> JB P1.5, LOOP</p><
73、p> JNB P1.5, $</p><p> LJMP SHANGFAN</p><p> LOOP: SJMP HERE</p><p> STOP: CLR TR0 ;停止程序</p><p> CLR TR1</p>&l
74、t;p> ACALL DISP</p><p> SJMP HERE</p><p> RESET: CLR TR0 ;復(fù)位程序</p><p> CLR TR1</p><p> MOV 20H, #00H</p><
75、;p> MOV 30H, #00H</p><p> MOV 31H, #00H</p><p> ACALL DISP</p><p> SJMP HERE</p><p> JILU : MOV A,20H ;暫停記錄程序</
76、p><p> MOV @R1, A</p><p> INC R1</p><p> DJNZ R2, HERE</p><p> MOV R1, #71H </p><p> SJMP STOP</p><p> XIAFAN: MOV A,@
77、R1 ;下翻程序</p><p> MOV 20H, A</p><p> MOV B, #0AH</p><p> DIV AB</p><p> MOV 31H, A</p><p> MOV 30H, B&l
78、t;/p><p> LCALL DISP</p><p> INC R1</p><p> DJNZ R2, HERE</p><p> MOV R1, #74H</p><p> SJMP STOP</p><p> SHANGFAN:MOV
79、A,@R1 ;上翻程序</p><p> MOV 20H, A</p><p> MOV B, #0AH</p><p> DIV AB</p><p> MOV 31H, A</p><p> MOV 30H,
80、B</p><p> LCALL DISP</p><p> DEC R1</p><p> DJNZ R3, HERE</p><p> MOV R1, #71H</p><p> SJMP STOP</p><p> KUAIJIA:SE
81、TB TR1 ;快加程序</p><p><b> CLR TR0</b></p><p> HEE: JNB TF1, HEE</p><p> CLR TF1</p><p> ACALL JIA1</p>&
82、lt;p> ACALL DISP</p><p> JNB P1.0, STOP</p><p><b> SJMP HEE</b></p><p> HERE: LJMP ML1</p><p> ZHONGDUAN: SETB TR0
83、 ;啟動定時器0</p><p> CLR TR1</p><p><b> RETI</b></p><p> TIME1:PUSH ACC ;定時1秒</p><p> PUSH PSW</p><p&g
84、t; MOVTH0, #0D8H</p><p> MOVTL0, #0F0H</p><p> DJNZ40H, RET0</p><p> LCALL JIA1</p><p> LCALL DISP</p><p> MOV40H, #100</p><p&g
85、t; RET0: POP PSW</p><p> POP ACC</p><p><b> RETI</b></p><p> TIME10: PUSH ACC ;定時10毫秒</p><p> PUSH PSW<
86、/p><p> MOV TH0, #0D8H</p><p> MOV TL0, #0F0H</p><p> RET1: POP PSW</p><p> POP ACC</p><p><b> RETI</b></p><p> J
87、IA1: MOVA,20H ;加1</p><p><b> CLR C</b></p><p><b> INC A</b></p><p> CJNE A, #100, GO1</p><p> MOV
88、 20H, #00H</p><p><b> RET</b></p><p> GO1: MOV 20H, A</p><p> MOV B, #0AH</p><p> DIV AB</p><p> MOV 31H, A</p>
89、<p> MOV 30H, B</p><p><b> RET</b></p><p> DISP: MOV R0,#30H ;顯示</p><p> MOV R3, #0FEH</p><p> MOV A, R3&l
90、t;/p><p> PLAY: MOV P2, A</p><p> MOV A,@R0</p><p> MOV DPTR, #DSEG1</p><p> MOVC A,@A+DPTR</p><p> MOV P0, A</p><p&g
91、t; LCALL DL1</p><p> MOV P2, #0FFH</p><p> MOV A, R3</p><p> RL A</p><p> JNB ACC.2, LD1</p><p> INC R0</p><p
92、> MOV R3, A</p><p> LJMP PLAY</p><p> LD1: RET</p><p> DL1: MOVR7, #05H</p><p> DL: MOVR6, #0FFH</p><p> DL6: DJNZR6, $<
93、/p><p> DJNZR7, DL</p><p><b> RET</b></p><p> DELAY10:MOV R4,#14H ;延時10毫秒</p><p> DL00: MOV R5, #0FFH</p><p> D
94、L11: DJNZ R5, DL11</p><p> DJNZ R4, DL00</p><p><b> RET</b></p><p> DSEG1: DB 3FH, 06H, 5BH, 4FH, 66H</p><p> DB 6DH, 7DH, 07H, 7FH, 6FH</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機多功能秒表課程設(shè)計
- 單片機課程設(shè)計----多功能秒表
- 基于單片機的多功能秒表的課程設(shè)計
- 單片機多功能秒表課程設(shè)計--89c51單片機秒表的設(shè)計
- 單片機秒表系統(tǒng)設(shè)計課程設(shè)計--基于8051的單片機秒表系統(tǒng)設(shè)計
- 單片機課程設(shè)計--基于單片機的秒表系統(tǒng)設(shè)計
- 基于單片機的秒表設(shè)計單片機課程設(shè)計
- 單片機課程設(shè)計--多功能系統(tǒng)
- 基于單片機的秒表課程設(shè)計
- 單片機秒表系統(tǒng)課程設(shè)計
- 單片機課程設(shè)計報告---單片機秒表系統(tǒng)設(shè)計
- 基于單片機數(shù)字秒表系統(tǒng)的課程設(shè)計
- 單片機秒表課程設(shè)計
- 單片機秒表課程設(shè)計
- 單片機秒表課程設(shè)計
- 課程設(shè)計--基于單片機的(秒表)設(shè)計
- 單片機課程設(shè)計---秒表
- 單片機秒表課程設(shè)計
- 秒表(單片機課程設(shè)計)
- 單片機課程設(shè)計報告---單片機控制秒表系統(tǒng)
評論
0/150
提交評論