【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换

这篇具有很好参考价值的文章主要介绍了【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、PCF8591

 【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换

PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C总线上而不需要额外硬件。器件的地址、控制和数据通过两线双向I2C总线传输。

PCF8591功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模转换。最大转换速率取决于I2C总线的最高速率。

功能描述

1.设备地址

【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换

I2C总线系统中的每一片PCF8591通过发送有效地址到该器件来激活。PCF8591的设备地址包括固定部分和可编程部分。可编程部分必须根据硬件地址引脚A0、A1和A2来设置。在I2C总线协议中,设备地址必须是起始信号后第一个发送字节,地址字节的最后一位是用于设置数据的传输方向即读/写。

在蓝桥杯比赛开发板上,如图所示。硬件地址引脚A0、A1和A2全部接地,那么此处PCF8591设备的读操作地址为:0x91(1001 0001),写地址操作地址为:0x90(1001 0000)。

【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换

 2.控制字

发送到PCF8591的第二个字节将被存储在控制寄存器,用于控制器件功能。

【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换

 在CT107D单片机上,PCF8591三个硬件引脚地址均接地,两路模拟信号均为单端输入,则有:

光敏传感器接在AIN1即通道1,控制寄存器应该写入0x01

电位器Rb2接到AIN3即通道3,控制寄存器应该写入0x03

二、A/D转换

A/D转换:模拟量转变为数字量。

一个A/D转换周期总是开始于发送一个有效读模式地址给PCF8591之后。A/D转换周期在应答时钟脉冲的后沿触发,并在传输前一次转换结果时执行。

PCF8591的A/D转换程序设计流程:

(1)发送写设备地址,选择I2C总线上的PCF8591器件。

(2)发送控制字,选择模拟量输入模式和通道。

(3)发送读设备地址,选择I2C总线上的PCF8591器件。

(4)读取PCF8591中目标通道的数据。

以蓝桥杯单片机开发平台上采样光敏电阻的电压为例,A/D转换代码如下:

void read_AIN1()
{
    IIC_Start();    //IIC总线起始信号
    IIC_SendByte(0x90);     //PCF8591的写设备地址
    IIC_WaitAck();  //等待从机应答
    IIC_SendByte(0x01);     //写入PCF8591的控制字
    IIC_WaitAck();  //等待从机应答
    IIC_Stop();     //IIC总线停止信号
    
    IIC_Start();    //IIC总线起始信号
    IIC_SendByte(0x91);     //PCF8591的读设备地址
    IIC_WaitAck();  //等待从机应答
    dat1 = IIC_RecByte();     //读取PCF8591通道1的数据
    IIC_Stop();     //IIC总线停止信号
    
}

由上述程序得到的dat1是大小范围在0~255的数字量,可以将采集到的这个数字量显示在数码管上。

如果想要将采集到光敏电阻的电压值显示在数码管上,只需要对AD采集到的数字量进行一个转换:输出电压Uo = 采集的数字量 ×(5/255)= 采集的数字量 × 0.0196078。

三、D/A转换

数字量和模拟两者之间有一个对应关系,即模拟量0~5V对应数字量0~255。所以要想采用D/A功能实现固定电压的输出,只需要先计算好要输出电压对应的数字量大小。

如下是D/A转换程序,dat就是要输出电压对应的数字量。在蓝桥杯比赛开发平台上,可以使用万用表测量D/A输出端的电压大小。 文章来源地址https://www.toymoban.com/news/detail-410059.html

void read_DAC(uint dat)
{
    IIC_Start();
    IIC_SendByte(0x90); //写设备地址
    IIC_WaitAck();
    IIC_SendByte(0x40); //写控制字
    IIC_WaitAck();
    IIC_SendByte(dat);  //dat为要转换的数字量
    IIC_WaitAck();
    IIC_Stop();
}

