本章概述思维导图:

51单片机驱动74HC595芯片实现IO口扩展

74HC595芯片简介

74HC595是一款8位串行输入、并行输出的移位寄存器,属于硅结构的CMOS器件。它能将串行输入数据转换为并行输出,其中并行输出为三态输出(即高电平、低电平和高阻抗)。广泛应用于单片机系统的I/O扩展,尤其使用于驱动数码管,LED矩阵等显示设备。74HC595芯片实物图如下:

74HC595核心特性:

        三态输出:支持高电平、低电平和高阻抗三种输出状态。

        高速移位:最高移位频率可达100MHZ(5V供电时)。    

        低功耗:典型静态电路仅4微安

        级联能力:通过串行输出引脚(Q7’)可级联多个芯片,扩展输出端口。

        锁存功能:内置存储寄存器,确保数据在移位过程种输出稳定。

74HC595芯片的引脚定义与功能  

引脚号

符号

功能描述

1-7,15

Q0-Q7

8位并行数据输出端,可直接控制数码管的段选或LED矩阵的行列。

9

Q7'

串行数据输出端,用于级联下一级74HC595的DS引脚。

10

MR

主复位引脚(低电平有效),复位移位寄存器,通常接VCC防止误触发。

11

SHCP

移位时钟输入(上升沿触发数据移位),控制数据向左移动一位。

12

STCP

锁存时钟输入(上升沿触发数据锁存),将移位寄存器数据存入输出寄存器。

13

OE

输出使能引脚(低电平有效),高电平时输出为高阻态,用于控制输出状态。

14

DS

串行数据输入端,接收来自单片机的串行数据。

16

VCC

电源正极(通常接5V)。

8

GND

电源地。


74HC595芯片实现IO口扩展硬件电路原理图分析

74HC595芯片实现IO口扩展硬件电路原理图分析:

首先观察将74HC595芯片的VCC引脚、GND引脚、OE引脚引出一个编号为J24的座子,这是为了方便驱动74HC595芯片,要是74HC595芯片工作需使跳线帽将OE引脚和GND引脚进行连接;不工作时,需使跳线帽将OE引脚与VCC引脚进行连接;原理:OE使能引脚(低电平有效);

74HC595芯片的SRCLR复位引脚与VCC进行连接;原理:SRCLR是低电平复位,为了防止误触,通常与VCC进行连接;

74HC595芯片的RCLK存储寄存器时钟引脚与MCU的P35引脚进行连接,分析P35引脚为74HC595芯片提供一个存储寄存器的时钟信号;

74HC595芯片SRCLK移位寄存器时钟引脚与MCU的P36引脚进行连接,分析P36引脚为74HC595芯片提供一个移位寄存器的时钟信号;

74HC595芯片的QA~QH为并行输出脚,与开发板的8*8点阵LED灯DPa~DPh行引脚进行连接;

74HC595芯片的QH'为串行输出脚,功能用于级联下一级74HC595芯片实现控制;

MCU的P0端口(P00~P07)引脚连接8*8点阵LED灯的列引脚实现LED灯阴极控制;

(电路原理图中的引脚定义单词与文中引脚定义介绍处不一样,是因为每个厂商生产的74HC595芯片定义引脚时都有自己的风格;小伙伴们不用深究啦,引脚功能都是一样滴,只是名字不一样啦!)

总结:通过电路原理图我们可分析出我们只用使用MCU的3个I/O口通过74HC595芯片就可实现8个I/O口的输出。74HC595是I/O口的扩展利器!74HC595芯片传输时MCU输入方向是高位->低位,对应输出方向是QH~QA;


74HC595芯片实现IO口扩展驱动8*8点阵LED软件编程设计

利用74HC595芯片实现IO口扩展驱动8*8点阵LED灯循环点灯软件编程

