51单片机开发板led点阵程序
用了74hc595串转并芯片想点亮8*8所有led点阵,但是根据下面的程序无法全部点亮求大神看看是不是程序的问题:#include<reg51.h>#include<in...
用了74hc595串转并芯片想点亮8*8所有led点阵,但是根据下面的程序无法全部点亮求大神看看是不是程序的问题:
#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
u8 code duanled[]=
{
/*-- 调入了一幅图像:这是您新建的图像 --*/
/*-- 宽度x高度=8x8 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
u8 code ledwei[]=
{
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};
void delay(u16 i)
{
while(i--);
}
void hc595send(u8 dat1,u8 dat2)
{
u8 a;
for(a=0;a<8;a++)
{
SER=dat1>>7;
dat1<<=1;
SRCLK=0;
_nop_();
SRCLK=1;
}
for(a=0;a<8;a++)
{
SER=dat2>>7;
dat2<<=1;
SRCLK=0;
_nop_();
SRCLK=1;
}
RCLK=0;
_nop_();
RCLK=1;
}
void main()
{
u8 b;
while(1)
{
for(b=0;b<8;b++)
{
hc595send(~ledwei[b],duanled[b]);
delay(10);
}
}
} 展开
#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
u8 code duanled[]=
{
/*-- 调入了一幅图像:这是您新建的图像 --*/
/*-- 宽度x高度=8x8 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
u8 code ledwei[]=
{
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};
void delay(u16 i)
{
while(i--);
}
void hc595send(u8 dat1,u8 dat2)
{
u8 a;
for(a=0;a<8;a++)
{
SER=dat1>>7;
dat1<<=1;
SRCLK=0;
_nop_();
SRCLK=1;
}
for(a=0;a<8;a++)
{
SER=dat2>>7;
dat2<<=1;
SRCLK=0;
_nop_();
SRCLK=1;
}
RCLK=0;
_nop_();
RCLK=1;
}
void main()
{
u8 b;
while(1)
{
for(b=0;b<8;b++)
{
hc595send(~ledwei[b],duanled[b]);
delay(10);
}
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询