使用HC165 级联输入(并入串出)

HC165结构图

1.硬件原理图

 2.编程代码

(这个是未验证的程序,这只是使用别人的板子编写的程序,后期等板子出来了,在验证程序)

新板出来了,程序验证OK(可以使用3个IO,拓展IO输入)

/*
  ************************************* Copyright ******************************
  *
  *                 (C) Copyright 2023,Wenkic,China, GCU.
  *                            All Rights Reserved
  *
  *                     By(Wenkic)
  *                      https://blog.csdn.net/Wekic
  *
  * Version      : v1.0
  * Author       : Wenkic
  * Description  :
  * Function List: 74HC165D 并入串出(输入信号)
  *     74HC165和74HCT165是一种8位串行或并行输入/串行输出移位寄存器。
  * 该器件具有一个串行数据输入(DS)、8个并行数据输入(D0至D7)和两个互补的串行输出(Q7和Q7')。
  *
  * 【01】:<PL>数据加载控制引脚。该引脚处于低电平时,读取并行端口(D0->D7)的数据并储存在移位寄存器内;
  *  该引脚处于高电平时,串行数据从DS引脚(10号)进入到移位寄存器中(Q0->Q7)。
  * 【02】:<CP>时钟输入,上升沿触发。
  * 【11】【12】【13】【14】【03】【04】【05】【06】:<D0->D7>并行数据输入引脚。  
  * 【07】:<Q7>串行数据互补输出引脚,与9号引脚互补。
  * 【08】:<GND>电源负极。
  * 【09】:<Q7>串行数据输出引脚。
  * 【10】:<DS>串行数据输入引脚。
  * 【15】:<CE>时钟输入使能引脚,低电平触发。
  * 【16】:<VCC>电源正极。
  * 应用1: 并入串出
  * 应用2: 串入并出
  *
  ******************************************************************************
  */
/********************************End of Head************************************/
#include "HC165.h"
static volatile u8 HC165Table[4] = { 0 };

//并入串出
#define HC165_SH   P21  //锁存脚(1脚)  0:外部输入到寄存器  1:上升沿锁存数据
#define HC165_CLK  P25  //锁存脚(2脚)  上升沿移位一位数据出
#define HC165_INH  P21  //锁存脚(15脚) 时钟使能(0:时钟上升沿无效 1:有效)
#define HC165_SER  P24  //数据脚(10脚) 数据输入

u8 Read_HC165Byte(void)
{
	u8 temp = 0,i;
    for (i=0; i<8; i++) {
        HC165_CLK  = 0;             		// 下降沿同步 HC165 和单片机
        temp      |= (HC165_SER)?(1<<i):0;  // 获取当前输入数据
        HC165_CLK  = 1;             		// 上升沿允许 HC165 接收下一位数据
    }
    return temp;
}

void HC165_Update(void)
{
	HC165_SH      = 1; // 外部数据到达寄存器
	HC165_CLK     = 1;
	HC165_SH      = 0; // 初次上升沿锁定数据,保证每次开始请求新数据前,先逐位移位去取前一次的输入。
	HC165Table[0] = Read_HC165Byte(); //读取芯片1
	HC165Table[1] = Read_HC165Byte(); //读取芯片2
	HC165Table[2] = Read_HC165Byte(); //读取芯片3
  HC165Table[3] = Read_HC165Byte(); //读取芯片4
}

可以看一下这个视频:单片机输入端口扩展芯片——74HC165 - 知乎

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值