描述

0、引言

74HC165是一款高速CMOS移位寄存器,电压为2.0~6.0V,驱动电流为+/-5.2mA。74HC165引脚兼容TTL(LSTTL)系列(定义于JEDEC标准№.7A)。

74HC165是8位并行输入串行输出移位寄存器,可在末级得到互斥的串行输出(Q0和Q7),当并行读取(PL)输入为低时,从D0到D7口输入的并行数据将被异步地读取进寄存器内。而当PL为高时,数据将从DS输入端串行进入寄存器,在每个时钟脉冲的上升沿向右移动一位(Q0→Q1→Q2,等等)。利用这种特性,只要把Q7输出绑定到下一级的DS输入,即可实现并转串扩展。

74HC165的时钟输入是一个“门控或”结构,允许其中一个输入端作为低有效时钟使能(CE)输入。CP和CE的引脚分配是独立的并且在必要时,为了布线的方便可以互换。只有在CP为高时,才允许CE由低转高。在PL上升沿来临之前,CP或者CE应当置高,以防止数据在PL的活动状态发生位移。

图174HC165逻辑图

单片机的开漏口输出高电平时,需要上拉电阻,否则无法输出高电平,同时为了提高抗干扰能力还要接一个瓷片电容进行滤波。

1、现象描述

74HC165的数据装载口上拉一个10K欧姆的电阻(R160)到5V,串联一个510Ω(R260)的限流电阻和滤波电容102(C69)到单片机开漏口。通过计算RC充电时间,R=R160+R260=10510Ω,C=C69=1000PF,充电电压为5V,算出充电时间为42.04us。实际测量的充电时间为42us左右,同计算的时间基本一致。(若为推挽输出口控制PL脚,充电时只通过R260=510Ω和电容C69=1000PF,充电时间约为2.04us)。如图2,时钟口波形为脉冲数较多的,数据装载口为脉冲数较少的,可知数据装载口还没有完全达到高电平时,就有了移位脉冲,导致移位失效,数据读取错误。

图2C为102时74HC165数据装载口和时钟口波形

若电容C改为101时,通过计算和实际测量,得到充电时间为4.204us,充电速度快了十倍,如下图3。数据装载口变为可靠的高电平后,才有移位时钟脉冲,移位成功,数据读取成功。

图3C为101时74HC165数据装载口和时钟口波形

2、原因分析

74HC165是一个8位移位寄存器(并行输入、互补串行输出),当移位/置入控制端PL为低电平时,并行数据A-H(D0-D7)被置入寄存器,而与时钟(CP)及串行数据(Ds)均无关。当PL为高电平时,并行置数功能被禁止。要特别注意,移位时,PL为低电平时,移位无效。PL为高电平时,才能移位。当PL为高电平,而且CE为低电平时,与非门的输出完全由CP控制。当PL为低电平时,虽然CE为低电平,但是与非门的输出固定为高电平,不论CP电平如何变化,与非门的输出始终固定为高电平。所以,显然只有CE低电平去使能CP脉冲是不够的,同时PL也为高电平才能使CP脉冲有效。如图1中的D触发器1。

2.1PL为高电平时,由于SD和RD连接的与非门,有一个管脚连接PL的非门,是低电平,故SD(直接置1端)和RD(直接清零端)都是高电平,不影响电路工作。所以每次CP的上升沿,D端数据会移动到Q端,并且锁存起来。

2.2PL为低电平时,由于SD和RD连接的与非门有一个管脚连接PL的非门,是高电平,故SD(直接置1端)和RD(直接清零端)的状态都完全根据D0决定。当D0为1时,SD为0(低电平有效),RD为1,故Q1直接置1。当D0为0时,SD为1,RD为0(低电平有效),故Q1直接清0。这就是数据装载的原理。同时,由于PL为低电平时,CP被与非门无效了,所以每次CP的上升沿,D端数据不会移动到Q端。

3、结论

若PL的高电平不可靠时,会出现移位失败的问题,从而导致数据读取错误。要使CP的移位有效,提前必须使CE为可靠低电平且PL为可靠的高电平。当开漏口控制PL引脚时,务必注意查看由低电平到高电平的波形,是否提前于CP的上升沿。若变为高电平以后,才有CP上升沿,则没有问题;若还没有完全变为高电平,此时CP上升沿出现,则有可能移位不成功。

