萬用電路板

个人兴趣爱好交流空间

« 为了省电赛而努力!MSP430系列单片机简介 »

基于51单片机的超级流水灯

        超级流水灯?其实并不是说它能流出什么超级的花样来,只是将51单片机的4组IO口全部利用起来:在这4组IO口中接满32只发光二极管,使它们产生一定规律的流动的效果,32只发光二极管流动起来给人以排山倒海的气势!下面是一小段视频演示:

        程序如下,其中只用到了几条指令。它的效果是依次点亮上述32只发光二极管,达到全亮后,再反向依次关闭它们。

               ORG     0
;依次清空P0.0~P0.7,顺次点亮P0口的8个LED========
LOOP:   CLR     P0.0
               LCALL   DELAY
               CLR     P0.1
               LCALL   DELAY
               CLR     P0.2
               LCALL   DELAY
               CLR     P0.3
               LCALL   DELAY
               CLR     P0.4
               LCALL   DELAY
               CLR     P0.5
               LCALL   DELAY
               CLR     P0.6
               LCALL   DELAY
               CLR     P0.7
               LCALL   DELAY
;依次清空P2.7~P2.0,顺次点亮P2口的8个LED========
               CLR     P2.7
               LCALL   DELAY
               CLR     P2.6
               LCALL   DELAY
               CLR     P2.5
               LCALL   DELAY
               CLR     P2.4
               LCALL   DELAY
               CLR     P2.3
               LCALL   DELAY
               CLR     P2.2
               LCALL   DELAY
               CLR     P2.1
               LCALL   DELAY
               CLR     P2.0
               LCALL   DELAY
;依次清空P3.7~P3.0,顺次点亮P3口的8个LED========
               CLR     P3.7
               LCALL   DELAY
               CLR     P3.6
               LCALL   DELAY
               CLR     P3.5
               LCALL   DELAY
               CLR     P3.4
               LCALL   DELAY
               CLR     P3.3
               LCALL   DELAY
               CLR     P3.2
               LCALL   DELAY
               CLR     P3.1
               LCALL   DELAY
               CLR     P3.0
               LCALL   DELAY
;依次清空P1.7~P1.0,顺次点亮P1口的8个LED========
               CLR     P1.7
               LCALL   DELAY
               CLR     P1.6
               LCALL   DELAY
               CLR     P1.5
               LCALL   DELAY
               CLR     P1.4
               LCALL   DELAY
               CLR     P1.3
               LCALL   DELAY
               CLR     P1.2
               LCALL   DELAY
               CLR     P1.1
               LCALL   DELAY
               CLR     P1.0
               LCALL   DELAY
               LCALL   DELAY
               LCALL   DELAY
               LCALL   DELAY
;依次置位P1.0~P1.7,顺次熄灭P1口的8个LED========
               SETB    P1.0
               LCALL   DELAY
               SETB    P1.1
               LCALL   DELAY
               SETB    P1.2
               LCALL   DELAY
               SETB    P1.3
               LCALL   DELAY
               SETB    P1.4
               LCALL   DELAY
               SETB    P1.5
               LCALL   DELAY
               SETB    P1.6
               LCALL   DELAY
               SETB    P1.7
               LCALL   DELAY
;依次置位P3.0~P3.7,顺次熄灭P3口的8个LED========
               SETB    P3.0
               LCALL   DELAY
               SETB    P3.1
               LCALL   DELAY
               SETB    P3.2
               LCALL   DELAY
               SETB    P3.3
               LCALL   DELAY
               SETB    P3.4
               LCALL   DELAY
               SETB    P3.5
               LCALL   DELAY
               SETB    P3.6
               LCALL   DELAY
               SETB    P3.7
               LCALL   DELAY
;依次置位P2.0~P2.7,顺次熄灭P2口的8个LED========
               SETB    P2.0
               LCALL   DELAY
               SETB    P2.1
               LCALL   DELAY
               SETB    P2.2
               LCALL   DELAY
               SETB    P2.3
               LCALL   DELAY
               SETB    P2.4
               LCALL   DELAY
               SETB    P2.5
               LCALL   DELAY
               SETB    P2.6
               LCALL   DELAY
               SETB    P2.7
               LCALL   DELAY
;依次置位P0.7~P0.0,顺次熄灭P0口的8个LED========
               SETB    P0.7
               LCALL   DELAY
               SETB    P0.6
               LCALL   DELAY
               SETB    P0.5
               LCALL   DELAY
               SETB    P0.4
               LCALL   DELAY
               SETB    P0.3
               LCALL   DELAY
               SETB    P0.2
               LCALL   DELAY
               SETB    P0.1
               LCALL   DELAY
               SETB    P0.0
               LCALL   DELAY
               LCALL   DELAY
               LCALL   DELAY
               LCALL   DELAY
;跳到LOOP处执行,死循环====================
               LJMP    LOOP
;延时子程序================================
DELAY:  MOV     R7,#50
D1:          MOV     R6,#255
                DJNZ    R6,$
                DJNZ    R7,D1
                RET
                END

本站原创如转载,请注明:转载自萬用電路板 [ http://www.jiangx.net/ ]

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

赞助商广告

最近发表

热文排行

最新评论及回复

图标汇集

  • 留言板
  • 订阅本站的 ATOM 1.0 新闻聚合
  • 订阅本站的 RSS 2.0 新闻聚合

Powered By Z-Blog 1.8

Copyright 2008 JiangX.net 萬用電路板 All Rights Reserved.
鄂ICP备08003060号 [login]