最经典的51单片机经典流水灯汇编程序.docx
《最经典的51单片机经典流水灯汇编程序.docx》由会员分享,可在线阅读,更多相关《最经典的51单片机经典流水灯汇编程序.docx(74页珍藏版)》请在冰点文库上搜索。
最经典的51单片机经典流水灯汇编程序
单片机流水灯汇编程序设计
开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。
程序A:
;用最直接的方式实现流水灯
ORG0000H
START:
MOVP1,#01111111B ;最下面的LED点亮
LCALLDELAY;延时1秒
MOVP1,#10111111B ;最下面第二个的LED点亮
LCALLDELAY;延时1秒
MOVP1,#11011111B ;最下面第三个的LED点亮(以下省略)
LCALLDELAY
MOVP1,#11101111B
LCALLDELAY
MOVP1,#11110111B
LCALLDELAY
MOVP1,#11111011B
LCALLDELAY
MOVP1,#11111101B
LCALLDELAY
MOVP1,#11111110B
LCALLDELAY
MOVP1,#11111111B ;完成第一次循环点亮,延时约0.25秒
AJMPSTART ;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOVR4,#2
L3:
MOVR2,#250
L1:
MOVR3,#250
L2:
DJNZR3,L2
DJNZR2,L1
DJNZR4,L3
RET
END
程序B:
;用移位方式实现流水灯
org00h ;程序上电从00h开始
ajmpmain ;跳转到主程序
org0030h ;主程序起始地址
main:
mova,#0feh ;给A赋值成11111110
loop:
movp1,a ;将A送到P1口,发光二极管低电平点亮
lcalldelay ;调用延时子程序
rla ;累加器A循环左移一位
ajmploop;重新送P1显示
delay:
movr3,#20 ;最外层循环二十次
d1:
movr4,#80 ;次外层循环八十次
d2:
movr5,#250 ;最内层循环250次
djnzr5,$ ;总共延时2us*250*80*20=0.8S
djnzr4,d2
djnzr3,d1
ret
end
51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。
ORG 0 ;程序从0地址开始
START:
MOV A,#0FEH ;让ACC的内容为11111110
LOOP:
MOV P2,A ;让P2口输出ACC的内容
RR A ;让ACC的内容左移
CALL DELAY ;调用延时子程序
LJMP LOOP ;跳到LOOP处执行
;0.1秒延时子程序(12MHz晶振)===================
DELAY:
MOV R7,#200 ;R7寄存器加载200次数
D1:
MOV R6,#250 ;R6寄存器加载250次数
DJNZ R6,$ ;本行执行R6次
DJNZ R7,D1 ;D1循环执行R7次
RET ;返回主程序
END ;结束程序
开关控制的单片机流水灯汇编
在单片机控制下,用一个拨动开关K1,控制8个发光二极管L1-L8,发光的时间间隔为0.5秒。
具体要求:
当拨动开关K1发出低电平(K1=0)时,L1-L8从两头向中间逐个点亮,当L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。
当拨动开关K1发出高电平(K1=1)时,中间的L4、L5点亮,然后点亮的灯向两边扩展,直到L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。
悬赏分:
20-解决时间:
2009-12-2113:
42
提问者:
---------
最佳答案:
;--------------------------------------------
下列程序,经过了编译、仿真,可以满足要求。
;--------------------------------------------
ORG0000H
MOVR2,#0
M_LOOP:
MOVA,R2
INCR2
ANLA,#07H
MOVC,P1.0
MOVACC.3,C
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
CALLDL5KT
SJMPM_LOOP
;--------------------------------------------
TAB:
DB0xFF,0xE7,0xC3,0x81,0x00,0x00,0x00,0x00
DB0xFF,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00
;--------------------------------------------
DL5KT:
movR5,#10
MOVR6,#100
MOVR7,#250
DJNZR7,$
DJNZR6,$-4
DJNZR5,$-8
RET
;--------------------------------------------
END
流水灯汇编程序
8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。
;用最直接的方式实现流水灯
ORG0000H
START:
MOVP1,#01111111B ;最下面的LED点亮
LCALLDELAY ;延时1秒
MOVP1,#10111111B ;最下面第二个的LED点亮
LCALLDELAY ;延时1秒
MOVP1,#11011111B ;最下面第三个的LED点亮(以下省略)
LCALLDELAY
MOVP1,#11101111B
LCALLDELAY
MOVP1,#11110111B
LCALLDELAY
MOVP1,#11111011B
LCALLDELAY
MOVP1,#11111101B
LCALLDELAY
MOVP1,#11111110B
LCALLDELAY
MOVP1,#11111111B ;完成第一次循环点亮,延时约0.25秒
AJMPSTART ;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
;大约值:
2us*256*256*2=260ms,也可以认为为250ms
PUSHPSW ;现场保护指令(有时可以不加)
MOVR4,#2
L3:
MOVR2,#00H
L1:
MOVR3,#00H
L2:
DJNZR3,L2 ;最内层循环:
(256次)2个周期指令(R3减一,如果比1大,则转向L2)
DJNZR2,L1 ;中层循环:
256次
DJNZR4,L3 ;外层循环:
2次
POPPSW
RET
END
51汇编单片机LED花样流水灯
(1)
start:
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
SETBP1.2
ACALLDELAY
CLRP1.3
ACALLDELAY
SETBP1.3
ACALLDELAY
CLRP1.4
ACALLDELAY
SETBP1.4
ACALLDELAY
CLRP1.5
ACALLDELAY
SETBP1.5
ACALLDELAY
CLRP1.6
ACALLDELAY
SETBP1.6
ACALLDELAY
CLRP1.7
ACALLDELAY
CLRP1.7
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
SETBP1.2
ACALLDELAY
CLRP1.3
ACALLDELAY
SETBP1.3
ACALLDELAY
CLRP1.4
ACALLDELAY
SETBP1.4
ACALLDELAY
CLRP1.5
ACALLDELAY
SETBP1.5
ACALLDELAY
CLRP1.6
ACALLDELAY
CLRP1.6
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
SETBP1.2
ACALLDELAY
CLRP1.3
ACALLDELAY
SETBP1.3
ACALLDELAY
CLRP1.4
ACALLDELAY
SETBP1.4
ACALLDELAY
CLRP1.5
ACALLDELAY
CLRP1.5
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
SETBP1.2
ACALLDELAY
CLRP1.3
ACALLDELAY
SETBP1.3
ACALLDELAY
CLRP1.4
ACALLDELAY
CLRP1.4
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
SETBP1.2
ACALLDELAY
CLRP1.3
ACALLDELAY
CLRP1.3
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
SETBP1.1
ACALLDELAY
CLRP1.2
ACALLDELAY
CLRP1.2
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.1
ACALLDELAY
CLRP1.1
ACALLDELAY
CLRP1.0
ACALLDELAY
CLRP1.0
ACALLDELAY
SETBP1.0
ACALLDELAY
SETBP1.1
ACALLDELAY
SETBP1.2
ACALLDELAY
SETBP1.3
ACALLDELAY
SETBP1.4
ACALLDELAY
SETBP1.5
ACALLDELAY
SETBP1.6
ACALLDELAY
SETBP1.7
ACALLDELAY
AJMPstart
DELAY:
MOVR7,#250
D1:
MOVR6,#250
D2:
DJNZR6,D2
DJNZR7,D1
RET
END
开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。
程序A:
;用最直接的方式实现流水灯
ORG0000H
START:
MOVP1,#01111111B ;最下面的LED点亮
LCALLDELAY;延时1秒
MOVP1,#10111111B ;最下面第二个的LED点亮
LCALLDELAY;延时1秒
MOVP1,#11011111B ;最下面第三个的LED点亮(以下省略)
LCALLDELAY
MOVP1,#11101111B
LCALLDELAY
MOVP1,#11110111B
LCALLDELAY
MOVP1,#11111011B
LCALLDELAY
MOVP1,#11111101B
LCALLDELAY
MOVP1,#11111110B
LCALLDELAY
MOVP1,#11111111B ;完成第一次循环点亮,延时约0.25秒
AJMPSTART ;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOVR4,#2
L3:
MOVR2,#250
L1:
MOVR3,#250
L2:
DJNZR3,L2
DJNZR2,L1
DJNZR4,L3
RET
END
程序B:
;用移位方式实现流水灯
org00h ;程序上电从00h开始
ajmpmain ;跳转到主程序
org0030h ;主程序起始地址
main:
mova,#0feh ;给A赋值成11111110
loop:
movp1,a ;将A送到P1口,发光二极管低电平点亮
lcalldelay ;调用延时子程序
rla ;累加器A循环左移一位
ajmploop;重新送P1显示
delay:
movr3,#20 ;最外层循环二十次
d1:
movr4,#80 ;次外层循环八十次
d2:
movr5,#250 ;最内层循环250次
djnzr5,$ ;总共延时2us*250*80*20=0.8S
djnzr4,d2
djnzr3,d1
ret
end
51单片机汇编程序集
作者:
段磊文章来源:
网络点击数:
1176更新时间:
2008-9-2320:
53:
39
1、片内RAM初始化子程序
2、片外RAM初始化子程序
3、片外RAM初始化子程序(双字节个单元)
4、内部RAM数据复制程序
5、外部RAM数据复制程序
6、外部RAM数据复制程序
7、外部RAM数据复制到内部RAM程序
8、限幅滤波程序
9、中位值滤波程序
10、N点算术平均滤波
11、N点加权平均滤波
12、一阶加权滞后滤波程序
13、双字节取补程序
14、N节取补程序
15、双字节无符号数加法程序
16、N字节无符号数加法程序
17、双字节无符号数减法程序
18、N字节无符号数减法程序
19、单字节无符号数乘法程序
20、单字节无符号数乘法程序
21、单字节无符号数乘法程序
22、双字节无符号数乘法程序
23、双字节无符号数乘法程序
24、N字节无符号数乘法程序
25、单字节无符号除法程序
26、单字节无符号除法程序
27、双字节无符号除法程序
28、N字节无符号除法程序(组合)
29、N字节无符号除法程序
30、N字节数据左移程序
31、原码有符号双字节减法程序
32、原码有符号双字节加法程序
33、原码有符号双字节乘法程序
34、原码有符号双字节除法程序
35、单字节顺序查找程序
36、单字节顺序查找程序
37、双字节字符串顺序查找程序
38、双字节字符串顺序查找程序
39、N字节字符串顺序查找程序
40、单字节最值查找程序
41、浮点数顺序查找程序
42、浮点数最值查找程序
43、单字节折半查找程序
;片内RAM初始化子程序
IBCLR :
MOV A,R0
MOV R1,A
CLR A
IBC1 :
MOV @R1,A
INC R1
DJNZ R7,IBC1
RET
;片外RAM初始化子程序
EBCLR1 :
MOV A,ADDPL
MOV DPL,A
MOV A,ADDPH
MOV DPH,A
CLR C
EBC11 :
MOVX @DPTR,A
INC DPTR
DJNZ R7,EBC11
RET
;片外RAM初始化子程序(双字节个单元)
EBCLR2 :
MOV