蓝桥杯嵌入式MCP4017

news2025/1/12 10:36:38

文章目录

  • 前言
  • 一、查看MCP4017芯片手册
  • 二、MCP4017在开发板上的电路图
  • 三、工程配置
  • 四、MCP4017读写函数编写
  • 总结


前言

MCP4017是一个可编程电阻,通过写入数值可以调节电阻值的大小。

一、查看MCP4017芯片手册

在这里我们只需要关注MCP4017即可。下面的几个重要点我为大家解读一下。

在这里插入图片描述
1.MCP4017是一个7bit的网络,7bit就代表10进制的0-127,这里的意思就是,MCP4017有128个档位可以调节。
下面这个图说明了我们能写入0-127这128个数值控制这些开关,达到控制分压的效果,注意我们写入的只能是整数不能是其他的数值。
在这里插入图片描述

2.MCP4017最小的电阻值是100Ω,很多人可能会误认为最小电阻是0,但是把他调节到最小时他还是存在一个最小电阻的,这里大家特别注意。
3.MCP4017使用的是IIC通信协议。

二、MCP4017在开发板上的电路图

前面AT24C02的文章中已经给大家讲过了,IIC的两根线分别是接到了PB6和PB7上面的。
MCP4017和一个10K的电阻并联分压,调节MCP4017的电阻值即可改变分压的大小。R17后面有一个PB14,这个我们后面再给大家介绍,通过这个引脚我们可以测出分压的大小。
在这里插入图片描述

三、工程配置

这里直接复制AT24C02中所写的代码即可。

四、MCP4017读写函数编写

在这里插入图片描述
这个图我这里就不带大家细看了,大家有什么不懂的就直接看我前面的AT24C02的文章,这个MCP4017其实是比AT24C02要简单的,下去自己分析一下。

函数我直接给大家了。

//写MCP4017
void MCP4017_Write(uint8_t val)
{   
	I2CStart();
	I2CSendByte(0x5E);  
	I2CWaitAck();
	
	I2CSendByte(val);  
	I2CWaitAck();
	I2CStop();
}

//读MCP4017
uint8_t MCP4017_Read(void)
{   
	uint8_t val; 
	I2CStart();
	I2CSendByte(0x5F);  
	I2CWaitAck();
	
	val = I2CReceiveByte();
	I2CSendNotAck();
	I2CStop();

	return val;
}

总结

MCP4017和AT24C02一样都是使用到了IIC协议的,重要的是能看懂读写时序图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

广播、组播 socket编程

目录 1、单播 / 广播 / 组播 的概念 (1) 单播 (2) 广播 (3) 多播(组播) 2、广播 socket编程(只能是UDP通信) 3、多播 socket编程(只能是UDP通信) 1、单播 / 广播 / 组播 的概念 (1) 单播 之前在进行…

m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序

目录 1.算法描述 2.仿真效果预览 3.Verilog核心程序 4.完整FPGA 1.算法描述 整个模型的基本框图为 软件无线电是现代通信技术的重要研究领域和发展方向,目前发展迅速.快速发展的软件无线电技术与落后的硬件计算资源之间的矛盾越来越突出.为了缓解这个矛盾,一方面可以加快集…

职场日常:一文剖析性能测试流程,时间为啥那么长?

如果你做过性能测试,你就会知道,性能测试的时间要比功能测试时间长很多,但是,你没有做过,你可能就会问了,为什么性能测试时间要长那么多呢?今天就用一文,带大家了解性能测试工作流程…

自学python?一般人我还是劝你算了吧

前言 本人纯屌丝一枚,在学python之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说自学python,一般人我还是劝你算了吧。因为我就是那个一般人。 基础真的很简单,是个人稍微认点真都能懂&#…

Python一学就会系列:01 开发环境搭建 及 hello world

文章目录前言一、python是什么?官网简介二、开发环境安装1.下载2.安装3. 验证是否安装成功编写一个python新建一个后缀名为py的文件运行python文件总结前言 一、python是什么? 官网 https://www.python.org/ 简介 官网介绍: Python是一种编…

美团面试官总结的“Spring boot面试文档”,全是大厂高频面试题,太全了!

前言 Spring boot不单单在BAT这些一线大厂使用率极其的高,在中小企业中使用率也是非常高的,企业的需求增大,当然对待面试者的要求也会随之提高,竞争也会随之增大。 相信现在的你之所以可以看到我的这篇文章,那肯定是…

[附源码]计算机毕业设计的高校课程知识库Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python数据分析项目案例