第一步:首先我们要函数封装74HC595传输数据函数;先将MCU数据串行输入到移位寄存器中,(传输数据方向为:高位->低位),在将移位寄存器中一字节数据传输给存储寄存器中并行输出;注意点:74HC595芯片传输数据是在上升沿时发送数据,传送时间延时时间为纳秒级别,这里我们用10us代替;

第二步:8*8点阵LED灯的阴极被MCU的P0端口控制,我们给P0端口写入0x00;在计算8*8点阵LED灯的阳极控制点亮八行八种状态,将八种状态存储到数组中方便使用;

第三步:在主函数中实现循环点亮;

代码示例:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
void Delay_10us(u16 us)//微秒延时函数:输入1大概延时时间为10us
{while(us--);
}
void Delay_ms(u16 ms) //毫秒延时函数:输入1大概延时时间为1ms
{u16 i,j;for(i=ms;i>0;i--){fot(j=110;i>0;j--){}}
}
sbit SER=P3^4;        //74HC595串行输入
sbit TRCLK=P3^5;      //74HC595存储寄存器时钟
sbit SRCLK=P3^6;      //74HC595移位寄存器时钟
#define LED_DZ P0     //宏定义LED点阵阴极端口void HC595_out(u8 temp)//函数封装:74HC595芯片IO口扩展输出
{u8 i=0;for(i=0;i<8;i++){SER=temp>>7;   //取最高位temp<<=1;	   //左移一位SRCLK=0;       //移位时钟为低电平Delay_10us(1); //延时10us(上升沿触发)SRCLK=1;       //移位时钟为高电平,一位数据发送完成Delay_10us(1);}TRCLK=0;           //存储时钟为低电平Delay_10us(1);     //延时:上升沿的过程TRCLK=1;           //存储时钟为高电平,一字节数据传输完成Delay_10us(1);
}
u8 LED_zl[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int main()															 
{	LED_DZ=0x00;while(1){u8 i=0;for(i=0;i>8;i++){HC595_out(LED_zl[i]);Delay_10us(50000);        //延时480msHC595_out(0x00);          //消影}}
}

74HC595芯片实现IO口扩展驱动8*8点阵LED灯循环点灯效果展示

74HC595芯片实现IO口扩展驱动8*8点阵LED灯


74HC138和74HC595区别

74HC138和74HC595是两种功能迥异的数字逻辑芯片,以下是它们的核心区别:

功能上的区别:

74HC138:3-8线译码器
将3位二进制输入(A0-A2)转换为8路互斥的低电平有效输出(Y0-Y7),实现“3选1”的译码功能。

74HC595:8位串入并出移位寄存器
将串行数据转换为并行输出,支持级联扩展,用于I/O口扩展或数据缓冲。

工作原理:

74HC138:
当使能引脚(E1=0, E2=0, E3=1)有效时,根据A0-A2的3位二进制输入,唯一选定一个输出引脚(如A0-A2=000时,Y0为低电平,其余为高电平)。
典型应用:地址译码、多路选择器、LED矩阵行驱动。

74HC595:
串行数据通过DS引脚输入,在移位时钟(SHCP)上升沿逐位移入8位移位寄存器,随后通过锁存时钟(STCP)上升沿将数据同步到输出寄存器,更新Q0-Q7的并行输出。
典型应用:数码管段选扩展、LED点阵列驱动、传感器数据缓冲。

(个人心得:74HC138和74HC595都是三个MCU的I/O引脚控制芯片输出8个脚,74HC138是在同一时刻选中8个引脚中其中一个引脚实现选择,74HC595是在同一时刻输出8个引脚信号实现控制)


制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919273.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919273.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919273.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

录音转文字,如何做到“快、准、狠“多格式通吃?

MP3、FLAC、M4A、OGG、WAV、MP4等多种常见音频格式&#xff0c;一键精准转成文字&#xff0c;让办公效率翻倍提升&#xff01;&#x1f525; 真实痛点场景&#xff1a;告别低效&#xff0c;迎接智能办公紧急会议纪要&#xff0c;争分夺秒&#xff01;上午10点刚结束一场跨部门脑…

【秋招】2025.08.16京东秋招机考真题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 京东 题目一:魔法水晶阵列能量优化 1️⃣:理解逆序对的变化规律,分析区间操作对逆序对的影响 2️⃣:选择后缀区间避免产生新的逆序对,只最大化消除的逆序对…

RocksDB 解密可逆哈希:BijectiveHash的设计奥秘

BijectiveHash&#xff08;双射哈希&#xff0c;即可逆哈希&#xff09;的设计精髓在于它借鉴了现代密码学和高性能哈希函数中的核心思想&#xff0c;但目标并非加密&#xff0c;而是实现一种无冲突、可逆的置换&#xff08;Permutation&#xff09;。可逆哈希是什么&#xff0…

05.用户和组管理命令

用户和组管理命令用户和组管理命令1. getent2. useradd3. usermod4. userdel5. id6. su7. passwd8. chage9. groupadd10. groupmod11. groupdel12. gpasswd13. groupmems用户和组管理命令 用户和组的主要配置文件 /etc/passwd&#xff1a;用户及其属性信息(名称、UID、主组ID…

go 多版本共存【goup + alias方案】

一、需求背景 以go1.21为主&#xff0c;临时可以快速切换到go1.23,且只有当前窗口生效 二、安装 安装 goup go install github.com/owenthereal/goup/cmd/gouplatest安装 go1.23 # 注意这里是安装新的sdk,如果你本地存在相同版本的话&#xff0c;应该保持统一用goup安装的 goup…

DR200差速移动机器人的多功能感知系统与多场景应用

DR200差速移动机器人平台是一款基于室内平地的差速转向移动机器人底盘&#xff0c;主要针对教育教学、超市移动促销、无人配送、室内仓储、室内巡检、物流搬运等行业。整套底盘采用了4个万向轮和双驱动轮差速驱动结构&#xff0c;间驱动轮带直流无刷伺服电机。整套结构采用了摆…

基于ZLMediaKit的大疆上云视频流服务集成方案

引言 随着无人机技术的快速发展&#xff0c;大疆&#xff08;DJI&#xff09;设备产生的高清视频流需要高效、低延迟的云端处理方案。传统基于SRS的视频流服务在多协议支持和并发性能上存在局限&#xff0c;而ZLMediaKit作为一款高性能流媒体服务框架&#xff0c;凭借其多协议支…

用 Python 实现一个“小型 ReAct 智能体”:思维链 + 工具调用 + 环境交互

在大语言模型&#xff08;LLM&#xff09;的应用开发中&#xff0c;如何让模型具备调用外部工具的能力是一个关键问题。我们不希望模型只是“生成答案”&#xff0c;而是能像一个智能体&#xff08;Agent&#xff09;一样&#xff0c;按照推理链条自主决定调用搜索、计算、或数…

集成电路学习:什么是SIFT尺度不变特征变换

SIFT:尺度不变特征变换 SIFT(尺度不变特征变换,Scale Invariant Feature Transform)是一种在图像处理和计算机视觉领域广泛应用的算法,由David Lowe在1999年提出。该算法能够在图像的不同尺度、旋转和光照条件下保持特征不变性,从而提取出独特的特征点,并用于图像…

短视频流量|基于Java+vue的短视频流量数据分析系统(源码+数据库+文档)

短视频流量数据分析系统 基于SprinBootvue的短视频流量数据分析系统 一、前言 二、系统设计 三、系统功能设计 系统功能模块 管理员功能模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff…

【无标题】卷轴屏手机前瞻:三星/京东方柔性屏耐久性测试进展

卷轴屏手机前瞻&#xff1a;三星/京东方柔性屏耐久性测试进展卷轴屏手机的产业化突破临近2025年全球柔性屏市场规模预计突破186亿美元&#xff0c;其中卷轴屏技术正从概念走向量产。三星显示近期宣布新一代柔性OLED面板通过50万次折叠认证&#xff0c;日均折叠200次可使用6年以…

Git 入门指南:核心概念与常用命令全解析

Git 入门指南&#xff1a;核心概念与常用命令全解析前言一、Git相关概念1.1 工作目录1.2 暂存区1.3 本地仓库1.3 远程仓库1.3.1 首次提交到远程仓库提示输入用户名密码1.3.2 解决方法二、Git常用命令2.1 配置命令2.1.1 查看当前 Git 配置的所有信息2.1.2 查看系统全局配置2.1.3…

悬赏任务网站源码多平台兼职赚钱搭建图解

功能详细说明 &#xff08;一&#xff09;登录与注册 1、登录&#xff1a;打开系统用户端&#xff0c;输入已注册的手机号和密码进行登录。 若为忘记密码&#xff0c;可通过 “找回密码” 功能&#xff0c;按提示验证身份后重置密码登录。 2、注册&#xff1a;点击 “注册” 按…

Node.js简介及安装

一、Nodejs简介 1、核心定义 Node.js 是一个基于 Chrome V8 引擎的开源、跨平台 JavaScript 运行时环境&#xff08;Runtime&#xff09;&#xff0c;用于在服务器端或本地运行 JavaScript 代码。它并非编程语言、库或框架&#xff0c;而是扩展了 JavaScript 的能力&#xff0…

KINGBASE集群日常维护管理命令总结

查看集群的状态 [kingbasenode1 bin]$ repmgr cluster show查看守护集群状态 [kingbasenode1 bin]$ repmgr service status查看集群的事件 [kingbasenode1 etc]$ repmgr cluster event查看集群流复制状态 esrep#select usename,application_name,client_addr,sync_state,state,…

GoLand 调参高手都在用的配置!续集:WebStorm 飞升后,Go 开发 IDE 性能炸裂的秘密

“为什么别人的 GoLand 运行 Go 项目丝滑流畅&#xff0c;而你的却频繁卡顿、编译转圈&#xff1f;秘密就藏在这个 goland64.exe.vmoptions文件里&#xff01;作为 IDEA/PyCharm/WebStorm 调优系列的续集&#xff0c;我把我压箱底的 ​GoLand 性能调优参数表​ 分享出来—>&…

48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径

ISBN号 ISBN号码_牛客题霸_牛客网 算法原理 模拟&#xff0c;根据题意模拟就可以了&#xff0c;注意一下余数为10的时候要特别判断一下是不是X就行了 代码 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java 泛型类型擦除

&#x1f4d6; 概述 本文档详细解释了 Flink 中 TypeInformation 的作用、原理和使用方法&#xff0c;帮助理解为什么 Flink 需要显式的类型信息。 &#x1f3af; 核心问题&#xff1a;Java 泛型类型擦除 什么是类型擦除&#xff1f; Java 在编译时会将泛型信息擦除&#xff0c…

从“写代码”到“定义需求”:AI编程工具如何重构软件开发的核心流程?

从“写代码”到“定义需求”&#xff1a;AI编程工具如何重构软件开发的核心流程&#xff1f; 软件开发的核心流程正在经历一场静默革命。十年前&#xff0c;开发者的日常被“写代码”填满——从变量定义到逻辑实现&#xff0c;每行代码都需要手动敲击&#xff1b;而今天&#x…

一颗TTS语音芯片给产品增加智能语音播报能力

​一颗TTS语音芯片给产品增加智能语音播报能力传统语音播报芯片可以设置一些固定的语音片段或者内容&#xff0c;但是对于现在各种创新产品层出不穷的时代&#xff0c;传统的语音播报芯片能力似乎有点不够用了。而TTS语音合成芯片&#xff0c;正在逐渐登上舞台中央。TTS语音合成…