版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)報(bào)告</b></p><p><b> 多功能秒表系統(tǒng)設(shè)計(jì)</b></p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 專業(yè)班級(jí): </p><p
2、> 指導(dǎo)老師: </p><p><b> 所在學(xué)院:</b></p><p> 2009年6月10日</p><p><b> 摘 要</b></p><p> 單片機(jī)已經(jīng)無(wú)處不在,與我們生活更是息息相關(guān)并已滲透到了生活的方方面面。單片機(jī)的特點(diǎn)是體積小,重量輕,功能強(qiáng),
3、通用性好,也就是說(shuō)集成度高,其內(nèi)部的結(jié)構(gòu)是普通的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化。在增加一些外圍電路之后,就能成為一個(gè)完整的系統(tǒng)。在眾多單片機(jī)中,MCS-51系列單片機(jī)具有系統(tǒng)結(jié)構(gòu)完整,特殊功能寄存器規(guī)范化以及指令系統(tǒng)的控制功能強(qiáng)等特色,使起成為單片機(jī)中的主流機(jī)型。</p><p> 本設(shè)計(jì)是一個(gè)由AT89C51單片機(jī)控制,利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、電源電路、LED數(shù)碼管以及鍵盤(pán)電路按鍵計(jì)時(shí)來(lái)實(shí)
4、現(xiàn)的多功能秒表系統(tǒng)。</p><p> 在本次設(shè)計(jì)中我們以AT89C51單片機(jī)為主要器件,利用它的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合7809電源提供的+5V穩(wěn)壓電壓,上電加按鈕復(fù)位電路,晶體振蕩電路,由P0口驅(qū)動(dòng)的LED動(dòng)態(tài)顯示電路,鍵盤(pán)電路等來(lái)完成多功能秒表的設(shè)計(jì)。這個(gè)多功能秒表系統(tǒng)能夠?qū)崿F(xiàn)兩位LED顯示,顯示的時(shí)間為00~99秒,每秒自動(dòng)加1,能正確地進(jìn)行加、減(倒)計(jì)時(shí),能同時(shí)記錄4個(gè)相對(duì)獨(dú)立的時(shí)間,通
5、過(guò)上翻鍵和下翻鍵來(lái)查看這4個(gè)不同的計(jì)時(shí)值,還具有快加和復(fù)位功能,基本上實(shí)現(xiàn)了老師的要求。我們使用匯編語(yǔ)言來(lái)編寫(xiě)程序,采用模塊化程序設(shè)計(jì)方法,主程序有多個(gè)子程序構(gòu)成,這些子程序可以單獨(dú)的設(shè)計(jì),調(diào)試和管理,其中包括加1子程序、減1子程序、延時(shí)子程序、快加子程序,復(fù)位子程序和顯示子程序等。將源程序代碼在WAVE中進(jìn)行編譯和調(diào)試,硬件系統(tǒng)利用Proteus軟件來(lái)實(shí)現(xiàn),可以方便的看到運(yùn)行結(jié)果。</p><p> 關(guān)鍵詞:
6、多功能秒表、單片機(jī)、子程序模塊、Proteus仿真</p><p><b> 目錄</b></p><p><b> 1 概述3</b></p><p> 1.1單片機(jī)簡(jiǎn)介…………… …...………………………………………..3</p><p> 1.2設(shè)計(jì)任務(wù)…………………
7、……………………………………………………3</p><p> 1.3設(shè)計(jì)要求………………………………………………………………………3</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)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、鍵盤(pán)電路8</p><p><b> 3 軟件設(shè)計(jì)9</b></p><p> 3.1、設(shè)計(jì)思想10</p><p> 3.2、系統(tǒng)流程圖15</p><p&
9、gt; 4 Proteus軟件仿真17</p><p> 5 課程設(shè)計(jì)體會(huì)………………………………………………………………………….19</p><p><b> 參考文獻(xiàn)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單片機(jī)簡(jiǎn)介</b></p><p> 單片機(jī)是性能價(jià)格比高、體積小、對(duì)國(guó)民經(jīng)濟(jì)滲透力大、最有前途的微控制器。單片機(jī)自20世紀(jì)70年代初研制成功并發(fā)展至今,已進(jìn)入第四代。它主要是在一塊芯片上集成了CPU、存儲(chǔ)器以及輸入輸出電路,在工業(yè)過(guò)程中被廣泛應(yīng)用在控制電路中。從單片機(jī)的系列來(lái)
11、看,國(guó)內(nèi)外已超過(guò)50個(gè)系列、近500個(gè)品種,當(dāng)前正處于更新?lián)Q代、百花齊放的時(shí)期。新的系列和專用系列正在不斷涌現(xiàn)。按位數(shù)分類有4位、8位、16位以及32位單片機(jī)等,4位單片機(jī)由于價(jià)格低和出現(xiàn)的早得到了廣泛的應(yīng)用,特別是在家電應(yīng)用領(lǐng)域中其還有很大的優(yōu)勢(shì),為了抵御8位機(jī)的競(jìng)爭(zhēng),4位機(jī)在結(jié)構(gòu)和功能上都有很大的改進(jìn)。8位機(jī)的生產(chǎn)廠家以及品種都很多,在實(shí)際的生產(chǎn)中應(yīng)用也最為廣泛,其中intel公司的8051系列單片機(jī)在我國(guó)應(yīng)用最為廣泛,另外8位單片
12、機(jī)也在其功能和內(nèi)部結(jié)構(gòu)上不斷的進(jìn)行改進(jìn),目前功能是越來(lái)越強(qiáng)大。16位單片機(jī)在數(shù)據(jù)處理以及單片機(jī)的性能上有了很大的改進(jìn)。32位單片機(jī)是隨著高科技產(chǎn)業(yè)的發(fā)展而產(chǎn)生的。</p><p><b> 1.2設(shè)計(jì)任務(wù):</b></p><p> 設(shè)計(jì)一個(gè)單片機(jī)控制的多功能秒表系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、用兩個(gè)LED數(shù)碼管以及按鍵來(lái)設(shè)計(jì)00~
13、99秒計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行加計(jì)時(shí),同時(shí)數(shù)碼管能夠正確地顯示時(shí)間。 </p><p><b> 1.3設(shè)計(jì)要求:</b></p><p> 1、能同時(shí)記錄四個(gè)相對(duì)獨(dú)立的時(shí)間并分別顯示 。 </p><p> 2、兩位LED動(dòng)態(tài)顯示,顯示時(shí)間為00~99秒。 </p><p> 3
14、、每秒自動(dòng)加1。 </p><p> 4、一個(gè)開(kāi)始按鍵、一個(gè)復(fù)位按鍵、一個(gè)暫停按鈕和一個(gè)快加按鈕(每10ms快速加一)。 </p><p> 5、翻頁(yè)按鈕查看四個(gè)不同的計(jì)時(shí)值 。</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p> 本設(shè)計(jì)的最主要的元器件就是MCS-51單片機(jī)。MCS-51單片機(jī)在一塊芯片上集成了CPU,存
15、儲(chǔ)器RAM,ROM以及輸入與輸出接口電路,這種芯片習(xí)慣上被稱為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。MCS-51單片機(jī)是INTEL公司在1980年推出的高檔8位單片機(jī)。它的典型產(chǎn)品有:8051,8031,8751,80C51,80C31,87C51。</p><p><b> "</b></p><p> 圖1:AT89C51單片機(jī)</p><
16、p> AT89C51(圖1)單片機(jī)由CPU,振蕩器與時(shí)序電路, 4個(gè)8位的I/O端口(P0,P1,P2,P3),串行口等組成。</p><p><b> P0口有三個(gè)功能:</b></p><p> 1、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)做數(shù)據(jù)總線(如圖中的D0~D7為數(shù)據(jù)總線接口)。</p><p> 2、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)作地址總線(如圖
17、中的A0~A7為地址總線接口)。</p><p> 3、不擴(kuò)展時(shí),可做一般的I/O使用,但內(nèi)部無(wú)上拉電阻,作為輸入或輸出時(shí)應(yīng)在外部接上拉電阻。</p><p> P1口只做I/O口使用:其內(nèi)部有上拉電阻。</p><p><b> P2口有兩個(gè)功能:</b></p><p> 1、擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使
18、用;</p><p> 2、做一般I/O口使用,其內(nèi)部有上拉電阻;</p><p><b> P3口有兩個(gè)功能:</b></p><p> 除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由寄存器來(lái)設(shè)置。</p><p> ALE:地址鎖存控制信號(hào)</p><p> PSEN
19、:外部程序存儲(chǔ)器讀選通信號(hào)</p><p> EA/VPP:訪問(wèn)和序存儲(chǔ)器控制信號(hào)</p><p> RST:復(fù)位信號(hào)XTAL1和XTAL2 外接晶振引腳VCC:電源+5V輸入VSS:GND接地。</p><p> 圖2:整體設(shè)計(jì)電路圖</p><p> 2.1 電源:采用7809電源提供+5V穩(wěn)壓電壓。</p><
20、;p> 電源電路是單片機(jī)系統(tǒng)最基本的部分,所以我們應(yīng)該高度重視電源部分,不能因?yàn)殡娫床糠蛛娐繁容^簡(jiǎn)單而有所忽略,電源部分做好才能保證電路的正常工作。對(duì)電源電路來(lái)說(shuō),最重要的就是穩(wěn)壓,我們采用的是7809電源提供的+5V穩(wěn)壓電壓。</p><p> 2.2 復(fù)位電路:采用上電加按鈕復(fù)位。</p><p> 其中,在這個(gè)系統(tǒng)中的復(fù)位電路是采用上電加按鈕來(lái)實(shí)現(xiàn)的。因?yàn)镸CS-51單片
21、機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。MCS-51單片機(jī)工作之后,只要在他的RST引線上加載10ms以上的高點(diǎn)平,單片機(jī)就能有效地進(jìn)行復(fù)位。MCS-51單片機(jī)通常采用上電自動(dòng)復(fù)位、按鍵復(fù)位、以及上電加按鍵復(fù)位等,我們采用的是上電加按鍵復(fù)位方式,這樣做的優(yōu)點(diǎn)是上電后可以直接進(jìn)入復(fù)位狀態(tài),當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。</p><p><b> 圖3:復(fù)位電路</b></p>&l
22、t;p> 2.3晶體振蕩電路: 通過(guò)XTAL1和XTAL2外接晶體振蕩器構(gòu)成內(nèi)部振蕩方式。</p><p> 由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。MCS--51單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反相放大器,引線 XTAL1和XTAL2分別為 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來(lái)自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。</
23、p><p><b> 圖3 晶振電路</b></p><p> 2.4 顯示電路:采用LED動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。</p><p> 顯示電路既可以選用液晶顯示器,也可以選用數(shù)碼管顯示。我們采用的是數(shù)碼管顯示電路。在用數(shù)碼管顯示時(shí),我們有靜態(tài)和動(dòng)態(tài)兩種選擇,靜態(tài)顯示程序簡(jiǎn)單,顯示穩(wěn)定,但是占用端口比較多;動(dòng)態(tài)顯示的程序比較復(fù)雜,但是所使
24、用的端口比較少,可以節(jié)省單片機(jī)的I/O口,我們?cè)谶@次系統(tǒng)設(shè)計(jì)中采用的是動(dòng)態(tài)顯示。但是由于我們編程知識(shí)的局限性,顯示的結(jié)果并沒(méi)有達(dá)到我們預(yù)期的效果,敬請(qǐng)老師原諒。</p><p><b> 圖5:顯示電路</b></p><p> 2.5 鍵盤(pán)電路:用部分P1口做開(kāi)始開(kāi)關(guān),P1.0停止,P1.1復(fù)位,P1.2快加,P1.3暫停記錄,P1.4上翻,P1.5下翻,用外中
25、斷INT0開(kāi)始,用軟件法消除抖動(dòng)。</p><p><b> 圖5:鍵盤(pán)電路</b></p><p><b> 3 軟件設(shè)計(jì)</b></p><p><b> 3.1 設(shè)計(jì)思想</b></p><p> 因?yàn)槊氡碓O(shè)計(jì)相對(duì)較為簡(jiǎn)單,因此在軟件設(shè)計(jì)中我們一般采用模塊化程序
26、設(shè)計(jì)的方法。模塊是一個(gè)具有獨(dú)立功能的程序,可以單獨(dú)設(shè)計(jì)、調(diào)試與管理,模塊可分為功能模塊和控制模塊兩類。我們通過(guò)模塊化程序設(shè)計(jì)可按適當(dāng)?shù)脑瓌t把一個(gè)情況復(fù)雜、規(guī)模較大的程序系統(tǒng)劃分為一個(gè)個(gè)較小的、功能相關(guān)而又相對(duì)獨(dú)立的模塊。每個(gè)小的模塊完成一個(gè)確定的功能,在這些小的模塊之間建立必要的聯(lián)系,互相協(xié)作完成整個(gè)程序要完成的功能。它具有明顯的優(yōu)點(diǎn),把一個(gè)多功能的復(fù)雜的程序劃分為若干個(gè)簡(jiǎn)單的、功能單一的程序模塊,有利于程序的設(shè)計(jì)和調(diào)試,有利于程序的優(yōu)
27、化和分工,提高了程序的閱讀性和可靠性,使程序的結(jié)構(gòu)層次一目了然。</p><p> 其中的模塊即為子程序,子程序是功能獨(dú)立的程序段。子程序的基本思想是編寫(xiě)一次,可以重復(fù)使用。子程序的形式可以是一個(gè)程序文件,也可以是一個(gè)過(guò)程或函數(shù)。子程序總被其他程序調(diào)用而不單獨(dú)執(zhí)行,這與主程序相對(duì)。</p><p> 這個(gè)主程序也是由多個(gè)子程序模塊組成,各程序模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功
28、能,加計(jì)數(shù)、減計(jì)數(shù)、延時(shí)、快加、復(fù)位,計(jì)數(shù)和顯示等,在具體需要時(shí)調(diào)用相應(yīng)的模塊即可。</p><p><b> 程序模塊設(shè)計(jì):</b></p><p><b> 主程序</b></p><p> MAIN: MOV SP, #50H</p><p> MOV TMOD, #11
29、H</p><p> MOVTH1,#0D8H ;定時(shí)10ms</p><p> MOVTL1, #0F0H</p><p> MOVTH0,#0CFH ;定時(shí)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 ;對(duì)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> 判斷是否有鍵按下,并確定是哪一個(gè)鍵,轉(zhuǎn)移到相應(yīng)的子程序的入口地址去執(zhí)行子程序。沒(méi)有鍵按下則一直等待,直到有鍵按下。</p><p> ML1:ACALLDISP ;調(diào)用顯示程序</p><p> P1.
35、0鍵按下時(shí),計(jì)數(shù)停止</p><p> START: JB P1.0, LOOP1 </p><p> ACALL DELAY10 ;延時(shí)</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í),數(shù)字清零復(fù)位</p><p> LOOP1: JB P1.1, LOOP2 </p><p> ACAL
37、L DELAY10 ;延時(shí)</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í),進(jìn)行快加計(jì)數(shù) </p><p> LOOP2: JB P1.2,LOOP3</p><p> ACALL DELAY10 ;延時(shí)</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鍵按下時(shí),執(zhí)行記錄功能</p><p> LOOP3:
40、JB P1.3,LOOP4 </p><p> ACALL DELAY10 ;延時(shí)</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鍵按下時(shí),執(zhí)行上翻功能</p><p> LOOP4: JB P1.4,LOOP5 ;P1.4=0,SHANGFAN</p><p> ACALL DELAY10
42、 ;延時(shí)</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 鍵按下時(shí),執(zhí)行下翻功能</p><p> LOOP5: JB P1.5,LOOP ;P1.5=0,XIAFAN</p><p> ACALL DELAY10 ;延時(shí)</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> ?。?)停止子程序</b></p><p> 軟件對(duì)定時(shí)器0和定時(shí)器1的控制位清零,使定時(shí)器停止工作</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> 軟件對(duì)顯示的各內(nèi)存單元清零,并回到開(kāi)始前的初始狀態(tài),具體程序如下所示 :</p><p> RESET: CLR TR0 </p><p> CLR TR1
47、 ;關(guān)閉定時(shí)器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> 延時(shí)10ms再次判斷該位的狀態(tài),若仍是0則說(shuō)明該鍵被按下,彈起后去執(zhí)行該按鍵功能;若為1,則說(shuō)明是抖動(dòng)則繼續(xù)向下判斷。<
49、;/p><p> 例如下面的程序中就調(diào)用了這個(gè)子程序。</p><p> LOOP3: JB P1.3,LOOP4 ;P1.3=0時(shí),暫停記錄</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)、定時(shí)器1:</b></p>
51、<p><b> 3)、加1程序:</b></p><p> 4 Proteus軟件仿真</p><p> 我們利用WAVE軟件對(duì)源程序進(jìn)行編譯,編譯成功后,把編譯結(jié)果保存。然后根據(jù)我們的軟件在PROTEUS中設(shè)計(jì)出相應(yīng)的硬件電路,并將該電路保存到與WAVE程序相同的文件夾中,最后將程序裝載到單片機(jī)中,通過(guò)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è)計(jì)體會(huì)</b></p><p> 經(jīng)過(guò)一周的不懈努力,單片機(jī)的課程設(shè)計(jì)終于完成了。在這期間我們學(xué)會(huì)了很多,也學(xué)到了很多,同時(shí),對(duì)單片機(jī)這門(mén)課程有了更深一步的理解和掌握。</p><p> 1、本次課程設(shè)計(jì)使我加深了對(duì)單片機(jī)課程的全面認(rèn)識(shí),復(fù)習(xí)和掌握,對(duì)MC-51單片機(jī)有了更深入的了解,對(duì)I/O口的使用,晶振電路的接法,以及復(fù)位電路等的掌握都有了很大程度的提
54、高,這為以后的實(shí)踐打下了良好的基礎(chǔ)。</p><p> 2、掌握定時(shí)器、外部中斷的設(shè)置和編程原理。</p><p> 3、通過(guò)此次課程設(shè)計(jì)能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來(lái),對(duì)程序進(jìn)行編輯,校驗(yàn)。</p><p> 4、還要根據(jù)實(shí)驗(yàn)的實(shí)際情況,添加些額外程序來(lái)使系統(tǒng)更加的穩(wěn)定,如開(kāi)關(guān)的消震蕩(采用延遲)。</p><p> 5、程序要盡量做到
55、由各個(gè)子程序組成,在有些程序后面最好加注釋,這樣在程序出錯(cuò)的檢查過(guò)程中可以更容易查找的到,也更簡(jiǎn)潔,更明白易懂。</p><p> 6、我在編程過(guò)程中還有好多不理解的地方,經(jīng)過(guò)老師和別人的幫助終于完成了這次設(shè)計(jì)。在這個(gè)過(guò)程中體會(huì)到了合作的好處,更了解的互相幫助的重要性。</p><p> 在這次的單片機(jī)課程設(shè)計(jì)中,我遇到了很多困難,曾經(jīng)也想到過(guò)要放棄,但我最后還是堅(jiān)持下來(lái)了。</
56、p><p> 由于編程能力的有限和所學(xué)知識(shí)的局限性,在這個(gè)程序和設(shè)計(jì)系統(tǒng)中只實(shí)現(xiàn)了所有的基本要求和部分的高級(jí)要求,而且這其中還有許多不完善的地方,有時(shí)在上翻和下翻時(shí)會(huì)出現(xiàn)一些問(wèn)題,這說(shuō)明我在這方面還存在著很多不足,知識(shí)不夠完備和系統(tǒng),在以后的學(xué)習(xí)中還有待提高。希望老師能在以后的學(xué)習(xí)和生活中對(duì)我多加指導(dǎo),促使我能取得更大的進(jìn)步。</p><p> 總之,通過(guò)這次課程設(shè)計(jì)我學(xué)到了很多東西。它使
57、我對(duì)單片機(jī)的理論知進(jìn)行了全面的復(fù)習(xí)和系統(tǒng)的理解。本設(shè)計(jì)不僅將我們所學(xué)的理論知識(shí)應(yīng)用到實(shí)際中去,同時(shí)也鍛煉了自己的動(dòng)手能力。與此同時(shí),我還學(xué)會(huì)了要充分利用各種可學(xué)習(xí)的資源,提高自己獨(dú)立學(xué)習(xí)的能力,獨(dú)立思考的能力,查資料的能力,創(chuàng)新的能力及解決問(wèn)題的能力。</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】余發(fā)山編著.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國(guó)
58、礦業(yè)大學(xué)出版社,2003年</p><p> 【2】楊凌霄編著.微型計(jì)算機(jī)原理及應(yīng)用.徐州:中國(guó)礦業(yè)大學(xué)出版社,2004年</p><p> 【3】楊寧編著.單片機(jī)與控制技術(shù).北京:北京航空航天大學(xué)出版社,2004年</p><p> 【4】王閃編著.AT89系列單片機(jī)原理與接口技術(shù).北京:北京航空航天大學(xué)出版社,2004年</p><p&
59、gt; 【5】 李群芳主編.單片機(jī)原理、接口及應(yīng)用.北京:清華大學(xué)出版社,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 ;定時(shí)10ms</p><p> MOVTL1, #
62、0F0H</p><p> MOV TH0,#0CFH ;定時(shí)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時(shí),復(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時(shí),快加</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時(shí),暫停記錄</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時(shí),上翻</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時(shí),下翻</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、 ;啟動(dòng)定時(shí)器0</p><p> CLR TR1</p><p><b> RETI</b></p><p> TIME1:PUSH ACC ;定時(shí)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 ;定時(shí)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 ;延時(shí)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)多功能秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----多功能秒表
- 基于單片機(jī)的多功能秒表的課程設(shè)計(jì)
- 單片機(jī)多功能秒表課程設(shè)計(jì)--89c51單片機(jī)秒表的設(shè)計(jì)
- 單片機(jī)秒表系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)--基于8051的單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的秒表設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--多功能系統(tǒng)
- 基于單片機(jī)的秒表課程設(shè)計(jì)
- 單片機(jī)秒表系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于單片機(jī)的(秒表)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---秒表
- 單片機(jī)秒表課程設(shè)計(jì)
- 秒表(單片機(jī)課程設(shè)計(jì))
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)控制秒表系統(tǒng)
評(píng)論
0/150
提交評(píng)論