利用IO口实现跑马灯功能通信工程一班二组跑马灯简介•概念:跑马灯又称为流水灯。简单地说就是一组灯在控制系统的控制下按照设定的时间和顺序来发亮或熄灭,组成不同的图形,从而达到一定的视觉效果。•基本跑马灯电路的组成:MCS—51单片机,LED小灯泡,电容电阻,振荡电路,译码电路,光源电路等。不同类型的跑马灯跑马灯的工作原理•要求:•51单片机连接二极管点阵,控制发光二极管流水线式的发亮。•实现方式:•1.点阵全亮•2.第一列亮,且逐次向右移动•3.三列同时亮,且向右移动•4.点阵显示“♡”形•5.循环显示“Ι♡∪”字形8x8LED点阵工作原理说明:0123456701234567点阵共有64个二极管每个发光二极管是放置在行线和列线的交叉点上列置高电平行置低电平当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮极性判断可以看出点阵上面接口为高电平控制,下面为低电平控制,才可以点亮小灯。可以看出上面的端口通过高电平控制每一列,而下面的端口通过低电平控制每一行,只有两者同时有效时,对应位的小灯才能点亮。点阵与51单片机的连接•P0口接阳极,每个接口控制一列;P1口接低电平,每个接口控制一行。•实现柱的亮的方法如下所述:•一根竖柱:对应的列置1,而行则采用扫描的方法来实现。•一根横柱:对应的行置0,而列则采用扫描的方法来实现。点阵全亮编程控制使P0口输出高电平,各列置1;P1口输出低电平,各行置0。各二极管均处于导通状态,点阵全亮。实现效果一:ORG0000HLJMPMAINORG0100HMAIN:MOVA,#0FFHMOVB,#00HLOOP:MOVP1,AMOVP0,BEND程序:一列亮,向右移动编程控制使P0各端口依次输出高电平,各列相应置1;P1口输出低电平,各行置0。相应二极管均处于导通状态,点阵亮。实现效果二:ORG0000HLJMPMAINORG0100HMAIN:MOVA,#01HMOVB,#00HLOOP:MOVP1,AMOVP0,BLCALLDELAYRLASJMPLOOPSJMP$DELAY:MOVR2,#0FFHDELAY1:MOVR3,#0FFHDJNZR3,$DJNZR2,DELAY1RETEND三列同时亮,向右移动编程控制使P0中各次均有三个端口输出高电平,各列相应置1;P1口端口全部输出低电平,各行置0。相应二级管导通,点阵亮。实现效果三:ORG0000HLJMPMAINORG0100HMAIN:MOVA,#07HMOVB,#00HLOOP:MOVP1,AMOVP0,BLCALLDELAYRLASJMPLOOPSJMP$DELAY:MOVR2,#0FFHDELAY1:MOVR3,#0FFHDJNZR3,$DJNZR2,DELAY1RETEND显示“♡”形:画出“♡”形,根据二极管的亮灭,设置相应扫描码,编程显示结果。实现效果四:0E3H,0D1H,0D2H,0C3H,0D2H,0C3H,0E4H,0E2H各列扫描码:ORG000HAJMPMAINORG100HMAIN:MOVR6,#0MOVR0,#0MOVR1,#1MOVDPTR,#200HIII:MOVR4,#02FHKKK:MOVA,R0MOVCA,@A+DPTRMOVP0,AMOVP1,R1MOVA,R1RLAMOVR1,AMOVR2,#01h编写程序:DELAY:MOVR3,#08FHDJNZR3,$DJNZR2,DELAYMOVP1,#0INCR0CJNER0,#8,KKKMOVR0,#0DJNZR4,KKKINCDPTRINCR6CJNER6,#08H,IIIMOVR6,#0MOVDPTR,#200HSJMPIIIORG200HTAB:DB0E3H,0C1H,081H,03H,03H,081H,0C1H,0E3H,DB0E3H,0C1H,081H,03H,03H,081H,0C1H,0E3HEND循环显示“Ι♡∪”字形画出“Ι♡∪”字形,根据二极管的亮灭,设置相应扫描码,编程显示结果。实现效果五:0FFH,0FFH,7DH,01H,01H,7DH,0FFH,0FFH0E3H,0C1H,81H,03H,03H,81H,0C1H,0E3H0FFH,81H,01H,3FH,3FH,3FH,01H,81HI的扫描码♡的扫描码U的扫描码CJNER6,#18H,IIIMOVR6,#0MOVDPTR,#200HSJMPIIIORG200HTAB:DB0FFH,0FFH,7DH,01H,01H,7DH,0FFH,0FFHDB0E3H,0C1H,81H,03H,03H,81H,0C1H,0E3HDB0FFH,81H,01H,3FH,3FH,3FH,01H,81HDB0FFH,0FFH,7DH,01H,01H,7DH,0FFH,0FFHEND程序编写:跑马灯在生活中的应用圣诞节宣传语装饰表达爱意Theend,thankyou!讨论交流请百度私信我