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);
}
}
}
展开
 我来答
lycdl
高粉答主

2018-07-29 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:5020万
展开全部

你的程序没有问题的,估计是,你的程序与你的开发板上74HC595的引脚不符吧。下图是根据你的程序画的仿真图,程序没有变,只是把显示的图形数据变了一下,显示出菱形。

u8 code duanled[]=

{

/*-- 调入了一幅图像:这是您新建的图像 --*/

/*-- 宽度x高度=8x8 --*/

0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00

};

BOWEIWorks
2018-07-28 · TA获得超过304个赞
知道小有建树答主
回答量:290
采纳率:83%
帮助的人:85.4万
展开全部
有时间发一个缓存扫描的程序给你,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式