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

单片机基础模块学习——PCF8591芯片

一、A/D、D/A模块

  • A——Analog 模拟信号:连续变化的信号(很多传感器原始输出的信号都为此类信号)
  • D——Digital  数字信号:只有高电平和低电平两种变化(单片机芯片、微控制芯片所能处理的都是数字信号)

 下面是模拟信号和连续信号的区别


为什么需要进行模拟信号和数字信号之间的转换呢?

 例如,传感器的模拟信号需要给单片机进行处理,但是单片机没法直接读取模拟信号此时需要进行A/D转换(模拟信号——>数字信号);另外需要产生一个电压的时候,而单片机只能输出数字信号,那么就需要进行D/A转换(数字信号——>模拟信号)。

PCF8591芯片可以同时进行A/D、D/A的转换。

二、开发板原理图

RD1为光敏电阻,随着光照强度的变化,阻值也会变化。从而通过测量RD1和R31之间的电压,通过两个电阻之间的分压关系,就可以计算出光敏电阻的阻值,进而计算出光照强度。


 RB2为电位器(滑动变阻器),调节电位器的阻值,AIN3所测电压值变化。


 AIN1和AIN3分别连接到 PCF8591芯片的两个输入引脚

三、 PCF8591芯片原理图

  1. 以A(模拟信号)开头的四个引脚为模拟输入端口,也就是可以连接四路进行测量,而此单片机主要使用的是AIN1和AIN3两个引脚。
  2. A0~A2不是模拟输入端口,这三位共同决定地址,全部接到了GND,所以这三位都是0
  3. VSS也接地,和GND相同。VDD是供电源,连接到5v的VCC
  4. AOUT是模拟输出端口,用于输出模拟电压
  5. VREF是参考电压,连接到vcc,因此满量程的时候是5v 
  6. AGND是模拟地,连接到地
  7. 下面的是EXT和OSC,不做说明
  8. SCL和SDA是IIC总线协议的连接端口

 

 四、IIC总线协议简介

1.写模式流程图

  • s——start,代表开始
  • ADDRESS 芯片地址
  • 0代表处在写模式
  • A应答信号,若没有收到应答信号,代表外设没有接收到,需要再次发送,保证通信的稳定性
  • CONTROL BYTE控制芯片行为的一个位,发送之后同样需要等待应答信号
  • DATA BYTE 传递数据位,每传递一个字节,就要有一个应答信号,不断的循环

 2.读模式流程图

  •  s——start,代表开始
  • ADDRESS 芯片地址
  • 1代表处在读模式
  • A应答信号,若没有收到应答信号,代表外设没有接收到,需要再次发送,保证通信的稳定性
  • DATA BYTE读取数据,此时的应答信号来自master(主机,控制机)
  • LAST DATA BYTE发送完最后一个字节,不需要应答
  • P——pause,暂停就结束了

3. ADDRESS声明

  •  高四位 fixed part 固定部分,一定是1001
  • 低四位 R代表read,高电平有效 W代表write上面有-,代表低电平有效
  • A0~A2连接到地,都为0
  • 写入地址为0x90,读取地址为0x91

4.CONTROL BYTE声明

 

  • 最低两位A/D CHANNEL NUMBER  选择可以读取哪一路的A/D,光敏电阻连接AIN1对应01,电位器连接AIN3对应11
  • AUTO-INCREMENT FLAG自动增益控制位,如果是1就激活它,不需要时设置为0
  • ANALOGUE INPUT PROGRAMMIG 可以控制模拟信号输入的模式,00——4个单端输入模式(彼此之间没有关联);01——差分输入(可以比较两路之间的电压差);10——单端输入和差分输入的组合;11——两个差分输入  本次使用00模式
  • ANALOGUE OUTPUT ENABLE FLAG 是否允许进行模拟输出,允许置1

因此,光敏电阻:0x41 可调电阻:0x43 

 

相关文章:

单片机基础模块学习——PCF8591芯片

一、A/D、D/A模块 A——Analog 模拟信号:连续变化的信号(很多传感器原始输出的信号都为此类信号)D——Digital 数字信号:只有高电平和低电平两种变化(单片机芯片、微控制芯片所能处理的都是数字信号) 下面…...

深入探索 HTML5 拖拽效果 API:打造流畅交互体验

在现代的 Web 开发中,交互性和用户体验一直是开发者关注的重点。HTML5 的拖拽效果 API (Drag and Drop API) 提供了一种非常直观的方式来让网页元素或文件能够被拖动并放置到页面的指定位置,极大提升了用户的交互体验。本篇文章将深入探讨如何使用 HTML5…...

