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

【嵌入式原理设计】实验三:带报警功能的数字电压表设计

目录

一、实验目的 

二、实验环境

三、实验内容

四、实验记录及处理

五、实验小结

六、成果文件提取链接


一、实验目的 

        熟悉和掌握A/D转换及4位数码管、摇杆、蜂鸣器的联合工作方式

二、实验环境

        Win10+ESP32实验开发板

三、实验内容

        1、用摇杆传感器改变接口电压;

        2、在4位数码管上显示变化的电压,数值显示要求保留3位小数;

        3、当电压值小于2V,有报警提示。

四、实验记录及处理

  1. 器件连接

带报警功能的数字电压表设计:

设备名称

设备管脚

ESP32管脚

四位数码管

SCLK=16;

RCLK=4;

DIO=0;

SCLK=16;

RCLK=4;

DIO=0;

摇杆

#define RSx 25

#define RSx 25

LED小灯

#define LEDD 27

#define LEDD 27

  1. 实物连接图(拍照,控制图片大小,能看清即可)及程序运行结果描述

实物连接好的图片如下:

操作摇杆,端口数据输出显示器与数码管上显示的电压数值一致,

数码管上的数字会随摇杆x轴的移动而变化:x值增大,电压值也会相应增大;x值减小,电压值也会相应减小

其中当数码管上电压值小于2V时,有报警提示,连接的小灯会亮起。

3、程序控制代码

//部分代码如下,完整代码请查看附件
void LED4_Display(void){unsigned char *led_table;unsigned char i;//第一位led_table=LED_0F1+LED[0];i=*led_table;LED_OUT(i);LED_OUT(0x08);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第二位led_table=LED_0F+LED[1];i=*led_table;LED_OUT(i);LED_OUT(0x04);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第三位led_table=LED_0F+LED[2];i=*led_table;LED_OUT(i);LED_OUT(0x02);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);//第四位led_table=LED_0F+LED[3];i=*led_table;LED_OUT(i);LED_OUT(0x01);digitalWrite(RCLK,LOW);digitalWrite(RCLK,HIGH);delay(5);}void LED_OUT(unsigned char X) {unsigned char i;for (i = 8; i >= 1; i--) {if (X & 0x80) { // 取出最高位digitalWrite(DIO, HIGH);} else {digitalWrite(DIO, LOW);}X <<= 1;  // 左移一位,让次高位来到最高位digitalWrite(SCLK, LOW);  // SCK是上升沿的时候要把数据写入digitalWrite(SCLK, HIGH);}
}

五、实验小结

        掌握了四位数码管的连接方式,学会了如何通过编程控制数码管显示数字,并实现了保留三位小数的电压值显示。定义一个带小数点的数字字模数组,第一位需要小数表示,显示第1位数+小数点led_table = LED_0F1 + LED[0]

六、成果文件提取链接

链接:https://pan.baidu.com/s/1MyEzwT20xN4kDZvbtYzbZg?pwd=n01n 
提取码:n01n 

相关文章:

【嵌入式原理设计】实验三:带报警功能的数字电压表设计

目录 一、实验目的 二、实验环境 三、实验内容 四、实验记录及处理 五、实验小结 六、成果文件提取链接 一、实验目的 熟悉和掌握A/D转换及4位数码管、摇杆、蜂鸣器的联合工作方式 二、实验环境 Win10ESP32实验开发板 三、实验内容 1、用摇杆传感器改变接口电压&…...

C#中的接口的使用

定义接口 public interface IMyInterface {int MyProperty { get; set; }void MyMethod(); } 实现类 internal class MyClass : IMyInterface {public int MyProperty { get; set; }public void MyMethod(){Console.WriteLine("MyMethod is called");} } 目录结构…...

记一次真实项目的性能问题诊断、优化(阿里云redis分片带宽限制问题)过程

前段时间&#xff0c;接到某项目的压测需求。项目所有服务及中间件&#xff08;redis、kafka&#xff09;、pg库全部使用的阿里云。 压测工具&#xff1a;jmeter(分布式部署)&#xff0c;3组负载机&#xff08;每组1台主控、10台linux 负载机&#xff09; 问题现象&#xff1…...

LeetCode - 4. 寻找两个正序数组的中位数

. - 力扣&#xff08;LeetCode&#xff09; 题目 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1&#xff1a; 输入&#xff1a;nums1 …...

算法设计与分析——动态规划

1.动态规划基础 1.1动态规划的基本思想 动态规划建立在最优原则的基础上&#xff0c;在每一步决策上列出可能的局部解&#xff0c;按某些条件舍弃不能得到最优解的局部解&#xff0c;通过逐层筛选减少计算量。每一步都经过筛选&#xff0c;以每一步的最优性来保证全局的最优性…...

【实战篇】GEO是什么?还可以定义新的数据类型吗?

