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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机流水灯汇编程序设计开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。程序A:;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDELAY;延时1秒MOVP1,#10111111B;最下面第二个的LED点亮LCALLDELAY;延时1秒MOVP1,#11011111B;最下面第三个的LED点亮(以下省略)LCALLDELAYMOVP1,#11101111BLCALLDELAYMOVP1,#11110111BLCALLDELAYMOVP1,#11111011BLCALLDELAYMOVP1,#11111101BLCALLDELAYMOVP1,#11111110BLCALLDELAYMOVP1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMPSTART;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOVR4,#2L3:MOVR2,#250L1:MOVR3,#250L2:DJNZR3,L2DJNZR2,L1DJNZR4,L3RETEND程序B:;用移位方式实现流水灯org00h;程序上电从00h开始ajmpmain;跳转到主程序org0030h;主程序起始地址main:mova,#0feh;给A赋值成11111110loop: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.8Sdjnzr4,d2djnzr3,d1retend51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。ORG0;程序从0地址开始START:MOVA,#0FEH;让ACC的内容为11111110LOOP:MOVP2,A;让P2口输出ACC的内容RRA;让ACC的内容左移CALLDELAY;调用延时子程序LJMPLOOP;跳到LOOP处执行;0.1秒延时子程序(12MHz晶振)===================DELAY:MOVR7,#200;R7寄存器加载200次数D1:MOVR6,#250;R6寄存器加载250次数DJNZR6,$;本行执行R6次DJNZR7,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提问者:---------最佳答案:;--------------------------------------------下列程序,经过了编译、仿真,可以满足要求。;--------------------------------------------ORG0000HMOVR2,#0M_LOOP:MOVA,R2INCR2ANLA,#07HMOVC,P1.0MOVACC.3,CMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ACALLDL5KTSJMPM_LOOP;--------------------------------------------TAB:DB0xFF,0xE7,0xC3,0x81,0x00,0x00,0x00,0x00DB0xFF,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00;--------------------------------------------DL5KT:movR5,#10MOVR6,#100MOVR7,#250DJNZR7,$DJNZR6,$-4DJNZR5,$-8RET;--------------------------------------------END流水灯汇编程序8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDELAY;延时1秒MOVP1,#10111111B;最下面第二个的LED点亮LCALLDELAY;延时1秒MOVP1,#11011111B;最下面第三个的LED点亮(以下省略)LCALLDELAYMOVP1,#11101111BLCALLDELAYMOVP1,#11110111BLCALLDELAYMOVP1,#11111011BLCALLDELAYMOVP1,#11111101BLCALLDELAYMOVP1,#11111110BLCALLDELAYMOVP1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMPSTART;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:;大约值:2us*256*256*2=260ms,也可以认为为250msPUSHPSW;现场保护指令(有时可以不加)MOVR4,#2L3:MOVR2,#00HL1:MOVR3,#00HL2:DJNZR3,L2;最内层循环:(256次)2个周期指令(R3减一,如果比1大,则转向L2)DJNZR2,L1;中层循环:256次DJNZR4,L3;外层循环:2次POPPSWRETEND51汇编单片机LED花样流水灯(1)start:CLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYSETBP1.2ACALLDELAYCLRP1.3ACALLDELAYSETBP1.3ACALLDELAYCLRP1.4ACALLDELAYSETBP1.4ACALLDELAYCLRP1.5ACALLDELAYSETBP1.5ACALLDELAYCLRP1.6ACALLDELAYSETBP1.6ACALLDELAYCLRP1.7ACALLDELAYCLRP1.7ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYSETBP1.2ACALLDELAYCLRP1.3ACALLDELAYSETBP1.3ACALLDELAYCLRP1.4ACALLDELAYSETBP1.4ACALLDELAYCLRP1.5ACALLDELAYSETBP1.5ACALLDELAYCLRP1.6ACALLDELAYCLRP1.6ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYSETBP1.2ACALLDELAYCLRP1.3ACALLDELAYSETBP1.3ACALLDELAYCLRP1.4ACALLDELAYSETBP1.4ACALLDELAYCLRP1.5ACALLDELAYCLRP1.5ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYSETBP1.2ACALLDELAYCLRP1.3ACALLDELAYSETBP1.3ACALLDELAYCLRP1.4ACALLDELAYCLRP1.4ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYSETBP1.2ACALLDELAYCLRP1.3ACALLDELAYCLRP1.3ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYSETBP1.1ACALLDELAYCLRP1.2ACALLDELAYCLRP1.2ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYCLRP1.1ACALLDELAYCLRP1.1ACALLDELAYCLRP1.0ACALLDELAYCLRP1.0ACALLDELAYSETBP1.0ACALLDELAYSETBP1.1ACALLDELAYSETBP1.2ACALLDELAYSETBP1.3ACALLDELAYSETBP1.4ACALLDELAYSETBP1.5ACALLDELAYSETBP1.6ACALLDELAYSETBP1.7ACALLDELAYAJMPstartDELAY:MOVR7,#250D1:MOVR6,#250D2:DJNZR6,D2DJNZR7,D1RETEND开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。程序A:;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDELAY;延时1秒MOVP1,#10111111B;最下面第二个的LED点亮LCALLDELAY;延时1秒MOVP1,#11011111B;最下面第三个的LED点亮(以下省略)LCALLDELAYMOVP1,#11101111BLCALLDELAYMOVP1,#11110111BLCALLDELAYMOVP1,#11111011BLCALLDELAYMOVP1,#11111101BLCALLDELAYMOVP1,#11111110BLCALLDELAYMOVP1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMPSTART;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOVR4,#2L3:MOVR2,#250L1:MOVR3,#250L2:DJNZR3,L2DJNZR2,L1DJNZR4,L3RETEND程序B:;用移位方式实现流水灯org00h;程序上电从00h开始ajmpmain;跳转到主程序org0030h;主程序起始地址main:mova,#0feh;给A赋值成11111110loop: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.8Sdjnzr4,d2djnzr3,d1retend51单片机汇编程序集作者:段磊文章来源:网络点击数:1176更新时间:2008-9-2320:53:391、片内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、单字节无符号数乘法程

1 / 53
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功