資源描述:
《單片機(jī)試驗(yàn)源程序.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、單片機(jī)實(shí)驗(yàn)指導(dǎo)書(實(shí)驗(yàn)源程序)實(shí)驗(yàn)二、三I/O接口實(shí)驗(yàn)1、輸出實(shí)驗(yàn)例1:ORG0000HAJMPSTART;跳轉(zhuǎn)到初始化程序ORG0033H;-----主程序開始-----START:MOVP1,#0FFH;是所有LED熄滅ACALLDELAY;調(diào)用延時(shí)子程序CLRP1.0;P1.0輸出低電平,使LED3點(diǎn)亮ACALLDELAY;調(diào)用延時(shí)子程序SETBP1.0;P1.0輸出高電平,使LED3熄滅CLRP1.1;P1.1輸出低電平,使LED4點(diǎn)亮ACALLDELAY;調(diào)用延時(shí)子程序SETBP1.1;P1.1輸出高電平,使LED4熄滅CLR
2、P1.2;P1.2輸出低電平,使LED5點(diǎn)亮ACALLDELAY;調(diào)用延時(shí)子程序SETBP1.2;P1.2輸出高電平,使LED5熄滅CLRP1.3;P1.3輸出低電平,使LED6點(diǎn)亮ACALLDELAY;調(diào)用延時(shí)子程序MOVP1,#0F0H;LED3~LED6全部發(fā)光ACALLDELAY;調(diào)用延時(shí)子程序AJMPSTART;返回到標(biāo)號START處再循環(huán);-----延時(shí)子程序-----DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR7,#250LOOP2:DJNZR7,LOOP2DJNZR6,LOOP1DJN
3、ZR5,LOOPRET例2:ORG0000HAJMPSTART;跳轉(zhuǎn)到初始化程序ORG0033H;-----主程序開始-----START:MOVP1,#0FFH;是所有LED熄滅ACALLDELAY;調(diào)用延時(shí)子程序MOVACC,#0FEH;ACC中先裝入LED3亮的數(shù)據(jù)(二進(jìn)制的11111110)MOVP1,ACC;將ACC的數(shù)據(jù)送P1口ACALLDELAY;調(diào)用延時(shí)子程序MOVR0,#03H;上句送到P1口的數(shù)據(jù)就點(diǎn)亮了LED1,所以將數(shù)據(jù)再移動3次就完成一個(gè)4位流水過程LOOP3:RLA;將ACC中的數(shù)據(jù)左移一位MOVP1,A;把
4、ACC移動過的數(shù)據(jù)送p1口顯示ACALLDELAY;調(diào)用延時(shí)子程序DJNZR0,LOOP3;沒有移動夠4次繼續(xù)移動MOVP1,#0F0H;LED3~LED6全部發(fā)光ACALLDELAY;調(diào)用延時(shí)子程序AJMPSTART;返回到標(biāo)號START處再循環(huán);-----延時(shí)子程序-----DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR7,#250LOOP2:DJNZR7,LOOP2DJNZR6,LOOP1DJNZR5,LOOPRET1、輸入實(shí)驗(yàn)例1:;*******************************
5、*********************************;*K1控制LED3亮滅交替*;****************************************************************org0star:movp1,#0hmovp3,#0ffhst1:jbp3.2,$jnbp3.2,$cplp1.0sjmpst1end例2:;******************************************************************************;*按壓實(shí)驗(yàn)板上的
6、按鈕K1,控制P1.0的LED亮滅*;*按壓K1,LED點(diǎn)亮,再次按壓K1,LED熄滅*;*程序沒有進(jìn)行按鍵消抖動處理,控制結(jié)果會因?yàn)榘存I抖動而出錯*;*按壓K1十次,大概有3~5次輸出會因?yàn)榘存I抖動而發(fā)生錯誤*;*實(shí)驗(yàn)時(shí)請多按幾次,觀察一下效果,加深對按鍵消抖動重要性的認(rèn)識*;******************************************************************************ORG0000HAJMPSTART;跳轉(zhuǎn)到初始化程序ORG0033HSTART:MOVSP,#60H;SP
7、初始化MOVP3,#0FFH;端口初始化MAIN:JBP3.2,MAIN;檢測按鍵K1有沒有按下CPLP1.0;執(zhí)行按鍵命令,改變P1.0指示燈狀態(tài)JNBP3.2,$;等待按鍵K1釋放AJMPMAIN;返回重新檢測按鍵END例3:;******************************************************************************;*按壓實(shí)驗(yàn)板上的按鈕K1,控制P1.0的LED亮滅*;*按壓K1,LED點(diǎn)亮,再次按壓K1,LED熄滅*;*程序進(jìn)行了按鍵消抖動處理,不會出現(xiàn)控制結(jié)果出
8、錯的現(xiàn)象*;*由此可以看出按鍵軟件消抖動的功效*;******************************************************************************