蓝桥杯单片机组IIC总线PCF8591

2023-12-09 10:59

本文主要是介绍蓝桥杯单片机组IIC总线PCF8591,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一,PCF8591——ADC

先上干货

//Control_byte:控制字节
u8 read_pcf8591(Control_byte)//读pcf8591,读取转换通道的转换值
{u8 temp;IIC_Start();//起始信号IIC_SendByte(0x90);//发送设备写,设备地址+write(0)  1001 0000IIC_WaitAck();//等待应答IIC_SendByte(Control_byte);//发送控制字节   (控制字节 请看下面)IIC_WaitAck();//等待应答IIC_Start();//起始信号IIC_SendByte(0x91);//发送设备读,设备地址+read(1)   1001 0001IIC_WaitAck();//等待应答temp=IIC_RecByte();//读取电压转化值IIC_SendAck(1);//发送非应答信号IIC_Stop();//停止信号return temp;//返回转换值   将转换值变为电压值V=5*temp/255.0
}

下图就是控制字节的描述.显而易见:0x01表示模拟输入通道1(AIN1)连接转换通道1(channel 1),我们读取转换通道1的转换值。其余的不再多说

在这里插入图片描述

二,PCF8591——DAC

先上代码,看我的注释

//data1:数值
void write_pcf8591(u8 data1)
{IIC_Start();//起始信号IIC_SendByte(0x90);//设备写IIC_WaitAck();//等待应答IIC_SendByte(0x40);//控制字节 0100 0000  对应上图自然懂IIC_WaitAck();//等待应答IIC_SendByte(data1);//发送数值,将数值转化为对应的电压值输出IIC_WaitAck();//等待应答IIC_Stop();//停止信号
}

PCF8591的ADC,DAC都是8位转换器并且参考电压为0-5V,所以我的data1与模拟输出电压之间的关系为:V=5* data1 /255
上述代码通过蓝桥杯官方资源包IIC.C,IIC.H修改并编写
修改的地方有:

void Delay5us()		//@12.000MHz
{unsigned char i;_nop_();_nop_();i = 12;while (--i);
}

替代官方代码中的延迟函数:

#define DELAY_TIME 5
void IIC_Delay(unsigned char i)
{do{_nop_();}while(i--);        
}
IIC_Delay(DELAY_TIME);
]

有帮助请点赞,不懂call me,留言吧

这篇关于蓝桥杯单片机组IIC总线PCF8591的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/473533

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

VB和51单片机串口通信讲解(只针对VB部分)

标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦            里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口

电子电气架构---私有总线通信和诊断规则

电子电气架构—私有总线通信和诊断规则 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、

MCU5.51单片机的最小系统

1.最小系统的组成部分 晶振电路(时钟),复位电路,电源电路(控制电压,保持稳定),下载电路(外加的,用于烧录程序) 烧录: 通过下载电路,把程序下载到单片机中用于运行 2.晶振电路 电路图: 是晶振 是电容 为了防止晶振起振时产生影响,因此加电容 3.复位电路 电路图: 按按钮RSTK1(保持一段时间的高电平)即可实现STC芯片的复位 4.电源电路 电路图:

单片机XTAL引脚引出的晶振分析

51单片机的18,19脚XTAL1,XTAL2用来提供外部振荡源给片内的时钟电路。 XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以使用内部时钟。 当使用内部时钟时,此二引线端用于外接石英晶体和微调电容; 当使用外部时钟时,用于接外部时钟信号,NMOS接XTAL2,CMOS接XTAL1。 原理: XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是

I2C总线协议(AT24C02C)

本文章是基于TQ2440开发板上的AT24C02C 一, I2C简介       IIC即Inter-Integrated Circut(集成电路总线),有飞利浦在八十年代实际出来. I2C是一种多向控制总线,就是同一个总线下可以连接多个芯片,同时每个芯片都可以作为实时数据传输的控制源. 二. 硬件结构       I2C串行总线一般有两根信号线,一根是双向的数据总线SDA, 一根是

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消