当前位置: 首页 > 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;欢迎点赞…...

手机号查QQ号:3分钟解决信息断链的智能工具指南

手机号查QQ号&#xff1a;3分钟解决信息断链的智能工具指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记好友的QQ号而无法及时联系&#xff1f;或者在工作中需要验证客户联系方式却无从下手&#xff1f;手机号…...

nlp_gte_sentence-embedding_chinese-large实战案例:客服工单自动归类与聚类分析

nlp_gte_sentence-embedding_chinese-large实战案例&#xff1a;客服工单自动归类与聚类分析 1. 引言&#xff1a;客服工单处理的痛点与解决方案 每天处理成千上万的客服工单是什么体验&#xff1f;想象一下这样的场景&#xff1a;客服团队每天收到大量用户反馈&#xff0c;从…...

从数学建模到真实运维:如何用调度模型优化你校园里的共享单车?

从数学建模到真实运维&#xff1a;校园共享单车调度系统的工业级设计实践 清晨7点的校园东门&#xff0c;总能看到一群学生围着仅剩的几辆共享单车"抢车"的场景&#xff1b;而下午3点的体育馆停车点&#xff0c;却堆积着数十辆无人问津的车辆。这种供需错配现象背后&…...

零基础玩转通义千问3-Reranker:手把手教你搭建智能搜索排序系统

零基础玩转通义千问3-Reranker&#xff1a;手把手教你搭建智能搜索排序系统 1. 认识通义千问3-Reranker&#xff1a;你的智能搜索助手 想象一下&#xff0c;你在网上搜索"如何给树莓派安装Ubuntu Server"&#xff0c;搜索引擎返回了50个结果。前三条可能是广告&…...

MogFace人脸检测模型评测:对比传统方法,看看它强在哪里

MogFace人脸检测模型评测&#xff1a;对比传统方法&#xff0c;看看它强在哪里 1. 引言&#xff1a;从“找脸”的烦恼说起 你有没有试过在手机相册里&#xff0c;想快速找到所有包含某个朋友的合影&#xff1f;或者&#xff0c;在开发一个需要识别人脸的应用程序时&#xff0…...

简单三步:用Qwen3语义雷达,为你的网站添加智能搜索功能

简单三步&#xff1a;用Qwen3语义雷达&#xff0c;为你的网站添加智能搜索功能 1. 为什么需要语义搜索&#xff1f; 传统的网站搜索功能大多基于关键词匹配&#xff0c;这种技术存在明显局限。当用户搜索"如何解决电脑卡顿"时&#xff0c;如果知识库中只有"提…...

Python实现中国象棋AI对战【完整代码+算法解析】

1. 中国象棋AI对战系统设计思路 中国象棋AI对战系统的核心在于将传统规则转化为计算机可执行的逻辑&#xff0c;同时赋予AI"思考"能力。我最初尝试开发这个项目时&#xff0c;发现最大的挑战不是代码实现&#xff0c;而是如何让AI理解象棋的策略本质。经过多次迭代&a…...

为什么AI提示工程可持续发展需要“数据驱动”?提示工程架构师的决策逻辑

《数据驱动&#xff1a;AI提示工程可持续发展的底层逻辑——提示工程架构师的决策密码》 一、引言&#xff1a;从“碰运气”到“做科学”&#xff0c;提示工程的必经之路 你有没有过这样的经历&#xff1f; 为了让大语言模型&#xff08;LLM&#xff09;生成符合需求的内容&…...

如何通过铜钟音乐重拾纯粹听歌的乐趣:一个零干扰的Web音乐解决方案

如何通过铜钟音乐重拾纯粹听歌的乐趣&#xff1a;一个零干扰的Web音乐解决方案 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/G…...

工业相机图像获取:RAW 图像如何保存和显示,附海康Basler堡盟相机代码

工业相机RAW图像保存显示&#xff0c;海康/Basler/堡盟代码直接抄 阅读提示&#xff1a;本文偏向工业视觉入门实操&#xff0c;避开晦涩理论&#xff0c;聚焦RAW图像的保存、显示落地方法&#xff0c;附带三大主流工业相机品牌的实测代码&#xff0c;适合视觉工程师、调试新手快…...