第一部分:数据类型处理 数据加载 字段含义: user_id:用户IDorder_dt:购买日期order_product:购买产品的数量order_amount:购买金额观察数据 查看数据的数据类型数据中是否存储在缺失值将order_dt转换成时间类型查看数据的统计描述在源数据中添加一列表示…

图像风格迁移基础入门及实践案例总结

目录 1图像的不同风格 2何为图像风格迁移 2.1基础概念及方法 2.2示例 3图像风格迁移的典型研究成果 3.1deep-photo-styletransfer 3.2CycleGAN 3.3U-…

【问题记录】Mac M1 Docker配置redis一主二从三哨兵(烧饼好吃)

文章目录Docker配置 redis一主二从三哨兵文件目录redis compose 文件在 redis 文件路径下执行 docker composesentinel 文件结构sentinel compose 配置文件sentinel config 配置文件切换到 sentinel执行 compose测试及问题记录解决方案Docker配置 redis 一主二从三哨兵 文件目…

8家最大的WooCommerce在线商店

想象一下,世界上三分之一的电子商务网站都由单一技术提供支持,而且令人惊讶的是它是免费的。我说的是最大的电子商务解决方案提供商之一,WooCommerce。在这里,我们列出了8 家最大的WooCommerce在线商店,以激发您建立自…

基于jsp+mysql+ssm供应链管理信息系统-计算机毕业设计

项目介绍 本文以销售供应链管理系统的开发为背景,对企业销售管理系统的分析,设计,开发和实施过程进行了详细的描述。本系统基于ssm框架访问作为后台数据库管理连接,通过jdbc与数据库建立连接,以jsp为前端开发工具提供…

数据库之MHA高可用集群部署及故障切换

目录 1 MHA概念 1.1 MHA 的组成 1.2 MHA 的特点 2 搭建MySQLMHA 2.2 修改三台MySQL服务器的主配置文件/etc/my.cnf,并创建命令软链接 2.3 配置MySQL一主两从 2.4 安装 MHA 软件 2.5 在所有服务器上配置无密码认证 2.6 在 manager 节点上配置 MHA 2.7 第一次配…

分类评价指标

不均衡数据 很多时候,不同类别的分类代价并不相等,这就是非均衡分类问题。如果在两个类别中,一个类别的出现次数比另一个多很多,那么错误类型将发挥重要作用。例如。我们一共有100个病人,其中99人是健康的&#xff08…

『.Net』在C#/.Net中将Json压缩成一行的几种方式

📣读完这篇文章里你能收获到 在.Net Core中使用多种方式将Json压缩成一行主要介绍两种实现方案,Newtonsoft.Json和内置的System.Text.Json 文章目录一、Newtonsoft.Json二、System.Text.Json一、Newtonsoft.Json 将 Formatting 参数设为 Formatting.No…

世界杯杂谈之有趣的数据纪录

目录 (一)前言 (二)正文 1. 关于出场 (1)出场次数 (2)出场时间最长球员 (3)连续出场决赛场次最多 (4)世界杯出场时间最短的人 …

在Mac上优雅的使用ssh和sftp (像win上的xshell和xftp一样)

怎样在Mac上SSH和FTP?完美替代XShell是哪个软件?item2吗?Royal TSX! 没有比它更好_哔哩哔哩_bilibili 下载Royal TSX Royal TSX https://www.royalapps.com/ts/mac/features 安装插件 创建document 在document里面添加ssh和sftp 点击左下角加号,依次选这两个,因为一样,所…

使用Jenkins扩展钉钉消息通知

Jenkins借助钉钉插件,实现当构建失败时,自动触发钉钉预警。虽然插件允许自定义消息主体,支持使用 Jenkins环境变量,但是局限性依旧很大。当接收到钉钉通知后,若想进一步查看报错具体原因,仍完全依赖邮件通知…

LWIP——无操作系统移植

目录 移植说明 LwIP前期准备 以太网DMA描述符 LwIP移植流程 添加网卡驱动程序 添加LwIP源文件 移植头文件 网卡驱动编写 移植总结 移植说明 LwIP的移植可以分为两大类:第一类是只移植内核核心,此时用户应用程序编写只能基于RaW/CallBack API进行…

mybatisplus 集成druid连接池源码分析

mybatisplus 集成druid连接池源码分析:从spring的源码过渡到druid的相关jar包,里面是druid相关的类,下面我们开始分析: 1、取数据库连接的地方入口:public abstract class DataSourceUtils 为spring-jdbc包里面的过渡…