74LS165功能简介
主要电特性如下:
工作原理:
当移位\植入控制端(SH/LD)为低电平时,并行数据(A-H)被置入寄存器,而时钟(CLK,CLKINH)及串行数据(SER)均无关。当SH/LD)为高电平时,并行置数功能被禁止。CLK和CLKINK在功能上是等价的,可以交换使用。当CLK和CLKINK有一个为低电平并且SH/LD为高电平时,另一个时钟可以输入。当CLR和CLKINK有一个为高电平时,另一个时钟被禁止。只有在CLK为高电平时CLKINK才可变为高电平。
引出端符号
CLK; CLK INK 时钟输入端(上升沿有效)
A-H 并行数据输入端
SER 串行数据输入端
QH 输出端
QH“ 互补输出端
Sh/LD”移位控制/置入控制(低电平有效)
逻辑图
单片机I/O端口驱动74LS165电路
用I/O模拟移位寄存器的时序驱动74LS165,实现并行数据的输入。如下图所示,P1.5被用于串行数据输入,P1.6用于移位时钟输出,P1.7用来控制74LS165的工作状态。
单片机I/O端口驱动74LS165主要包括函数声明管脚定义部分、数据输入函数以及数据输出函数。
74ls165级联测试程序与proteus仿真电路图
关于如何做74ls165级联测试程序与proteus仿真电路图,内容请看下文:
下面是proteus仿真原理图:
单片机c语言源程序:
/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name : 74LS165.C
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【编译环境】: Keil μVisio4
* 【程序功能】:
* 【使用说明】:
** -----------------------------------------------------------------------------------------------------
** Author : Creavalia
** Date : 2015年10月19日
** -----------------------------------------------------------------------------------------------------
** Modify Person:
** Modify Date :
** Description :
*********************************************************************************************************/
// Includes --------------------------------------------------------------------------------------------
#include《reg51.h》
#include《intrins.h》
/********************************************************************************************************
** Marcos define
*********************************************************************************************************/
#define uint unsigned int
#define uchar unsigned char
//IO设置
sbit QH = P3^0; //输出端
sbit CLK = P3^1; //时钟输入端(上升沿有效)
sbit SPL = P3^2; //移位控制/置入控制(低电平有效)
/********************************************************************************************************
* Description : 接收数据
* Input : None
* Output : None
* Return : None
********************************************************************************************************/
uint read_int165(void)
{
uchar i = 0;
uint read_data = 0;
SPL = 0; //置数,读入并行输入口数据
_nop_();
SPL = 1; //移位,并口输入被封锁,串行转换开始
_nop_();
for(i=0;i《16;i++) //16位数据
{
read_data 《《= 1;
if(QH)
{
read_data|=QH;
}
CLK=0; //下降沿
_nop_();
CLK=1; //上升沿
_nop_();
}
return read_data;
}
/********************************************************************************************************
* Function Name : main
* Description : 主函数
* Input : None
* Output : None
* Return : None
********************************************************************************************************/
void main()
{
//初始化
uint temp = 0;
uchar tempH = 0;
uchar tempL = 0;
CLK=0;
while(1)
{
temp = read_int165();
//获取高8位,存放置tempH
tempH = (uchar) (temp》》8);
//获取低8位,存放置tempL
tempL = (uchar) temp;
P0=tempH; //接收到的字节显示在P0 端口,显示的值与拨码开关对应
P1=tempL; //接收到的字节显示在P1 端口,显示的值与拨码开关对应
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
74ls165相关文章:
74ls165中文资料汇总(74ls165引脚图及功能_工作原理及应用电路)
74ls165相关下载:
评论
查看更多