proteus原理图及程序(74HC595级联点亮LED)
- 格式:doc
- 大小:38.00 KB
- 文档页数:3
74HC595在单片机上的应用及程序74HC595具有8位串入并出的三态门电路。
高速率:最高55MHz(5V工作电压)宽的工作电压范围:2V -6V每个口的最大电流值(QA-QH):±35mA当单片机的I/O资源比较紧张时,采用595并进行级联是一个很好的选择。
管脚定义:PIN NO symbol name and function15 QA data output1 QB data output2 QC data output3 QD data output4 QE data output5 QF data output6 QG data output7 QH data output8 GND ground9 QH’ serial data outputs10 /SCLR shift register clock input11 SCK shift register clock input12 RCK storage register clock input13 /G output enable input14 SI serial data input16 Vcc positive supply voltage时序图:请参照595的数据手册程序编制:端口定义设置:sbit DATA=P1^5;sbit SHIFT=P1^6;sbit STORAGE=P1^7;1、写595Void write_595(uchar x)//功能:将无符号8位数x,写入到595的shife register{Uchar j;For(j=0;j<8;j++)//循环8次,以便shift register保存8位数据{X=x<<1;//将数据左移一位,最高位数据进入到CY中SHIFT=0;//shift端置0_nop_();_nop_();_nop_();DATA=CY;//将一位数据送入595串口数据端SHIFT=1;//shift端产生一个上升沿,数据就送入到了shift register_nop_();//延时_nop_();_nop_();SHIFT=0;//shift端产生一个下降沿,shift register内容保持不变}}3、595数据的输出/********595输出函数函数*******************/void out_595(void){STORAGE=0;_nop_();_nop_();STORAGE=1;//上升沿shift register 的内容保存到store register _nop_();_nop_();STORAGE=0;//下降沿store register 的内容保持不变}4、只要在主函数中分别调用以上两个函数即可将要显示的数值X 显示出来。
逐个点亮LED灯,再逐个熄灭LED灯的跑马灯程序---基于74HC595移位锁存器,程序框。
/* 当单⽚机上电时,会发现LED灯出现乱序情况,⽽且这种情况是⽆法改变的。
这是因为正式程序运⾏的时候,74HC595还在复位状态,没有响应单⽚机的锁存。
软件解决办法:所以这之前可以加⼀⼩段延时,保证程序运⾏的时候,74HC595不在复位状态。
硬件解决办法:74HC595可以⽤类似单⽚机的上电复位电路给595的/SCLR(10脚)引脚上拉电阻,下拉电容。
上电时,电容还没有充电,引脚低电平,过⼀段时间之后电容点压慢慢升⾼⾄⾼电平,芯⽚正常⼯作。
注意复位时间不要⽐单⽚机的上电复位时间长太多,要不然程序开始运⾏的时候,595还在复位状态,没有响应数据的锁存复位键(我的74HC595芯⽚的SRCLR(10)引脚直接接的VCC,所以会出现乱码情况,不可以⼿动复位)。
*/#include "REG52.H"#define const_time_level_01_08 200 //第1个⾄第8个LED跑马灯的速度延时时间void initial_myself();void initial_peripheral();void delay_short(unsigned int uiDelayShort);void delay_long(unsigned int uiDelayLong);void led_flicker_01_08(); //第1个⾄第8个LED跑马灯程序,逐个亮,逐个灭void hc595_drive(unsigned char ucLedStatusTemp08_01);void led_updata(); //LED更新函数void T0_time(); //定时中断函数sbit hc595_sh_dr=P3^6; //上升沿时,数据寄存器数据移位sbit hc595_st_dr=P3^5; //上升沿时移位寄存器的数据进⼊数据寄存器,下降沿时数据不变。
利用74HC595实现多位LED显示的新方法1 引言目前,双基色发光二极管(LED)显示屏的生产制造数量比较多,其技术也相对成熟。
各个企业制造的显示屏的结构、原理基本相似,有些专业生产显示多媒体卡,因此,提高显示屏的技术性能、降低成本是各个企业竞争的关键所在。
现在,市场上销售的LED显示屏的价格基本相同,但是,不同的企业生产的显示屏的质量不同,其原因是多方面的,主要有:①LED显示模块的质量、亮度、亮度均匀性、封装等技术;②数据的通讯传送方式,抗干扰能力;③显示扫描电路电流的多点调整,控制每一点的电流。
经过多点调整的显示屏不仅均匀性比较好,而且显示图像的亮度、颜色效果更好,专用显示扫描电路具有比较好的显示效果,但是价格相对较贵。
现在,市场上销售的LED显示屏是很多企业利用相同的设计技术、方法、显示模块生产的,但其性能差别比较大。
颜色配比的不同,产生图像效果差别就很大;模块的扫描频率、工作电流既影响亮度,又涉及到使用寿命等问题。
因此,正确地确定各项技术参数是制造显示屏的关键所在,也可以说是技术经验的体现。
2 显示扫描原理各个企业制造的LED显示屏的控制结构有所不同,但是,显示屏的显示扫描电路基本相同。
双基色LED显示屏的显示扫描电路如图1所示。
在图1中,IC1、IC2是数据锁存器电路74HC595,分别锁存红色、绿色数据,它们的性能是:①串行输入8位并行输出;②数据锁存、数据清除功能;③输出具有比较强的驱动能力。
电阻RPB1、RPB2是限流电阻,根据颜色和模块的亮度来选择他们的数值。
ML1是双色LED显示模块,共有8行X8列=64个LED,其中,8个引脚是红色信号输入端,8个引脚是绿色信号输入端,8个引脚是行控制输入端,共有24个引脚。
三极管Q0,Q2,…Q7是行选通、驱动作用。
IC3是3-8地址译码电路74HC138,8个选通输出端分别控制相应的行。
图中电路是显示屏的原理电路,其数据传送方式是数据传送与行信号异步进行:首先,同时传送8位红、绿颜色数据到电路IC1、IC2并将数据锁存,然后再传送锌刂菩藕诺懔烈恍校蹋牛模 酉吕粗馗瓷鲜霾僮鳎 皇切行藕乓浦料乱恍校 来蔚降诎诵形 梗 词且淮瓮暾 纳 韫 獭?br> 显示扫描电路板的设计要求具有比较低的生产成本,因此,许多企业都设计成双面电路板,这样可以节省约三分之一的电路板成本。
74hc595;文件名:74hc595.c;功能:使用74HC595制作6位静态显示电路,在数码管上分别显示123456。
;硬件:见图8-4*/#include "pic.h"typedef unsigned char uchar;typedef unsigned int uint;__CONFIG(HS&WDTDIS&LVPDIS);//配置文件,设置为HS方式振荡,禁止看门狗,低压编程关闭#define Dat RB1 //定义串行数据输入端#define Clk R B0 //定义时钟端#define RCK RB2 //定义控制端uchar DispBuf[6]={1,2,3,4,5,6};const uchar DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x8 6,0x8E,0xFF};//定义定形码表void SendData(unsigned char SendDat) //传送一个字节的数据数据{ unsigned char i;for(i=0;i<8;i++){ if((SendDat&0x80)==0)Dat=0;elseDat=1;Clk=0;Clk=1;SendDat=SendDat<<1;}}void Disp(){ uchar c;uchar i;RCK=0; //存储寄存器输入禁止for(i=0;i<6;i++){ c=DispBuf[5-i]; //取出待显示字符,先送高位SendData(DispTab[c]); //送出字形码数据}RCK=1; //存储寄存器输入允许}void main(){ TRISB=0; //设置PORTB为输出Disp();for(;;);}。
科技资讯2010NO.31SCIENCE&TECHNOLOGYINFORMATION动力与电气工程74HC595芯片驱动LED 的电路黄建新(四川省广元市四川信息职业技术学院四川广元628017)摘要:74HC595芯片是74系列芯片的一种, 具有速度快, 功耗小, 操作简单的特点, 可以很方便地用于单片机接口进行驱动LED 的操作。
本文介绍这种芯片的特点和使用方法, 并给出软硬件的设计实例。
关键词:LED显示单片机中图分类号:TN87文献标识码:A文章编号:1672-3791(201011(a-0116-02Abstract:The characteristic and the using method of 74HC595 were introduced,and the examples of hardware and software design were given.Keywords:LED display;Single chip microcomputer用74HC595设计的电路, 不仅软硬件设计简单, 而且功耗低, 驱动能力强, 占用的I/O口线较少, 是一种造价低廉, 应用灵活的设计方案。
174HC595的说明74H C 595内含8位串入/并出移位寄存器和8位三态输出锁存器。
存器和锁存器分别有各自的时钟输入(S H _C P 和S T _C P , 都是上升沿有效。
当S H _C P 从低到高电平跳变时, 串行输入数据(S D A 移入寄存器; 当S T _C P 从低到高电平跳变时, 寄存器的数据置入锁存器, 清除端(C L R 的低电平只对寄存器复位(Q S 为低电平 , 而对锁存器无影响。
当输出允许控制(E N 为高电平时, 并行输出(Q 0~Q 7 为高阻态, 而串行输出(Q S 不受影响。
74H C 595最多需要5根控制线, 即DS 、S H_CP、ST _CP、MR 和OE 。
74hc595芯片驱动数码管的工作原理
74HC595 是一种串行输入、并行输出的移位寄存器芯片,常被用于驱动数码管、LED 等输出设备。
它的工作原理基于串行-并行转换和移位操作。
以下是使用74HC595 驱动数码管的基本工作原理:
一、串行输入:74HC595 芯片具有三个输入引脚,分别是:
DS(Data Input):串行数据输入
SHCP(Shift Register Clock Input):移位寄存器时钟输入
STCP(Storage Register Clock Input):存储寄存器时钟输入
通过串行数据输入引脚DS,可以将一个字节的数据(8位)串行输入到74HC595 中。
二、移位操作:在输入完一个字节数据后,通过向SHCP 引脚提供时钟信号,数据将从串行输入DS 移位到移位寄存器中。
三、并行输出:74HC595 还有8 个并行输出引脚,分别是Q0 到Q7。
这些输出引脚可以连接到数码管的段或LED 灯的正极。
通过向STCP 引脚提供时钟信号,移位寄存器中的数据会并行输出到存储寄存器中。
四、存储寄存器:存储寄存器中的数据在时钟信号到达STCP 时被锁存,此时数据会被保持在存储寄存器中,不再改变。
通过不断重复以上的移位和存储操作,可以将多个字节的数据依次输出到74HC595 的并行输出引脚,从而实现对多个数码管或LED 灯的控制。
总的来说,74HC595 通过串行输入、移位操作和并行输出的方式,实现了对大量输出设备的控制。
这种级联的方式可以有效地减少需要的引脚数量,适用于有限的GPIO 资源的情况。
移位寄存器芯片74HC595实现LED动、静态显示的基本原理摘要:本文介绍了应用移位寄存器芯片74HC595实现LED动、静态显示的基本原理。
提出了一种用74HC595实现多位LED显示的新方法。
同时对该系统的硬件组成和软件实现作了详细说明。
实际应用表明,此方法连线简单方便,成本低廉,可用于24位LED或更多位LED显示。
关键词:LED 74HC595 动态显示静态显示1 引言单片机应用系统中使用的显示器主要有LED和LCD两种。
近年来也有用CRT显示的。
前者价格低廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口较复杂,成本也较高。
LED(Ling Emiting Diode)是发光二极管的缩写。
实际应用非常普遍的是八段LED显示器。
LED显示器在大型报时屏幕,银行利率显示,城市霓虹灯建设中,得到广泛应用。
在这些需要多位LED显示的场合,怎样实现系统稳定,价格低廉的显示,成为决定其成本的关键所在。
2 74HC595实现LED静、动态显示基本原理74HC595是美国国家半导体公司生产的通用移位寄存器芯片。
并行输出端具有输出锁存功能。
与单片机连接简单方便,只须三个I/O口即可。
而且通过芯片的Q7引脚和SER引脚,可以级联。
而且价格低廉,每片单价为1.5元左右.2.1 静态显示每位LED显示器段选线和74HC595的并行输出端相连,每一位可以独立显示(见图1)。
在同一时间里,每一位显示的字符可以各不相同(每一位由一个74HC595的并行输出口控制段选码)。
N位LED显示要求N个74HC595芯片及N+3条I/O口线,占用资源较多,而且成本较高。
这对于多位LED显示很不利。
2.2 动态显示在多位LED显示时,为了简化电路,降低成本,节省系统资源,将所有的N位段选码并联在一起,由一片74HC595控制(见图2)。
由于所有LED的段选码皆由一个74HC595并行输出口控制,因此,在每一瞬间,N位LED会显示相同的字符。
74HC595引脚图时序图工作原理74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片,使用74HC595可以节约单片机mcu的io口资源,用3个io就可以控制8个数码管的引脚,他还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片是驱动数码管的神器.应用非常广泛。
74HC595引脚图74HC595管脚功能下面我来介绍一下74HC595工作原理:74HC595的数据端:QA--QH:八位并行输出端,可以直接控制数码管的8个段。
QH':级联输出端。
我将它接下一个595的SI端。
SI:串行数据输入端。
74hc595的控制端说明:/SCLR(10脚):低电平时将移位寄存器的数据清零。
通常我将它接Vcc。
SCK(11脚):上升沿时数据寄存器的数据移位。
QA--QB--QC--...--QH;下降沿移位寄存器数据不变。
(脉冲宽度:5V时,大于几十纳秒就行了。
我通常都选微秒级)控制移位寄存器SCK上升沿数据移位SCK下降沿数据保持RCK(12脚):上升沿时移位寄存器的数据进入存储寄存器,下降沿时存储寄存器数据不变。
通常我将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。
我通常都选微秒级),更新显示数据。
控制存储寄存器RCK上升沿移位寄存器的数据进入存储寄存器RCK下降沿存储寄存器数据不变/G(13脚):高电平时禁止输出(高阻态)。
如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。
比通过数据端移位控制要省时省力。
注:74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。
74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。
74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。
74hc595驱动led点阵原理及74HC595在8x8LED点阵中的应用74HC595工作原理只有1个移位寄存器,但有1+8个,共9个锁存器。
其中第1个锁存器可以理解为中转前置锁存器,它并没有连接Q0-Q7,后面8个锁存器连接了Q0-Q7。
当第1次SCK和LCK时,移位寄存器中=第1位数据,前置锁存器=第1位数据。
但是并没有进入到Q0-Q7所对应的锁存器当中去。
Q0到Q7=NON。
当第2次SCK和LCK时,移位寄存器中=第2位数据,前置锁存器=第2位数据。
同时前置锁存器把之前的第1位数据才更新到Q0对应的锁存器当中去。
此时Q0=第1位。
Q1到Q7=NON。
当第3次SCK和LCK时,移位寄存器中=第3位数据,前置锁存器=第3位数据。
同时前置锁存器把之前的第2位数据才更新到Q0对应的锁存器当中去,Q0把之前的第1位数据给Q1,此时Q0=第2位。
Q1=第1位。
Q2到Q7=NON。
当循环8次后(给出8个SCK和8个LCK后),移位寄存器中=第8位数据,前置锁存器=第8位数据。
但Q0-Q6里分别对应第7位-第1位数据,第8位数据并没有更新到Q0,同时Q7=NON。
这就是为什么给出循环8次的程序,总是不能显示第8位数据的原因。
因此要全部显示8位,需要再多给一次SCK和LCK。
那么问题来了,最后给这次SCK和LCK,全部显示8位了。
但是:移位寄存器和前置锁存器中又锁定了8位之外的第9位无用数据。
那么我们就可以用到SCLR(10脚)了。
给SCLR一个下降沿就可以了。
这个下降沿同时清空移位寄存器和前置锁存器。
但并不立即生效!只有产生下一个SCK时,才生效。
所以,SCLR时,前置锁存器和Q0-Q7锁存器依然锁定的是原来的数据,直到下一个SCK 之前,不会改变输出内容。
而等我们下一次再传送一个新的8位数据时,在第一个SCK的时候,SCLR生效之后才接收新数据,因为不会影响接收新数据。
这个过程我称之为“收口操作“。
74HC595在【8x8LED点阵】中的应用每个灯就相当于坐标图中的一个点,具有唯一独特的坐标位置,这样就可以通过引脚的信号来控制每个灯的关和开col管脚连接的是P0的八个引脚,row管脚连接的是595的八位并行输出端。
精品资料74H C595-驱动L E D........................................第17节:两片联级74HC595驱动16个LED灯的基本驱动程序时间:2015-07-29关键字:[导读]从业将近十年!手把手教你单片机程序框架第17讲:开场白:上一节讲了如何把矩阵键盘翻译成独立按键的处理方式。
这节讲74HC595的驱动程序。
要教会大家两个知识点:第一点:朱兆祺的学习板是用74HC595控制LED,因此可以从业将近十年!手把手教你单片机程序框架第17讲:开场白:上一节讲了如何把矩阵键盘翻译成独立按键的处理方式。
这节讲74HC595的驱动程序。
要教会大家两个知识点:第一点:朱兆祺的学习板是用74HC595控制LED,因此可以直接把595的OE引脚接地。
如果在工控中,用来控制继电器,那么此芯片的片选脚OE 不要为了省一个IO口而直接接地,否则会引起上电瞬间继电器莫名其妙地动作。
为了解决这个问题,OE脚应该用一个IO口单独驱动,并且千万要记住,此IO必须接一个15K左右的上拉电阻,然后在程序刚上电运行时,先把OE 置高,并且尽快把所有的74HC595输出口置低,然后再把OE置低.当然还有另外一种解决办法,就是用一个10uF的电解电容跟一个100K的下拉电阻,组成跟51单片机外围复位电路原理一样的电路,连接到OE口,这样确保上电瞬间OE口有一小段时间是处于高电平状态,在此期间,尽快通过软件把74hc595的所有输出口置低。
第二点:两个联级74HC595的工作过程:每个74HC595内部都有一个8位的寄存器,两个联级起来就有两个寄存器。
ST引脚就相当于一个刷新信号引脚,当ST引脚产生一个上升沿信号时,就会把寄存器的数值输出到74HC595的输出引脚并且锁存起来,DS是数据引脚,SH是把新数据送入寄存器的时钟信号。
也就是说,SH引脚负责把数据送入到寄存器里,ST引脚负责把寄存器的数据更新输出到74HC595的输出引脚上并且锁存起来。