單片機(jī)試驗(yàn)源程序文件_第1頁
單片機(jī)試驗(yàn)源程序文件_第2頁
單片機(jī)試驗(yàn)源程序文件_第3頁
單片機(jī)試驗(yàn)源程序文件_第4頁
單片機(jī)試驗(yàn)源程序文件_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)試驗(yàn)源程序文件.....單片機(jī)實(shí)驗(yàn)指導(dǎo)書(實(shí)驗(yàn)源程序)單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第1頁。單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第1頁。實(shí)驗(yàn)二、三I/O接口實(shí)驗(yàn)輸出實(shí)驗(yàn)例1:ORG 0000HAJMP START ;跳轉(zhuǎn)到初始化程序ORG 0033H;-----主程序開始-----START: MOVP1,#0FFH;是所有LED熄滅ACALLDELAY;調(diào)用延時(shí)子程序CLR P1.0;P1.0輸出低電平,使LED3點(diǎn)亮 ACALLDELAY;調(diào)用延時(shí)子程序 SETB P1.0;P1.0輸出高電平,使LED3熄滅 CLR P1.1;P1.1輸出低電平,使LED4點(diǎn)亮 ACALLDELAY;調(diào)用延時(shí)子程序 SETB P1.1;P1.1輸出高電平,使LED4熄滅 CLR P1.2;P1.2輸出低電平,使LED5點(diǎn)亮 ACALLDELAY;調(diào)用延時(shí)子程序 SETB P1.2;P1.2輸出高電平,使LED5熄滅 CLR P1.3;P1.3輸出低電平,使LED6點(diǎn)亮 ACALLDELAY;調(diào)用延時(shí)子程序 MOVP1,#0F0H;LED3~LED6全部發(fā)光ACALLDELAY;調(diào)用延時(shí)子程序AJMP START;返回到標(biāo)號(hào)START處再循環(huán);-----延時(shí)子程序-----DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR7,#250LOOP2:DJNZR7,LOOP2DJNZR6,LOOP1DJNZR5,LOOPRET例2:ORG 0000HAJMP START ;跳轉(zhuǎn)到初始化程序ORG 0033H;-----主程序開始-----START: MOVP1,#0FFH;是所有LED熄滅ACALLDELAY;調(diào)用延時(shí)子程序MOV ACC,#0FEH ;ACC中先裝入LED3亮的數(shù)據(jù)(二進(jìn)制的11111110) MOV P1,ACC ;將ACC的數(shù)據(jù)送P1口 ACALL DELAY ;調(diào)用延時(shí)子程序單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第2頁。MOV R0,#03H ;上句送到P1口的數(shù)據(jù)就點(diǎn)亮了LED1,所以將數(shù)據(jù)再移單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第2頁。動(dòng)3次就完成一個(gè)4位流水過程LOOP3: RL A ;將ACC中的數(shù)據(jù)左移一位 MOV P1,A ;把ACC移動(dòng)過的數(shù)據(jù)送p1口顯示 ACALL DELAY ;調(diào)用延時(shí)子程序 DJNZ R0,LOOP3 ;沒有移動(dòng)夠4次繼續(xù)移動(dòng) MOVP1,#0F0H;LED3~LED6全部發(fā)光ACALLDELAY;調(diào)用延時(shí)子程序AJMP START;返回到標(biāo)號(hào)START處再循環(huán);-----延時(shí)子程序-----DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR7,#250LOOP2:DJNZR7,LOOP2DJNZR6,LOOP1DJNZR5,LOOPRET輸入實(shí)驗(yàn)例1:;****************************************************************;*K1控制LED3亮滅交替*;****************************************************************org0star:movp1,#0hmovp3,#0ffhst1:jbp3.2,$jnbp3.2,$cplp1.0sjmpst1end例2:;******************************************************************************;*按壓實(shí)驗(yàn)板上的按鈕K1,控制P1.0的LED亮滅*;*按壓K1,LED點(diǎn)亮,再次按壓K1,LED熄滅*;*程序沒有進(jìn)行按鍵消抖動(dòng)處理,控制結(jié)果會(huì)因?yàn)榘存I抖動(dòng)而出錯(cuò)*;*按壓K1十次,大概有3~5次輸出會(huì)因?yàn)榘存I抖動(dòng)而發(fā)生錯(cuò)誤*;*實(shí)驗(yàn)時(shí)請(qǐng)多按幾次,觀察一下效果,加深對(duì)按鍵消抖動(dòng)重要性的認(rèn)識(shí)*;****************************************************************************** ORG 0000H AJMP START ;跳轉(zhuǎn)到初始化程序單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第3頁。 單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第3頁。ORG 0033HSTART: MOV SP,#60H ;SP初始化MOV P3,#0FFH ;端口初始化MAIN: JB P3.2,MAIN ;檢測按鍵K1有沒有按下 CPL P1.0 ;執(zhí)行按鍵命令,改變P1.0指示燈狀態(tài) JNB P3.2,$ ;等待按鍵K1釋放 AJMP MAIN ;返回重新檢測按鍵 END例3:;******************************************************************************;*按壓實(shí)驗(yàn)板上的按鈕K1,控制P1.0的LED亮滅*;*按壓K1,LED點(diǎn)亮,再次按壓K1,LED熄滅*;*程序進(jìn)行了按鍵消抖動(dòng)處理,不會(huì)出現(xiàn)控制結(jié)果出錯(cuò)的現(xiàn)象*;*由此可以看出按鍵軟件消抖動(dòng)的功效*;****************************************************************************** ORG 0000H AJMP START ;跳轉(zhuǎn)到初始化程序 ORG 0033HSTART: MOV SP,#60H ;SP初始化 MOV P3,#0FFH ;端口初始化MAIN: JB P3.2,MAIN ;檢測按鍵P3.2有沒有按下 ACALL YS20ms ;消前沿抖動(dòng)延時(shí),實(shí)現(xiàn)軟件去抖動(dòng) JB P3.2,MAIN ;再次檢測按鍵,如果為高電平,則是抖動(dòng) CPL P1.0 ;執(zhí)行按鍵命令,改變P1.0指示燈狀態(tài) JNB P3.2,$ ;等待按鍵釋放 AJMP MAIN ;返回重新檢測按鍵 YS20ms: MOV R7,#40 ;延時(shí)20ms子程序YS1:MOV R6,#229DJNZ R6,$DJNZ R7,YS1RET單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第4頁。單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第4頁。實(shí)驗(yàn)四多級(jí)外部中斷控制實(shí)驗(yàn)例程:;************************************************************************;*INT0,INT1為邊沿觸發(fā)方式,INT1為高級(jí)中斷*;*主程序中8個(gè)LED輪流閃爍*;*外中斷程序0中,8個(gè)指示燈同時(shí)閃爍8次*;*外中斷程序1中,左右4個(gè)指示燈交替閃爍*;*因?yàn)镮NT1為高級(jí)中斷,所以INT1中斷可以中斷INT0中斷程序*;*即當(dāng)按壓K1進(jìn)入外中斷0時(shí),8個(gè)LED同時(shí)閃爍,此時(shí)按壓K2可以中斷*;*TIN0的執(zhí)行。相反,當(dāng)INT1中斷后,按壓K1則不能中斷INT1的執(zhí)行*;************************************************************************ORG0000HAJMPSTARTORG0003HJMPPGINT0ORG0013HJMPPGINT1ORG0033HSTART:MOVP0,#0FFHMOVP1,#0FFHMOVP2,#0FFHMOVP3,#0FFHMAIN:MOVIE,#10000101B ;INT0,INT1中斷使能 MOVIP,#00000100B ;INT1中斷優(yōu)先 MOV TCON,#00000000B ;INT0,INT1為電平觸發(fā) MOVSP,#60HMOVA,#0FEHLOOP:MOVP1,ACALLDELAYRLAJMPLOOPJMPMAINPGINT0:PUSHACCMOVR2,#8單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第5頁。LOOP0:MOVP1,#00H單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第5頁。CALLDELAYMOVP1,#0FFHCALLDELAYDJNZR2,LOOP0POPACCRETIPGINT1:PUSHACCMOVR3,#8LOOP1:MOVP1,#0FHCALLDELAYMOVP1,#0F0HCALLDELAYDJNZR3,LOOP1POPACCRETI;********延時(shí)子程序********DELAY: MOV R4,#80D1: MOV R5,#10D2: MOV R6,#228 DJNZ R6,$ DJNZ R5,D2 DJNZ R4,D1 RETEND單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第6頁。單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第6頁。實(shí)驗(yàn)五定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)程序一:ORG 0000H AJMP START ORG 000BH ;定時(shí)器0的中斷向量地址 AJMP TIME0 ;跳轉(zhuǎn)到真正的定時(shí)器程序處 ORG 0030HSTART: MOV P1,#0FFH ;關(guān)所有燈 MOV TMOD,#00000001B;定時(shí)/計(jì)數(shù)器0工作于方式1 MOV TH0,#15H MOV TL0,#0A0H ;即數(shù)5536 SETB EA ;開總中斷允許 SETB ET0 ;開定時(shí)/計(jì)數(shù)器0允許SETB TR0 ;定時(shí)/計(jì)數(shù)器0開始運(yùn)行LOOP: AJMP LOOP ;真正工作時(shí),這里可寫任意程序TIME0: ;定時(shí)器0的中斷處理程序 PUSH ACCPUSH PSW ;將PSW和ACC推入堆棧保護(hù) CPL P1.0 MOV TH0,#15H MOV TL0,#0A0H ;重置定時(shí)常數(shù) POP PSW POP ACC RETI END程序二:ORG0000HAT0:MOVP1,#0FFHMOVTMOD,#61H;設(shè)置T1為計(jì)數(shù)器,工作于方式2;設(shè)置T0為定時(shí)器,工作于方式1MOVTL1,#246MOVTH1,#246SETBTR1AT1:CPLP1.7AT2:MOVTL0,#00H;單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第7頁。MOVTH0,#4CH;即數(shù)15536單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第7頁。SETBTR0JNBTF0,$CLRTF0CPLP1.0JNBTF1,AT2CLRTF1SJMPAT1END單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第8頁。單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為第8頁。實(shí)驗(yàn)六數(shù)碼管顯示實(shí)驗(yàn);**********數(shù)碼管顯示"6"的程序1********** MAIN:CLR P0.0 ;P0.0輸出低電平,點(diǎn)亮數(shù)碼管段碼"a" SETB P0.1 ;P0.1輸出高電平,熄滅數(shù)碼管段碼"b" CLR P0.2 ;P0.2輸出低電平,點(diǎn)亮數(shù)碼管段碼"c" CLR P0.3 ;P0.3輸出低電平,點(diǎn)亮數(shù)碼管段碼"d" CLR P0.4 ;P0.4輸出低電平,點(diǎn)亮數(shù)碼管段碼"e" CLR P0.5 ;P0.5輸出低電平,點(diǎn)亮數(shù)碼管段碼"f" CLR P0.6 ;P0.6輸出低電平,點(diǎn)亮數(shù)碼管段碼"g" SETB P0.7 ;P0.7輸出高電平,熄滅數(shù)碼管段碼"dp" CLR P2.0 ;P2.0輸出低電平,選通數(shù)碼管DG1 SETB P2.1 ;P2.1輸出高電平,不選通數(shù)碼管DG2 SETB P2.2 ;P2.2輸出高電平,不選通數(shù)碼管DG3 SETB P2.3 ;P2.3輸出高電平,不選通數(shù)碼管DG4 SETB P2.4 ;P2.4輸出高電平,不選通數(shù)碼管DG5 SETB P2.5 ;P2.5輸出高電平,不選通數(shù)碼管DG5 AJMP MAIN ;跳轉(zhuǎn)到開始重新進(jìn)行 END ;程序結(jié)束;**********數(shù)碼管顯示"6"的程序2********** MAIN: MOV P0,#82H ;將數(shù)字"6"的段碼輸出到P0口MOV P2,#0FEH;從P2口輸出數(shù)碼管選通代碼,讓DG1顯示,其它數(shù)碼管關(guān)閉 AJMP MAIN ;跳轉(zhuǎn)到開始重新進(jìn)行 END ;程序結(jié)束;****************************************************************;*------在數(shù)碼管上動(dòng)態(tài)顯示"89C51"------*;****************************************************************MAIN: MOV P0,#80H ;第1位數(shù)碼管顯示“8 CLR P2.5 ;允許第1位數(shù)碼管顯示 ACALL DELAY ;顯示延時(shí)一段時(shí)間 MOV P0,#0FFH ;清除P0口字形碼單片機(jī)試驗(yàn)源程序文件全文共10頁,當(dāng)前為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論