萬用電路板

江肖个人空间

« 直流电源插头烧熔的启示一款寻迹小车的制作资料 »

仿广告牌的堆积式流水灯

        流水灯,真是百玩不厌呀,呵呵。。。今天在网友的博客上看到了几种花样流水灯,其中一种类似于许多动态广告牌的蛮吸引我,受到他的启发,我也写了一个流水灯程序,我是用查表法写这个程序的,也不知道实现这样的流水灯到底怎样写更简单。

        这里有一幅该流水灯的Proteus虚拟仿真效果图,不过跟我下面的程序所实现的有所区别:

        我写的汇编源程序如下:

/******************************************************************/
/*名称:依次堆积流水灯(仿广告牌)                                
/*功能:P2口接8只数码管,实现依次堆积点亮,闪烁几下后再依次堆积熄灭
/*编写:JiangX.net                                                
/*时间:2008年6月23日                                             
/*版本:V1.1/修改时间: 2008年6月23日                              
/******************************************************************/

         ORG 0
START:
         MOV DPTR,#TAB       ;将DPTR指向编码表位置
         MOV R5,#87          ;编码数,编码表共88行(0-87)
LOOP:
         CLR A               ;清空ACC
         MOVC A,@A+DPTR      ;根据ACC的内容取出编码表里的编码
         MOV P2,A            ;让P2口输出ACC的内容
         ACALL DELAY         ;调用延时子程序
         INC DPTR            ;将DPTR寄存器的内容加1
         DJNZ R5,LOOP        ;将LOOP执行R5次
         LJMP START 
DELAY:                       ;0.1S延时子程序(12MHz晶振)
         MOV R7,#200
D1:
         MOV R6,#250
         DJNZ R6,$
         DJNZ R7,D1
         RET

TAB:                         ;流水花样可以任意编写
         DB        01111111B ;0表示点亮LED,1表示熄灭LED
         DB        10111111B
         DB        11011111B
         DB        11101111B
         DB        11110111B
         DB        11111011B
         DB        11111101B
         DB        11111110B
         DB        01111110B
         DB        10111110B
         DB        11011110B
         DB        11101110B
         DB        11110110B
         DB        11111010B
         DB        11111100B
         DB        01111100B
         DB        10111100B
         DB        11011100B
         DB        11101100B
         DB        11110100B
         DB        11111000B
         DB        01111000B
         DB        10111000B
         DB        11011000B
         DB        11101000B
         DB        11110000B
         DB        01110000B
         DB        10110000B
         DB        11010000B
         DB        11100000B
         DB        01100000B
         DB        10100000B
         DB        11000000B
         DB        01000000B
         DB        10000000B
         DB        00000000B ;依次堆积点亮LED

         DB        0FFH
         DB        0FFH
         DB        000H
         DB        000H
         DB        0FFH
         DB        0FFH
         DB        000H
         DB        000H      ;八只LED全体闪几下

         DB        10000000B
         DB        01000000B
         DB        00100000B
         DB        00010000B
         DB        00001000B
         DB        00000100B
         DB        00000010B
         DB        00000001B
         DB        10000001B
         DB        01000001B
         DB        00100001B
         DB        00010001B
         DB        00001001B
         DB        00000101B
         DB        00000011B
         DB        10000011B
         DB        01000011B
         DB        00100011B
         DB        00010011B
         DB        00001011B
         DB        00000111B
         DB        10000111B
         DB        01000111B
         DB        00100111B
         DB        00010111B
         DB        00001111B
         DB        10001111B
         DB        01001111B
         DB        00101111B
         DB        00011111B
         DB        10011111B
         DB        01011111B
         DB        00111111B
         DB        10111111B
         DB        01111111B
         DB        11111111B ;依次堆积熄灭LED

         DB        000H
         DB        000H
         DB        0FFH
         DB        0FFH
         DB        000H
         DB        000H
         DB        0FFH
         DB        0FFH      ;八只LED全体闪几下

         END                 ;主程序结束

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

  • quote 1.崔先生
  • 我想把它改在P1口可以吗?
    jiangx 于 2008-7-19 19:20:28 回复
    可以的,改任意口都行
  • 2008-7-19 18:11:31 回复该留言
  • quote 2.崔先生
  • 不会改啊,我是才学的,
    jiangx 于 2008-7-23 16:22:28 回复
    把里面的P2换成你想要的I/O口就行了
  • 2008-7-20 21:07:29 回复该留言
  • quote 3.崔先生
  • 我把这个东西复制到我的KEIL的文档里怎么生不成HEX文件啊?
    jiangx 于 2008-7-23 16:26:57 回复
    那是你的KEIL设置问题,每新建一个工程都要在工程的Options选项里设置,在Options里的Output选项卡中勾选Create HEX File选项就OK,不明白参考KEIL的有关资料。
  • 2008-7-20 21:23:05 回复该留言

发表评论:

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

有用链接

最近发表

热文排行

最新评论及回复

图标汇集

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

Powered By Z-Blog 1.8

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