关于LED点阵显示的问题,会的大神希望您能帮着解答下啊!

2019-07-16 03:58发布

我是51单片机的初学者,刚学到了8*8点阵的显示这一块,然后我就想在点阵上显示一个中国的“中”字,写完程序运行后发现点阵上除了显示“中”的二极管亮之外,其他的灯也是微亮,想了好多办法消影,但是都没有成功
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code table2[]={0xf7,0xf7,0xf7,0xc1,0xd5,0xc1,0xf7,0xf7};
uchar num,temp,BL;
sbit wela=P2^5;
sbit dula=P2^6;
void delay(uint);
void main()
{
int num;
while(1)
{
  
  for(num=0;num<8;num++)
   {
    wela=1;
    P0=0x80;
    wela=0;
    P0=table1[num];
    delay(1);
    dula=1;
    P0=table2[num];
    dula=0;
    delay(1);
   }
}

}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=50;y>0;y--);
}

这是我写的程序,大家帮忙改一下,谢谢了,哦,对了,我的那个点阵模块是用两个74HC573控制的,也就是一个控制行,一个控制列。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jian19921115
1楼-- · 2019-07-16 08:17
uchar code table2[]={0xf7,0xf7,0xf7,0xc1,0xd5,0xc1,0xf7,0xf7};
请问你这个是在扫描么,好像有错哦
Mrfrankenwin
2楼-- · 2019-07-16 13:52
jian19921115 发表于 2012-11-6 22:54
uchar code table2[]={0xf7,0xf7,0xf7,0xc1,0xd5,0xc1,0xf7,0xf7};
请问你这个是在扫描么,好像有错哦 ...

我是通过从下往上逐行进行扫描的额,就是先给最后一行写1嘛,然后点亮最后一行所需要亮的灯,然后再对第二行进行点亮,这样快速的点亮应该会显示啊
我有个梦
3楼-- · 2019-07-16 17:57
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uchar code table2[]={0xf7,0xf7,0xf7,0xc1,0xd5,0xc1,0xf7,0xf7};
uchar num,temp,BL;
sbit wela=P2^5;
sbit dula=P2^6;
void delay(uint);
void main()
{
int num;
while(1)
{
  
  for(num=0;num<8;num++)
   {
    wela=1;
      P0=table1[num];
    wela=0;
  
    delay(1);
    dula=1;
    P0=table2[num];
    dula=0;
    delay(1);

    dula=1;
    P0=0xff;
    dula=0;
   }
}

}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=50;y>0;y--);
}


试试
13728688681
4楼-- · 2019-07-16 19:04
 精彩回答 2  元偷偷看……

一周热门 更多>