74LS164移位寄存器数据手册
初学者-编程_74HC164 移位寄存器

A B G C3 0.1uF C4 470uF/25V D D E E C E F
A
A B G C D DOT C
A 1 2 L ED - DP 3 4 5 6 Title L ED - G L ED - C L ED _ CO M 4 Size B Date: File: 1 2 3 4 5 L ED - D L ED - E
TP2 2
R3 0
R4 10k
U2 1 2 P2.0 P1.7 P1.6 VDD P1.5 P1.4 P1.3 CSU8RE2110 KEY S13 P2.1 P2.2 P2.3 VSS P1.0 P1.1 P1.2 14 13 12 11 10 9 8
Q3 PNP LED_COM2
C D1 IN4001 A K
C
RELAY-SPST Q1 B NPN
K R2 4.7K E
P? 4 3 2 1 CON4
VCC SDATA SCLK 1 2 L ED _ CO M 1 L ED _ CO M 2 L ED _ CO M 3
B
B VCC L ED - B E COM_4 U4 LED_DISPLAY A B G F G C D SEG 4 E D C B R8 680 C LED_COM4 A B Q5 PNP
PDF 文件使用 "pdfFactory Pro" 试用版本创建
原理
5
6
VCC D S1 1 1 2 1 S4 4 S7 7 VCC CO M _ 1 CO M _ 2 S10 C OM _ 3 # CO M _ 4 S8 8 S11 0 2 2 S5 5 S9 9 S12 * COM_2 R6 680 C B VCC E S6 6 3 S2 S3 COM_1 R5 680 C B E D Q2 PNP LED_COM1
74ls164

74LS164简介74LS164是一种8位串行输入/并行输出移位寄存器,广泛应用于数字电子领域。
它由TI(Texas Instruments)公司制造,是74系列(TTL)的一员。
功能74LS164具有以下主要功能:•8位位移寄存器:可以将8位数据进行位移操作,并将结果存储在内部存储器中。
•串行输入:通过一个输入引脚,可以逐位地输入8位数据。
•并行输出:通过8个输出引脚,可以同时输出寄存器中存储的8位数据。
引脚描述74LS164具有如下引脚:1.DS(Data Serial Input):串行数据输入引脚,用于输入通过位移操作需要存储的8位数据。
2.SHCP(Shift Clock Input):移位时钟输入引脚,用于控制位移操作的时钟信号。
3.STCP(Storage Clock Input):存储时钟输入引脚,用于控制存储数据的时钟信号。
4.GND(Ground):接地引脚。
5.Q7’(Serial Output):串行输出引脚,用于输出移位操作的结果。
6.Q0-Q6(Parallel Outputs):并行输出引脚,用于输出存储的8位数据。
7.VCC(Positive Supply):正电源引脚。
工作原理74LS164工作时,可以通过两个时钟信号控制其行为。
下面是其工作原理的描述:•存储器清零:在存储器清零时,将SHCP和STCP引脚设置为高电平,并将DS引脚设置为低电平。
此时,存储器中所有的输出引脚将保持低电平状态。
•位移操作:在进行位移操作时,将SHCP引脚设置为低电平,然后将输入引脚DS设置为要输入的数据位状态(0或1)。
接下来,通过将SHCP 引脚设置为高电平,使得数据在寄存器内进行位移,具体移位方向取决于输入引脚DS的状态。
重复进行8次位移操作,即可完成8位数据的输入。
•存储数据:要将位移操作的结果存储在内部存储器中,需要控制STCP引脚的信号。
当所有位移操作完成后,将STCP引脚设置为高电平,将移位结果存储在寄存器中。
移位寄存器74HC164

