基于STM32的595级联的Proteus仿真

文章目录

  • 一、595级联
    • 1.题目要求
    • 2.思路
    • 3.仿真图
      • 3.1 未仿真时
      • 3.2 模式A
      • 3.2 模式B
      • 3.3 故障模式
  • 二、总结


一、595级联

1.题目要求

STM32单片机,以及三个LED灯对应红黄绿灯,IIC的OLED显示屏,温湿度传感器DHT11,两个独立按键和两个595级联控制的数码管。

OLED显示屏显示内容如下:
(1)TEMP温度
(2)HUMI湿度
(3)MODE(当前倒计时模式,A,B二选一)
(4)CYZS穿衣指数(根据当前温度数值所处区间分析出来的一个值)

其中模式区分如下:
在这里插入图片描述

穿衣指数定义如下:
在这里插入图片描述
两个按键分别是模式切换按键和模拟故障按键

  1. A和B指的都是倒计时模式,A.B存在的意义是在于描述倒计时的“倒计时时间”的不同,模式切换是按key0,按下后会在一个循环完成后,从下一个循环开始会用另一个模式来
  2. 故障模式就是,按下key1令三个灯都亮,数码管显示88,再按一次key1恢复正常

2.思路

这里的数码管是淘宝买的,实际Proteus仿真里面刚好和这个一样的,所以我直接采用两个独立的7段数码管来模拟。

在这里插入图片描述
重点讲一下595芯片,其实之前的基于51单片机的点阵显示的proteus仿真(附源码)也有提到过了。

在这里插入图片描述

时序图:(这里的时序图和我找的引脚名称不一样,应该是不同厂家命名不一样而已,作用是一样的。)

在这里插入图片描述

真值表:
在这里插入图片描述
通过上面的时序图和真值表,我们知道它的工作原理是

  1. 通过DS数据输入引脚,将要传输的位数据输入到595上;
  2. 在SH_CP(也就是移位寄存器时钟输入)为上升沿的时候,将数据移入到74HC595的移位寄存器上,这里注意先送高位;
  3. 在ST_CP(也就是锁存器时钟输入)为上升沿的时候,将移位寄存器的数据输出到存储寄存器上,也就是输出端Q0~Q7。
  4. 当MR为高电平,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口,OE为使能端,低电平有效,当OE为低时,输出使能,为高关闭使能,并不影响其他输入端。

一句话概括就是在正常使用时ST_CP为低电平, /OE为低电平。从DS每输入一位数据,串行输入时钟SH_CP上升沿有效一次,直到八位数据输入完毕,输出时钟ST_CP上升沿有效一次,此时,输入的数据就被送到了输出端。

级联的具体连接方式是将上一个74HC595的Q7’输出端口连接到下一个74HC595的串行输入端口DS上,这样就可以通过移位寄存器时钟和锁存器将数据从一个74HC595移位到下一个74HC595,并最终输出到扩展的输出端口上。

在这里插入图片描述

3.仿真图

3.1 未仿真时

想上传仿真的视频,但是视频导进去一直进度为0,之前还可以的,现在不行了。

在这里插入图片描述

3.2 模式A

在这里插入图片描述

3.2 模式B

在这里插入图片描述

3.3 故障模式

在这里插入图片描述


二、总结

今天主要讲了基于STM32的595级联的Proteus仿真。

感谢你的观看!

有需要定制proteus仿真可以联系,谢谢

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习的实用性探究:虚幻还是现实?

深度学习的实用性探究:虚幻还是现实? 深度学习作为人工智能领域的一个热点,已经在学术和工业界引起了广泛的关注。尽管深度学习技术显示出惊人的性能和潜力,但有时它们给人的感觉是“虚”的,或许是因为它们的抽象性和…

react修改本地运行项目的端口

一、描述 如果你想让项目在你想要的端口打开的话,就需要进行设置 二、代码 设置一下pages.json文件就可以了,如下: 如果想打开项目不需要点击下面的链接地址,让他运行npm run dev之后自己直接打开到浏览器的话,在后…

猫头虎分享已解决Bug || Uncaught TypeError: Cannot set property ‘innerHTML‘ of null**

猫头虎分享已解决Bug || Uncaught TypeError: Cannot set property ‘innerHTML’ of null** 原创作者: 猫头虎 作者微信号: Libin9iOak 作者公众号: 猫头虎技术团队 更新日期: 2024年6月6日 博主猫头虎的技术世界 &#x…

盘点2024年5月Sui生态发展,了解Sui近期成长历程!

2024年5月是Sui的第一个生日月,Sui迎来了它的上线一周年纪念日。在过去的一年中Sui在技术进步与创新、生态系统的扩展、社区发展与合作伙伴关系以及重大项目和应用推出方面取得重要进展,展示了其作为下一代区块链平台的潜力。 以下是Sui的近期成长历程集…

一、Electron 环境初步搭建

