找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3452|回复: 3
收起左侧

四个8X8点阵组成16X16点阵向上滚动显示 单片机程序+Proteus仿真

[复制链接]
ID:479983 发表于 2020-5-21 22:19 | 显示全部楼层 |阅读模式
基于51单片机的四个8X8点阵组成16X16点阵,实现两种显示方式,左右横移和上下横移
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
51hei.png

51hei.png
void Send_16bit(unsigned char dat_L,unsigned char dat_R,unsigned char hang)
{
        unsigned char i;
        OE=1;                        //关闭74HC138输出
        RCK=0;
        for(i=0;i<8;i++)
        {
                CLK=0;
                if(dat_L&0x80)
                        DAT=1;
                else
                        DAT=0;
                dat_L=dat_L<<1;
                CLK=1;      
        }
        for(i=0;i<8;i++)
        {
                CLK=0;
                if(dat_R&0x80)
                        DAT=1;
                else
                        DAT=0;
                dat_R=dat_R<<1;
                CLK=1;      
        }
        switch(hang)
        {
                case 0:LA=0;LB=0;LC=0;LD=0;break;
                case 1:LA=1;LB=0;LC=0;LD=0;break;
                case 2:LA=0;LB=1;LC=0;LD=0;break;
                case 3:LA=1;LB=1;LC=0;LD=0;break;
                case 4:LA=0;LB=0;LC=1;LD=0;break;
                case 5:LA=1;LB=0;LC=1;LD=0;break;
                case 6:LA=0;LB=1;LC=1;LD=0;break;
                case 7:LA=1;LB=1;LC=1;LD=0;break;
                case 8:LA=0;LB=0;LC=0;LD=1;break;
                case 9:LA=1;LB=0;LC=0;LD=1;break;
                case 10:LA=0;LB=1;LC=0;LD=1;break;
                case 11:LA=1;LB=1;LC=0;LD=1;break;
                case 12:LA=0;LB=0;LC=1;LD=1;break;
                case 13:LA=1;LB=0;LC=1;LD=1;break;
                case 14:LA=0;LB=1;LC=1;LD=1;break;
                case 15:LA=1;LB=1;LC=1;LD=1;break;
        }      
        RCK=1;      
        OE=0;Delay(1);OE=1;        //调节延时控制LED亮度
}
void main()
{      
        unsigned char zi;        //字符控制
        unsigned char h;        //行数变量
        unsigned char i;
        while(1)
        {        //滚动显示
                for(zi=0;zi<(16*5);zi++)        //
                {
                        for(i=0;i<15;i++)
                        for(h=0;h<16;h++)
                        {Send_16bit(~Tab[h*2+2*zi],~Tab[h*2+1+2*zi],h);}//~取反
                }
                //直接切换
                /*for(zi=0;zi<5;zi++)
                {
                        for(i=0;i<100;i++)
                        for(h=0;h<16;h++)
                {Send_16bit(~Tab[h*2+32*zi],~Tab[h*2+1+32*zi],h);}
                }*/
        }      
}

全部资料51hei下载地址:
四个8X8点阵组成16X16点阵.zip (49.67 KB, 下载次数: 91)
回复

使用道具 举报

ID:783548 发表于 2020-6-26 10:37 | 显示全部楼层
可以的
回复

使用道具 举报

ID:783548 发表于 2020-6-26 11:07 | 显示全部楼层
真的坑,没有左右移动的
回复

使用道具 举报

ID:764404 发表于 2020-7-2 16:48 | 显示全部楼层
请问一下这个16*16的点阵是怎么拼成的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表