Chinaunix首页 | 论坛 | 博客
  • 博客访问: 459781
  • 博文数量: 105
  • 博客积分: 2258
  • 博客等级: 大尉
  • 技术积分: 922
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-23 13:21
文章分类

全部博文(105)

文章存档

2013年(1)

2012年(10)

2011年(94)

分类: Delphi

2012-02-19 09:13:24

bk.view.catalog().start("0");
  描述

74HC595

  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上升沿输出到并行端口。

真值表

[1]
程序样例
void HC595_senddata(unsigned char dat)
  {
  unsigned char i,x=0;
  for(i=0;i<8;i++) //发送一个八位数据
  {
  if(((dat<<=x)&0x80)==0)MOSIO=0; //第i位为0时,MOSIO发送0;
  else MOSIO=1; //否则发送1;
  SH_CLK=0; //SH_CLK的上升沿,将数据送进移位寄存器;
  SH_CLK=1;
  x +=1;
  }
  ST_CLK=0; //ST_CLK的上升沿,将数据由移位寄存器送到存储寄存器
  ST_CLK=1;
  }
  大致上就是这样子,把MOSIO输入的串行数据,转换到Q0—Q7的并行输出,我用的595芯片,输出是反向的,即是输入1时,输出为0
 
 
 
 
阅读(3579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~