;*****************************************;
;实验名称:广告灯左右移动实验 ;
;作者: 龙谊 ;
;版本: VER 1.0 ;
;说明: 初学者学习单片机编程入门实验 ;
;修改: 无 ;
;编程语言: 汇编语言 ;
;*****************************************;
方法一:
ORG00H
START:MOVA,#0FFH ;设置左移初值
CLRC ;进位清零
MOVR1,#08H ;设定左移次数8
ZUOYI:RLCA ;开始左移
MOVP0,A ;由P0口显示左移值
CALLDELAY ;调延时子程序
DJNZR1,ZUOYI ;判断左移次数=8?不等就继续左移
MOVR1,#07H ;等于就设定右移次数7
YOUYI:RRCA ;开始右移
MOVP0,A ;由P0口显示右移值
CALL DELAY ;调延时子程序
DJNZR1,YOUYI ;判断右移次数=7?不等就继续右移
JMPSTART ;等于就返回开始形成程序的循环功能
DELAY:MOVR5,#20 ;采用晶振12MHZ,延时时间为0.2秒
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END
方法二:
ORG00H
START: MOVDPTR,#TABLE;TABLE表的地址存入数据指针
YIDONG:CLRA ;清除ACC
MOVCA,@A+DPTR ;到数据指针所指的地址取码
CJNEA,#01,QIDONG;取出的码=01H?不是则跳到QIDONG
JMPSTART;是01H返回重新开始
QIDONG:MOVP0,A ;取到的码由P0显示
CALLDELAY ;调延时子程序
INCDPTR ;数据指针加1,取下一个码
JMPYIDONG
DELAY: MOVR5,#20 ;采用晶振12MHZ,延时时间为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 ;结束码
END