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

51单片机学习笔记_13 ADC

ADC

使得调节开发板上的电位器时,数码管上能够显示 AD 模块 采集电位器的电压值且随之变化。

开发板上有三个应用:光敏电阻,热敏电阻,电位器。

一般 AD 转换有多个输入,提高使用效率。

image-20230327170005984

ADC 通过地址锁存与译码判断采用哪个输入。

image-20230327172256586

运算放大器,可以作为电压比较器、同相反相放大器、电压跟随器

T 型电阻网络 DA 转换器:

image-20230327195138979

低通滤波器:输入是有直交流两个分量的,可以通过低通滤波器提取出直流。电压跟随器让驱动能力增加。

image-20230327195154405

da 简单些,因为d值是固定的,根据d调整a即可。

ad 怎么判断电压大小?我们用一个电压值和给定电压作比较,看大于还是小于,逐渐逼近来找近似值。

分辨率:精细程度。比如8位的 ad 可以把 5v 转换到 0~255 范围。

转换速度:最大采样/建立频率。

XPT2046 采用 SPI,的时序在上升沿输入,下降沿输出,可实现输入再输出。

image-20230327213950578

采用单端模式(触摸屏查分会更好一些)。

PD1=1 采用内部参考电压,内部电压为 2.5v,我们知道adc 映射范围是 0~5v,所以1采用内部电压不如0采用5v的外部电压。

A 地址配置:

image-20230327220710512

VBAT:电池电压。

AUX:辅助电压。

XP YP:XY 正极。

读取指令并 ad 转化:

#define XPT2046_XP_8 0x9C    // 1001 1100
#define XPT2046_YP_8 0xDC    // 1101 1100
#define XPT2046_VBAT_8 0xAC  // 1010 1100
#define XPT2046_AUX_8 0xEC   // 1110 1100
#define XPT2046_XP_12 0x94   // 1001 0100
#define XPT2046_YP_12 0xD4   // 1101 0100
#define XPT2046_VBAT_12 0xA4 // 1010 0100
#define XPT2046_AUX_12 0xE4  // 1110 0100unsigned int XPT2046_ReadAD(unsigned char command)
{unsigned char i;unsigned char temp=command;unsigned int ADValue = 0;XPT2046_DCLK = 0;XPT2046_CS = 0;for (i = 0; i < 8; i++){XPT2046_DIN = temp >> 7;temp <<= 1;XPT2046_DCLK = 1;XPT2046_DCLK = 0;}for (i = 0; i < 12; i++){XPT2046_DCLK = 1;XPT2046_DCLK = 0;if (XPT2046_DOUT)ADValue |= (0x0800 >> i);}XPT2046_CS = 1;//for 12 bit:if(command&0x08)return ADValue>>4;else return ADValue;
}
void main()
{unsigned int ADValue = 0;LCD_Init();LCD_ShowString(1, 1, "ADC NTC RG");while (1){ADValue = XPT2046_ReadAD(XPT2046_XP_8);//电位器LCD_ShowNum(2, 1, ADValue, 3);ADValue = XPT2046_ReadAD(XPT2046_YP_8);//热敏电阻LCD_ShowNum(2, 5, ADValue, 3);ADValue = XPT2046_ReadAD(XPT2046_VBAT_8);//光敏电阻LCD_ShowNum(2, 9, ADValue, 3);delayMs(10);}
}

dac 也是采用 pwm 的原理,改变01 叫错频率来模拟灯的亮度(输出口:P2^1)。所以 dac 用处不广泛,因为可以被代替。

相关文章:

51单片机学习笔记_13 ADC

ADC 使得调节开发板上的电位器时&#xff0c;数码管上能够显示 AD 模块 采集电位器的电压值且随之变化。 开发板上有三个应用&#xff1a;光敏电阻&#xff0c;热敏电阻&#xff0c;电位器。 一般 AD 转换有多个输入&#xff0c;提高使用效率。 ADC 通过地址锁存与译码判断采…...

类和对象的基本认识之内部类

什么是内部类&#xff1f;当一个事物的内部&#xff0c;还有一个部分需要一个完整的结构进行描述&#xff0c;而这个内部的完整的结构又只为外部事物提供服 务&#xff0c;那么这个内部的完整结构最好使用内部类。在 Java 中&#xff0c;可以将一个类定义在另一个类或者一个方法…...

【操作系统】进程和线程是什么之间是如何通信的

文章目录1、进程1.1、什么是进程1.2、进程的状态1.3、进程的控制结构1.4、进程的控制1.5、进程的上下文切换1.6、进程上下文切换场景1.7、进程间通信2、线程2.1、什么是线程2.2、线程的上下文切换2.3、线程间通信3、线程与进程的联系1、进程 1.1、什么是进程 进程(process) 是…...

setup、ref、reactive、computed

setup 理解&#xff1a;Vue3.0 中一个新的配置项&#xff0c;值为一个函数 setup 是所有 Composition API&#xff08;组合API&#xff09;“表演的舞台” 组件中所用到的数据、方法等&#xff0c;均要配置在 setup 中 setup 函数的两种返回值&#xff1a; 若返回一个对象…...

【Gem5】有关gem5模拟器的资料导航

网上有关gem5模拟器的资料、博客良莠不齐&#xff0c;这里记录一些总结的很好的博客与自己的学习探索。 一、gem5模拟器使用入门 官方的教程&#xff1a; learning_gem5&#xff1a;包括gem5简介、修改扩展gem5的示例、Ruby相关的缓存一致性等。gem5 Documentation&#xff1…...

【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )

