LED点阵程序,点亮一个0都点不亮。。

2019-07-16 05:33发布

点阵为啥不听话啊,心都碎了。写个最简单的程序也不听话,就是全屏都亮。。
求大神帮忙,指点迷经
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar  table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar  table2[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};
void delay(uint a)
{
   while(a--);
}

void main()
{
  uchar i;
  while(1)
  {
  for(i=0;i<8;i++)
  {
   P0=table1[i];
   P1=table2[i];
   
   delay(40);
   P0=0X00;
   }
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
丁一凡
2019-07-17 05:24
#include <AT89X52.H>                                                //包含头文件

#define shuma P0                                                //定义P0口为数据
unsigned char b;                                               
unsigned char  table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit LED_1=P1^0;
void Delay(unsigned int i)                        //延时函数
{
        while(i--);                                                //延时长短由i决定
}                                       

void main(void)
{
        LED_1=0;                        //只是让P1^0L亮(即选择第一个数码管)
        while(1)                                //无限循环
        {
                for(;;)                                //       
            {
                  shuma=table1;
                  b++;
                          if(b>9)
                                  b=0;
                  Delay(30000);
                 }
        }
}用的共阳极的数码管,上面那个是第一个数码管从0闪到9

一周热门 更多>