下载此文档

74HC165功能说明.pdf


文档分类:行业资料 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
该【74HC165功能说明 】是由【花开花落】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【74HC165功能说明 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。时间:二O二一年七月二十九日
74hc165编程说明之邯郸勺丸创作
时间:二O二一年七月二十九日
接触单片机,嵌入式有好长一段时间了,一直想找个机会把自己总
结的东西拿出来晒晒太阳(其实没有什么,高手可能早已经了解),
在这里我只想分享给和我一样斗争在单片机一线的广大童鞋么一
点小小的甚至低微的经验.
我们都知道通信从大的方面有两种:
大优点是占用总线少,但是传输速率低;并行恰恰相反,占用总线
多,,有串入并出的(通俗讲
就是一个一个进,最后一块出来),有并入串出的(相对前者而
言).
示数码管单纯的显示一个数码管如果仅仅是为了显示那么动用单
片机一个端口(如P0或P1/P2/P3)那没有什么,当然这里我说的
数码管是8段的(如果利用BCD类型16进制数码管那么只需四个
即可)就拿51类型的单片机来说,总共32个I/O口,一般如果不是
做太大的工程是完全够用的,但有些时候你会恨单片机怎么未几长
几条“腿”,怎么省还是不敷用.
别急集成串行芯片来辅佐哈哈
客套话就未几说了言归正传,今天我介绍一下几个在数码管
显示或键盘处理中经经常使用到的移位寄存器芯片,首先登场的是
74HC165:
74HC165/74LS165是典型并入串出芯片,用它来读取外界键盘
时间:二O二一年七月二十九日
时间:二O二一年七月二十九日
信息再好不过了,前提我们得了解它,我们先了解其引脚:
引出端符号CLK,CLKINH时钟输入端(上升沿有效)A-H
并行数据输入端SER串行数据输入端QH
输出端QHn互补输出端SH/LD移位控
制/置入控制(低电平有效)
真值表
时序图
其实看一个芯片是如何使用的,不只是看引脚功效,更重要的是要
看时序图和真值表,从其中我们可以详细的了解到它是如何使用的,
然后转化成程序代码即可.
从上面我们的真值表和时序图中我们要特别注意几个端
口的变更,真值表中SH/LD只有在高电平的时候刚才有效;
CLK,CLKINH只有当其中一个为低电平的时候,另一个时钟才干正
确的输入,这是很是重要的(一般的我们在使用时,可以将其中的
一个直接接地,另一个做时钟输入端口使用).但是我们做事要细
心,要一丝不苟,从时序图中我们看到SH/LD有一个负脉冲这是什
时间:二O二一年七月二十九日
时间:二O二一年七月二十九日
么缘故呢?在程序设计中如果忽略了此处,那么注定结果是喜剧的.
从SH/LD的全称是:SHIFT/LOAD这说明它有两种功效(SHIFT
英文意思是移位,LOAD是装载),故美其名曰:移位控制(高电
平有效)/置入控制端口(低电平有效).在单片机接收数据前,必
须将该引脚拉低,目的是为了将并行数据A--H上得数据装载到内
部寄存器中,这里体现的时LOAD功效;接下来在接收数据的过程
中必须将该引脚拉高,目的是为了使寄存器中的数据可以移动,从
而从QH或QN'
中最重要的一个引脚就是该引脚至于说时钟电路就显得逊色多了.
只需将单品机的某一个端口拉低或抬高即可,这样数据就一步
.
阐发了74hc165的引脚及其时序我想大家对其使用明白多了,接
下来我们用51单品机来编写一段程序代码:
#include<>#include<>
#defineuintunsignedint#defineucharunsignedchar
sbitCLK=P3^6;//时钟位定义sbit
Lock=P3^7;//转载/移位位定义sbit
Data=P3^5;//接收位定义
/************************165接收程序
***********************/
时间:二O二一年七月二十九日
时间:二O二一年七月二十九日
//-------------------------------------------------------
------
ucharseries_165()
{uchari;ucharBYTE=0;//最终接
收到得字符Lock=0;//
将165外部端口数据装入内部寄存器_nop_();Lock=1;
//抬高为移位准备
for(i=0;i<8;i++){BYTE<<=1;
//1CLK=0;//时钟低
_nop_();BYTE|=Data;//先接收高
位CLK=1;//时钟高,上升沿下
一个数据移出_nop_();
//5}returnBYTE;//前往接收字
符}
voidmain(){CLK=0;while(1)P2=series_165();
//显示
}
运行过这个程序没有任何问题,显示如下
但是我们在实验的过程中,出现了一种情况我们将上述程序的1语
时间:二O二一年七月二十九日
时间:二O二一年七月二十九日
句换到了5的位置,就出现了下面的显示结果:
注意别被“1”迷惑了那只是165外部数据,是单片机要读的数
据,而P2口才是真正要显示接收的数据,为什么不同如此之大呢?
其实在编程的过程中这种情况太罕见了,今天仔细阐发了一下发明
问题的所在:单片机接收一个字节的数据需要移位8次,每次接收
前先移位是为了给接下来接收的数据腾开位置,这样每个数据都可
以正确接收;但是阐发下面的程序你会发明如果接收的数据是0,
那么不会有任何问题,但是当接收1时,上次的数据就会被接下来的
这个1笼盖掉,这正是问题的所在,试试看.
因此我们在利用单片机引脚模拟有些通信时要特别注意
什么时候移位,、少移一次
或诸如上面的问题而导致接收不正确.
本打算用一篇日志将74hc165、74hc595、74hc164介绍一
下看来篇幅太长了,:
今后自己写日志将更趋向于专业知识,请见谅.
时间:二O二一年七月二十九日
时间:二O二一年七月二十九日

74HC165功能说明 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开花落
  • 文件大小280 KB
  • 时间2023-03-20