74HC165功能说明
D
从上面我们的真值表和时序图中我们要特别注意几个端口的变化,真值表中SH/LD只有在高电平的时候方才有效;CLK,CLK INH只有当其中一个为低电平的时候,另一个时钟才能正确的输入,这是非常重要的(一般的我们在使用时,可以将其中的一个直接接地,另一个做时钟输入端口使用)。但是我们做事要细心,要一丝不苟,从时序图中我们看到SH/LD有一个负脉冲这是什么缘故呢?在程序设计中如果忽略了此处,那么注定结果是悲剧的。从SH/LD的全称是: SHIFT/LOAD 这说明它有两种功能( SHIFT英文意思是移位,LOAD是装载) ,故美其名曰: 移位控制(高电平有效)/置入控制端口(低电平有效)。在单片机接收数据前,必须将该引脚拉低,目的是为了将并行数据A--H上得数据装载到内部寄存器中,这里体现的时LOAD功能;接下来在接收数据的过程中必须将该引脚拉高,目的是为了使寄存器中的数据可以移动,从而从QH或QN'中移入单片机。这里体现的是SHIFT功能。74hc165中最重要的一个引脚就是该引脚 至于说时钟电路就显得逊色多了。我们只需将单品机的某一个端口拉低或抬高即可,这样数据就一步一步的被接收了。请务必记得上升沿有效。
分析了74hc165的引脚及其时序我想大家对其使用明白多了,接下来我们用51单品机来编写一段程序代码:
#include<>
#include<>
#define uint unsigned int
#define uchar unsigned char
sbit CLK=P3^6; //时钟位定义
sbit Lock=P3^7; //转载/移位位定义
sbit Data=P3^5; //接收位定义
/************************165接收程序***********************/
//-------------------------------------------------------------
uchar series_165()
{
uchar i;
uchar BYTE=0; //最终接收到得字符
Lock=0; //将165外部端口数据装入内部寄存器
_nop_();
Lock=1; //抬高为移位准备
for(i=0;i<8;i++)
{
BYTE<<=1; // 1
CLK=0; //时钟低
_nop_();
BYTE|=Data; //先接收高位
74HC165功能说明 来自淘豆网m.daumloan.com转载请标明出处.