不知道怎么说,不过可以告诉你一个了解芯片功能的方法,希望能帮到你。先安装一个proteus,在软件中找出74hc595,然后在输入端连上logictoggle。点击logictoggle改变状态,就可以很直观的看出芯片的功能。不明不白可以再问。
16脚的VCC是芯片供电的,10脚名字是/SRCLK,是异步复位芯片上数据用的,连在VCC上是给他逻辑电平1,表示永不复位,用在多个芯片级连上,14脚数据进去经过8个时钟周期后第一个数据会出现在QH’上。SRCLK是输入数据移位时钟
用单片机控制8×8点阵的每个LED的亮灭,要采用扫描方式实现。如下图的8×8点阵,用8系列线和8线条行线控制。在8条列线加高电平,逐条行线加低电平,就会逐行点亮。
1、连接:将74HC595芯片的引脚与数码管连接,包括串行输入、时钟输入、并行输出和输出使能等引脚。2、数据传输:单片机将要显示的数字转换为二进制数据,串行输入引脚输入到74HC595芯片。3、位移操作:时钟输入引脚的时钟信号,使
本系统采用两块74hc595级联作为点阵屏的行控制信号,控制点阵屏的16行。74hc595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在schcp的上升沿输入,在stcp的上升沿进入的存储寄存器中
74hc595 驱动8*8 点阵protues原理图
DS_595 EQU P1.5 ;串行数据输入(595-14)CH_595 EQU P1.7 ;移位时钟脉冲(595-11)CT_595 EQU P1.6 ;输出锁存器控制脉冲(595-12)G_595 EQU P1.4 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME
//74HC595练习程序 //串入并出实现16流水灯效果 //2009.12.28 includereg52.h sbit shcp=P2^0; //数据在上升沿进入移位寄存器 sbit date1=P2^1; //串行数据输入端 sbit clock=P2^2; //上升沿时将数据输出到并
要用两片74HC595点亮16*16的点阵,只能用来控制列线,输出16点的字形数据,还要用两片3-8译码器完成逐行扫描。
74hc595要用四片 行列扫描 把两组(一组两片)的锁存脉冲接在一起。然后把第一片的Q7‘接入第二片的SDA。另外把每组SCK接在一起。十六位的移动是只 你往595里送个数据。那么595就会把最先送入的数据丢掉。然后整体向
两片74HC595级联驱动16*16LED点阵,用51 单片机驱动
① 带锁存输出的 8位移位寄存器74HC595,作为LED的列线驱动输入; ② 四六译码器 74LS154,作为 LED行线的译码选择(实际制作中考虑成本问题改为两个74HC138联合); ③ 三极管 9012,连接四六译码器的十六个输出端,作为开关使用,驱动LED的
建议,先做一个显示的缓存,disbuf[64]; 显示时,扫描这个缓存就行了。要显示什么内容,直接向缓存里写就OK了,写好显示扫描驱动后,给一些横排,竖排的显示内容,测试一下。因为,也有可能是字码有问题。还有,在仿真软
先两两拼好,标上标号。再拼起来。我这里是用逐列扫描。16X16点阵是先显示1~8列(左半部上下2 个8X8LED)再显示9~16列(右半部上下2个8X8LED),这样,左上下的列接COL 0~7,右上下列接COL 8~15,即左(右)
define BLKN 2 //列锁存器 sbit G=P1^7; //P1.7为显示允许控制信号端口 sbit RRCLK=P1^6; //P1.6为输出锁存器时钟信号端 sbit SCLR=P1^5; //P1.5为移为寄存器清零端 void delay(unsigned i
谁能帮我解决这个问题 74HC595和74LS154做的LED点阵
;16*16点阵左移汇编程序 DS_595 EQU P1.5 ;串行数据输入(595-14)CH_595 EQU P1.7 ;移位时钟脉冲(595-11)CT_595 EQU P1.6 ;输出锁存器控制脉冲(595-12)G_595 EQU P1.4 ORG 0000H LJMP M
这是16X16的,自己一改就好了 //74HC595练习程序 //串入并出实现16流水灯效果 //2009.12.28 includereg52.h sbit shcp=P2^0; //数据在上升沿进入移位寄存器 sbit date1=P2^1; //串行数据输入端 sbit clock=P2^
用2个138级联控制列,2个595,每个595控制2个8x8的点阵 我感觉这个程序就是最简单的滚动显示的程序 了 include
; * ATA89C52 12MHz晶振 ; * 2004.2.11 LRM ;;显示字用查表法,不占用内存,字符用16x16共阳LED点阵,;效果:向上滚动显示5个字,再重复循环。;R1:查表偏址寄存器,B:查表首址,R2:扫
本人用74HC595驱动(行列)LED点阵16*16,由于编程能力有限,求高手指点,发我调试程序即可 带汉字显示哦
三极管用8050 C级直接加5伏 B级一般加2至10k的电阻连到595 主要看点阵的型号 有些电流要大点有些要小点 可以自己试试 E级输出到点阵阳极 点阵阴极接200欧就差不多了 也可以大点
说明你的sendbyte_L()行选择有问题,可能是软件问题,也可能是硬件问题 首先断开138输入A、B、C与cpu的连接,手动设置A、B、C的高低电平,看显示是否对应的8个行是否轮流都亮,不亮再看138输出8个引脚的电平是否相应变化
首先是51单片机的IO输出能力有限,而8*8则是64个LED,所以尽量是加上驱动芯片,以减少IO端口负载,这样可靠。驱动行看你用什么方式了,如果是串转并的话就用74HC164或者74HC595,驱动电流很轻松(注意驱动LED的正极),列可
include
STC89C52单片机74HC595驱动LED8*8点阵
两个595分别接点阵的X轴和Y轴就好了, 如果I/O口够用,没必要用两个595,段码用就好了, 用三极管做开关就可以独立供电了,记得要共地还需要先把原理图变成实物图。简单的可以用万用板自己搭接线路。 需要以下东西: 1、单片机,STC89C52。(方便串口下载程序) 2、74HC14,下载电路芯片 3、4片 595 4、一个8*8的点整。 5,、单片机最小系统元件,晶振12MHZ,30PF小电容2个 6、复位电路:10K电阻,小按键,,10UF极性电容,1K电阻各一个。 7、细导线若干,电烙铁,焊锡丝,小钳子,镊子,万用板等等。 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
这个图片会压小。看大图到这看 http://0e.images22.51img1.com/6000/kgd235143/e4be871c454f0c1d6f7f46b964dacee7.jpg 要仿真的话我发给你,当然实际电路要三极管驱动 #include #define uchar unsigned char uchar i,j,k=15; sbit xsi=P2^0; sbit xrck=P2^1; sbit xsck=P2^2; sbit ysi=P2^3; sbit yrck=P2^4; sbit ysck=P2^5; sbit kg= P3^2; uchar code zbm[][32]={ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,}, {0xFF,0xFF,0xFF,0xF7,0xBF,0xF7,0xBF,0xFB,0xBF,0xFD,0x03,0xE0,0xFF,0xFF,0xFF,0xFF, 0x01,0xF0,0x7F,0xEF,0xBF,0xEF,0x9F,0xEF,0xDF,0xEF,0xFF,0xF1,0xFF,0xFF,0xFF,0xFF},/*"北",0*/ {0xF7,0xFF,0xF7,0xFF,0xF7,0xEF,0xF7,0xF3,0x37,0xFF,0xB7,0xFE,0xB6,0xDE,0xD5,0x80, 0xDB,0xFE,0x5B,0xFF,0x9B,0xFB,0xFB,0xF7,0xFB,0xE7,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF},/*"京",1*/ {0xFF,0xEF,0x5F,0xF7,0xDF,0xFA,0xEF,0xFD,0x0F,0xFA,0xFF,0xDF,0xBF,0xEF,0xC7,0xF3, 0x58,0xFC,0xEF,0xFB,0xAF,0xF7,0xCF,0xEF,0xEF,0xCF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF},/*"欢",2*/ {0xBF,0xF7,0xBF,0xF7,0xBB,0xF6,0x37,0xF1,0xFF,0xF7,0x07,0xF6,0xF7,0xF6,0x7B,0xF7, 0xF9,0xEF,0x0F,0xE8,0xF7,0xEF,0x77,0xCF,0x07,0xCF,0xFF,0xEF,0xFF,0xEF,0xFF,0xFF},/*"迎",3*/ {0xFF,0xFE,0x7F,0xFF,0xBF,0xFF,0x0F,0xC0,0xF1,0xFF,0xFF,0xF7,0xBF,0xF9,0xCF,0xEF, 0xD1,0xDF,0x5F,0xC0,0xEF,0xFF,0xAF,0xFD,0xCF,0xFB,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF},/*"你",4*/ 0x87,0xFF,0x03,0xFF,0x01,0xFE,0x00,0xF8,0x01,0xF0,0x01,0xE0,0x03,0x80,0x07,0x00, 0x07,0x00,0x03,0x80,0x01,0xE0,0x01,0xF0,0x00,0xF8,0x01,0xFE,0x03,0xFF,0x87,0xFF,/*"心",5*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,}, }; uchar code zbm1[][16]={ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,}, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0x6F,0xDB,0x63,0xEB,0x6C,0xEB}, {0xEF,0xEF,0xEF,0xDF,0x0F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"自",0*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3B,0xF0,0xBB,0xEF,0xBB,0xEF,0xBB,0xEF,0xDD,0xEF}, {0xCD,0xEF,0xF1,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xF1,0xFF,0xFF,0xFF,0xFF},/*"己",1*/ {0x7F,0xFF,0xBF,0xFF,0x0F,0xC0,0xD1,0xFF,0xDF,0xF1,0x01,0xF6,0xEF,0xF6,0xEF,0xE8}, {0x3F,0xF7,0xCF,0xFA,0xD1,0xFD,0x1F,0xFA,0xEF,0xE7,0xEF,0xEF,0xFF,0xEF,0xFF,0xFF},/*"做",2*/ {0xFF,0xFF,0x3F,0xF8,0x9F,0xE6,0xAF,0xF6,0xD3,0xF7,0x1F,0xE0,0x7F,0xFF,0xBF,0xFF}, {0x5F,0xFF,0xC7,0xFC,0xD9,0xEF,0xEF,0xDF,0x0F,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"的",3*/ {0xFF,0xFF,0x3F,0xCF,0x3F,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*":",4*/ {0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xCF,0xFF,0xFF},/*"L",0*/ {0xF7,0xDF,0x07,0xC0,0x77,0xDF,0x77,0xDF,0x17,0xDC,0xF7,0xDF,0xEF,0xE7,0xFF,0xFF},/*"E",1*/ {0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0xEF,0xEF,0x1F,0xF0,0xFF,0xFF},/*"D",2*/ {0xFF,0xDF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0x7F,0xF4,0x7F,0xED,0x81,0xFD,0xB7,0xFD}, {0xB7,0xF5,0xBB,0xED,0x3B,0xFE,0xFF,0xF7,0xFF,0xEF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF},/*"点",3*/ {0xFF,0xFF,0x03,0xE0,0xBB,0xFF,0x6D,0xFF,0x11,0xFB,0xFF,0xFB,0x37,0xFB,0x57,0xFB}, {0x67,0xFB,0x19,0x80,0xBB,0xFD,0xBB,0xFD,0xBF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xFF},/*"阵",4*/ {0xFF,0xEF,0xFF,0xF7,0xFF,0xF9,0x7F,0xFE,0x81,0xBD,0x75,0xDD,0x65,0xE5,0x55,0xF8}, {0xB6,0xFD,0x9A,0xFD,0x28,0x80,0xBC,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF},/*"屏",5*/ {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,}, }; void ys (uchar a) //延时 { uchar b; for (;a>0;a--) for (b=100;b>0;b--) ; } void yfs() //Y轴发数 { ysck=0; yrck=0; k++; if (k==16) { k=0; ysi=0; } else ysi=1; ysck=1; P2=P2|0X14; //相当于 xrck=1; yrck=1; } void xfs(uchar a) //X轴发数 { uchar b,a1,a2; a1=~zbm[6][a*2+1]; a2=~zbm[6][a*2]; xsck=0; xrck=0; for (b=0;b<8;b++) { a1=a1<<1; xsi=CY; xsck=1; xsck=0; } for (b=0;b<8;b++) { a2=a2<<1; xsi=CY; xsck=1; xsck=0; } } void fs(uchar a) //X轴发数 { uchar b; xsck=0; xrck=0; for (b=0;b<8;b++) { a=a<<1; xsi=CY; xsck=1; xsck=0; } } void gdhs(uchar *zz,uchar N,uchar Time) //流动显示N个汉字 滚动函数 { //参数三个:字符串字模首地址、字数、显示流动速度 uchar FontNum,i,j,row; //循环变量,字数计数、16次流动、16列扫描 for(FontNum=0;FontNum<N;FontNum++) { for(i=0;i<16;i++) //字到字流动 16次左移才能完成 { for(j=0;j<Time;j++) //显示延迟,决定流动速度 { k=15; for(row=0;row<16;row++) //显示16*16屏幕一次 { yfs(); //选通显示列 //行选线,P3 低四位 fs (~*(zz+FontNum*32+(i+row)*2+1)); //以移动偏移为基础获取新数据 fs(~*(zz+FontNum*32+(i+row)*2)); //获取显示数据 循环显示关键算法 ys (12); //适当延时 } } } } } void wbzd () interrupt 0 //外部中断 { j++; if (j>1) j=0; ys(10); while (!kg) { k=15; for (i=0;i<16;i++) { yfs(); xfs(i); ys(10); } } if (j==0) gdhs(zbm,8,2); if (j==1) gdhs(zbm1,10,1); } void main () { EA = 1; //打开总中断 EX0=1; IT0=1; while (1) { if (j==0) gdhs(zbm,8,5); if (j==1) gdhs(zbm1,10,3); } }
74hc595要用四片 行列扫描 把两组(一组两片)的锁存脉冲接在一起。 然后把第一片的Q7‘接入第二片的SDA。另外把每组SCK接在一起。 十六位的移动是只 你往595里送个数据。那么595就会把最先送入的数据丢掉。然后整体向前移一位。 另外要注意。OE要接地。而且需要输出的时候锁存要产生一个上升。
如果不是要求很高的话不用加,因为每次只点亮一列,以74hc595的驱动能力差不多够了
要不了这么多驱动两个74HC59和一个74HC154.给你图你看看。
看电路图,行驱动直接接在单片机I/O口上,有问题吧,单片机I/O不管是输入还是输出,都承受不了32LED灯。所以在I/O口上要加放大电路。这个不是小程序,只能说思路。 先要明白汉字显示就是点阵显示。根据电路一次最多只能2个汉字,再多就只能滚动或刷屏。所以以2个汉字为基础开始编程。 将第一行的点阵(32个位),顺序写入595,输出595. 控制第一行的I/O驱动,点亮第一行。 延时5ms 将第二行的点阵(32个位),顺序写入595,关第一行,输出595. 控制第二行的I/O驱动,点亮第二行。延时5ms 同理,顺序点亮16行。一屏扫描完毕,重复循环,汉字就显示出来了。必须重复循环,否则没显示。 显示滚动效果。 滚动效果其实就是控制行点阵的内容,将每行的32个位,右移一位,再写入595,就是滚动效果了。每扫描一屏,移位一个,位扫描多屏,移动一个,可以控制滚动的速度
要不了这么多驱动两个74HC59和一个74HC154.给你图你看看。
还需要先把原理图变成实物图。简单的可以用万用板自己搭接线路。 需要以下东西: 1、单片机,STC89C52。(方便串口下载程序) 2、74HC14,下载电路芯片 3、4片 595 4、一个8*8的点整。 5,、单片机最小系统元件,晶振12MHZ,30PF小电容2个 6、复位电路:10K电阻,小按键,,10UF极性电容,1K电阻各一个。 7、细导线若干,电烙铁,焊锡丝,小钳子,镊子,万用板等等。 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。