初学者-编程_74HC164 移位寄存器
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中文资料_数据手册_参数

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 退出}。
74HC164中文资料全参数

74HC164中文资料参数SN54HC164,/SN74HC164是8位移位存放器,当其中一个〔或二个〕选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端〔A 和B〕可完全控制输入数据。
一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。
虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。
时钟控制发生在时钟输入由低电平到高电平的跃变上。
为了减小传输线效应,所有输入端均采用二极管钳位。
功能表:Inputs输入Outputs输出CLR CLK A B QA QB ...QHL X X X L L LH L X X QA0QB0QH0H↑H H H QAn QGnH↑L X L QAn QGnH↑X L L QAn QGnH=高电平〔稳定态〕 L=低电平〔稳定态〕×=不定↑=从低电平转换到高电平QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平QAn…QHn=在最近的时钟输入条件〔↑〕建立前QA…QH 的相应电平,表示移位一位文档文档图1 逻辑图〔正逻辑〕图2 引脚图 Absolute Maximum Ratings 绝对最大额定值 Supply voltage range, 电源电压X 围 VCC–0.5 V to 7V Input clamp current, 输入钳位电流 IIK (VI < 0 or VI > VCC) (see Note 1) ±20 mA Output clamp current,输出钳位电流 IOK (VO < 0 or VO > VCC) (see Note 1) ±20 mA Continuous output current,连续输出电流 IO (VO = 0 to VCC) ±25 mA Continuous current through 连续通过电流 VCC or GND±50 mA 封装热阻 thermal impedance, θJA (see Note 2):D 封装86℃/W N 封装 80℃/W NS 封装 76℃/W PW 封装113℃/WDC SPECIFICATIONS直流电气规格表:DC SPECIFICATIONS直流电气规格〔续〕文档IOH=–4mA 4.5 V---6 V---VOL 输出低电平电压VI=VIHorVILIOL=20μA2 V---V4.5 V---6 V---IOL = 4mA 4.5 V---6 V---II 输入漏电流VI = VCC or 0 6 V-±±100-±1000-±1000nA ICC 静态电源电流VI = VCC or 0,IO = 0 6 V--8-160-80μACi 电容-2V to6V-310-10-10pF图3 参数测量信息文档图4 typical clear, shift, and clear sequence典型去除、移位和去除时序应用电路:文档文档图5 LCD驱动电路图6 LED驱动电路文档文档文档文档word文档。
移位寄存器的串行扩展

移位寄存器的串行扩展(74hc164)1. 74HC16474HC164是比较典型的移位寄存器,该移位寄存器有一个数据输入端口、一个时钟信号端口和八个输出端口。
如图1所示。
当时钟信号从低电平变为高电平的时候将输出一个数据到输出端D0,当时钟第二次由低电平变为高电平的时候将输出第二个数据到D0,而第一个数据将转移到D1端口。
依此类推,每一个时钟周期中都有一个串行数据输出到D0,而其他的数据则不断往高位移动直到所有数据传输结束。
如果不再有时钟周期输入,则这些数据将暂存在输出端。
如果需要有更多的输出端口,可以把多个74HC164串联起来用。
串联的方法如图2所示。
在上图的串联电路中,左边的锁存器D7与右边锁存器的串行数据输入端连接,当左边的锁存器D0~D7数据全部输出以后,再输入一个串行信号,左边锁存器D7数据将作为右边锁存器的输入数据并从右边锁存器D0端输出,从而实现了多个字节数据的移位锁存。
这样利用74HC164就实现了串行数据到并行数据的转换。
注意到在上面的两个图中,无论输出什么长度的数据,所需要的输入信号都只有两个,一个是串行数据输入,另一个是锁存器的时钟信号输入。
如果我们把这两个输入端口连接到单片机的两个输出端口上,其中单片机的一个端口串行输出数据,另一个端口输出时钟信号以便控制串行数据的锁存方式,那么我们就只需要两个单片机端口几乎实现任意数量的并口输出。
2. 8051串口方式0的工作原理与时序图3 串口方式0的时序8051串口方式0的时序如图所示,RXD(P3.0)为数据端,TXD(P3.1)为同步移位脉冲端,每次串行发送、接收8位数据(一帧),低位在先。
时钟为Fosc/12。
(1)发送执行任何一条MOV SUBF,#data指令时,启动内部串行发送允许,SEND置高电平,随后在TXD同步移位时钟的作用下,将数据data从RXD端移位输出。
一帧数据发送完毕时,内部发送中断请求TI有效。
要再次发送一帧时,须用软件清TI。
74HC164D中文资料 参数及应用

74HC164D中文资料参数SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。
一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。
虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。
时钟控制发生在时钟输入由低电平到高电平的跃变上。
为了减小传输线效应,所有输入端均采用二极管钳位。
功能表:Inputs输入Outputs输出CLRCLK A B QA QB ...QHL X X X L L LH L X X QAQBQH0H↑H H H QAnQGnH↑L X L QAnQGnH↑X L L QAnQGnH=高电平(稳定态)L=低电平(稳定态)×=不定↑=从低电平转换到高电平QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位图1 逻辑图(正逻辑)图2 引脚图Absolute Maximum Ratings绝对最大额定值Supply voltage range, 电源电压范围VCC–0.5 V to 7V Input clamp current, 输入钳位电流IIK (VI < 0 or VI > VCC) (seeNote 1)±20 mA Output clamp current,输出钳位电流IOK (VO < 0 or VO > VCC) (seeNote 1)±20 mA Continuous output current,连续输出电流IO (VO = 0 to VCC)±25 mA Continuous current through 连续通过电流VCC or GND±50 mA封装热阻thermal impedance, θJA (see Note 2):D 封装86℃/W N 封装80℃/W NS 封装76℃/W PW 封装113℃/WStorage temperature range, Tstg储存温度范围–65℃ to 150℃DC SPECIFICATIONS直流电气规格表:符号Parameter 参数SN54HC164SN74HC164最小典型最大最小典型最大VCCSupply Voltage 电源电压256256图3 参数测量信息图4 typical clear, shift, and clear sequence典型清除、移位和清除时序应用电路:图5 LCD驱动电路图6 LED驱动电路74HC164中文资料参数时间:2016-06-15 来源:资料室作者:编号:颖展电子SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。
74LS164