【Healpix】python一种用于将球面划分为均匀区域的技术

Healpix 1、简介2、Healpix的基本原理3、Healpix的优点4、安装及使用4.1 安装healpy4.2 创建Healpix地图4.3 读取和写入Healpix数据4.4 数据插值 5、案例5.1 案例一:宇宙微波背景辐射(CMB)分析5.2 案例二:星系分布分析5.3 案例三&…...

Go:基于Go实现一个压测工具

文章目录 写在前面整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理 客户端模块Http客户端处理Grpc客户端处理Websocket客户端处理 连接处理模块GrpcHttp 统计数据模块统计原理实现过程 写在前面 本篇主要是基于Go来实现一个压测的工具,关于压测的内…...

算法-加油站问题

hello 大家好!今天开写一个新章节,每一天一道算法题。让我们一起来学习算法思维吧! function canCompleteCircuit(gas, cost) {// 加油站的总数const n gas.length;// 记录总剩余油量,若总剩余油量小于 0,说明无法绕环…...

UART ,IIC 和SPI三种总线协议

1.UART 1.1 简介 UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发器。 常见的串行、异步通信总线,两条数据线Tx、Rx,实现全双工通信,常用于主机与外设的通信,点对点。 1.2 硬件连接 交叉…...

Padas进行MongoDB数据库CRUD

在数据处理的领域,MongoDB作为一款NoSQL数据库,以其灵活的文档存储结构和高扩展性广泛应用于大规模数据处理场景。Pandas作为Python的核心数据处理库,能够高效处理结构化数据。在MongoDB中,数据以JSON格式存储,这与Pandas的DataFrame结构可以很方便地互相转换。通过这篇教…...

动手学图神经网络(6):利用图神经网络进行点云分类

利用图神经网络进行点云分类 引言 在本教程中,大家将学习使用图神经网络(Graph Neural Networks, GNN)进行点云分类的基本工具。给定一组对象或点集的数据集,将这些对象嵌入到一个特征空间中,使得它们在特定任务下能够分类。将原始点云作为神经网络的输入,让网络学习捕…...

C语言从入门到进阶

视频:https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…...

Python中容器类型的数据(下)

集合 集合 (set) 是一种可迭代的、无序的、不能包含重复元素的容器类型的数据。 Python中的集合是一种重要的数据结构,以下为你详细介绍: 定义与特点 无序性:集合中的元素没有固定顺序, {1, 2, 3} 和 {3, 2, 1} 在Python中是同一…...

MySQL 用户相关的操作详解

MySQL 5.x 用户操作 创建用户 在 MySQL 5.x 中,使用 GRANT 语句创建用户并授权: 语法 GRANT ALL PRIVILEGES ON *.* TO usernamehost IDENTIFIED BY password;username:用户名 host:指定用户可访问的主机,例如 loca…...

如何删除hugging face dowloaded的llm model?

如何删除hugging face dowloaded的llm model? 在现在需要使用llm进行research的情况下,经常会出现,由于下载模型太多,导致内存问题,然后需要删除某些不用的模型的情况,那么如何找到hugging face的模型保存…...

Vue 封装http 请求

封装message 提示 Message.js import { ElMessage } from "element-plus";const showMessage (msg,callback,type)>{ElMessage({message: msg,type: type,duration: 3000,onClose:()>{if (callback) {callback();}}}); }const message {error: (msg,…...

恒源云云GPU服务器训练模型指南

1数据上传 为了更方便的上传数据与下载数据,本例程采用xftp来完成数据的传输与下载。 XFTP下载链接,选择学生免费试用即可 2服务器的选择以及开启: 控制台->我的实例->点击创建实例 一般选择按量付费 接下来根据自己代码的torch版本…...

Spring Boot应用中实现基于JWT的登录拦截器,以保证未登录用户无法访问指定的页面

目录 一、配置拦截器进行登录校验 1. 在config层设置拦截器 2. 实现LoginInterceptor拦截器 3. 创建JWT工具类 4. 在登录时创建JWT并存入Cookie 二、配置JWT依赖和环境 1. 添加JWT依赖 2. 配置JWT环境 本篇博客将为大家介绍了如何在Spring Boot应用中实现基于JWT的登录…...

MySQL 基础学习(1):数据类型与操作数据库和数据表

MySQL 基础学习:数据类型与操作数据库和数据表 在这篇博客中,我们将深入学习 MySQL 的基础操作,重点关注数据库和数据表的操作,以及 MySQL 中常见的数据类型。希望本文能帮助你更好地理解和掌握 MySQL 的基本用法。 一、操作数据…...

zyNo.19

哈希(md5)绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…...

Kafka生产者ACK参数与同步复制

目录 生产者的ACK参数 ack等于0 ack等于1(默认) ack等于-1或all Kafka的同步复制 使用误区 生产者的ACK参数 Kafka的ack机制可以保证生产者发送的消息被broker接收成功。 Kafka producer有三种ack机制 ,分别是 0,1&#xf…...

IPhone14 Pro 设备详情

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn...

【Linux】磁盘

没有被打开的文件 文件在磁盘中的存储 认识磁盘 磁盘的存储构成 磁盘的效率 与磁头运动频率有关。 磁盘的逻辑结构 把一面展开成线性。 通过扇区的下标编号可以推算出在磁盘的位置。 磁盘的寄存器 控制寄存器:负责告诉磁盘是读还是写。 数据寄存器:给…...

Qwen3-14B私有部署案例:电商客服话术生成与情感倾向优化实践

Qwen3-14B私有部署案例:电商客服话术生成与情感倾向优化实践 1. 项目背景与需求分析 电商客服每天需要处理大量重复性问题,传统人工回复效率低下且难以保证一致性。我们基于Qwen3-14B模型构建了智能客服话术生成系统,主要解决以下痛点&…...

Phi-4-mini-reasoning vLLM模型服务化:gRPC接口与Protobuf定义详解

Phi-4-mini-reasoning vLLM模型服务化:gRPC接口与Protobuf定义详解 1. 模型概述 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理。作为Phi-4模型家族的一员,它特别针对数学推理能力进行了…...

AI 时代做自媒体,他从方法论上就赢了绝大部分人

AI 时代做自媒体,他从方法论上就赢了绝大部分人 昨天刷到卡兹克的一篇文章,他分享了自己做内容三年总结的 10 条方法论。 看完之后我的感受是:这哥们从方法论上就赢了。 简单介绍一下卡兹克。他的公众号「数字生命卡兹克」是 AIGC 领域的头部 IP,新榜 AI 行业公众号排名…...

AIVideo在软件测试领域的应用:自动化生成测试案例视频

AIVideo在软件测试领域的应用:自动化生成测试案例视频 1. 引言:测试视频制作的痛点与机遇 作为一名测试工程师,你是否曾经遇到过这样的困境:每次编写完测试用例后,还需要花费大量时间录制演示视频,展示测…...

MySQL 故障排查与生产环境优化笔记

一、基础信息1. 实验环境数据库版本:MySQL 8.0架构:1 台单实例 2 台主从复制环境用途:模拟生产故障、验证优化方案2. MySQL 逻辑架构(四层)连接层处理客户端连接、授权认证、权限校验提供线程池、SSL 安全连接服务层S…...

深入解析Supabase与Flutter的用户认证问题

深入解析Supabase与Flutter的用户认证问题 当我们使用Flutter开发移动应用时,用户认证是一个不可或缺的部分。而Supabase作为一个开源的数据库和后端服务,提供了强大的功能来帮助我们实现这个需求。然而,在集成过程中,我们可能会遇到一些问题。本文将详细探讨如何解决在Su…...

人事档案整理系统开发记录

档案整理系统开发记录 本篇文章,用于记录我个人开发档案整理工具的所有问题。 说明:开发该工具适用于人事档案处理工具,适用于档案处理,帮助档案整理人员更轻松的移交。 我会一步一步记录,整个软件开的所有的问题&…...

别再让MCU直连MOSFET了!用N531搭建你的第一个栅极驱动电路(附PCB文件)

从零构建高效MOSFET驱动电路:N531实战指南 在嵌入式开发中,直接使用MCU的GPIO驱动功率MOSFET是一个常见但危险的做法。我曾亲眼见过一个智能家居项目因为这种设计导致整个控制板烧毁——MOSFET开关缓慢产生的高温不仅损坏了功率器件,还反向影…...

LibEdificio嵌入式教学库:硬件映射驱动与楼宇灯光实验平台

1. 项目概述LibEdificio 是一款面向嵌入式教育平台的专用控制库,专为“Building Lights 教学系统”(楼宇灯光教学实验平台)设计。该系统并非通用工业楼宇自控设备,而是一套结构化、模块化、可编程的硬件教学套件,广泛应…...

模型量化基础知识 - PTQ - 训练后量化

文章目录一、PTQ 是什么二、PTQ 的标准流程(五大步骤)✅ Step 0:准备 FP 模型(Baseline)✅ Step 1:插入量化节点(Quantization Simulation)✅ Step 2:校准(Ca…...