wangchenxicool

博客园 首页 联系 管理

描述:

  74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SHcp的上升沿输入到移位寄存器中,在STcp的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

   8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。
   将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。
特点

 8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态

  输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。)可以直接清除 100MHz的移位频率
 
输出能力

  并行输出,总线驱动; 串行输出;标准中等规模集成电路

   595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
 
参考数据
  Cpd决定动态的能耗,
  Pd=Cpd×VCC×f1+∑(CL×VCC^2×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 × Q6’ Qn’ 移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出。

 

注释

  H=高电平状态

 

  L=低电平状态

 

  ↑=上升沿

 

  ↓=下降沿

 

  Z=高阻

 

  NC=无变化

 

  ×=无效

 

  当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。

 

 

程序样例

#define u8 unsigned char
#define u16 unsigned int

sbit MR = P1 ^ 6;  //寄存器清0,避免数据错位
sbit RCK = P1 ^ 5; //并行输出时钟
sbit DS = P1 ^ 4;  //数据线
sbit CLK = P1 ^ 3; //移位输入时钟

void writ_595(u8 dat)
{
    u8 i;
    MR = 0; //寄存器清0,避免数据错位
    MR = 1;

    for(i = 0; i < 8; i++)
    {
        CLK = 0;
        if((dat & 0x80) == 0x80)
            DS = 1; //串行数据输出
        else
            DS = 0;
        CLK = 1; //移位输入时钟,上升沿输入
        dat <<= 1;
    }

    RCK = 0; //并行输出时钟
    RCK = 1;
}

  该子函数可以直接调用,比如writ_595(0xfe);Q0-Q7脚则输出对应的二进制码

posted on 2012-03-14 15:16  wangchenxicool  阅读(784)  评论(0编辑  收藏  举报