5
5.25
V
输入高电平电压ViH
2
V
输入低电平电压ViL
0.8
V
输出高电平电流IOH
-400
μA
输出低电平电流IOL8Fra bibliotekmA时钟频率fCP
0
25
MHz
脉冲宽度TWCLOCK,CLEAR
20
ns
建立时间tset
25
ns
保持时间tH
5
ns
静态特性(TA为工作环境温度范围)
参数
测试条件
74LS164
图5 74LS164管脚图
74LS164为8位移位寄存器,其主要电特性的典型值如下:
型号
fm
Pn
74LS164
36 MHz
80mW
逻辑及封装图
双列直插封装
极限值
电源电压7V
输入电压5.5V
工作环境温度
74LS164-0~70℃
储存温度-65℃~150℃
推荐工作条件:
74LS164
最小
额定
最大
单位
电源电压VCC
1
mA
IIH输入高电平电流
Vcc=最大,VIH=2.4V
40
μA
IIL输入低电平电流
Vcc=最大,VIL=0.4V
-1.6
mA
IOS输出短路电流
Vcc=最大
54
-10
-27.5
mA
74
-9
-27.5
ICC电源电流
Vcc=最大,A和B接地,CLOCK接2.4V,CLEAR瞬间接地后接4.5V
54
mA
动态特性(TA=25℃)
移位寄存器74LS164中文资料

移位寄存器74LS164中文资料
164为8位移位寄存器,其主要电特性的典型值如下:
54/74164 185mW 54/74LS164 80mW
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。
串行数据输入端(A,B)可控制数据。
当 A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。
当A、B 有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。
71LS164引脚图及引脚功能:
CLOCK :时钟输入端
CLEAR:同步清除输入端(低电平有效)
A,B :串行数据输入端
QA-QH:输出端
图1 74LS164封装图
74LS164内部结构图
图2 74LS164 内部逻辑图
74LS164电气参数:
极限值
电源电压7V
输入电压……… 5.5V
工作环境温度54164………… -55~125℃ 74164………… -0~70℃
储存温度…… -65℃~150℃建议操作条件
74LS164真值表及时序图
图3 真值表H-高电平 L-低电平 X-任意电平
↑-低到高电平跳变
QA0,QB0,QH0 -规定的稳态条件建立前的电平
QAn,QGn -时钟最近的↑前的电平
图4 时序图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
3 VCC 4 C6 C5 104 47UF 7 + 5 6
C
12
34
TP1 1 1 3
LED1 LED K1
2
1
A
2
4
SDATA 1 SCLK 2 BZ1 LED-A R13 330 LED-B LED-C BUZZER R1 0 LED-D R15 330 3 R14 330 R16 330 4 5 6 7
1 1 L ED - A
1 0 L ED - F
9
8 SE G 3 F E G
SE G 1
F
SE G 2
P1 GND +9V GND POWER_IN 3 +12V 2 1 SW11 SW-SPST D2 A K IN4001 C2 470uF/25V 2 1 C1 0.1uF 2 U1 GND Vin L7805 Vout 3 VCC F
U3 DSA DSB Q0 Q1 Q2 Q3 GND 74HC164 VCC Q7 Q6 Q5 Q4 #MR CP 14 13 12 11 10 9 8 R19 330 R17 330 R20 LED-DP 330 LED-G R18 LED-F 330 LED-E
VCC C7 VCC 104 E COM_3 R7 680 C LED_COM3 B Q4 PNP
;*********************************** ; 74hc164 work
;***********************************
led_seg_in: movlf 08h,led_rrf_cnt send_8bit: bcf btfss goto BSF send_1bit_OK: rrf bsf decfsz goto return sdab_set1: bcf pt1,0 led_data,1 pt1,1 led_rrf_cnt,1 send_8bit pt1,1 ;74hc164 cp上升沿动作
MOVFW RAM CALL disp
;NO ,则 RAM-LED ,送显
disp:
movwf data movfw data CALL GETIN_DATA movwf led_data call led_seg_in CALL delay RETURN
GETIN_DATA: ADDPCW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW
led_data,0 sdab_set1 PT1,0 ;将二进制数从 PT1.0 口输出
GOTO send_1bit_OK
;;;////////////;;; 从 74HC164 输出的数据 直接点亮相应的数码管,从而达到移位显 示的作用。
PDF 文件使用 "pdfFactory Pro" 试用版本创建
00000011b 10011111b 00100101b 00001101b 10011001b 01001001b 01000001b 00011111b 00000001b 00001001b 11111111b 11111101b 11110000b
;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9 ;0FFH ;;K
B
7
A
电子密码锁
Number Revision 2011.09.08 19-Dec-2011 Sheet of G:\csu8re2110 密 码锁 \电子 密 码 锁 \原 理图 DrawnB BOM\CSM69524.DDB PC By: YKE 6
CSM6952
PDF 文件使用 "pdfFactory Pro" 试用版本创建