当前位置: 首页 > news >正文

C51_74HC165并口转串口

文章目录

  • 一、74HC165
  • 二、74HC165使用
    • 1、引脚
    • 2、工作流程
    • 3、原理图
  • 三、实例代码

一、74HC165

74HC165 是 8 位并行输入串行输出移位寄存器,它是一款高速 CMOS 器件,遵循 JEDEC 标准。
74HC165 是一款8 位并行输入 - 串行输出的移位寄存器,常用于扩展 51 单片机的输入端口(解决 51 单片机 I/O 口不足的问题)。

二、74HC165使用

1、引脚


2、工作流程

并行装载:拉低 SH/LD,将 D0~D7 上的电平锁存到寄存器内部。
串行移位:拉高 SH/LD,每来一个 CLK 上升沿,寄存器内的数据右移一位,从 Q7 依次输出(先输出最高位,后输出最低位)。
级联扩展:多片 74HC165 级联时,前一片的 Q7 接后一片的 CLK,可扩展为 16/24 等位输入。

3、原理图

三、实例代码

循环读取8路输入。

#include<reg52.h>// 定义 74HC165 控制引脚sbit SH_LD=P1^0;// 移位/装载控制sbit CLK=P1^1;// 移位时钟sbit DATA_IN=P1^2;// 串行数据输入/** * @brief 读取 74HC165 的 8 位并行数据 * @retval 读取到的 8 位数据(unsigned char 类型) */unsignedcharHC165_ReadData(void){unsignedchari,dat=0;// 1. 并行装载数据SH_LD=0;// 拉低,锁存 D0~D7 数据CLK=0;// 时钟初始化为低SH_LD=1;// 拉高,进入移位模式// 2. 串行移位读取 8 位数据(高位优先)for(i=0;i<8;i++){dat<<=1;// 左移一位,准备接收下一位if(DATA_IN==1){dat|=0x01;// 读取当前位为 1}// 产生时钟上升沿,触发移位CLK=1;CLK=0;}returndat;}voidmain(void){unsignedcharinput_data;while(1){input_data=HC165_ReadData();// 循环读取 8 路输入// 后续可根据 input_data 处理逻辑(如判断按键、传感器状态)}}
http://www.jsqmd.com/news/79149/

相关文章:

  • application.properties
  • 智能客服机器人产品设计
  • 【题解】Luogu B4185 [中山市赛 2024/科大国创杯小学组 2023] 倍数子串/子串
  • JavaScript 异常原因(Error Cause):实现分布式系统错误链追踪的序列化与反序列化
  • 毕业论文任务书范文推荐:7大平台+AI修改工具
  • Python字典与集合:解锁高效数据处理的关键,90%的人没吃透这几点
  • 天远多头借贷行业风险版API接口调用代码流程、接入方法以及应用场景
  • 详细介绍:完整事务性能瓶颈分析案例:支付系统事务雪崩优化
  • 计算机论文选题推荐:9大AI+热门方向排名
  • JavaScript 记录(Records)与 元组(Tuples):实现堆内存中不可变复合数据结构的内存布局
  • 5 分钟快速入门 Github Actions
  • 虚函数虚表
  • 线程并发编程,同步与互斥机制
  • Python列表与元组:搞懂这3个核心差异,再也不纠结用哪个
  • MQ消息队列相关知识与对比
  • 已有析音法
  • 完整教程:PPT导出为图片的格式选择:JPG与PNG的区别
  • 不能头脑简单地搞“凡是”:凡是偶数2n(n的变域是N)必∈N
  • Docker 两大基石:Namespace 和 Cgroups
  • 告别排版困境!AI 写作到发布全自动化的完整方案
  • 9、Eclipse集成开发环境:C/C++开发全流程指南
  • 享搭提醒助手:数据变动实时预警,运营者业务状态“尽在掌握”
  • Python银行客户数据流失预测SMOTE平衡数据实现神经网络、SVM、决策树、随机森林与超参数调优|附代码数据
  • 音元系统:绪论
  • 代码随想录算法训练营第三十二天 | 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ、卡码网57. 爬楼梯
  • 【题解】CSP-J/S 2025 补题
  • 音元系统:摘要
  • 26 avl树(下)
  • 从“写代码”到“定义问题”——AI 时代程序员的生存宣言
  • 音元系统:目录