文章目录一、清除浮动简介二、清除浮动语法三、清除浮动 - 额外标签法1、额外标签法 - 语法说明2、问题代码示例3、额外标签法代码示例一、清除浮动简介 在开发页面时 , 遇到下面的情况 , 父容器 没有设置 内容高度 样式 , 容器中的 子元素 设置了 浮动样式 , 脱离了标准流 , …...

Shell test 命令

文章目录Shell test 命令数值测试字符串测试文件测试Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立&#xff0c;它可以进行数值、字符和文件三个方面的测试。 数值测试 参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le…...

pytorch项目实战之实时人脸属性检测系统

简介 本项目采用CelebA人脸属性数据集训练人脸属性分类模型&#xff0c;使用mediapipe进行人脸检测&#xff0c;使用onnxruntime进行模型的推理&#xff0c;最终在intel的奔腾cpu上实现30-100帧完整的实时人脸属性识别系统。 ps:本来是打算写成付费专栏的&#xff0c;毕竟这是…...

JS和Jquery

js函数 function 方法名&#xff08;参数&#xff09;{ 方法体 return 返回值&#xff1b; } js事件 事件介绍 事件指的就是当某些组件执行了某些操作后&#xff0c;会触发某些代码的执行 onload 某个页面或图像被完成加载 onsubmit 当表单提交时触发事件 onclick 鼠标单击事件…...

Linux设置固定IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33 第一个修改是开启网络 修改完成后重启网络服务 sudo service network restart 然后就可以看到ip 地址了 然后我们开始修改固定IP 主要是下图中的两部分 BOOTPROTO从dhcp改为static HWADD好像改不改都行&#xff0c;我改了&…...

面试准备啊

fail fast 是把数组原来的更改次数记住 每次都去比较 变了 就抛异常 如果数组容量没到64 会先扩容 再树化 缺点&#xff1a;全是偶数 hash分布不均匀 质数比较好&#xff08;二次哈希也不需要&#xff09; 效率好 2的n次幂 使用内存屏障解决指令重排序 第一次扩容和之后的不…...

机器人工程专业师生的第二张名片

课堂上多次提及第二张名片。什么是CatGPT-使用效果如何-专业感性非理性总结如下&#xff1a;机器人工程的工作与考研之困惑→汇总篇←其中包括&#xff1a;☞ 机器人工程的工作与考研之困惑“卷”☞ 机器人工程的工作与考研之困惑“歧视”☞ 机器人工程的工作与考研之困惑“取舍…...

【云原生之企业级容器技术 Docker实战一】Docker 介绍

目录一、Docker 介绍1.1 容器历史1.2 Docker 是什么1.3 Docker 和虚拟机&#xff0c;物理主机1.4 Docker 的组成1.5 Namespace1.6 Control groups1.7 容器管理工具1.8 Docker 的优势1.9 Docker 的缺点1.10 容器的相关技术1.10.1 容器规范1.10.2 容器 runtime1.10.3 容器管理工具…...

【Microsoft】与 Bing AI 进行 ⌈狂飙⌋

&#x1f38a; 今天是3月8号&#xff0c;❤️农历二月十七&#xff0c;&#x1f495;祝广大女同胞们&#x1f469;女神节快乐&#x1f389;&#xff01;——以创作之名致敬女性开发者文章目录序言Ⅰ、Bing AI初体验Ⅱ、代码生成Ⅲ、生成图像Ⅳ、使用次数Ⅴ、总结序言 ​ 近期&…...

PyDolphinScheduler发布4.0.2版本,修复无法提交工作流到DolphinScheduler 3.1.4的问题

点击蓝字 关注我们PyDolphinScheduler 正式发布 4.0.2 版本&#xff0c;主要修复了 4.0.1 版本无法提交工作流到 Apache DolphinScheduler 3.1.4 的问题。除此之外&#xff0c;PyDolphinScheduler 4.0.2 较大的优化还包括&#xff1a;PyDolphinScheduler 校验 Apache DolphinSc…...

go-cqhttp安装使用

2023-03-28 时效性强 go-cqhttp qq机器人 qq bot 安装 本地虚拟机 centos7安装使用 浏览官方文档go-cqhttp 帮助中心 下载&#xff1a;Releases Mrs4s/go-cqhttp GitHub 当前最新版本v1.0.0-rc5 下载go-cqhttp_1.0.0-rc5_linux_amd64.rpm 传到服务器&#xff0c;新…...

论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

HMER论文系列 1、论文阅读和分析&#xff1a;When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2、论文阅读和分析&#xff1a;Syntax-Aware Network for Handwritten Mathematical Expression Recognition_KPer_Yang的博客-CSDN博客 3、论…...

05期:面向业务的消息服务落地实践

这里记录的是学习分享内容&#xff0c;文章维护在 Github&#xff1a;studeyang/leanrning-share。 我们在上次分享中聊到了领域驱动设计和微服务&#xff0c;在 DDD 中有一个术语叫做领域事件&#xff0c;例如订单模型中的订单已创建、商品已发货。领域事件会触发下一步的业务…...

代码随想录|day26|回溯算法part03● 39. 组合总和● 40.组合总和II● 131.分割回文串

今天的练习基本就是回溯法组合问题&#xff0c;这一节只要看labuladong即可。 组合问题&#xff1a; 39. 组合总和---------------------形式三&#xff0c;元素无重可复选 链接&#xff1a;代码随想录 一次对&#xff0c;同样在进入下次循环时&#xff0c;注意startindex是从j…...

linux-文件切割-splitcsplit

目录 按大小切割-split 按行数切割-split 按内容切割-csplit 按大小切割-split split -b 10k example.conf -d -a 3 output.file example.conf 被切割的文件 -b 指定切割大小 -d 数字后缀 -a 后缀长度&#xff0c;默认2 output.file …...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...