两个595分别接点阵的X轴和Y轴就好了,如果I/O口够用,没必要用两个595,段码用就好了,用三极管做开关就可以独立供电了,记得要共地

BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*i]; //把第一个字模的第一个字节放入BUFF1中,第二个字模和第一个字节放入BUFF3中 BUFF[2*s]=hanzi[zimuo+0+32*s+2*i]; // 把第一个字模的第二个字节放入

用单片机控制8×8点阵的每个LED的亮灭,要采用扫描方式实现。如下图的8×8点阵,用8系列线和8线条行线控制。在8条列线加高电平,逐条行线加低电平,就会逐行点亮。

如果是两个74HC595级联就是8×8点阵,如果是3个级联就可以是8×16点阵,也就是说一个74HC595做数据端,其他74HC595做公共端控制。然后就是点阵显示,可以串行输出数据接着再串行输出公共端控制(具体看点阵的接法),关键是

我做过16*16点阵用了4片595 级联 以下有代码 希望能帮助楼主 include #define uchar unsigned char#define uint unsigned int sbit SH_CP=P1^2;sbit DS=P1^0;sbit ST_CP=P1^1;uchar code tab[ ]= {

三极管用8050 C级直接加5伏 B级一般加2至10k的电阻连到595 主要看点阵的型号 有些电流要大点有些要小点 可以自己试试 E级输出到点阵阳极 点阵阴极接200欧就差不多了 也可以大点

看你怎么选择了。行和列都用595的话要2片。连接单片机其中一个595可以连接到串口上,使用串口方式0 这个是6个595驱动6个5*7的点阵。

在单片机电路里74HC595能带起来8X8点阵么

