74hc595,74hc595的用法

1,74hc595的用法74hc595的用法 , 它是一个串行输入转并行输出的8位锁存器/驱动器 。可以多片级联使用 。例如,8脚单片机,只有6个IO脚 , 想要组成8位数码管动态显示电路,单片机的IO脚肯定是不够了 。就可以用两片74HC595串联级联使用,单片机只需3个IO脚与74HC595连接 , 单片机串行输出位码和段码到两片74HC595,经595锁存就变成两个8位并行口,直接驱动数码管了(锁存并驱动) 。所以,它经常用于扩展并行口的,只需3个IO脚 。【74hc595,74hc595的用法】
2,74HC595的介绍是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC NO.7A标准 。74HC595具有8位移位寄存器和一个存储器,三态输出功能 。移位寄存器和存储器有相互独立的时钟 。数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去 。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲 。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线 。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态 。三态 。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁 。
3,单片机 点阵 74hc595你好?。?SER是作为移位寄存器的输入,SRCLK是移位时钟,RCLK是作为锁存时钟,通过这三个控制端,完整 74HC595 的驱动用普通i/o口模拟时序也是很常用的方法,只是程序中要有一个bit数据输出函数如下:先设置端口:sbit oe=p1^0;//595(引脚12)锁存控制sbit tyd=p1^1;sbit ryd=p1^2;bit输出函数:void bit_out(uchar dat)uchar r;for(r=0;r<8;r++)//设置8位计数器ryd=dat&0x01;//从bit0起逐位输出数据dat>>=1;tyd=0;//595时钟脉冲生成tyd=1;delay_1ms(3);}}调用函数时:bit_out(seg7[d[e]]);//发送显示数据oe=0;//595锁存脉冲生成oe=1;
4,请问一下74hc595到底是什么东西到底是锁存器还是显示驱动芯片74HC595是一款串入并出8位移位寄存器,它确实具有锁存功能,说它是锁存器也不能算错,目前应用最多的就是用它做LED显示驱动 , 因为其串行输入的特点可节省大量口线资源,且控制也极为灵活方便 。我不知道你的sh_cp和st_cp指得是时钟clk还是锁存lck 。你看看别人是怎么设计软硬件的吧,可能对你有帮助 。《用74hc595芯片驱动led的电路设计》,pdf连接: <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fspace.ednchina.com%2fupload%2f2008%2f5%2f27%2fe293f6e4-8cd1-4e78-9236-0cb645f8108a.pdf" target="_blank">http://space.ednchina.com/upload/2008/5/27/e293f6e4-8cd1-4e78-9236-0cb645f8108a.pdf</a>5,74hc595是干什么的74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准 。74HC595是具有8位移位寄存器和一个存储器,三态输出功能 。移位寄存器和存储器是分别的时钟 。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去 。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲 。移位寄存器有一个串行移位输入(Ds) , 和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线 。8位串行输入/输出或者并行输出移位寄存器 , 具有高阻关断状态 。三态 。[编辑本段]特点 8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率[编辑本段]输出能力 并行输出,总线驱动; 串行输出;标准中等规模集成电路595移位寄存器有一个串行移位输入(Ds) , 和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线 。[编辑本段]参考数据 CPD决定动态的能耗,PD=CPD×VCC×f1+∑(CL×VCC2×f0) F1=输入频率,CL=输出电容 f0=输出频率(MHz) Vcc=电源电压[编辑本段]引脚说明 符号 引脚 描述 Q0…Q7 15,1, 7 并行数据输出 GND 8 地 Q7 9 串行数据输出 MR 10 主复位(低电平) SHCP 11 移位寄存器时钟输入 STCP 12 存储寄存器时钟输入 OE 13 输出有效(低电平) DS 14 串行数据输入 VCC 16 电源[编辑本段]功能表 输入 输出 功能 SHCP STCP OE MR DS Q7 Qn× × L ↓ × L NC MR为低电平时仅仅影响移位寄存器 × ↑ L L × L L 空移位寄存器到输出寄存器 × × H L × L Z 清空移位寄存器,并行输出为高阻状态 ↑ × L H H Q6 NC 逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态 移入 , 例如,以前的状态6(内部Q6”)出现在串行输出位 。× ↑ L H × NC Qn 移位寄存器的内容到达保持寄存器并从并口输出 ↑ ↑ L H × Q6Qn 移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出 。[编辑本段]注释 H=高电平状态 L=低电平状态 ↑=上升沿 ↓=下降沿 Z=高阻 NC=无变化 ×=无效 当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口 。6,74hc595单片机c语言程序void shift_out(uchar g) //移位输出 uchar i; uchar dly=5; uchar tmp=g; for(i=0;i<8;i++)if((tmp&0x80)==0x80)DS_out=1;}elseDS_out=0;}SHCLK=0;//移位dly=2;while(dly--);SHCLK=1;dly=2;while(dly--);tmp=tmp<<1; } STCLK=0;//锁存 dly=5; while(dly--); STCLK=1; }/***************writer:shopping.w******************/#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit SH_CP = P2^0;sbit DS= P2^1;sbit ST_CP = P2^2;uchar temp;uchar code DSY_CODE[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };void Delay(uint x)uchar i; while(x--)for(i=0;i<120;i++); }}void In_595()uchar i; for(i=0;i<8;i++)temp <<= 1;DS= CY;SH_CP = 1;_nop_();_nop_();SH_CP = 0; }}void Out_595()ST_CP = 0; _nop_(); ST_CP = 1; _nop_(); ST_CP = 0;}void main()uchar i; while(1)for(i=0;i<10;i++)temp = DSY_CODE[i];In_595();Out_595();Delay(200);} }}/***************writer:shopping.w******************/#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit SH_CP = P2^0;sbit DS= P2^1;sbit ST_CP = P2^2;uchar temp;uchar code DSY_CODE[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };void Delay(uint x)uchar i; while(x--)for(i=0;i<120;i++); }}void In_595()uchar i; for(i=0;i<8;i++)temp <<= 1;DS= CY;SH_CP = 1;_nop_();_nop_();SH_CP = 0; }}void Out_595()ST_CP = 0; _nop_(); ST_CP = 1; _nop_(); ST_CP = 0;}void main()uchar i; while(1)for(i=0;i<10;i++)temp = DSY_CODE[i];In_595();Out_595();Delay(200);} }}void shift_out(uchar g) //移位输出 uchar i; uchar dly=5; uchar tmp=g; for(i=0;i<8;i++)if((tmp&0x80)==0x80)DS_out=1;}elseDS_out=0;}SHCLK=0;//移位dly=2;while(dly--);SHCLK=1;dly=2;while(dly--);tmp=tmp<<1; } STCLK=0;//锁存 dly=5; while(dly--); STCLK=1; }#i nclude #define uchar unsigned charuchar code dat[18]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0x00,0x40 }; uchar dispdat={ 1,2,3,4,5,6 };sbit enable=p3^3; sbit serialin=p3^2; sbit clock=p3^4; sbit latch=p3^5;void dispgroup(void) //6b595或74hc595显示123456 {uchar i,j,temp;for (i=0; i<6; i++) {temp=dat[dispdat];for (j=0;j<8;j++){temp=temp<<1; serialin=cy; clock=1; clock=0;}}latch=0; latch=1; } //在程序初始化时 clock=0; latch=1; enable=0;

    推荐阅读