好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

74HC164-串入、并出8-位移位寄存器.doc

10页
  • 卖家[上传人]:新**
  • 文档编号:486569912
  • 上传时间:2022-10-29
  • 文档格式:DOC
  • 文档大小:455.50KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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. 功能图图 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) 可完全控制输入数据一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入时钟控制发生在时钟输入由低电平到高电平的跃变上为了减小传输线效应,所有输入端均采用二极管钳位 L=低电平(稳定态) ×=不定 ↑=从低电平转换到高电平QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位74HC164典型工作时序图我之前写的164扩展程序,参考一下吧!应该可以解决你问题。

      其实你只要用到一片164就够了,作动态扫描,下面程序是两个数码管动态扫描,164并行输出口再接一片功率驱动芯片,如TD62083程序如下:/**************************************//* 74LS164数码管动态显示*//**************************************///-------------------------------------库函数声明,管脚定义------------#include #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、、90x74,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。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.