到了这里,关于【蓝桥杯-单片机学习笔记(十六)】PCF8591原理与A/D、D/A转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PCF8591芯片的AD/DA转换(适用于蓝桥杯单片机)

    目录 1、PCF8591的引脚介绍  2、用IIC发送或接收字节              发送的第一个字节         发送的第二个字节   发送第三个字节     3.发送和接收的字节转换  4.全部代码 IIC部分 接收电压数据 发送电压数据                      在和单片机实际应用中它的

    2024年02月05日
    浏览(49)
  • 蓝桥杯单片机—— PCF8591的基本原理及A/D转换应用(14)

    一、原理分析 1、基本概念 PCF8591是一个单片集成、单独供电、低功耗、 8-bit CMOS数据获取器件 。PCF8591具有 4个模拟输入、1个模拟输出和1个串行I²C总线接口 。PCF8591的3个地址引脚 A0, A1和A2可用于硬件地址编程 ,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在

    2023年04月14日
    浏览(60)
  • 基于51单片机的数字电压表(PCF8591)(Proteus仿真+程序)

            本设计由51单片机最小系统+PCF8591模块+四路模拟量输入模块+一路DA输出+液晶1602显示模块 1、主控制器是89C82单片机。 2、PCF8591模数转换器进行A/D转换,读取四路电压数据,电压检测范围0-5V 精度(8位);实现一路数模转换(D/A)输出电压范围0-5V(8位)。 3、利用四个

    2024年02月05日
    浏览(49)
  • 基于51单片机的波形发生器(PCF8591、正弦波、三角波、锯齿波、方波)

            正弦波、三角波、锯齿波和方波是我们平时最常见的四种波形,那么学会使用单片机产生这四种波就很重要了。但学过51单片机就知道,其IO引脚只能输出高电平或低电平,单靠其引脚生成以上波形,好像不大可能,因此我们需要配合使用另一个很重要的芯片,DAC芯片

    2024年02月09日
    浏览(89)
  • 蓝桥杯单片机串口通信学习提升笔记——部分2

    今日继续学习提升蓝桥杯国赛能力水平。 有道是: 卜心事、灯花无语,百感孤单,鸳被羞展......                 梦方圆,又丛钟、声声惊断。 诗人杨玉衔孤单影只,偏偏又多遭磨难,一路坎坷...... 正如我近日来学习提升串口通信技能一样,遇到诸多设计上的险阻。

    2024年02月06日
    浏览(39)
  • [蓝桥杯单片机]学习笔记——555定时器与频率测量

    目录 一、原理部分 1、什么是555定时器 2、频率测量  3、频率测量相关配置 二、程序案例 555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和振荡电路。555可被作为电路中的延时器件、触发器或起振元件。而在蓝桥杯的板子上,555定时器是一个信号发生电路,通

    2023年04月12日
    浏览(67)
  • 【蓝桥杯-单片机学习笔记(十三)】DS18B20温度传感器

    一、温度传感器-DS18B20介绍 DS18B20是单总线数字化温度传感器,测量温度范围是-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。支持3V~5.5V的供电电压范围。DS18B20可以程序设定9~12位的分辨率,精度为±0.5℃。 1.DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度

    2023年04月09日
    浏览(64)
  • 蓝桥杯单片机客观题之数电学习(深夜学习——单片机)

    1、数字:\\\'0\\\'——0x30 2、字母:\\\'a\\\'——0x61;\\\'A\\\'——0x41 1、首位不变 2、从左到右,加上每一对相邻的二进制编码位,从而得到下一个格雷码位,舍去进位  1、首位不变 2、新生成的二进制码加上下一位格雷码得到下一位二进制码 1、小数部分的转换方法应该是先得到的是高位,后

    2023年04月09日
    浏览(93)
  • 蓝桥杯单片机第十三届国赛客观题(深夜学习——单片机)

    1.填空题 (2)不同的地址范围: data:0x00-0xff idata:0x0000-0xffff xdata:0x0000-0xffff pdata:0x00-0xff code:0x0000-0xffff 2.选择题 (3)模电——》多级放大电路 (6)DS18B20 (7)模电——》二极管  (8)单片机      

    2024年02月11日
    浏览(67)
  • 蓝桥杯模块学习10——串口通信(深夜学习——单片机)

    51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客 (1)波特率与SMOD无关 (2)波特率等于溢出率除4 (1)T2R:控制定时器2是否允许使用,置“1”为允许 (2)T2_C/T:控制定时器2用作定时器还是计数器,置“0”为定时器(默认) (3)T2X12:控制定时器

    2023年04月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包