大家好,欢迎来到IT知识分享网。
提供74HC165D/SN74HC165DR/74HC165/AIP74HC165中文资料_价格_PDF数据手册_引脚图及功能
产品描述
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
交流参数
功能框图
引脚图及功能
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);
}
参考报价
深圳市灵星芯微电子科技有限公司以低本高质的服务精神屹立于电子行业20多年
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88644.html