当前位置: 首页 > 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 

http://www.lryc.cn/news/469390.html

相关文章:

  • C#中的接口的使用
  • 记一次真实项目的性能问题诊断、优化(阿里云redis分片带宽限制问题)过程
  • LeetCode - 4. 寻找两个正序数组的中位数
  • 算法设计与分析——动态规划
  • 【实战篇】GEO是什么?还可以定义新的数据类型吗?
  • SpringBoot最佳实践之 - 项目中统一记录正常和异常日志
  • 【Flutter】状态管理:高级状态管理 (Riverpod, BLoC)
  • OAK相机的RGB-D彩色相机去畸变做对齐
  • smartctl硬盘检查工具
  • 清空MySQL数据表
  • 2024年妈杯MathorCup大数据竞赛A题超详细解题思路
  • Kafka系列之:Kafka集群磁盘条带划分和Kafka集群磁盘扩容详细方案
  • 【LeetCode】修炼之路-0007- Reverse Integer (整数反转)【python】
  • 【Flutter】页面布局:线性布局(Row 和 Column)
  • C语言巨难题:执行操作可获得的最大总奖励 I(C语言版)
  • 【力扣】GO解决子序列相关问题
  • Ubuntu20.04安装VM tools并实现主机和虚拟机之间文件夹共享
  • Linux 学习笔记(十七)—— 文件系统
  • 【计算机网络 - 基础问题】每日 3 题(五十八)
  • Netty入门基础:IO模型中BIO\NIO概念及区别【附演示代码】
  • vue2 使用环境变量
  • 数据预处理
  • django宠物领养管理系统-计算机毕业设计源码26858
  • 使用TeamViewer远程局域网内的两台电脑
  • GUI简介、Swing的常用组件、java程序的运行过程、class文件、JAR、runable_jar、双括号初始化
  • @Autowired和@Resource和getBean()区别
  • Merlion笔记(四):添加一个新的预测模型
  • 【论文阅读】ESRGAN
  • 电脑异常情况总结
  • [项目详解][boost搜索引擎#1] 概述 | 去标签 | 数据清洗 | scp