include define uint unsigned int define uchar unsigned char sbit sh_cp=P2^0;sbit ds=P2^1;sbit st_cp=P2^2;void delay(){ uint a=20000;//慢点可以看清工作过程 while(a--);} void main(){ u

看看电路吧,可能是从第二个595开始,串行级连 端,接错了。

3、更换其驱动IC。H.显示混乱,但输出到下一块板的信号正常 1、检测245对应的STB锁存输出端与驱动IC的锁存端是否连接或信号被短路到其它线路。I.显示混乱,输出不正常 1、检测时钟CLK锁存STB信号是否短路。2、检测245的

最好不要这样,采用查询式发送比较好。因上电的初始程序就开中断了吧,而上电会因干扰产生中断信号。或者串口中断函数中要判断一下是由TI还是由RI产生的中断。关电时,有时会发送一个乱码,这正常。你是用电脑接收的吧。

建议先让它全灭1S 然后才执行程序 如果一个引脚不紧张 可以用单片机的一个引脚接595的13脚 控制亮灭的

去掉一个

单片机连接74HC595驱动8个LED时,上电一瞬间会出现乱码,请问怎样可以清除掉?

P0口接上拉电阻,用串并转换芯片例如:74HC595,74HC164等等,理论上可以扩展无限多LED.LED亮灭通过程序控制实现。

我有一个74hc595串入并出控制led程序,你自己改一改就行了。前提是你还需要一个电机驱动芯片(如l293d,uln2003等)。/ 标题: 试验74HC595驱动8位LED灯(C语言)连接方法:JP12用条线冒短接 JP1(LED灯接口)和JP2(

两片74HC595确实可以驱动一个8X8的LED点阵。LED的额定电流是10mA,可实际电流并不需要一定要达到额定电流啊,额定不等于实际的。这要看限流电阻是多大。现在LED点阵都高亮度的,电流达到3mA时,就很亮了,所以,不需要真到1

595是串入并出的移位寄存器,所以一个595可以驱动8列(行),但这只用单片机的一个引脚,另外8行(列)可用3-8译码器。看你有多少点阵。

有点难度,资料上10mA以内,你可试试改变二极管的连接方式,4只串联两组再并联,每组电流控制在4mA,或者干脆增加一三极管。

74hc595一个管脚能同时驱动8个led吗?

74HC595只是一个串入并出移位寄存IC,要做流水灯还是要加一个单片机来控制数据的,你要先把流水灯的效果想好,再写好单片机程序,再输出数据到595IC,595IC就可驱动LED,就可以看到流水灯了;流水灯的程序很简单,看你选用

同时,上海哲民也积极在中国大陆开展照明改造,新能源应用等项目。产品已应用于多个项目,如日本相川铁龙中国工厂 LED日光灯改造项目,日本 YKK中国工厂LED日光灯及 LED工矿灯改造,无锡夏普LED照明改造等,中国科学院路灯ZEMI

74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SHcp(见时序图)的上升沿输入,在STcp(见时序图)的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位。寄存器总

void led_flash1(unsigned char speed);void led_flash2(unsigned char speed); //数码管的跑动显示void SPI_Write_Byte(unsigned char write_byte); //模拟SPI传送一个字节给595显示void Coordinate(unsigned char X_radiation,unsigned

参考这个 include define uint unsigned int define uchar unsigned char sbit sh_cp=P2^0;sbit ds=P2^1;sbit st_cp=P2^2;void delay(){ uint a=20000;//慢点可以看清工作过程 while(a--);} void ma

单片机 想用74HC595控制8位led灯 有数据输入到595中 可是8位led灯一直常亮或不正常显示。

具体什么要求 我做单片机设计的
如果你是静态显示,那么灰度是没戏了。如果是动态显示,那就先点亮一个LED,再将595的数据刷新,令所有的LED灭掉,然后亮第二个LED,再将595的数据刷新,令所有的LED灭掉,如此循环,来控制LED点亮的占空比就可以控制灰度了。但这个办法的关键是你刷新的频率一定要足够高,不然就会产生闪烁。 其实,你电路中最大的问题就是OE脚被你锁死了,通常的产品都是靠这个引脚来控制灰度的。另外,595到LED之间最好再加一级驱动芯片,例如,2003,2803,否则595驱动电流不足,很容易烧坏。
如果是共阳设计,595接在负极,就不用,595的驱动能力足够了,最好串一个限流电阻; 595提供30ma电流是没问题的
可以用类似单片机的上电复位电路 给595的/SCLR(10脚)引脚上拉电阻,下拉电容。 上电时,电容还没有充电,引脚低电平,过一段时间之后 电容点压慢慢升高至高电平,芯片正常工作。 注意复位时间不要比单片机的上电复位时间长太多,要不然 程序开始运行的时候,595还在复位状态,没有响应数据的锁存
你的这个不是乱码就有问题了!~ 你仔细理解一下这段 void wr595(uchar dat) { uchar a; for(a=8;a>0;a--) { SH_CP=0; DS=dat&0x80; dat<<=1; SH_CP=1; _nop_(); _nop_(); SH_CP=0; _nop_(); _nop_(); SH_CP=1; } } 你的for循环是有问题的 以为你的每个字节移了多次 所以就乱码了 void wr595(uchar dat) { uchar a; for(a=8;a>0;a--) { SH_CP=0; DS=dat&0x80; dat<<=1; SH_CP=1; _nop_(); _nop_(); } } 你看看下面的 去掉一个
参考这个 #include #define uint unsigned int #define uchar unsigned char sbit sh_cp=P2^0; sbit ds=P2^1; sbit st_cp=P2^2; void delay() { uint a=20000;//慢点可以看清工作过程 while(a--); } void main() { uchar b,datah,datal; datah=0xc0; datal=0xf0; for(b=0;b<8;b++) { sh_cp=0; st_cp=0; datah<<=1; ds=CY; delay(); sh_cp=1;//sh_cp上升沿 移位 delay(); st_cp=1;//st_cp上升沿 存储 } for(b=0;b<8;b++) { sh_cp=0; st_cp=0; datal<<=1; ds=CY; delay(); sh_cp=1;//sh_cp上升沿 移位 delay(); st_cp=1;//st_cp上升沿 存储 } sh_cp=0; st_cp=0; //while(16); }
三极管用8050 C级直接加5伏 B级一般加2至10k的电阻连到595 主要看点阵的型号 有些电流要大点有些要小点 可以自己试试 E级输出到点阵阳极 点阵阴极接200欧就差不多了 也可以大点
看你怎么选择了。行和列都用595的话要2片。连接单片机其中一个595可以连接到串口上,使用串口方式0 这个是6个595驱动6个5*7的点阵。