[ /Title (CD74 HC164 , CD74 HCT16 4) /Subject (High Speed CMOS Logic 8-Bit SerialIn/Parallel-
Features
Description
• Buffered Inputs
• Asynchronous Master Reset
OPERATING MODE RESET (CLEAR)
MR
CP
DS1
DS2
Q0
L
X
X
X
L
Shift
H
↑
l
l
L
H
↑
l
h
L
H
↑
h
l
L
H
↑
h
h
H
H= High Voltage Level. h= High Voltage Level One Set-up Time Prior To The Low-to-high Clock Transition. l= Low Voltage Level One Set-up Time Prior To The Low-to-high Clock Transition. L= Low Voltage Level. X= Don’t Care. ↑= Transition from Low to High Level. qn= Lower Case Letters Indicate The State Of the Reference Input Clock Transition.
• HC Types - 2V to 6V Operation - High Noise Immunity: NIL = 30%, NIH = 30% of VCC at VCC = 5V
74164移位寄存器资料

5
集成异步二进制计数器74293
Q3 Q3 J3 C P3 Q3 K3 Q2 Q2 Q2 J2 C P2 K2 Q1 Q1 Q1 J1 C P1 K1 Q0 Q0 Q0 J0 C P0 K0 R1 R2 C P1 C P0
逻辑电路
74293功能: R1、R2:复位信号, R1和R2同时为“1”时输出被清零。 Q0 是 1bit 计数器; Q3Q2Q1 是 3bit 计数器; 如果把CP1接Q0,则Q3Q2Q1Q0组成 4bit 二进制计数器。
7490的两种接法
CP1与Q1相连构成 8421BCD码
CP0 0 1 2 3 4 5 6 7 8 9 Q3 0 0 0 0 0 0 0 0 1 1 Q2 0 0 0 0 1 1 1 1 0 0 Q1 0 0 1 1 0 0 1 1 0 0 Q0 0 1 0 1 0 1 0 1 0 1
CP0与Q3相连构成 5421BCD码
Qa Sd C P1 C P2
& Q
Qb Rd Sd
Q
Qc Rd Sd
Q
Qd Rd Sd
Q
Байду номын сангаас
Rd
J CP K
J CP K
J CP K
J CP K
& &
& &
& &
&
&
A
C /L
Rd
B
C
D
10
集成同步二进制加计数器74161
符号:
Q0 Q0
CP LD
Q1 Q1
Q2 Q2
Q3 Q3
C C
74161
Q 0Q 1Q 2Q 3 R d S 1 S 2
74HC164中文资料_数据手册_参数

otherwise noted)
PARAMETER
TEST CONDITIONS
VCC
TA=25℃
54HC164
74HC164
UNIT
MIN TYP MAX MIN MAX MIN MAX
2V
1.9 1.998 -
1.9
-
1.9
-
IOH=-20uA
4.5V 4.4 4.499 -
4.4
-
4.4
-
VOH
Pin numbers shown are for the D, J, N, and W packages.
B
LOGIC DIAGRAM (positive logic)
CLK 8
A1 B2
CLR 9
C1
C1
C1
C1
C1
C1
1D
1D
1D
1D
1D
1D
R
R
R
R
R
R
3
4
5
6
10
11
QA
QB
QC
QD
QE
QF
54HC164/74HC164(文件编号:S&CIC0464)
8 bit 串入并出移位寄存器
TYPICAL CLEAR, SHIFT, AND CLEAR SEQUENCE
CLR
A B
CLK QA QB QC QD QE QF QG QH
Clear
Clear
Absolute maximum ratings over operating free-air temperature rangeT
serial (A and B) inputs permit complete control over incoming data; a low at either input inhibits entry of the new
74HC164移位寄存器程序

//74HC164是个移位寄存器,以下程序是我用过的,绝对没问题://其中ShowData为164数据脚,ShowClck为164时钟脚;void Show_164(unsigned char _ShowValue){unsigned char Count0;for(Count0=0;Count0<=7;Count0++){if((_ShowValue&0x80)==0x80)ShowData=1;elseShowData=0;_ShowValue<<=1;ShowClck=0;_nop_();_nop_();ShowClck=1;}}//X5045读写一体化C51程序2009-04-17 08:42void X5045SpiOpen(void);//打开X5045片选void X5045SpiClose(void);//关闭X5045片选void X5045WriteEnable(void);//软件使能X5045写操作void X5045WriteDisable(void);//软件禁止X5045写操作unsigned char X5045SpiSend(unsigned char val);//X5045收发SPI协议void X5045WriteByte(unsigned int addr, unsigned char val);//写X5045一个字节void X5045WriteWord(unsigned int addr, unsigned int val);//写X5045一个字unsigned char X5045ReadByte(unsigned int addr);//读X5045一个字节unsigned int X5045ReadWord(unsigned int addr);//读X5045一个字unsigned char X5045ReadStatus(void);//读X5045状态void X5045WriteStatus(unsigned char val);//写X5045状态void X5045WriteWait(void);//等待X5045写入完成/*--------------------------------------打开X5045片选--------------------------------------*/void X5045SpiOpen(void){EEPROMCS = 1;//WDTEEPROMSCK = 0;EEPROMSIO = 1;//SO=SI=1,释放总线EEPROMCS = 0;//WDT;打开X5045片选CS }/*--------------------------------------关闭X5045片选--------------------------------------*/void X5045SpiClose(void){EEPROMCS = 1;//关闭X5045片选CSEEPROMSIO = 1;//SO=SI=1,释放总线EEPROMSCK = 0;}/*--------------------------------------软件使能X5045写操作--------------------------------------*/void X5045WriteEnable(void){X5045SpiOpen();//打开X5045片选EEPROMWP = 1;//硬件使能X5045写操作X5045SpiSend(WREN);//发送使能X5045写命令X5045SpiClose();//关闭X5045片选}/*--------------------------------------软件禁止X5045写操作--------------------------------------*/void X5045WriteDisable(void){X5045SpiOpen();//打开X5045片选X5045SpiSend(WRDI);//发送禁止X5045写命令EEPROMWP = 0;//硬件禁止X5045写操作X5045SpiClose();//关闭X5045片选}/*--------------------------------------X5045收发SPI协议--------------------------------------*/unsigned char X5045SpiSend(unsigned char val){unsigned char i;WDTRST = 0x1e;//89s52内狗WDTRST = 0xe1;//89s52内狗ACC = val;for (i = 8; i > 0; i --){CY = EEPROMSO;//取数据SO_rlca_();//存数据ACC.0读数据ACC.7同时进行EEPROMSI = CY;//送数据SIEEPROMSCK = 1;//上升沿打入数据_nop_();EEPROMSCK = 0;//下降沿读入数据(首次为假动作) }return ACC;}/*--------------------------------------写X5045一个字节--------------------------------------*/void X5045WriteByte(unsigned int addr, unsigned char val) {unsigned char temp;temp = WRITE;if ((addr >> 8) & 0x01) temp |= 8;X5045WriteEnable();//使能X5045写操作X5045SpiOpen();//打开X5045片选X5045SpiSend(temp);//发送X5045写命令及高位地址X5045SpiSend(addr & 0xff);//发送X5045写低位地址X5045SpiSend(val);//发送X5045写数据X5045SpiClose();//关闭X5045片选X5045WriteWait();//等待本次X5045写入完成X5045WriteDisable();//禁止X5045写操作}/*--------------------------------------写X5045一个字--------------------------------------*/void X5045WriteWord(unsigned int addr, unsigned int val) {unsigned char temp;temp = WRITE;if ((addr >> 8) & 0x01) temp |= 8;X5045WriteEnable();//使能X5045写操作X5045SpiOpen();//打开X5045片选X5045SpiSend(temp);//发送X5045写命令及高位地址X5045SpiSend(addr & 0xff);//发送X5045写低位地址X5045SpiSend(val & 0xff);//发送X5045写低位数据X5045SpiSend(val >> 8);//发送X5045写高位数据X5045SpiClose();//关闭X5045片选X5045WriteWait();//等待本次X5045写入完成X5045WriteDisable();//禁止X5045写操作}/*--------------------------------------读X5045一个字节--------------------------------------*/unsigned char X5045ReadByte(unsigned int addr){unsigned char val;X5045SpiOpen();//打开X5045片选val = READ;if ((addr >> 8) & 0x01) val |= 8;X5045SpiSend(val);//发送X5045读命令及高位地址X5045SpiSend(addr & 0xff);//发送X5045读低位地址val = X5045SpiSend(0xff);//接收X5045读数据X5045SpiClose();//关闭X5045片选return val;}/*--------------------------------------读X5045一个字--------------------------------------*/unsigned int X5045ReadWord(unsigned int addr){unsigned char val;X5045SpiOpen();//打开X5045片选val = READ;if ((addr >> 8) & 0x01) val |= 8;X5045SpiSend(val);//发送X5045读命令及高位地址X5045SpiSend(addr & 0xff);//发送X5045读低位地址val = X5045SpiSend(0xff);//接收X5045读低位数据addr = X5045SpiSend(0xff);//接收X5045读高位数据X5045SpiClose();//关闭X5045片选addr <<= 8;addr |= val;return addr;}/*--------------------------------------读X5045状态--------------------------------------*/unsigned char X5045ReadStatus(void){unsigned char val;X5045SpiOpen();//打开X5045片选X5045SpiSend(RDSR);//发送读X5045状态命令val = X5045SpiSend(0xff);//接收X5045状态数据X5045SpiClose();//关闭X5045片选return val;}/*--------------------------------------写X5045状态--------------------------------------*/void X5045WriteStatus(unsigned char val){X5045SpiOpen();//打开X5045片选X5045SpiSend(WRSR);//发送写X5045状态命令X5045SpiSend(val);//发送X5045状态数据X5045SpiClose();//关闭X5045片选}/*--------------------------------------等待X5045写入完成--------------------------------------*/void X5045WriteWait(void){while (X5045ReadStatus() & WIP);//WIP=0 退出}。
74ls164

74ls164应用电路
本文采用了74LS164 这个串入并出的移位寄存器,很好地解决了2051 与L ED 的显示接口电路。
1 硬件电路
2051 余下的并行I/ O 口线不足8 根,数据的并行输出已不可能,但可以考虑串行输出方法,图1 给出串行口扩展的4 位L ED 显示接口电路。
该电路只使用2051 的3 个端口,配接4 片串入并出移位寄
存器74LS164 与1 片三端可调稳压器LM317T
3 结束语
本串行口扩展的LED 显示接口电路已被笔者成功地应用到以AT89C2051 单片机为核心的智能仪表中,如单片机湿度测量仪、单片机温度测量仪等。
现场运行表明,LED 显示清晰稳定不闪烁,特别是在现场环境如光照强弱不同的情况下, 可以在线调整LED 发光的亮度,获得视觉与功耗的最佳效果。
图1 串行口
扩展的4 位LED显示电路.
74LS164是一个串行输入并行输出的移位寄存器,可用于扩展并行输出口。
74HC164 串入、并出8 位移位寄存器

8 位串入、并出移位寄存器1. 概述74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。
74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(D SA 和 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. 功能图图 1. 逻辑符号图 2. IEC 逻辑符号图 3. 逻辑图图 4. 功能图4. 引脚信息图 5. DIP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置引脚说明符号引脚说明DSA 1数据输入DSB 1数据输入Q0~Q3 3~6输出GND7 地(0 V)CP 8时钟输入(低电平到高电平边沿触发)/M/R 9中央复位输入(低电平有效)Q4~Q710~13输出VCC14正电源罗74HC164中文资料(功能,真值表,引脚图及电气参数介绍)SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。