正反流水灯实验
;正反流水灯实验
;*******************************************************************
;* Date : 2004.4.20 *
;* Support Mb: 0735-2197559 E-mail:c51cn@163.com *
;* Create by :邓德武 http://www.c51.cn 更多例程请登陆网站 *
;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 *
;*******************************************************************
org 0000h;加
sjmp ddw;加
ORG 0030H ;程序由地址30开始
DDW: MOV SP,#60H ;设置堆栈指针到RAM地址60H
LOOP: ;循环
CLR C ;进位标志清除
MOV A,11111111B ;加载初值使LED全部熄灭
MOV R4,#8 ;左移计数值 移8次
LOOPL:
RLC A ;累加器内含值左移一位
MOV P1,A ;由P1输出
MOV R5,#50 ;延迟0.5S
CALL DELAY
DJNZ R4,LOOPL ;继续左移
MOV R4,#8 ;右移计数值,移8位
LOOPR:
RRC A ;累加器内含右移一位
MOV P1,A ;由P1输出
MOV R5,#50 ;延迟0.5S
CALL DELAY
DJNZ R4,LOOPR ;继续右移
JMP LOOP ;再执行循环一次
DELAY: ;延时子程序0.5
MOV R6,#50
S1: MOV R7,#100
DJNZ R7,$
DJNZ R6,S1
DJNZ R5,DELAY
RET
END
;*******************************************************************
;* Date : 2004.4.20 *
;* Support Mb: 0735-2197559 E-mail:c51cn@163.com *
;* Create by :邓德武 http://www.c51.cn 更多例程请登陆网站 *
;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 *
;*******************************************************************
org 0000h;加
sjmp ddw;加
ORG 0030H ;程序由地址30开始
DDW: MOV SP,#60H ;设置堆栈指针到RAM地址60H
LOOP: ;循环
CLR C ;进位标志清除
MOV A,11111111B ;加载初值使LED全部熄灭
MOV R4,#8 ;左移计数值 移8次
LOOPL:
RLC A ;累加器内含值左移一位
MOV P1,A ;由P1输出
MOV R5,#50 ;延迟0.5S
CALL DELAY
DJNZ R4,LOOPL ;继续左移
MOV R4,#8 ;右移计数值,移8位
LOOPR:
RRC A ;累加器内含右移一位
MOV P1,A ;由P1输出
MOV R5,#50 ;延迟0.5S
CALL DELAY
DJNZ R4,LOOPR ;继续右移
JMP LOOP ;再执行循环一次
DELAY: ;延时子程序0.5
MOV R6,#50
S1: MOV R7,#100
DJNZ R7,$
DJNZ R6,S1
DJNZ R5,DELAY
RET
END
![](http://m.amcfsurvey.com/webstorage/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码