PIC18F97J60与MC74HC165A实现高效GPIO扩展方案
1. 项目背景与核心价值在嵌入式系统开发中经常需要处理大量外部输入信号。传统方案要么占用过多MCU引脚资源要么需要复杂的外围电路设计。MC74HC165A这款8位并行输入/串行输出移位寄存器芯片配合PIC18F97J60这款高性能微控制器能够完美解决这个痛点。我最近在一个工业控制项目中采用了这个组合成功将原本需要32个GPIO的信号采集系统缩减到仅需4个引脚时钟、数据、锁存和使能。这不仅简化了PCB布线难度还降低了BOM成本。PIC18F97J60内置的以太网功能更让我们可以直接将采集到的数据上传到云端实现远程监控。2. 硬件设计详解2.1 MC74HC165A关键特性解析这款移位寄存器有三个核心功能引脚需要特别注意SH/LDShift/Load低电平时并行加载输入数据高电平时允许串行移位CLKClock上升沿触发数据移位QHSerial Output串行数据输出端实际布线时要注意每个并行输入引脚建议接10kΩ上拉/下拉电阻避免悬空状态导致的不确定输入典型级联电路设计// 两级级联时的引脚连接示意 MC74HC165A_1.SH/LD -- MC74HC165A_2.SH/LD -- PIC18F97J60.RB0 MC74HC165A_1.CLK -- MC74HC165A_2.CLK -- PIC18F97J60.RB1 MC74HC165A_1.QH -- MC74HC165A_2.SER -- (第二级的串行输入) MC74HC165A_2.QH -- PIC18F97J60.RB22.2 PIC18F97J60的接口配置这款MCU的独特优势在于128KB Flash 3.8KB RAM内置10/100 Mbps以太网MAC支持mikroBUS标准接口推荐使用PORTB作为控制端口因其具有变化中断功能。初始化代码示例TRISB 0b00000100; // RB2为输入(QH)其他为输出 ANSELB 0; // 全部设为数字IO3. 软件实现方案3.1 数据采集时序控制可靠的读取流程应包含拉低SH/LD引脚至少25ns加载并行数据拉高SH/LD引脚在CLK上升沿逐位读取QH状态重复8*N次N为级联芯片数具体实现代码uint32_t read_shift_registers() { uint32_t data 0; SH_LD 0; // 进入加载模式 __delay_us(1); // 等待1μs确保稳定 SH_LD 1; // 进入移位模式 for(uint8_t i0; i24; i) { // 假设三级级联 data 1; if(QH_PIN) data | 1; CLK 1; __delay_us(1); CLK 0; } return data; }3.2 以太网数据传输实现利用PIC18F97J60内置的MAC层我们可以直接发送采集到的数据void send_ethernet_data(uint32_t input_states) { uint8_t packet[20]; // 构建UDP数据包 packet[0] 0x55; // 自定义协议头 memcpy(packet[1], input_states, 4); // 使用Microchip TCP/IP协议栈 UDP_SOCKET s UDPOpen(0, NULL, 5000); UDPWrite(s, packet, sizeof(packet)); UDPClose(s); }4. 实战优化技巧4.1 抗干扰设计经验在工业现场实测中发现三个关键点时钟线长度超过15cm时需增加33Ω串联电阻多芯片级联时每增加一级CLK频率应降低约20%在SH/LD信号线上并联100pF电容可消除振铃现象4.2 功耗优化方案通过以下配置可实现低功耗运行将不使用的并行输入端接地采用间歇工作模式每秒唤醒采集一次配置PIC18F97J60的休眠模式实测电流对比工作模式典型电流持续采集28mA间歇模式(1Hz)3.2mA深度休眠0.8mA5. 典型应用场景5.1 工业控制面板监测某纺织机械项目中使用方案3片MC74HC165A级联监测24个按钮500ms轮询周期状态变化时通过以太网发送告警5.2 智能家居输入扩展家庭自动化系统中的实现2片芯片监测16个门窗磁传感器与PIC18F97J60的TCP/IP栈配合通过MQTT协议上报状态6. 常见问题排查6.1 数据移位错位症状读取的数据位与物理输入不对应 排查步骤检查CLK信号质量建议用示波器观察验证SH/LD信号的时序参数确认级联时的SER连接顺序6.2 以太网连接不稳定典型解决方案检查RJ45接口的LED状态重设PHY寄存器ETHCON1bits.ON 0; __delay_ms(100); ETHCON1bits.ON 1;验证网络变压器中心抽头电压1.3V-1.5V这套组合在实际项目中展现了极高的可靠性特别是在需要远程监控的场景。通过合理设计单个PIC18F97J60可以同时管理多组MC74HC165A阵列构建出高密度输入采集系统。对于需要更高速率的应用可以考虑用SPI接口的移位寄存器替代但MC74HC165A在成本敏感型项目中仍是首选方案。

