74HC164

8 位串入、并出移位寄存器

1. 概述

74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。

主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。

2. 特性

·                                 门控串行数据输入

·                                 异步中央复位

·                                 符合 JEDEC 标准 no. 7A

·                                 静电放电 (ESD) 保护:

 ·HBM EIA/JESD22-A114-B 超过 2000 V

 ·MM EIA/JESD22-A115-A 超过 200 V 。

·                                 多种封装形式

·                                 额定从 -40 °C 至 +85 °C 和 -40 °C 至 +125 °C 。

3. 功能图

3. 功能图

图 1. 逻辑符号

图 2. IEC 逻辑符号

图 3. 逻辑图

图 4. 功能图

4.引脚信息

图 5. DIP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置

引脚说明 

 

 符号

 

 引脚

 

 说明

 

 DSA

 

 1

 

 数据输入

 

 DSB

 

 1

 

 数据输入

 

 Q0~Q3

 

 3~6

 

 输出

 

 GND

 

 

 地 (0 V)

 

 CP

 

 8

 

 时钟输入(低电平到高电平边沿触发)

 

 /M/R

 

 9

 

 中央复位输入(低电平有效)

 

Q4~Q7

 

10~13

 

输出

 

VCC

 

14

 

正电源罗亩的笔记

5. 功能表

 

工作模式

 

输入

 

输出

 

/M/R

 

CP

 

DSA

 

DSB

 

Q0

 

Q1 至 Q7

 

复位(清除)

 

L

 

L

 

X

 

X

 

L

 

L 至 L

 

移位

 

 

H

 

 

l

 

l

 

L

 

q0 至 q6

 

H

 

 

l

 

h

 

L

 

q0 至 q6

 

H

 

 

h

 

l

 

L

 

q0 至 q6

 

H

 

 

h

 

H

 

H

 

q0 至 q6

H = HIGH(高)电平

h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平

L = LOW(低)电平

l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平

q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态

↑ = 低-至-高时钟跃变

6. 极限值

符合绝对最大额定值体系 (IEC 60134) 的规定。电压参考点为 GND(地 = 0 V)。

[1] 对于 DIP14 封装:Ptot 在超过 70 °C 时以 12 mW/K 的速度线性降低。

[2] 对于 SO14 封装:Ptot 在超过 70 °C 时以 8 mW/K 的速度线性降低。

     对于 SSOP14 和 TSSOP14  封装:Ptot 在超过 60 °C 时以 5.5 mW/K 的速度线性降低。

     对于 DHVQFN14 封装:Ptot 在超过 60 °C 时以 4.5 mW/K 的速度线性降低。

 

 

 

74HC164驱动程序


//-------------------------------------库函数声明,管脚定义--------------
#include <reg52.h>
sbit simuseri_CLK=P1^6;           //用P1^6模拟串口时钟
sbit simuseri_DATA=P1^5;          //用P1^5模拟串口数据
sbit drive74164_CLR=P1^7;            //用P1^7控制CLR
sbit a0=ACC^0;
//-----------------------------------------------------------------------
//  函数名称:out_simuseri 
//  输入参数:data_buf
//  输出参数:无
//  功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA 
//-----------------------------------------------------------------------
void out_simuseri(char data_buf)
 {    
    char i;
    i=8;
    ACC=data_buf;
    do
       {  
       simuseri_CLK=0;
       simuseri_DATA=a0;
       simuseri_CLK=1;
       ACC=ACC>>1;
        }
while(--i!=0);
    simuseri_CLK=0;
}
//-----------------------------------------------------------------------
//  函数名称:PA_out 
//  输入参数:Pseri_out,需要输出的8位数据
//  输出参数:无
//  功能说明:将Pseri_out中的数据送到74165并行口A-G输出
//-----------------------------------------------------------------------
void  PA_out (char Pseri_out ) 
{
drive74165_CLR =0;     //并口输出清零
drive74165_CLR =1;     //开始串行移位
out_simuseri(Pseri_out);
}

 

 

 

 /*********************************************************************************/

/*********************************************************************************/

/*********************************************************************************/

74hc164驱动数码管,我试了很久了,也看了很多资料,都不成功,真郁闷,请大家帮忙!

首先,我用一颗单片机发74hc164发送串行数据,比如发送的是0-9的数字,每发完一个数字,暂停3秒发下一个数字,如此循环,数码管为共阴极数码管,电路图如下:



图中的正好是刚发送完数字5,二进制为101,根据串行输入,并行输出的特点,输出了101的高电平,很显然数码管并没有显示5,但从多方面资料证实,74hc164是完全可以用来驱动数码管的,我就疑问了,数码要怎么才能实现显示5呢?

数码要怎么才能实现显示5呢? 答:输出101是正确的,5字三划,要三个1,首先要学会编码。。。。应该输入8bit的数,分别对应数码管8个二极管,还要看共阴,共阳 ,请好好看看7段数码管原理,7448自带译码,直接输四位BCD, 164可没这功能 。。。

 

单个数码管用3-8译码器作处理

 
   -A- 
 F|   |B 
  |-G-|
 E|   |C
   -D-  .DOT
   数码管显示
 数字  A B C D  E F G DOT  全值
  0     1 1 1 1  1 1 0  0   0110 111(0/1)   0XFC
  1     0 1 1 0  0 0 0  0   0110 000(0/1)   0X60
  2  1 1 0 1  1 0 1  0   1101 101(0/1)   0XDA
  3  1 1 1 1  0 0 1  0   1111 001(0/1)   0XF2
  4  0 1 1 0  0 1 1  0   0110 011(0/1)   0X66
  5  1 0 1 1  0 1 1  0   1011 011(0/1)   0XB6
  6  1 0 1 1  1 1 1  0   1011 111(0/1)   0XBE
  7  1 1 1 0  0 0 0  0   1110 000(0/1)   0XE0   
  8  1 1 1 1  1 1 1  0   1111 111(0/1)   0XFE   
  9  1 1 1 1  0 1 1  0   1111 011(0/1)   0XF6   
  A  1 1 1 0  1 1 1  0   1110 111(0/1)   0XEE
  b  0 0 1 1  1 1 1  0   0011 111(0/1)   0X3E   
  C  1 0 0 1  1 1 0  0   1001 110(0/1)   0X9C   
  d  0 1 1 1  1 0 1  0   0111 101(0/1)   0X7A   
  E  1 0 0 1  1 1 1  0   1001 111(0/1)   0X9E   
  F  1 0 0 0  1 1 1  0   1000 111(0/1)   0X8E
注意这里DOT(也就是DP)后都是0,要改变DP,另外作与或
还有,这里是从高到低,你要从低到高的话,将序列反过来
__________________________
不明白先看数据手册,看数据手册一定要仔细!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值