新手遇到了一个问题,求帮忙看看

2019-07-15 17:50发布

8*8LED点阵  第一行随便怎么亮都可以,
                   第二行怎么写都和第一行一样。
程序:
#include <reg52.h>
#include <intrins.h>
#define L1 P0
sbit ser=P3^4;
sbit rclk=P3^5;
sbit srclk=P3^6;
unsigned char code zimo1[8]={0x81,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code zimo[8]={0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x0};
void OUT(void);
void delay(unsigned int j);
void HC(unsigned char hang);
void main()        
{
unsigned char i,j;
  while(1)
      {
        for(i=0;i<1;i++)   //列扫描
      {
      for(j=0;j<8;j++)
       {
     L1=zimo1[7-j];
     delay(1);
       }
      }
   for(i=0;i<1;i++)    //行扫描
   {
   for(j=0;j<8;j++)
   {
        HC(zimo[j]);    //并入
     OUT();       //串出
     delay(1);
   }
   }
}
}
void delay(unsigned int j)    //延时
{
unsigned char k;
for(;j>0;j--)
   for(k=12;k>0;k--);
   }
void HC(unsigned char hang)
{
unsigned char i;
for(i=0;i<8;i++)
   {
    srclk=0;
    ser=(bit)(hang&0x80);
    hang<<=1;
    srclk=1;
   }
}
void OUT(void)
{
rclk=0;
rclk=1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。