資源描述:
《單片機(jī)試驗(yàn)源程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、單片機(jī)實(shí)驗(yàn)指導(dǎo)書(實(shí)驗(yàn)源程序)實(shí)驗(yàn)二.三I/O接口實(shí)驗(yàn)1、輸出實(shí)驗(yàn)例1:ORG0000HAJMPSTARTORGOO33H;-主程序開始■■…START:MOVP1,#OFFHACALLDELAYCLRP1.0ACALLDELAYSETBP1.0CLRPl.lACALLDELAYSETBPl.lCLRP1.2ACALLDELAYSETBPl.2CLRPl.3ACALLDELAYMOVP1,#OFOHACALLDELAYAJMPSTART;—一延時(shí)了程序-…-DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR7,#250LOOP2:DJNZR7,L
2、OOP2DJNZR6,LOOP1DJNZR5,LOOPRET;跳轉(zhuǎn)到初始化程序;是所有LED熄滅;調(diào)用延時(shí)子程序;P1.0輸出低電平,使LED3點(diǎn)亮;調(diào)用延時(shí)子程序;P1.0輸出高電平,使LED3熄滅;P1.1輸岀低電平,使LED4點(diǎn)亮;調(diào)用延時(shí)子程序;P1.1輸出高電平,使LED4熄火;P1.2輸岀低電平,使LED5點(diǎn)亮;調(diào)用延時(shí)子程序;P1.2輸出高電平,使LED5熄滅;P1.3輸出低電平,使LED6點(diǎn)亮;調(diào)用延吋子程序;LED3?LED6全部發(fā)光;調(diào)川延時(shí)子程序;返回到標(biāo)號(hào)START處再循環(huán)START:MOVP1,#()FFHACALLDELAYMOVMOVACALLM
3、OVACC,#0FEHPl,ACCDELAYR0,#03H例2:ORG0000H;跳轉(zhuǎn)到初始化程序AJMPSTARTORGOO33H;???■■主程序開始;是所有LED熄滅;調(diào)用延時(shí)了程序;ACC?]'先裝入LED3亮的數(shù)據(jù)(二進(jìn)制的11111110);將ACC的數(shù)據(jù)送P1口;調(diào)用延時(shí)了程序;上句送到P1口的數(shù)據(jù)就點(diǎn)亮了LED1,所以將數(shù)據(jù)再移L00P3:RLAMOVPl,AACALLDELAYDJNZR(),LOOP3MOVPl,#0F0HACALLDELAYAJMPSTART;延時(shí)子程序■■…DELAY:MOVR5,#10LOOP:MOVR6,#200LOOP1:MOVR
4、7,#250LOOP2:DJNZR7,LOOP2DJNZR6,LOOP1DJNZR5,LOOPRET動(dòng)3次就完成一個(gè)4位流水過程;將ACC中的數(shù)據(jù)左移一位;把人02移動(dòng)過的數(shù)據(jù)送pl口顯示;調(diào)用延吋子程序;沒有移動(dòng)夠4次繼續(xù)移動(dòng);LED3?LED6全部發(fā)光;調(diào)用延吋子程序;返回到標(biāo)號(hào)START處再循環(huán)2、輸入實(shí)驗(yàn)例1:?■匕■匕■匕■”■匕■“■匕?匕?“■匕■“■匕?丄.?匕■匕?”■匕?”■匕?”?匕??滬?p?p?p?p?滬?滬?p;*K1控制LED3亮滅交替*vlxvlxvlxvlxvlxvlxvlxkL^vlxkL^vlxkL^vlxvlxvlx?<1*<1*<1*
5、?卜<1*<1*<1*<1*<1*<1*<1*<1*?卜?卜<1*org0star:movp1,#0hmovp3,#0ffhstl:jbp3.2,$jnbp3.2,$cplpl.Osjmpstlend例2:;*按壓實(shí)驗(yàn)板上的按鈕KI,控制P1.0的LED亮滅*;*按壓KI,LED點(diǎn)亮,再次按壓KI,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í)**1^?丄?■匕?”^2^?上?卜?卜*1^???丄??丄■???卜?丄?■匕?
6、”^2^?匕?卜?丄????丄■*1*???卜?卜?匕?卜*1*???丄■?丄■???卜■匕?丄??匕?卜?丄????丄■?丄■???卜■匕?丄?*X*?匕?丄?*x*?丄????丄?ORG0000HAJMPSTART;跳轉(zhuǎn)到初始化程序7、^rj%^prj*rp^pr
8、^rj^rj*rj*r
9、^rjwrj*r
10、^rj%^p*
11、*rj%rj%rj%rj^rjw*pr
12、^rjwrp^p*
13、*rj%rj%*
14、*rj^rjwrj*r
15、^rjwr^r
16、^r
17、%r^r
18、^rj%rj*rj^rjwrj*r
19、^rjwr
20、^rj*rjwr^r
21、^rprjwrj*rj^rjw;*按壓實(shí)驗(yàn)板上的按鈕KI,控制P1.0的LED亮滅*;*按壓KI,LED點(diǎn)亮,再次按壓KI,LED熄滅*;*程序進(jìn)行了按鍵消抖動(dòng)處理,不會(huì)出現(xiàn)控制結(jié)果出錯(cuò)的現(xiàn)象*;*由此可以看出按鍵軟件消抖動(dòng)的功效*?^prjwr