新建一个文件夹,然后进行 npm init -y 进行初始化,然后我们在进行 npm i electron --save-dev , 此时我们按照官网的教程进行一个初步的搭建, 1.在 package.json 文件进行修改 {"name": "electron-ui","version…

pyqt QlineEdit内部增加按钮方法

按钮放在QlineEdit内部,界面更紧凑,体现了按钮和文本框的强关联。 def addButton(self,lineEdit):btn QtWidgets.QPushButton("")icon1 QtGui.QIcon()icon1.addPixmap(QtGui.QPixmap(":/image/images/th.png"), QtGui.QIcon.Norm…

同盾中文点选验证码识别方法

中文验证码一直是识别的难题,首先他分类的种类很多,常见中文都有3500个,而且一般中文验证码都会有变形,导致每一个文字都需要大量训练样本。假设每一个汉字样本需要100个,100350035万个样本,所以标记的样本…

DeepSORT(目标跟踪算法)中的数值表格与调参的关系

DeepSORT(目标跟踪算法)中的数值表格与调参的关系 flyfish DeepSORT(目标跟踪算法)中的马氏距离详解(很详细) DeepSORT(目标跟踪算法)中 可以设置阈值进行异常检测或目标跟踪的原…

【最新鸿蒙应用开发】——类Web开发范式1——生命周期

兼容JS的类Web开发范式 类Web命令式开发的生命周期 1. 应用生命周期 1.1. app.js 每个应用可以在app.js自定义应用级生命周期的实现逻辑,包括: onCreate:在应用生成时被调用的生命周期函数。 onDestroy:在应用销毁时被调用的生…

使用 C# 学习面向对象编程:第 2 部分

C# 类属性简介 属性在面向对象编程中起着至关重要的作用。它们允许我们从类外部访问类的私有变量。在类中使用私有变量是很好的。属性看起来像变量和方法的组合。属性有部分:“get 和 set”方法。get 方法应该返回变量,而 set 方法应该为其赋值。 步骤…

技术前沿 |【大模型InstructBLIP进行指令微调】

大模型InstructBLIP进行指令微调 一、引言二、InstructBLIP模型介绍三、指令微调训练通用视觉语言模型的应用潜力四、InstructBLIP的指令微调训练步骤五、实验结果与讨论六、结论与展望 一、引言 随着人工智能技术的快速发展,视觉语言模型(Vision-Langu…

【Java】解决Java报错:ArrayIndexOutOfBoundsException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 直接访问数组越界2.2 循环中的索引错误2.3 多维数组的错误访问 3. 解决方案3.1 检查数组长度3.2 正确使用循环3.3 多维数组的正确访问 4. 预防措施4.1 使用增强型 for 循环4.2 编写防御性代码4.3 单元测试 结语 引言 在Java编程…

C++ volatile实现原子性读写

__declspec(selectany) 支持h文件定义全局变量,重复包含不报错 int i 2; //变量i还是不用加volatile修饰 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) #define READ_ONCE(x) ACCESS_ONCE(x) #define WRITE_ONCE(x, val) ({ ACCESS_ONCE(x) (va…

让GNSSRTK不再难【第一天】

第1讲 GNSS系统组成以及应用 北斗导航科普动画_哔哩哔哩_bilibili 1.1 GNSS系统 1.1.1 基本概念 全球卫星导航系统(Global Navigation Satellite System, GNSS),是能在地球表面或近地空间的任何地点为用户提供全天候的三维坐标、速度以及…

redis常用设计模式

Redis常用的设计模式分为读,写,读写三种 一、概要说明 读操作 Read Through Pattern 读穿透 写操作 以Redis统一视图为准:先更新缓存,后更新数据库。 Write Through Pattern 直写模式(首先将数据写入缓存&#xf…

C语言 | Leetcode C语言题解之第135题分发糖果

题目&#xff1a; 题解&#xff1a; int candy(int* ratings, int ratingsSize) {int ret 1;int inc 1, dec 0, pre 1;for (int i 1; i < ratingsSize; i) {if (ratings[i] > ratings[i - 1]) {dec 0;pre ratings[i] ratings[i - 1] ? 1 : pre 1;ret pre;inc…

表的设计与查询

目录 一、表的设计 1.第一范式&#xff08;一对一&#xff09; 定义&#xff1a; 示例&#xff1a; 2.第二范式&#xff08;一对多&#xff09; 定义&#xff1a; 要求&#xff1a; 示例&#xff1a; 3.第三范式&#xff08;多对多&#xff09; 定义&#xff1a; 要求…

MySQL中的数据库约束

目录 导读&#xff1a; 约束类型 1、not null&#xff08;不能为空&#xff09; 2、unique(唯一) 3、default(默认值约束) 4、primary key(唯一)与unique 相同点&#xff1a; 不同点&#xff1a; auto_increment&#xff1a; 5、foreign key(外键) 语法形式&#xff…

在WSL2下配置Pytorch(Linux+Anaconda+PyTorch-GPU)

之前使用过双系统、虚拟机的ubunutu 效果都不是很好&#xff0c;要么切换系统太麻烦&#xff0c;要么太卡顿 最近在尝试WSL子系统&#xff0c;没有想到还是有很多坑 记录一下配置的过程 一、NVIDIA显卡的安装 因为WSL和Windows的显卡驱动不能互通&#xff0c;所以在子系统上需…

在iPhone上恢复删除Safari历史记录的方法[2024]

您是否正在寻找恢复 iPhone 上已删除的 Safari 历史记录的最佳方法&#xff1f;好吧&#xff0c;这篇文章提供了 4 种在有/无备份的情况下恢复 iPhone 上已删除的 Safari 历史记录的最佳方法。现在按照分步指南进行操作。 iPhone 上的 Safari 历史记录会被永久删除吗&#xff1…