74HC595芯片验证

目录

  • 0x00 74595芯片简介
  • 0x01 实现原理

0x00 74595芯片简介

74595芯片有很多种封装,不管是贴片的还是直插式的,它们的引脚定义都如下图所示:
在这里插入图片描述

其中 :

  • Q0-Q7为并行数据输出口,可以输出高低电平。
  • OE 为使能引脚,低电平有效
  • DS 为串行数据输入引脚,也称SER,也就是你用于输入数据的引脚
  • MR为复位引脚,将其拉低可以清空数据
  • STCP在上升沿时,数据从移位寄存器转存到存储寄存器
  • SHCP在上升沿时,数据移位,并且可以接收新的数据(从DS引脚输入)
  • Q7S为串行数据输出引脚,这个引脚可以用于级联其他的74595芯片。

其工作原理为,74595内部有两个8位的寄存器,其中一个用于存储,一个用于移位输入新的数据,74595将根据用于存储的8位寄存器内容,8个引脚按位依次输出对应的电平值。

0x01 实现原理

以下将介绍如何编写函数向74595发送一个字节的数据,如果需要控制两个74595芯片,将这个函数调用两次即可。

实现的原理都在代码之中,结合引脚介绍即可看懂

void SendTo595(uint8_t byteData)
{int i=0;uint8_t SER;for(;i<8;i++){//判断最高位数据是 0 或 1SER = (byteData>>7) & 0x01; if(SER)gpio_bit_set(GPIO_PORT_SER,GPIO_PIN_SER);elsegpio_bit_reset(GPIO_PORT_SER,GPIO_PIN_SER);byteData= byteData<<1;      //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期gpio_bit_set(GPIO_PORT_SCK,GPIO_PIN_SCK);/delay_1us(5);gpio_bit_reset(GPIO_PORT_SCK,GPIO_PIN_SCK);//变为低电平,为下次准备}/*位移寄存器数据准备完毕,转移到存储寄存器*/ //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期gpio_bit_set(GPIO_PORT_RCK,GPIO_PIN_RCK);delay_1us(5);gpio_bit_reset(GPIO_PORT_RCK,GPIO_PIN_RCK);
}

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

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

相关文章

SpringBoot3集成MyBatisPlus

介绍 使用SpringBoot3集成MyBatisPlus&#xff0c;进行项目开发。这里分XX进行整合。 第一步&#xff1a;创建SpringBoot3项目 创建项目时选择MySQL和Web的依赖。作者在这里使用的SpringBoot版本是3.2.4。 第二步&#xff1a;添加MybatisPlus相关依赖 <!--mybatis-plus…

Linux 常用命令之 split

概述 在Linux系统中&#xff0c;split是一个非常实用的命令行工具&#xff0c;用于将一个大文件分割成多个小文件。这对于处理大型日志文件或备份大文件时非常有用。split命令提供了多种选项&#xff0c;允许用户根据文件大小或行数来分割文件。 一、split命令的基本用法 sp…

MySQL之高可用性和应用层优化(一)

高可用性 故障转移和故障恢复 在应用中处理故障转移 有时候让应用来处理故障转移会更加简单或者更加灵活。例如&#xff0c;如果应用遇到一个错误&#xff0c;这个错误外部观察者正常情况下是无法察觉的&#xff0c;例如关于数据库损坏的错误日志信息&#xff0c;那么应用可…

解决mybastis-plus加入逻辑删除SQL语句自动拼接未删除的问题

配置逻辑删除 在bootstrap.yaml中加入逻辑删除配置 mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: true # 逻辑已删除值(默认为 1)logic-not-delete-value: …

Redis学习(12)|使用Redis在Spring Boot中实现分布式锁

文章目录 使用场景优缺点优点缺点 注意事项实现步骤1. 添加依赖2. 配置Redis连接3. 实现分布式锁逻辑3.1 创建Redis配置类3.2 创建RedisLock类3.3 使用RedisLock实现分布式锁 最佳实践 Hello大家好&#xff0c;我是阿月&#xff0c;坚持学习&#xff0c;老年痴呆追不上我&#…

Hugging Face发布重量级版本:Transformer 4.42

Hugging Face 宣布发布Transformer 4.42&#xff0c;该版本为流行的机器学习库带来了许多新功能和增强功能。此版本引入了几个高级模型&#xff0c;支持新工具和检索增强生成 &#xff08;RAG&#xff09;&#xff0c;提供 GGUF 微调&#xff0c;并整合了量化的 KV 缓存&#x…

基于协同过滤的航空票务推荐系统的设计与实现(飞机票推荐系统)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Android Studio 解决AAPT: error: file failed to compile

1.找到项目下的build.gradle 2.在android语块中添加下面代码 aaptOptions.cruncherEnabled false aaptOptions.useNewCruncher false 12

【数据结构】栈和队列-相互实现OJ题

前言&#xff1a; 本题目是关于栈和队列的OJ题目&#xff0c;需对栈和队列有一定了解再进行做题&#xff0c;若不了解可以根据我之前这篇文章进行学习&#xff1a;【数据结构】栈和队列-CSDN博客,题中需要的栈和队列的实现也在该文章中有源代码 目录 前言&#xff1a; 一.用…

探索WebKit的Flexbox奇境:CSS Flexbox支持全解析

探索WebKit的Flexbox奇境&#xff1a;CSS Flexbox支持全解析 在现代网页设计中&#xff0c;响应式布局的需求日益增长&#xff0c;CSS Flexbox作为布局模式的一个突破性进展&#xff0c;提供了一种更加高效和灵活的方式来设计复杂的用户界面。WebKit&#xff0c;作为众多流行浏…

在Ubuntu 16.04上安装和配置Nextcloud的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Nextcloud 是 ownCloud 的一个分支&#xff0c;是一个文件共享服务器&#xff0c;允许您将个人内容&#xff08;如文档和图片&…

怎样将word默认Microsoft Office,而不是WPS

设置——>应用——>默认应用——>选择"word"——>将doc和docx都选择Microsoft Word即可

面试题-Spring家族与SpringIOC

1.spring家族的介绍 Spring简单图&#xff1a; 2.IOC原理 IOC就是原先代码里需要开发者实现对象的创建和关系依赖&#xff0c;反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。 依赖注入的方式&#xff1a; Setter&#xff1a;实现特定属性的public sette…

酱酒特点标准术语

酱酒的独特风味可以通过一系列专业的标准术语进行描绘&#xff0c;这些术语不仅包括了酱酒的香气和口感&#xff0c;还涵盖了对酱酒的深度品鉴知识。以下是酱酒亮哥收集的一些关键的酱酒特性标准术语&#xff1a; 酱香显著&#xff1a;这是酱香型白酒的香气特征&#xff0c;表…

Evented PLEG: iSulad 稳态 CPU 利用率降低30%的关键特性

背景 容器技术在不断发展的过程中&#xff0c;已被广泛应用于多种场景。OpenAtom openEuler&#xff08;简称"openEuler"&#xff09; 社区容器引擎项目 iSulad[1]面向 CT、IT 领域的不同需求而生&#xff0c;它具有轻量级、高性能的特点&#xff0c;可以在资源受限…

[C++11] noexcept 完整解析

说明&#xff1a;noexcept是C11标准引入的一个关键字&#xff0c;用于指示一个函数是否被保证不会抛出异常。如果但从设计角度看会感觉很奇怪&#xff0c;明明是有问题才抛出异常&#xff0c;那为什么还是在某些时候禁止抛异常呢&#xff1f;接下来我们了解下C11 为什么引入了 …

高性能LDO电路设计,有配套文档

内容&#xff1a; 1、电路文件&#xff08;有仿真状态&#xff09;和PDK&#xff08;TSMC180&#xff09; 2、配套仿真结果文档讲解6页 3、参考资料三篇 指标&#xff1a; LDO 温度系数1.09ppm LDO 环路增益在 64.3dB&#xff0c;相位裕度在 66&#xff0c;系统稳定。 LDO 最大…

【问题】升级指定conda虚拟环境的python到指定版本

1 背景 当前conda环境的名字为python38,进入环境python38命令如下: conda activate python38 2 升级python到3.10版本 conda install python=3.10 3 查看python版本 conda list -n python38 python

技术派Spring事件监听机制及原理

Spring事件监听机制是Spring框架中的一种重要技术&#xff0c;允许组件之间进行松耦合通信。通过使用事件监听机制&#xff0c;应用程序的各个组件可以在其他组件不直接引用的情况下&#xff0c;相互发送和接受消息。 需求 在技术派中有这样一个需求&#xff0c;当发布文章或…

Linux驱动入门-最简单字符设备驱动

一、字符设备驱动概念 1. 什么是字符设备驱动&#xff1f; 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;按字节流进行读写操作&#xff0c;数据读写有先后顺序。常见的字符设备包括LED灯、按键、IIC、SPI、LCD等。字符设备驱动就是为这些设备编写的驱动程序。 …