最经典的51单片机经典流水灯汇编程序.doc

上传人:re****.1 文档编号:560201911 上传时间:2023-06-13 格式:DOC 页数:53 大小:211.01KB
返回 下载 相关 举报
最经典的51单片机经典流水灯汇编程序.doc_第1页
第1页 / 共53页
最经典的51单片机经典流水灯汇编程序.doc_第2页
第2页 / 共53页
最经典的51单片机经典流水灯汇编程序.doc_第3页
第3页 / 共53页
最经典的51单片机经典流水灯汇编程序.doc_第4页
第4页 / 共53页
最经典的51单片机经典流水灯汇编程序.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《最经典的51单片机经典流水灯汇编程序.doc》由会员分享,可在线阅读,更多相关《最经典的51单片机经典流水灯汇编程序.doc(53页珍藏版)》请在金锄头文库上搜索。

1、单片机流水灯汇编程序设计开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。程序A:;用最直接的方式实现流水灯ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮 (以下省略)LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111

2、011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2 DJNZ R2 ,L1DJNZ R4 ,L3 RET END程序B:;用移位方式实现流水灯org 00h ;程序上电从00h开始ajmp main ;跳转到主程序org 0

3、030h ;主程序起始地址main:mov a,#0feh ;给A赋值成11111110loop: mov p1,a ;将A送到P1口,发光二极管低电平点亮lcall delay ;调用延时子程序rl a ;累加器A循环左移一位ajmp loop ;重新送P1显示delay:mov r3,#20 ;最外层循环二十次d1:mov r4,#80 ;次外层循环八十次d2:mov r5,#250 ;最内层循环250次djnz r5,$ ;总共延时2us*250*80*20=0.8Sdjnz r4,d2djnz r3,d1retend 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产

4、生流水灯的移动效果。 ORG 0 ;程序从0地址开始START: MOV A,#0FEH ;让ACC的内容为11111110LOOP: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 ;结束程序开关控制的单片机流水灯

5、 汇编在单片机控制下,用一个拨动开关K1,控制个发光二极管L1-L8,发光的时间间隔为0.5秒。具体要求:当拨动开关K1发出低电平(K1=0)时,L1-L8从两头向中间逐个点亮,当L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。当拨动开关K1发出高电平(K1=1)时,中间的L4、L5点亮,然后点亮的灯向两边扩展,直到L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。悬赏分:20 - 解决时间:2009-12-21 13:42 提问者: -最佳答案:;-下列程序,经过了编译、仿真,可以满足要求。;- ORG 0000H MOV R2, #0M_LOOP: MOV A, R2 INC R

6、2 ANL A, #07H MOV C, P1.0 MOV ACC.3, C MOV DPTR, #TAB MOVC A, A + DPTR MOV P0, A CALL DL5KT SJMP M_LOOP;-TAB: DB 0xFF, 0xE7, 0xC3, 0x81, 0x00, 0x00, 0x00, 0x00 DB 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00;-DL5KT: mov R5, #10 MOV R6, #100 MOV R7, #250 DJNZ R7, $ DJNZ R6, $ - 4 DJNZ R5, $ - 8 RET

7、;- END流水灯汇编程序8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮 (以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LC

8、ALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环;延时子程序,12M晶振延时约250毫秒DELAY: ;大约值:2us*256*256*2=260ms,也可以认为为250msPUSH PSW ;现场保护指令(有时可以不加)MOV R4,#2 L3: MOV R2 ,#00HL1: MOV R3 ,#00HL2: DJNZ R3 ,L2 ;最内层循环:(256次)2个周期指令(R3减一,如果比1大,

9、则转向L2) DJNZ R2 ,L1 ; 中层循环:256次DJNZ R4 ,L3 ;外层循环:2次POP PSWRETEND51汇编单片机LED花样流水灯(1)start:CLR P1.0 ACALL DELAY SETB P1.0 ACALL DELAY CLR P1.1 ACALL DELAY SETB P1.1 ACALL DELAY CLR P1.2 ACALL DELAY SETB P1.2 ACALL DELAY CLR P1.3 ACALL DELAY SETB P1.3 ACALL DELAY CLR P1.4 ACALL DELAY SETB P1.4 ACALL DELA

10、Y CLR P1.5 ACALL DELAY SETB P1.5 ACALL DELAY CLR P1.6 ACALL DELAY SETB P1.6 ACALL DELAY CLR P1.7 ACALL DELAY CLR P1.7 ACALL DELAY CLR P1.0 ACALL DELAY SETB P1.0 ACALL DELAY CLR P1.1 ACALL DELAY SETB P1.1 ACALL DELAY CLR P1.2 ACALL DELAY SETB P1.2 ACALL DELAY CLR P1.3 ACALL DELAY SETB P1.3 ACALL DELAY CLR P1.4 ACALL DELAY SETB P1.4 ACALL DELAY CLR P1.5 ACALL DELAY SETB P1.5 ACALL DELAY CLR P1.6 ACALL DELAY CLR P1.6 ACALL DELAY CLR P1.0 ACALL DELAY SETB P1.0 ACALL DELAY CLR P1.1 ACALL DELAY SETB P1.1 ACALL DELAY CLR P1.2 ACALL D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号