相关新闻

Frida动态Hook企业级Android应用哈希加密算法实战

Frida动态Hook企业级Android应用哈希加密算法实战

1. 项目概述今天我们来聊聊一个在移动安全逆向分析中非常经典且实用的场景:如何利用Frida去Hook企业级Android应用中常见的哈希加密算法。如果你正在从事安全研究、应用审计,或者对App的加密机制感到好奇,这篇文章就是为你准备的。在企业应用…

2026/7/4 15:14:59阅读更多 →
AI工程启动前必做的7项自我诊断清单

AI工程启动前必做的7项自我诊断清单

1. 这不是一份“AI工程师入门指南”,而是一份你该在敲下第一行代码前就反复确认的自我诊断清单 “Before You Start Your AI Engineering Journey… Do This.”——这个标题乍看像一句温和的提醒,实则是一记精准的刹车。我带过三十多个从零起步转行AI工程…

2026/7/4 15:04:34阅读更多 →
天龙八部单机版GM工具:3分钟实现游戏数据自由编辑的终极指南 [特殊字符]

天龙八部单机版GM工具:3分钟实现游戏数据自由编辑的终极指南 [特殊字符]

天龙八部单机版GM工具:3分钟实现游戏数据自由编辑的终极指南 🎮 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 还在为重复刷怪升级而烦恼?想要快速体验天龙八部单…

2026/7/4 15:04:34阅读更多 →
AI辅助修复Blender插件:打造高效Unity资产导出工作流

AI辅助修复Blender插件:打造高效Unity资产导出工作流

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在开发Unity项目时,你是否遇到过这样的困扰:从Blender精心雕刻的高模,导入Unity后材质丢失、…

2026/7/4 16:25:04阅读更多 →
驾驶证公证韩国需要带啥材料?驾驶证公证有效期多久?

驾驶证公证韩国需要带啥材料?驾驶证公证有效期多久?

计划去韩国自驾、留学或是长期工作,手里握着驾照却不敢直接上路?千万别急着盲目翻译!由于中韩两国驾驶规则与证件要求不同,想要顺利在韩国开车或换领当地驾照,一份合规的“双号公证海牙认证”文件是不可或缺的通行证。…

2026/7/4 16:25:04阅读更多 →
基于Si4732与PIC18F86J11的高保真AM/FM收音机系统设计

基于Si4732与PIC18F86J11的高保真AM/FM收音机系统设计

1. 项目背景与核心组件解析在嵌入式音频应用领域,AM/FM收音机模块一直是经典而实用的解决方案。Si4732作为Skyworks公司推出的高性能广播接收芯片,配合PIC18F86J11微控制器,能够构建出远超普通消费级收音机品质的专业级音频接收系统。这套组合…

2026/7/4 16:25:04阅读更多 →
Hyper-V虚拟化环境下的macOS兼容性实现:OSX-Hyper-V技术架构深度解析

Hyper-V虚拟化环境下的macOS兼容性实现:OSX-Hyper-V技术架构深度解析

Hyper-V虚拟化环境下的macOS兼容性实现:OSX-Hyper-V技术架构深度解析 【免费下载链接】OSX-Hyper-V OpenCore configuration for running macOS on Windows Hyper-V. 项目地址: https://gitcode.com/gh_mirrors/os/OSX-Hyper-V 在异构计算环境中实现macOS系统…

2026/7/4 16:25:04阅读更多 →
OpenCV与Python实现实时人脸识别系统

OpenCV与Python实现实时人脸识别系统

1. 项目概述:当计算机学会"看脸"时 人脸识别技术已经从科幻电影走进日常生活——从手机解锁到机场安检,这项技术正在重塑我们与机器的交互方式。这次我们要用OpenCV和Python搭建一个能实时识别人脸的系统,整个过程就像教一个刚出生…

2026/7/4 16:25:04阅读更多 →
基于Q-Learning的无人机三维动态避障路径规划实现

基于Q-Learning的无人机三维动态避障路径规划实现

1. 项目概述本科毕业设计选择"三维空间动态避障路径规划"这个课题,本质上是要解决无人机在复杂三维环境中的自主导航问题。传统路径规划算法在静态环境中表现尚可,但遇到动态障碍物时往往力不从心。这正是强化学习特别是Q-Learning算法可以大显…

2026/7/4 16:20:04阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/4 14:25:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/4 14:57:00阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →