;*****************************************;;實(shí)驗(yàn)名稱(chēng):廣告燈左右移動(dòng)實(shí)驗(yàn) ;
;作者: 龍誼 ;
;版本: VER 1.0 ;
;說(shuō)明: 初學(xué)者學(xué)習(xí)單片機(jī)編程入門(mén)實(shí)驗(yàn) ;
;修改: 無(wú) ;
;編程語(yǔ)言: 匯編語(yǔ)言 ;
;*****************************************;
本文引用地址:http://m.butianyuan.cn/article/201611/320664.htm方法一:
ORG00H
START:MOVA,#0FFH ;設(shè)置左移初值
CLRC ;進(jìn)位清零
MOVR1,#08H ;設(shè)定左移次數(shù)8
ZUOYI:RLCA ;開(kāi)始左移
MOVP0,A ;由P0口顯示左移值
CALLDELAY ;調(diào)延時(shí)子程序
DJNZR1,ZUOYI ;判斷左移次數(shù)=8?不等就繼續(xù)左移
MOVR1,#07H ;等于就設(shè)定右移次數(shù)7
YOUYI:RRCA ;開(kāi)始右移
MOVP0,A ;由P0口顯示右移值
CALL DELAY ;調(diào)延時(shí)子程序
DJNZR1,YOUYI ;判斷右移次數(shù)=7?不等就繼續(xù)右移
JMPSTART ;等于就返回開(kāi)始形成程序的循環(huán)功能
DELAY:MOVR5,#20 ;采用晶振12MHZ,延時(shí)時(shí)間為0.2秒
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END
方法二:
ORG00H
START: MOVDPTR,#TABLE;TABLE表的地址存入數(shù)據(jù)指針
YIDONG:CLRA ;清除ACC
MOVCA,@A+DPTR ;到數(shù)據(jù)指針?biāo)傅牡刂啡〈a
CJNEA,#01,QIDONG;取出的碼=01H?不是則跳到QIDONG
JMPSTART;是01H返回重新開(kāi)始
QIDONG:MOVP0,A ;取到的碼由P0顯示
CALLDELAY ;調(diào)延時(shí)子程序
INCDPTR ;數(shù)據(jù)指針加1,取下一個(gè)碼
JMPYIDONG
DELAY: MOVR5,#20 ;采用晶振12MHZ,延時(shí)時(shí)間為0.2秒
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
TABLE: DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH;左移碼
DB0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;右移碼
DB01H ;結(jié)束碼
END
評(píng)論