打开APP精彩内容

点击阅读全文

74hc165 c语言程序,单片机读取74HC165数据异常原因分析相关推荐

  1. DSB算法C语言程序,单片机中使用DSB温度传感器C语言程序.doc

    单片机中使用DSB温度传感器C语言程序 单片机中使用DS18B20温度传感器C语言程序(参考1) /************************************************** ...

  2. 单片机发射红外c语言程序,单片机模拟红外发射源程序IR-send

    单片机模拟红外遥控器发射的C语言程序 //********************************************单片机红外发射**************************** ...

  3. C语言 int 转单精度浮点,单精度浮点数与十六进制转换 C语言程序 单片机也可用...

    单精度浮点数与十六进制转换 C语言程序 单片机也可用 #include float Hex_To_Decimal(unsigned char *Byte,int num)//十六进制到浮点数 { // ...

  4. java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...

    本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...

  5. PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据

    PCR主成分回归预测MATLAB代码 代码注释清楚. main为主程序,读取EXCEL数据,也可以换自己数据集. 很方便,容易上手. ID:9624654486820873总有刁民膜拜朕

  6. PCR主成分回归预测MATLAB代码 代码注释清楚。 main为主程序,读取EXCEL数据,也可以换自己数据集

    PCR主成分回归预测MATLAB代码 代码注释清楚. main为主程序,读取EXCEL数据,也可以换自己数据集. 很方便,容易上手. ID:6924654486820873总有刁民膜拜朕

  7. uefi怎么念_uefi模式无法读取u盘启动原因分析及解决方法

    [文章导读] 最近有网友问我uefi模式下我按快捷方式或bios中都发现不了u盘启动选项,无法正常选择u盘启动进入pe安装系统,出现这种情况一般是bios中设置了uefi模式,而制作的u盘启动不支持u ...

  8. 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)

    原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...

  9. dac0832三角波c语言程序,单片机控制DAC0832输出正弦波三角波汇编程序

    org 0000h LJMP MAIN ORG 0003H LJMP L0 MAIN:MOV R2,#0aH                    ;调幅倍数 MOV R4,#01H          ...

最新文章

  1. flutter AppBar
  2. Qt 5 打包成一个单文件方法,可以在其他电脑运行(附资源)
  3. LeetCode 406 Queue Reconstruction by Height
  4. 二叉树的遍历算法(三级)
  5. python readline_16.8. readline — GNU readline 接口 — Python 2.7.18 文档
  6. 面试时,面试官到底在考察什么?
  7. [js] js中的undefined和 ReferenceError: xxx is not defined 有什么区别?
  8. idea gui插件_给 IDEA 换了酷炫的主题,研发小姐姐看到:feel so high。。。
  9. Python+OpenCV:摄像机标定(Camera Calibration)
  10. 10个JavaScript常见BUG及修复方法 1
  11. 例2.11 FatMouse' Trade - 九度教程第21题(贪心算法)
  12. python 图像压缩 jpeg_smally:批量无损压缩JPG和PNG
  13. 一种针对图数据超级节点的数据建模优化解决方案
  14. SVN分支/主干Merge操作小记
  15. 将图片资源添加到VS中,并在代码中引用
  16. 学习笔记10----学成在线案例
  17. Daily Life
  18. 基于Dogleg思想和精确Hessian的信赖域方法及实例(附MATLAB程序)
  19. Chrom/Edge浏览器将网页另存为图片
  20. python爬取英雄联盟手游的全英雄皮肤 初识selenium

热门文章

  1. Java实现肯德基点餐系统
  2. 任务分配问题关于医院的一些基础类的创建
  3. Scala-Akka 实例
  4. 打包发布firefox的主题
  5. 计算机基础 - 二进制
  6. 以jsp实现管理后台界面侧栏
  7. 【GIT】git实用指令(不定期更新)
  8. 百度路书实现车辆轨迹动态回放功能-javascrpt版
  9. 10大经典数据分析模型,你知道几个?(二)
  10. unity全免费下载网站 源代码插件模型场景全部免费