资源描述:
《51单片机经典流水灯程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机流水灯汇编程序设计开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。程序A:;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B ;最下面的LED点亮LCALLDELAY;延时1秒MOVP1,#10111111B ;最下面第二个的LED点亮LCALLDELAY;延时1秒MOVP1,#11011111B ;最下面第三个的LED点亮(以下省略)LCALLDELAYMOVP1,#11101111BLCALLDELAYMOVP1,#11110111BLCALLDELAYM
2、OVP1,#11111011BLCALLDELAYMOVP1,#11111101BLCALLDELAYMOVP1,#11111110BLCALLDELAYMOVP1,#11111111B ;完成第一次循环点亮,延时约0.25秒AJMPSTART ;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOVR4,#2L3:MOVR2,#250L1:MOVR3,#250L2:DJNZR3,L2DJNZR2,L1DJNZR4,L3RETEND程序B:;用移位方式实现流水灯org00h ;程序上电从00h开始ajmpm
3、ain ;跳转到主程序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单片机经典流水
4、灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。 ORG 0 ;程序从0地址开始START: MOV A,#0FEH ;让ACC的内容为11111110LOOP: MOV P2,A ;让P2口输出ACC的内容 RR A ;让ACC的内容左移 CALL
5、 DELAY ;调用延时子程序 LJMP LOOP ;跳到LOOP处执行;0.1秒延时子程序(12MHz晶振)===================DELAY: MOV R7,#200 ;R7寄存器加载200次数D1: MOV R6,#250 ;R6寄存器加载250次数 DJNZ R6,$ ;本行执行R6次
6、 DJNZ R7,D1 ;D1循环执行R7次 RET ;返回主程序 END ;结束程序开关控制的单片机流水灯汇编在单片机控制下,用一个拨动开关K1,控制8个发光二极管L1-L8,发光的时间间隔为0.5秒。具体要求:当拨动开关K1发出低电平(K1=0)时,L1-L8从两头向中间逐个点亮,当L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。当拨
7、动开关K1发出高电平(K1=1)时,中间的L4、L5点亮,然后点亮的灯向两边扩展,直到L1-L8全部点亮后延时2秒钟全部熄灭,如此往复循环。悬赏分:20-解决时间:2009-12-2113:42提问者:---------最佳答案:;--------------------------------------------下列程序,经过了编译、仿真,可以满足要求。;--------------------------------------------ORG0000HMOVR2,#0M_LOOP:MOVA,R2INCR2ANLA,#07HMOVC,P1.
8、0MOVACC.3,CMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ACALLDL5KTSJ