这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» DIY与开源设计» 开源硬件» 使用两片74HC595驱动点阵LED的问题

共5条 1/1 1 跳转至

使用两片74HC595驱动点阵LED的问题

工程师
2021-03-02 23:00:52 打赏

驱动点阵有很多方法,比如单用HC138,单用HC595以及它两混用均可,本坛也有许多例子供大家参考,但是它们都是采用级联的方式来做,出于好奇心,我想用一片595控制列,一片控制行,而不采用级联,然而程序无法运行。不知是程序问题还是硬件本身不支持这种接法? 请高手们指教!




我的源程序如下:


#include
//#define uint unsigned int
//#define uchar unsigned char
typedef unsigned char u8;
typedef unsigned int u16;
sbit ds1 =P2^0;
sbit shcp = P2^1;
sbit stcp = P2^2;
sbit ds2 = P2^3;

u8 code display[]={
0x66,0x99,0x81,0x81,0x42,0x24,0x18,0x00};//“心”图案

u8 code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(u8 b)//延时
{
while(b--);
}
/**************** 向HC595发送一个字节函数 ******************/
void Send1(u8 dat)
{
u8 i;
for(i=0;i<8;i++)
{
ds1 =dat&0x01;
dat>>=1;
shcp = 1;
shcp = 0;
}
stcp = 1;
stcp = 0;
}
void Send2(u8 ddat)
{
u8 j;
for(j=0;j<8;j++)
{
ds2 =ddat&0x80;
ddat<<=1;
shcp = 1;
shcp = 0;
}
stcp = 1;
stcp = 0;
}

void main()
{
u8 k;
while(1)
{
for(k=0;k<8;k++)
{
Send2(wei[k]);
Send1(display[k]);
delay(100);
}
}
}




关键词: 74HC595 LED点阵 LED驱动

工程师
2021-03-02 23:09:29 打赏
2楼

两片74HC595分别驱动点阵LED行/列完全可以,但要多用1个IO口。接法如下,程序也要修改。


工程师
2021-03-02 23:14:12 打赏
3楼
100%程序的问题,我们量产的点阵模块就是两片595驱动列,两片595驱动行。



工程师
2021-03-02 23:18:53 打赏
4楼

595好像是总线控制吧,你要想一个控制行或列用573好些吧!


高工
2021-03-02 23:49:32 打赏
5楼

问题真的提的蛮好的


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]