哪位高手帮我看一下附件,32*16的LED点阵!!

2019-07-16 05:17发布

      大虾们,小弟最近想做一个杜洋老师的 DleSan_mini3216 LED点阵时钟,但用软件仿真时,老是显示乱码,查电路和源代码都看不出什么原因,请帮忙分析一下,谢谢!
DleSan_mini3216 LED点阵时钟.rar 下载积分: 积分 -1 分
75.46 KB, 下载次数: 103, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
pangjineng
2019-07-17 23:14
#include<reg52.h>
char code tabe[]={
0x00,0x00,0x18,0x19,0x15,0x37,0x27,0xED,0xE8,0x29,0x2B,0x32,0x30,0x20,0x00,0x00,
0x00,0x08,0x48,0x58,0x50,0xF4,0xE6,0xFE,0xFC,0xC0,0x60,0x30,0x18,0x08,0x08,0x00,   //家
0x00,0x01,0x01,0x01,0xFF,0xFF,0x0D,0x0B,0x1A,0x32,0x62,0x42,0x02,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,0xFE,0xFE,0x8C,0xC8,0x60,0x30,0x18,0x08,0x0C,0x04,0x04,0x00};  //长


delay()         //每传送一次数据的显示延时
{
unsigned int a,b;
for(a=1;a>0;a--)
for(b=97;b>0;b--);
}
sbit WE1=P1^0;
sbit WE2=P1^1;

void main()
{
        int i;
   P2=0xFF;

    while (1)
    {
        for (i=0;i<=16;i++)    //显示左半边(8*16)屏幕
        {
                         if(i<=8)
                                {
                        WE1=1;       
         P0=tabe[i];
                        WE1=0;
                        WE2=1;
         P0=tabe[i+16];
                        WE2=0;
         P2=i|0x08;   //P2.3=1 选中U2, 输出扫描码给U8/U9
                        delay();
                       }
                   if(8<i<=16)   //显示左半边(8*16)屏幕
        {
                        WE1=1;       
         P0=tabe[i];
                        WE1=0;
                        WE2=1;
         P0=tabe[i+16];
                        WE2=0;
         P2=(i-8)|0x10;   //P2.4=1,选中U3, 输出扫描码给U10/U11
                        delay();
        }
                         if(16<i<=24)    //显示右半边(8*16)屏幕
                                {
                        WE1=1;       
         P0=tabe[i];
                        WE1=0;
                        WE2=1;
         P0=tabe[i+16];
                        WE2=0;
         P2=(i-16)|0x20;   //P2.5=1 选中U4, 输出扫描码给U12/U13
                        delay();
                       }
           else                   ////显示右半边(8*16)屏幕  
        {
                        WE1=1;       
         P0=tabe[i];
                        WE1=0;
                        WE2=1;
         P0=tabe[i+16];
                        WE2=0;
         P2=(i-24)|0x40;   //P2.6=1 选中U5, 输出扫描码给U14/U15
                        delay();
        }

                }

    }
}


一周热门 更多>