背景 之前&#xff0c;我们学习了 Redis 的 5 大基本数据类型&#xff1a;String、List、Hash、Set 和 Sorted Set&#xff0c;它们可以满足大多数的数据存储需求&#xff0c;但是在面对海量数据统计时&#xff0c;它们的内存开销很大&#xff0c;而且对于一些特殊的场景&…...

SpringBoot最佳实践之 - 项目中统一记录正常和异常日志

1. 前言 此篇博客是本人在实际项目开发工作中的一些总结和感悟。是在特定需求背景下&#xff0c;针对项目中统一记录日志(包括正常和错误日志)需求的实现方式之一&#xff0c;并不是普适的记录日志的解决方案。所以阅读本篇博客的朋友&#xff0c;可以参考此篇博客中记录日志的…...

【Flutter】状态管理:高级状态管理 (Riverpod, BLoC)

当项目变得更加复杂时&#xff0c;简单的状态管理方式&#xff08;如 setState() 或 Provider&#xff09;可能不足以有效地处理应用中状态的变化和业务逻辑的管理。在这种情况下&#xff0c;高级状态管理框架&#xff0c;如 Riverpod 和 BLoC&#xff0c;可以提供更强大的工具…...

OAK相机的RGB-D彩色相机去畸变做对齐

▌低畸变标准镜头的OAK相机RGB-D对齐的方法 OAK相机内置的RGB-D管道会自动将深度图和RGB图对齐。其思想是将深度图像中的每个像素与彩色图像中对应的相应像素对齐。产生的RGB-D图像可以用于OAK内置的图像识别模型将识别到的2D物体自动映射到三维空间中去&#xff0c;或者产生的…...

smartctl硬盘检查工具

一、smartctl工具简介   Smartmontools是一种硬盘检测工具&#xff0c;通过控制和管理硬盘的SMART(Self Monitoring Analysis and Reporting Technology)&#xff0c;自动检测分析及报告技术)技术来实现的&#xff0c;SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘…...

清空MySQL数据表

要清空 MySQL 数据表&#xff0c;您可以使用 TRUNCATE 或 DELETE 命令 使用 TRUNCATE 命令 TRUNCATE 命令用于删除表中的所有数据&#xff0c;并重置自增 ID&#xff08;如果存在&#xff09;&#xff1a; TRUNCATE TABLE table_name;将 table_name 替换为您要清空的表的名称…...

2024年妈杯MathorCup大数据竞赛A题超详细解题思路

2024年妈杯大数据竞赛初赛整体难度约为0.6个国赛。A题为台风中心路径相关问题&#xff0c;为评价预测问题&#xff1b;B题为库存和销量的预测优化问题。B题难度稍大于A题&#xff0c;可以根据自己队伍情况进行选择。26日早六点之前发布AB两题相关解题代码论文。 下面为大家带来…...

Kafka系列之:Kafka集群磁盘条带划分和Kafka集群磁盘扩容详细方案

Kafka系列之:Kafka集群磁盘条带划分和Kafka集群磁盘扩容详细方案 一、lsblk命令二、Kafka节点磁盘条带化方案一三、Kafka节点磁盘条带化方案二四、理解逻辑区块LE五、查看kafka节点磁盘条带划分情况六、Kafka节点磁盘扩容一、lsblk命令 lsblk命令用于列出块设备的信息,包括磁…...

【LeetCode】修炼之路-0007- Reverse Integer (整数反转)【python】

题目 Reverse Integer Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0. Assume the environment does not allow you to store 64-b…...

【Flutter】页面布局:线性布局(Row 和 Column)

在 Flutter 中&#xff0c;布局&#xff08;Layout&#xff09;是应用开发的核心之一。通过布局组件&#xff0c;开发者可以定义应用中的控件如何在屏幕上排列。Row 和 Column 是 Flutter 中最常用的两种线性布局方式&#xff0c;用于水平和垂直排列子组件。在本教程中&#xf…...

C语言巨难题:执行操作可获得的最大总奖励 I(C语言版)

1.题目&#xff1a; 给你一个整数数组 rewardValues&#xff0c;长度为 n&#xff0c;代表奖励的值。 最初&#xff0c;你的总奖励 x 为 0&#xff0c;所有下标都是 未标记 的。你可以执行以下操作 任意次 &#xff1a; 从区间 [0, n - 1] 中选择一个 未标记 的下标 i。如果…...

【力扣】GO解决子序列相关问题

文章目录 一、引言二、动态规划方法论深度提炼子序列问题的通用解法模式 三、通用方法论应用示例&#xff1a;最长递增子序列&#xff08;LeetCode题目300&#xff09;Go 语言代码实现 四、最长连续递增序列&#xff08;LeetCode题目674&#xff09;Go 语言代码实现 五、最长重…...

Ubuntu20.04安装VM tools并实现主机和虚拟机之间文件夹共享

