74hc164是高速硅门 CMOS 设备,低功耗肖特基型 TTL (LSTTL) 该装置的引脚兼容。74hc164是 8 触发式移位寄存器位于位边,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)一串行输入;任何输入端都可以用作控制另一个输入端数据输入的高电平使能端。两个输入端要么连接在一起,要么将未使用的输入端连接到高电平,不得悬挂。
时钟 (CP) 每次从低到高,数据向右移动,输入 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位 (MR) 输入端上的低电平会使所有其他输入端无效,同时不同步清除寄存器,强制所有输出为低电平。
74hc164原理图
74hc164应用电路
下图是74HC164显示驱动电路图,图中显示的电路是触摸开关、数字管和LED混合显示电路由16个按钮、2个数字管和8个组成LED,典型的538扫描电路.74HC164芯片的8个引脚Q0~Q7输出列扫描信号,单片机直接提供5路行扫描信号。单片机为74HC提供时钟输入和数据输入信号,控制显示内容。该电路共需单片机8个引脚,比传统扫描电路节省6个引脚资源,具有一定的成本优势。
二极管D2-D23起隔离作用,防止74HC164芯片引脚电位相互干扰。例如,74HC164164输出引脚Q0~Q6为高电平,Q7是低电平。此时,如果同时按下SW1和SW2,引脚Q7和引脚Q6短路会损坏芯片。
时钟输入脚和数据输入脚需要连接瓷片电容器来抵抗高频干扰,但电容量不能太大,以免导致输入波形过度失真,使电路不能正常工作建议使用100~1000pF.
74hc164驱动电路图和源程序
源程序:
/***74hc164上升沿有效***/
#include《regx51.h》
#include《intrins.h》
#define uchar unsigned char
#define uint unsigned int uchar ch;
sbit DAT=P2^7;//A,B接入后端接一块DAT
sbit CLK=P2^6;
char code
seg[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》》=一次取出八位二进制的功能ch每个赋值74hc164*/ }
}
void main(void)
{
uint m=0;
while(1)
{
sendchar(seg[m]);
if( m==11) m=0; delay(200);
}
}
标签:
5
end