




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微機綜合實踐課程設(shè)計說明書題 目: 指示燈定時控制系統(tǒng) 學(xué) 院: 機電工程學(xué)院 姓 名: 學(xué) 號: 指導(dǎo)老師: 小組成員: 摘要20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡, 廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,例如,導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)
2、處理,廣泛使用的各種智能IC卡,錄像機、攝像機、全自動洗衣機的控制等等,這些都離不開單片機。而我們本次設(shè)計的是指示燈定時控制系統(tǒng),用單片機AT89C51實現(xiàn)。由于單片機編程靈活,我們采用直接面向機器的匯編語言來實現(xiàn)。單片機具有集成度高,通用性好,功能強,體積小,重量輕,耗能低,可靠性高和使用方便等獨特優(yōu)點都能得到體現(xiàn)。關(guān)鍵字:單片機 AT89C51 匯編語言 目錄摘要2前言5一、課題介紹61.1課題設(shè)計內(nèi)容6二、整體方案設(shè)計62.1 系統(tǒng)整體設(shè)計:6三、系統(tǒng)硬件設(shè)計63.1 控制模塊73.2 LED燈顯示模塊93.3 按鍵模塊組成103.4 電路原理圖103.5 元件清單11四、系統(tǒng)軟件124
3、.1程序設(shè)計內(nèi)容124.2 程序框圖144.4 程序功能擴展17五、系統(tǒng)調(diào)試20PROTEUS仿真20六、系統(tǒng)功能21總結(jié)21參考文獻22附錄22作品實物圖22前言在單片機里面,經(jīng)常需要用到定時器來獲取我們需要的時間,MCS-51單片機內(nèi)部有兩個16為定時/計數(shù)器,簡稱定時器0(T0)和定時器1(T1),他們均可用做定時器或者計數(shù)器,為單片機系統(tǒng)提供計數(shù)和定時功能,還可作為串行口的波特率發(fā)生器,這些功能都可以通過軟件來設(shè)定、修改與控制。定時器是單片機里最“活躍”的部件之一,很多程序、應(yīng)用系統(tǒng)都離不開定時器。定時器是單片機應(yīng)用中解決某類復(fù)雜問題的最為有效的方法,應(yīng)用很廣泛。對于簡單的應(yīng)用場合,時
4、間要求較長,不算很精確的場合,用起來相對比較簡單。我們本次課程設(shè)計基于定時器設(shè)計指示燈定時控制系統(tǒng),希望通過這次課程設(shè)計,可以很好的掌握定時器的原理和應(yīng)用方法。一、課題介紹1.1課題設(shè)計內(nèi)容:用AT89S51的定時/計數(shù)器T0產(chǎn)生2秒鐘的定時,每當(dāng)2秒定時到來時,更換指示燈閃爍,每個指示閃爍的頻率為0.2秒,也就是說,開始L1指示燈以0.2秒的速率閃爍,當(dāng)2秒定時到來之后,L2開始以0.2秒的速率閃爍,如此循環(huán)下去。0.2秒的閃爍速率也由定時/計數(shù)器T0來完成。二、整體方案設(shè)計2.1 系統(tǒng)整體設(shè)計:采用40腳、片內(nèi)帶8kB Flash ROM的AT89S51單片機作為控制核心,通過定時器產(chǎn)生定
5、時來控制P1口的4個LED燈,一旦按下P3.2的按鍵便可實現(xiàn)暫停閃爍,再按一次接著進行閃爍,按鍵服務(wù)通過查詢的方式實現(xiàn)。指示燈定時控制系統(tǒng)結(jié)構(gòu)框圖三、系統(tǒng)硬件設(shè)計指示燈定時控制系統(tǒng)分別由控制模塊,LED燈顯示模塊,按鍵模塊組成。3.1 控制模塊主控制器采用AT89S51。AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP
6、Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。AT89S51中的并行I/O口P0P3引腳:P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被
7、定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這
8、是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為普通I/O口,還有第二功能:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口
9、)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(T0定時器的外部計數(shù)輸入)P3.5 T1(T1定時器的外部計數(shù)輸入)P3.6 /WR(外部數(shù)據(jù)存儲器的寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器的讀選通)其中,我們選用P1.0P1.3作為我們LED的輸出端口,P3.0和P3.1作為讀入寫入程序的端口,用ISP下載器燒錄程序。AT89S51的晶振及復(fù)位電路按典型電路設(shè)計,元器件參數(shù)如圖,晶振頻率選為12MHz。PDIP封裝的AT89S51管腳圖 控制模塊原理圖3.2 LED燈顯示模塊通過共陽極接入到P1.0P1.3口,每個LED燈加上分壓電阻,防止電流過大損壞L
10、ED元件,原理圖如下:LED燈顯示模塊原理圖3.3 按鍵模塊組成通過P3.2口接入,按鍵另一端接地。按鍵模塊原理圖3.4 電路原理圖本電路需要+5V電壓,直接用USB座口通過電源適配器供電,電路圖如下:DXP制作的電路圖PCB印刷圖:3.5 元件清單序號元件數(shù)量1STC51單片機12晶振1330pF電容24LED燈551k電阻16220電阻4710k電阻1810uF極性電容19USB母座接口110自鎖開關(guān)111四引腳按鍵112排針13銅板四、系統(tǒng)軟件4.1程序設(shè)計內(nèi)容我們運用匯編語言來設(shè)計程序。匯編語言(Assembly Language)是面向機器的程序設(shè)計語言。在匯編語言中,用助記符(Me
11、moni)代替機器指令的操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替指令或操作數(shù)的地址,如此就增強了程序的可讀性并且降低了編寫難度,象這樣符號化的程序設(shè)計語言就是匯編語言,因此亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,還要由匯編程序或者叫匯編語言編譯器轉(zhuǎn)換成機器指令。匯編程序?qū)⒎柣牟僮鞔a組裝成處理器可以識別的機器指令,這個組裝的過程稱為組合或者匯編。因此,有時候人們也把匯編語言稱為組合語言。 AT89S51單片機的內(nèi)部16位定時/計數(shù)器是一個可編程定時/計數(shù)器,它既可以工作在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設(shè)置特殊功能寄存器
12、TMOD,即可完成。定時/計數(shù)器何時工作也是通過軟件來設(shè)定TCON特殊功能寄存器來完成的。 定時/計數(shù)器方式選擇寄存器(TMOD)-TMOD寄存器是一個專用寄存器,用于控制兩個定時計數(shù)器的工作方式,TMOD可以用字節(jié)傳送指令設(shè)置其內(nèi)容,但不能位尋址。TMOD主要是用于選定定時器的工作方式;TCON主要是用于控制定時器的啟動停止,此外TCON還可以保存T0、T1的溢出和中斷標(biāo)志。當(dāng)定時器工作在計數(shù)方式時,外部事件通過引腳T0(P3.4)和T1(P3.5)輸入?,F(xiàn)在我們選擇16位定時工作方式,對于T0來說,最大定時也只有65536us,即65.536ms,無法達到我們所需要的0.2秒和2秒的定時,
13、因此,我們必須通過軟件來處理這個問題,我們設(shè)定取T0的定時為50ms,即要定時0.2秒需要經(jīng)過4次的50ms的定時,需要2秒需要經(jīng)過40次50ms的定時,通過這樣來實現(xiàn)我們的時間需要。 通過查閱資料:TMOD寄存器結(jié)構(gòu)D7D6D5D4D3D2D1D0GATAM1M0GATAM1M0T1方式字段T0方式字段M1M0模式說明 00013位定時(計數(shù))器,TH高8位和TL的低5位 01116位定時/計數(shù)器 102自動重裝入初值的8位定時/計數(shù)器113T0分成兩個獨立的8位計數(shù)器,T1沒有模式3根據(jù)上表,設(shè)定TMOD初值為00000001B,即TMOD01H。給T0定時/計數(shù)器的TH0,TL0裝入預(yù)置
14、初值0.05=(65536-T0初值)×1/12000000×12T0初值=15536=3CB0HTH0=3CH TL0=B0H4.2 程序框圖4.2.1 T0中斷服務(wù)程序框圖4.2.2 主程序流程圖主程序主要是通過定時器產(chǎn)生50ms的定時,然后用循環(huán)的次數(shù)來達到我們所需要的0.2s和2s定時,然后在不同的LED燈進行不斷的取反達到閃爍的目的。其中,我們加入了暫停功能,用查詢方式實現(xiàn),只要查詢到按鍵有信號就暫停,查詢到第二次的信號就返回主程序。4.3 匯編程序源程序 TIME2S EQU 30H ; TIME2S等價于30H,用于計算2s的時間TIME02S EQU 31H
15、 ; TIME02S等價于31H,用于計數(shù)是否達到4個50ms,即0.2sNUM EQU 32H ; NUM等價于32H,NUM用于標(biāo)記led的號數(shù)FLAG EQU 33H; FLAG等價于33H,用于標(biāo)記按鍵信號ORG 00;程序存放在存儲器00H開始的單元CPL P1.0;將P1.0的高電平取反變?yōu)榈碗娖?,?zhǔn)備執(zhí)行主程序 LJMP START;跳轉(zhuǎn)到START標(biāo)號地址執(zhí)行程序 ORG 0BH;定時器0的矢量地址 LJMP INT_T0 START: MOV TIME2S,#00H;賦予TIME2S的初值為0 MOV TIME02S,#00H;賦予TIME02S的初值為0 MOV NUM,#
16、00H; 賦予NUM的初值為0 MOV TMOD,#01H;設(shè)置工作模式1 MOV TH0,#03CH;賦定時器的初值,定時時間為50ms MOV TL0,#0B0H SETB TR0;啟動定時器0 SETB ET0;打開中斷 SETB EA;打開CPU中斷 SJMP $ ;等待中斷INT_T0: MOV TH0,#03CH;重新裝入定時器初值 MOV TL0,#0B0H INC TIME2S;TIME2S計數(shù) MOV A,TIME2S CJNE A,#40,NEXT;TIME2S沒有達到40次就跳轉(zhuǎn)到NEXT,否則按順序執(zhí)行 MOV TIME2S,#00H;重新賦0 INC NUM;NUM計
17、數(shù) MOV A,NUM CJNE A,#04H,NEXT;NUM沒有達到4次就跳轉(zhuǎn)到NEXT MOV NUM,#00H;重新賦0 NEXT: LCALL SCAN;調(diào)用按鍵掃描子程序,用查詢方式INC TIME02S;TIME02S計數(shù) MOV A,TIME02S CJNE A,#4,DONE;如果TIME02S沒有達到4次,即4×50ms=0.2s,就跳轉(zhuǎn)到DONE MOV TIME02S,#00H;重新賦0,以便計算下一個0.2s MOV A,NUM CJNE A,#00H,CH1;NUM為0,將P1.0的led燈不斷取反,以便其可以閃爍 CPL P1.0 SJMP DONE C
18、H1: CJNE A,#01H,CH2 ;NUM為0,將P1.1的led燈不斷取反,以便其可以閃爍 CPL P1.1 SJMP DONE CH2: CJNE A,#02H,CH3 ;NUM為1,將P1.2的led燈不斷取反,以便其可以閃爍 CPL P1.2 SJMP DONE CH3: CJNE A,#03H,CH4 ;NUM為2,將P1.3的led燈不斷取反,以便其可以閃爍 CPL P1.3 CH4: SJMP DONE DONE: RETI ;返回中斷SCAN: MOV P3,#0FFH ;先將P3的端口全部置1 MOV FLAG,#00H;把標(biāo)記置0 JNB P3.2,TT0;如果按鍵端
19、口P3.2檢測不到低電平,就返回到主程序 RETSTART1: JNB P3.2,TT0;如果按鍵按下,即低電平,跳轉(zhuǎn)到TT0AJMP START1TT0: LCALL D1MS;調(diào)用延時子程序, JNB P3.2,TT0;如果檢測不到高電平,則繼續(xù)等待按鍵松開 INC FLAG;按鍵松開,F(xiàn)LAG標(biāo)記為1,表示按鍵一次完成 MOV A,FLAGCJNE A,#01H,GOBACK;如果FLAG標(biāo)記為1,則返回到START1,繼續(xù)檢測按鍵,檢測到第二次按鍵的時候,F(xiàn)LAG標(biāo)記為2,程序跳轉(zhuǎn)到GOBACK,通過該子程序返回到主程序繼續(xù)運行,從而起到按鍵一次暫停,再按一次繼續(xù)運行的作用 AJMP
20、START1;D1MS: MOV R7, #10 ;延時5ms,進行按鍵消抖 D1:MOV R6, #250; DJNZ R6,$; DJNZ R7,D1 ; RET ;GOBACK: RET END4.4 程序功能擴展4.4.1按鍵程序設(shè)計把按鍵設(shè)計在P3.2,用于檢測按鍵是否按下,按鍵另一端接地,按鍵按下時為低電平,我們通過檢測P3.2口是否為低電平作為按鍵按下的信號,延時5ms后繼續(xù)檢測按鍵是否為高電平,若為高電平證明此次按鍵已經(jīng)松開,一次按鍵完成,用FLAG標(biāo)志為1。如果FLAG=1,按鍵掃描程序SCAN繼續(xù)等待P3.2的下一次低電平,即第二次按鍵,如果檢測到第二次按鍵完成,F(xiàn)LAG=
21、FLAG+1=2,如果FLAG1,立即返回到主程序繼續(xù)運行,否則繼續(xù)掃描按鍵狀態(tài),從而起到暫停的作用。4.4.2 按鍵的消抖根據(jù)查閱相關(guān)資料,我們獲悉,其實,作為一個按鍵從沒有按下到按下以及釋放是一個完整的過程,也就是說,當(dāng)我們按下一個按鍵時,總希望某個命令只執(zhí)行一次,而在按鍵按下的過程中,不要有干擾進來,因為,在按下的過程中,一旦有干擾過來,可能造成誤觸發(fā)過程,這并不是我們所想要的。因此在按鍵按下的時候,要把我們手上的干擾信號以及按鍵的機械接觸等干擾信號給濾除掉,一般情況下,我們可以采用電容來濾除掉這些干擾信號,但實際上,會增加硬件成本及硬件電路的體積,這是我們不希望,總得有個辦法解決這個問
22、題,因此我們可以采用軟件濾波的方法去除這些干擾信號,一般情況下,一個按鍵按下的時候,總是在按下的時刻存在著一定的干擾信號,按下之后就基本上進入了穩(wěn)定的狀態(tài)。具體的一個按鍵從按下到釋放的全過程的信號圖如上圖所示。 從圖中可以看出,我們在程序設(shè)計時,從按鍵被識別按下之后,延時 5ms 以上,從而避開了干擾信號區(qū)域,我們再來檢測一次,看按鍵是否真得已經(jīng)按下,若真得已經(jīng)按下,這時肯定輸出為低電平,若這時檢測到的是高電平,證明剛才是由于干擾信號引起的誤觸發(fā),CPU 就認為是誤觸發(fā)信號而舍棄這次的按鍵識別過程。從而提高了系統(tǒng)的可靠性。 由于要求每按下一次,命令被執(zhí)行一次,直到下一次再按下的時候,再執(zhí)行一次
23、命令,因此從按鍵被識別出來之后,我們就可以執(zhí)行這次的命令,所以要有一個等待按鍵釋放的過程,顯然釋放的過程,就是使其恢復(fù)成高電平狀態(tài)。所以我們在程序中加入D1MS的延時子程序,起到消抖的作用。延時程序 機器周期D1MS: MOV R7, #10 1 D1:MOV R6, #250 1 DJNZ R6,$ 2 DJNZ R7,D1 2 RET 2程序中:內(nèi)循環(huán)一次所需機器周期數(shù)=2個內(nèi)循環(huán)共循環(huán)250次的機器周期數(shù)=2×250=500個外循環(huán)一次所需機器周期數(shù)=(2×250+1+2)=503個外循環(huán)共循環(huán)10次,所以該延時程序總機器周期=(503×10+1+2)=5033個即延時5033s5ms五、系統(tǒng)調(diào)試打開Keil uVision2,新建一個工程,并且新建一個文本,把以上程序粘貼進去,保存為以”.ASM”后綴的文件,添加到工程的”Source Group 1”中,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 橫看成嶺側(cè)成峰遠近高低各不同網(wǎng)絡(luò)圖片資料僅供學(xué)習(xí)交流課件
- 飲食行業(yè)中的營養(yǎng)均衡與健康飲食標(biāo)準(zhǔn)
- 質(zhì)量安全領(lǐng)域中實施自動化檢測方法研究
- 財務(wù)風(fēng)險管理在商業(yè)合同執(zhí)行中的作用
- 計算步驟角度閉合差的計算與調(diào)整推算各邊的坐標(biāo)方位角坐標(biāo)增量的計算坐標(biāo)閉
- 延安職業(yè)技術(shù)學(xué)院《化工設(shè)備機械基礎(chǔ)II》2023-2024學(xué)年第二學(xué)期期末試卷
- 梅州市豐順縣2025年三下數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 黃岡科技職業(yè)學(xué)院《機器學(xué)習(xí)與人工智能》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津師范大學(xué)《形體訓(xùn)練(流行舞蹈)》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省四平市伊通滿族自治縣2024-2025學(xué)年數(shù)學(xué)四年級第二學(xué)期期末復(fù)習(xí)檢測試題含解析
- 人工智能訓(xùn)練師考核模塊需求說明
- 跨文化管理案例
- 北師大版七年級上冊數(shù)學(xué)《基本平面圖形》單元作業(yè)設(shè)計
- 古村落鄉(xiāng)村文化旅游古鎮(zhèn)旅游外文文獻翻譯2014年
- 2024年臺州椒江中考二模英語試題含答案
- 四年級語文閱讀理解十篇(含答案)
- 2024年湖南交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 加工中心操作規(guī)程培訓(xùn)
- 大學(xué)英語四級考試高頻詞匯1500
- 高速公路工程施工安全標(biāo)準(zhǔn)化指南
- 危險貨物運輸-課件
評論
0/150
提交評論