595+138驱动88点阵不稳定

2019-07-16 00:48发布

本帖最后由 374363700 于 2013-5-8 23:50 编辑

  我用实物74HC595 74HC38这样连接后,接电脑USB插口电源点阵只能正常亮一半, 而节手机充电的那种usb电源,点阵能全亮 ,可是亮度不够 ,而且会随机变暗变亮  
  


#include<reg52.h>
sbit R=P3^4;  //数据输入端口
sbit CLK=P3^6;      //时钟信号
      
sbit STB=P3^5;    //锁存端
char code table[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
void delay(int z)
  {
int x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
  }

void WriteByte(char dat) //写一个字节的数据
{
char i;
for(i=0;i<8;i++)     //循环8次把编码传给锁存器
    {
dat=dat>>1;      //右移一位,取出该字节的

R=CY; //       将该字节的最低位

CLK=0;   //      将数据移入595,上升
CLK=1;
    }
}

void main()
{
int num;
while(1)
{
for(num=0;num<8;num++)
{
WriteByte(table[num]); //送出一个字节
P1=num;   
STB=1; //     输出锁存器

STB=0;
delay(1) ;
}
}
}
1.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
←™RETI™→
1楼-- · 2019-07-16 04:59
可能里面的LED有导通电压不同
hungerthinker
2楼-- · 2019-07-16 09:32
目测是算法问题,不知道你程序怎么写的。在一个时隙里选通一个8X8点阵,595给列,138控制行,应该是没问题的。
374363700
3楼-- · 2019-07-16 11:33
 精彩回答 2  元偷偷看……
374363700
4楼-- · 2019-07-16 12:46
←™RETI™→ 发表于 2013-5-8 23:32
可能里面的LED有导通电压不同

  那有什么方法可以解决?
dongyumin
5楼-- · 2019-07-16 16:50
 精彩回答 2  元偷偷看……
374363700
6楼-- · 2019-07-16 18:17
dongyumin 发表于 2013-5-8 23:46
595、138这类器件的拉电流不是很大,不足以驱动16列的LED。在138后面接PNP管增强驱动能力。 ...

这样行吗?               
1.jpg

一周热门 更多>