8位串行或并行输入/串行输出移位寄存器74HC165D/SN74HC165DR/74HC165/AIP74HC165最新中文资料

提供74HC165D/SN74HC165DR/74HC165/AIP74HC165中文资料_价格_PDF数据手册_引脚图及功能

AIP74HC165 SOP16

产品描述

74HC165D/SN74HC165DR/74HC165/AIP74HC165 是一个 8 位串行或并行输入/串行输出移位寄存器。该电路具有一个串行数据输入(DS),八个并行数据输入(D0~D7) 和两个互补的串行输出(Q7 和Q¯7)。当并行加载输入(PL¯)为低电平时,将 D0 到 D7 的数据异步加载到移位寄存器中。当PL¯为高电平时,数据在 DS 处串行进入寄存器。 当时钟使能输入(CE¯)为低电平时,数据在 CP 输入上升沿时移位。 CE¯上的高电平将禁用CP 输入。

其主要特点如下:

● 输入电平:

AiP74HC165: CMOS 电平

AiP74HCT165: TTL电平

● 异步8位并行加载

● 同步串行输入

● 工作环境温度范围: -40℃~+125℃

● 封装形式: DIP16/SOP16/TSSOP16

基础参数

逻辑类型: 移位寄存器

输出类型: 补充型

功能: 并行或串行至串行

工作电压: 2V~6V

工作温度:-40℃~+125℃

静态电流(最大值): 8uA

不同 V,最大 CL 时的最大传播延迟: 28ns@6V,50pF

低电平输出电流(IOL): 5.2mA

高电平输出电流(IOH): 5.2mA

逻辑电平-高: 1.5V~4.2V

逻辑电平-低: 0.5V~1.8V

交流参数

图1

图2

功能框图

逻辑符号

IEC 逻辑符号

功能框图

时序图

引脚图及功能

74HC165使用方法与级联程序

LCD程序是采用wang1jin带您从零学单片机里面的1602程序修改。

#include《AT89X52.H》

#include“LCD.h”

#defineuint16unsignedint

#defineuint8unsignedchar

#defineAUDIO_OUTP0

///////////////////////////////////////////////////////

sbitHC165_CE=P1^1;//HC165控制端L有效

sbitHC165_PL=P1^2;//HC165锁存引脚H高效

sbitHC165_CLK=P1^0;//HC165时钟引脚

sbitHC165_IN=P1^3;//HC165数据输出引脚

uint8Address=0;//本地地址变量

uint8Priority=0;//优先级变量

///////////////////////////////////////////////////////

uint8LCD_DATA1[]={

‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’

};

voidInit_INT(void);

voidRead_HC165(void);

voidmain(void){

Init_INT();LCD1602();

Init_Lcd();while(1){

Read_HC165();

Display_LCD_Byte(0,0,‘0’);

Display_LCD_Byte(0,1,‘x’);

Display_LCD_Byte(0,2,LCD_DATA1[Address/16]);

Display_LCD_Byte(0,3,LCD_DATA1[Address%16]);

Display_LCD_Byte(1,0,‘0’);

Display_LCD_Byte(1,1,‘x’);

Display_LCD_Byte(1,2,LCD_DATA1[Priority/16]);

Display_LCD_Byte(1,3,LCD_DATA1[Priority%16]);

}

}

////////////////////////////////////////////////定时器初始化

//////////////////////////////////////////////voidInit_INT(void)

{

TMOD=0x01;

ET0=1;

TR0=1;

EA=1;

TH0=0xF8;

TL0=0xC5;

}

//////////////////////////////////////////////

//读取优先级和本机地址

//当执行本次程序时

//函数会将165的信号优先级

//以及本机的地址送到Priority和Address

//////////////////////////////////////////////

voidRead_HC165(void)

{

uint8i=0;//临时变量

uint8BJ_Address=0;

uint8BJ_Priority=0;

HC165_CE=0;//打开165选通端

HC165_PL=0;//允许数据进入165

for(i=0;i《8;i++)//读8次数据

{

HC165_PL=1;//允许数据移位

HC165_CLK=0;//低电平时读取数据

if(HC165_IN)//数据高位在前

{

BJ_Priority|=0x80》》i;

}

HC165_CLK=1;//数据移位

}

for(i=0;i《8;i++)//读取下一个165的数据

{

HC165_CLK=0;

if(HC165_IN)

{

BJ_Address|=0x80》》i;

}

HC165_CLK=1;

}

HC165_CE=1;

HC165_PL=0;

Address=BJ_Address;

Priority=BJ_Priority;

}

#ifndef_LCD_H_

#define_LCD_H_

#include《AT89X52.H》

#defineLCD_DATAP3

sbitRS=P1^5;

sbitRW=P1^6;

sbitEN=P1^7;

voidLCD1602(void);

voidRead_Busy(void);

voidWrite_Lcd(unsignedcharValue,biTI);voidInit_Lcd(void);

voidDelay(unsignedinTI);

voidDisplay_LCD_Byte(unsignedchary,unsignedcharx,unsignedcharValue);

#endif

#include“LCD.h”

voidLCD1602(void)

{

EN=0;

RS=1;

RW=1;

LCD_DATA=0xFF;

}

voidRead_Busy(void)

{

LCD_DATA=0xFF;

RS=0;

RW=1;

EN=1;

//while(LCD_DATA&0x80);

Delay(100);

EN=0;}

voidWrite_Lcd(unsignedcharValue,biTI)//i=0写指令.i=1写数据;

{

Read_Busy();

LCD_DATA=Value;

RS=i;RW=0;

EN=1;

EN=0;

}

voidInit_Lcd(void)

{

Delay(15000);

Write_Lcd(0x38,0);

Delay(5000);

Write_Lcd(0x38,0);

Delay(5000);

Write_Lcd(0x38,0);

Write_Lcd(0x08,0);

Write_Lcd(0x01,0);

Write_Lcd(0x06,0);

Write_Lcd(0x0c,0);

}

voidDisplay_LCD_Byte(unsignedchar

y,unsignedcharx,unsignedcharValue)

{

y&=0x01;//y不能大于1x&=0x0F;//x不能大于15

if(y)//是否显示在第二行;

{

x+=0x40;//显示在第二行,加0X40;

}

x+=0x80;

Write_Lcd(x,0);//写入显示的位置

Write_Lcd(Value,1);//写入显示数据}

voidDelay(unsignedinTI)

{

while(--i);

}

0 阅读:8

深圳市灵星芯微电子科技有限公司

简介:中微爱芯一级代理商/逻辑芯片专家