1、Ubuntu20.04安装VM tools 参考这个&#xff0c;很详细&#xff1a;Ubuntu 20.04 安装 VMwareTools 教程 2、实现主机与VMware虚拟机共享文件夹 设置共享文件夹参考&#xff1a;windows和虚拟机互传文件的三种方式 挂载操作参考&#xff1a;主机与VMware虚拟机共享文件夹&…...

Linux 学习笔记(十七)—— 文件系统

终极目标&#xff1a;理解 inode 和 软硬连接&#xff1b; 文件系统&#xff1a;Ext2; 文件 文件内容 文件属性; ——> 磁盘上存储的文件 存储的文件内容 存储的文件属性&#xff1b; Linux系统中&#xff1a;文件内容使用数据块存储&#xff0c;文件属性使用inode(固定…...

【计算机网络 - 基础问题】每日 3 题(五十八)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…...

联邦学习与RAG融合:构建隐私保护的分布式智能问答系统

1. 项目概述&#xff1a;当联邦学习遇上检索增强生成最近在折腾一个挺有意思的开源项目&#xff0c;叫fed-rag&#xff0c;来自 Vector Institute。光看名字&#xff0c;老司机们大概就能猜出个七七八八了&#xff1a;这玩意儿是把联邦学习和检索增强生成给揉到一块儿去了。我花…...

三星48层3D V-NAND深度拆解:从电荷陷阱架构到存储密度革命

1. 初探三星48层3D V-NAND&#xff1a;一次深度拆解与工艺解析作为一名长期关注半导体存储技术的从业者&#xff0c;每次拿到业界巨头的新品进行物理层面的拆解分析&#xff0c;都像是一次充满惊喜的“寻宝”之旅。2016年初&#xff0c;当三星将其早在2015年8月就已预告的256Gb…...

MSP 盈利、留客、提口碑,核心就盯这12个 KPI

很多 MSP&#xff08;托管服务提供商&#xff09;都会陷入一个误区&#xff0c;手里握着一堆散落在各个看板的运营数据&#xff0c;却始终搞不清哪些指标能真正帮自己提升服务质量、拉高利润、留住客户。忙忙碌碌做了一堆报表&#xff0c;最终还是凭感觉做决策&#xff0c;业务…...

superpowers skill 3.1: using-git-worktrees

智能体工作流 安装 $ npx skills add https://github.com/obra/superpowers --skill using-git-worktrees摘要 具有智能目录选择和安全验证的隔离 Git 工作树。 通过检查现有目录、CLAUDE.md 偏好设置或询问用户来自动检测工作树目录位置&#xff1b;支持项目本地&#xff…...

基于MCP协议构建AI助手业务工具适配器:从原理到实践

1. 项目概述&#xff1a;用MCP协议为AI助手装上“业务之眼”如果你和我一样&#xff0c;日常开发中需要频繁地在Stripe看支付数据、在Sentry查线上错误、在Notion里翻文档、在Linear跟进任务状态&#xff0c;那你一定懂那种在十几个浏览器标签页和不同SaaS平台间反复横跳的疲惫…...

从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)

从ENVI SARscape到SNAP&#xff1a;哨兵1 GRD数据预处理全流程迁移实战 当雷达遥感领域的工具生态逐渐向开源化倾斜&#xff0c;许多长期依赖ENVI SARscape的研究者开始面临工具迁移的挑战。本文将聚焦哨兵1号GRD数据的预处理流程&#xff0c;为需要从商业软件转向开源工具的用…...

Python 爬虫数据处理:重复页面数据智能合并去重

前言 在规模化 Python 爬虫采集项目中&#xff0c;重复页面数据是高频出现的核心问题&#xff0c;源于站点分页逻辑错乱、镜像页面分发、动态接口返回冗余数据、多入口同源页面采集等多重因素。重复数据若不做处理&#xff0c;不仅会造成数据库存储冗余、占用服务器资源&#…...

AI搜索优化效果哪家好

传统行业获客越来越难&#xff0c;价格战打得头破血流&#xff0c;这是过去三年我听得最多的抱怨。但就在上个月&#xff0c;我用一个完全不同的方法&#xff0c;让公司的获客成本从单次300元降到了不到30元。秘密就在AI搜索优化&#xff0c;而这30天的实测&#xff0c;让我对市…...

GitHub加速终极指南:3步让你的下载速度提升10倍!

GitHub加速终极指南&#xff1a;3步让你的下载速度提升10倍&#xff01; 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为Git…...

AI时代工程师的超能力进化

好的&#xff0c;这是一篇关于AI时代工程师能力进化的技术文章大纲&#xff1a; 标题&#xff1a; AI时代工程师的“超能力”进化论&#xff1a;从工具使用者到智能架构师 导言&#xff1a; 简述AI技术的迅猛发展及其对各行业的深刻影响。提出问题&#xff1a;在AI成为强大“…...