74HC164 串入、并出8 位移位寄存器
- 格式:doc
- 大小:455.50 KB
- 文档页数:10
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中文资料参数SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。
一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。
虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。
时钟控制发生在时钟输入由低电平到高电平的跃变上。
为了减小传输线效应,所有输入端均采用二极管钳位。
功能表:H=高电平(稳定态) L=低电平(稳定态)×=不定↑=从低电平转换到高电平QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位图1 逻辑图(正逻辑)图2 引脚图Absolute Maximum Ratings绝对最大额定值Supply voltage range, 电源电压范围 VCC– 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 mADC SPECIFICATIONS直流电气规格表:DC SPECIFICATIONS直流电气规格(续)电平电压 V---6 V---IOL = 4mA V---IOL= 6 V---II 输入漏VI = VCC or 0 6 V-±±100-±1000-±1000nA 电流ICC 静态电VI = VCC or 0,IO = 0 6 V--8-160-80μA 源电流Ci 电容-2V to 6V-310-10-10pF图3 参数测量信息图4 typical clear, shift, and clear sequence典型清除、移位和清除时序应用电路:图5 LCD驱动电路图6 LED驱动电路图7 4位数码显示电路。
集中实践报告书课题名称 利用74LS164芯片扩展8位LED 串行显示接口电路姓 名 学 号 系、 部 专业班级 指导教师※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※年月日利用74LS164芯片扩展8位LED串行显示接口电路一、设计目的利用74LS164芯片扩展8位LED串行显示。
学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计要求1. 要求将片内30H-37H单元中数据,8个数码管,用扩展串行的显示端口显示出来。
2. 要求做出实物。
三、硬件电路设计74LS164是串行输入并行输出的移位寄存器,每接一片74LS164可扩展一个8位并行输出口,可以作为LED显示器的8根段选线。
实物如图3-1所示。
系统总电路原理图如图3-2,为89C52单片机最小系统与8位数码管的连接图,分别用8个74LS164和8个LED数码管。
部分硬件电路原理图如图3-3所示。
图3-1 电路连接实物图图3-2 总电路原理图图3-3 部分硬件电路原理图数码管中有8段LED数码管显示器由8个发光二极管组成。
LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。
本次设计采用共阳极LED数码管。
在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。
所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小。
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)可完全控制输入数据。
74HC164中文资料全参数1.逻辑电平:74HC164使用CMOS技术,逻辑电平为3.3V或5V。
2.工作电流:在3.3V电压下,74HC164的典型工作电流为2mA,最大工作电流为20mA。
在5V电压下,典型工作电流为4mA,最大工作电流为40mA。
3.工作温度范围:74HC164的工作温度范围为-40°C到85°C。
4.串行输入:74HC164的串行输入引脚是SER,用于输入要移位的数据。
输入电平为高电平或低电平。
5.时钟输入:74HC164的时钟输入引脚是CLK,用于控制数据移位的时钟脉冲。
时钟脉冲上升沿或下降沿触发移位操作。
6.清零输入:74HC164的清零输入引脚是MR,用于清除寄存器中的数据。
清零脉冲上升沿触发清零操作。
7.并行输出:74HC164的并行输出引脚是Q0到Q7,共有8个引脚。
这些引脚用于输出移位寄存器中的数据。
8.输出使能:74HC164还有一个输出使能引脚,称为OE,用于控制并行输出引脚的输出状态。
当OE为低电平时,输出引脚将有效;当OE为高电平时,输出引脚将处于高阻态。
9. 数据延迟:74HC164的数据延迟时间(tPD)为20ns。
这是指从时钟边沿到输出数据稳定的时间。
10.封装形式:74HC164有多种封装形式可选,例如DIP、SOP、TSSOP 等。
总结:74HC164是一个串行入并行出的8位移位寄存器,具有3.3V 或5V逻辑电平、2mA到40mA工作电流范围、-40°C到85°C工作温度范围等特点和参数。
它适用于数字系统中需要进行数据移位和存储的场景,如数据传输、显示驱动和状态存储等应用。
74ls164与单片机的串并转换(串转并\串进并出)
74LS164串转并实验本实验是用74LS164把输入的串行数转换成并行数输出,74LS164为串行输入并行输出移位寄存器,其引脚图及功能如下:
A、B:串行输入端;
QA~QH:并行输出端;
CLR:清零端,低电平有效;
CLK:时钟脉冲输入端,上升沿有效。
实验采用单片机串行工作方式0和P1端口两种方式串行输出数据。
串行口工作方式0时,数据为8位,从RXD端输出,TXD端输出移位信号,其波特率固定为Fosc/12。
在CPU 将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将状态寄存器的TI位置1,TI必须由软件清零。
串行口工作方式0数据/时钟是自动移位输出,用P1端口输出数据时,要编程位移数据,每输出一个数据位,再输出一个移位脉冲。
内容及步骤:
本实验需要用到单片机最小系统(F1区)、十六位逻辑电平显示(I4区)和74LS164(G3区)。
1、选用89C51单片机最小应用系统模块,用八位数据线连接74LS164的并行输出JD5G 与十六位逻辑电平显示模块JD2I,将74LS164的串行输入端A/B(1和2脚)接到RXD 上,CLK接到TXD上,CLR接INT0。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加TH23_74164.ASM 源程序,进行编译,直到编译无误。
4、全速运行程序,观察发光二极管亮灭情况,先右移动两次,再左移动两次,然后闪烁两次。
74HC164移位寄存器的驱动与应用2008-07-26 13:5374HC164的驱动和应用74HC164的几点说明:1.74HC164是串行输入,并行输出的;2.它的并行输出其实是有延时的,只是延时时间小,可以认为是并行输出;74hc164封装和真值表:A400EA04-DB1A5348-3B1DD4B0-E1417E40-1D636E94-1D4D6A58真值表中文解释说明:H-高电平 L -低电平 X -任意电平↑-低到高电平跳变(上升沿有效)QA0,QB0,QH0 -规定的稳态条件建立前的电平QAn,QGn -时钟最近的↑前的电平看真值表的第三条和第五条:就可以知道,在保持clear为 H clock为↑状态下,AB都为H时,移位寄存器移入H,而当移位寄存器移入L时,必须令B为L,而A不受约束。
所以可以把AB断相连再接入单片机数据端口。
还有一种是A脚直接接高电平,B脚连入单片机数据端(P2_7)电路仿真图:R为clear端, C1/->为clock端,&为A端(1脚)和B端(二角),3~13脚分表为QA~QH,源程序:/***74hc164是上升沿有效***/#include<regx51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar ch;sbit DAT=P2^7;//A,B端接一块后接入DATsbit CLK=P2^6;char codeseg[16]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};/*0~9和全灭状态*//*数经过移位寄存器后低位数为高位数,高位数为低位数如:0000 0011移位以后为1100 0000*//*延时一毫秒函数*/void delay(uint ms){uchar i;for(;ms!=0;ms--)for(i=0;i<250;i++){_nop_();_nop_();_nop_();_nop_();}}/***把代码发送到移位寄存器***/void sendchar(ch){uchar i;for(i=0;i<8;i++)//8位数据传输完毕后才给数码管显示{DAT=ch&0x01;//P2_7=0000000x/*DAT一直保持该状态,等时钟脉冲触发传递数值*/CLK=0;//下面两句制造一个上升沿CLK=1;/*一个seg[]刚好八位,164是串行输入的,分成八位输入*/ch>>=1;/*DAT=ch&0x01和ch>>=1的功能是一次取出八位二进制ch的每一位赋值给74hc164*/}}void main(void){uint m=0;while(1){sendchar(seg[m]);if(++m==11) m=0;delay(200);}}类别:电子技术文档 | 添加到搜藏 | 分享到i贴吧 | 浏览(1665) | 评论(1)上一篇:C语言宏定义技巧(常用宏定义)下一篇:[转]从零开始,教你如何破解WEP...最近读者:登录后,您就出现在这里。
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)可完全控制输入数据。
一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。
虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。
时钟控制发生在时钟输入由低电平到高电平的跃变上。
为了减小传输线效应,所有输入端均采用二极管钳位。
/info/cmos/0083928.html
H=高电平(稳定态)L=低电平(稳定态)×=不定↑=从低电平转换到高电平
QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平
QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位
74HC164典型工作时序图
我之前写的164扩展程序,参考一下吧!应该可以解决你问题。
其实你只要用到一片164就够了,作动态扫描,下面程序是两个数码管动态扫描,164并行输出口再接一片功率驱动芯片,如TD62083。
程序如下:
/**************************************/
/* 74LS164数码管动态显示*/
/**************************************/
//-------------------------------------库函数声明,管脚定义------------
#include <at89x51.h>
#define uchar unsigned char
sbit simuseri_CLK=P1^1; //用P1^1模拟串口时钟
sbit simuseri_DATA=P1^0; //用P1^0模拟串口数据
sbit a0=ACC^0;
unsigned char code dis_code[11]={0x28,0x7E,0xa2,0x62, //查表显示0, 1、、9 0x74,0x61,0x21,0x7A,0x20,0x60, 0x01};
uchar numer,temp;
uchar ge,shi;
//----------------------------------------------------------------------------
// 函数名称:out_simuseri
// 输入参数:data_buf
// 输出参数:无
// 功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA //----------------------------------------------------------------------------
void out_simuseri(uchar data_buf)
{
uchar i;
i=8;
ACC=data_buf;
do
{
simuseri_CLK=0;
simuseri_DATA=a0;
simuseri_CLK=1;
ACC=ACC>>1;
}
while(--i!=0);
}
/************************************/
void delay(uchar ms) //延时程序
{
uchar i;
while(ms--)
{
for (i=0;i<125;i++);
}}
/***********************************/
void main()
{
uchar m;
while(1)
{
for(temp=0;temp<99;temp++)
{
ge=temp/10;
shi=temp%10;
for(m=0;m<20;m++) //显示频率200ms加1次
{
P2_0=0; //位段码
numer=dis_code[ge];
out_simuseri(numer); //个位移位显示
delay(5);
P2_0=1;
P2_1=0;
numer=dis_code[shi]; //十位移位
out_simuseri(numer);
delay(5);
P2_1=1;
}
m=0;
}
}
}
/****************************************/ ………………………………………………………………………………………………************************************************************************
74hc164可以用作LED数码管的驱动的c程序
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;
else
ShowData=0;
_ShowValue<<=1;
ShowClck=0;
_nop_();
_nop_();
ShowClck=1;
}
} xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
另一个C程序;
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;
else
ShowData=0;
_ShowValue<<=1;
ShowClck=0;
_nop_();
_nop_();
ShowClck=1;
}
} Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。