本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。


蓝桥杯单片机硬件基础

PCF8591电路图:


PCF8591是具有IIC总线接口的8位A/D及D/A转换器,有4路A/D转换输入,1路D/A模拟输出,信息传输仅靠时钟线SCL和数据线SDA就可以实现。

模拟电压输入电路图:


硬件上旋动Rb2旋钮,即可改变模拟电压的输入值。

光强电阻电压输入电路图:


光敏电阻值的改变,影响该模拟电压通道的输入值。

ADC/DAC模块驱动配置

  • PCF8591采用IIC总线接口器件寻址方法,器件地址和引脚地址如下:

    可知写入的第一个字节为0x90
  • 控制字节格式配置如下:

    因此,模拟电压控制字为0x43;光敏电阻电压输入控制字为0x41

ADC/DAC模块函数代码:

由于均采用IIC总线接口,因此ADC/DAC转换函数与先前介绍的AT24C02存储器一致,只需要修改相应的器件地址和控制字即可,这里就不多介绍了。


相关代码编写:

  • ADC读取函数
u8 ADC(u8 channal)
{u8 dat;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(0x40+ch);IIC_WaitAck();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();dat = IIC_RecByte();IIC_SendAck(1);        //不应答IIC_Stop();return dat;
}
  • DAC输出函数(电压输出)
void DAC(u8 dat)
{IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(0x43);IIC_WaitAck();IIC_SendByte(dat);IIC_WaitAck();IIC_Stop();Delay5ms();
}

函数的使用方法,这里就不展示了,欢迎提问和咨询 ~

蓝桥杯单片机——PCF8591 ADC/DAC模块相关推荐

  1. 蓝桥杯单片机之DS1302时钟模块的使用

    蓝桥杯单片机之DS1302时钟模块的使用 DS1302简介 SPI串口简介 BCD码 阅读手册获取寄存器信息 日历时钟寄存器 控制字 将手册中的数据进行分析可得 完整代码示例: 总结 DS1302简介 ...

  2. 4.8 51单片机-PCF8591(ADC/DAC)转换芯片

    4.8 PCF8591(ADC/DAC)转换芯片 4.8.1 原理图 当前实验板上没有PCF8591芯片,这里采用外接模块的形式使用. 图4-8-1 PCF8591模块实物图 图4-8-2 原理图 通 ...

  3. 使用蓝桥杯单片机实现ADC采集和实时时钟界面转换与报警功能

    目录 1.使用的模块 2.基本功能 3.报警的功能 4.按键功能 5.初始化 4)数码管显示图片 电压显示 实时时钟显示 6.代码如下 main iic.c iic.h ds1302.c ds1302 ...

  4. 蓝桥杯单片机PCF8591

    一. 1.设备地址 2.控制寄存器 二. 1.ADC unsigned char PCF8591_Adc(void) {unsigned char temp;IIC_Start();IIC_SendB ...

  5. 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理

    上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...

  6. 蓝桥杯单片机比赛学习:5、中断系统之外部中断的基本原理

    中断的基本概念 百度百科上是这样说的,当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作 ...

  7. 蓝桥杯单片机NE555编程

    蓝桥杯单片机中的NE555模块的编程,其实是很简单.简单来说就是计算一秒钟之内有多少个频率响应.中间所谓的频率响应也就是计算定时器作为计数器时候溢出的个数而已.能够考察的点就是这样子了,也要稍微了解, ...

  8. 蓝桥杯单片机——用NE555定时器来测量频率

    蓝桥杯单片机比赛第十届以及十二届(第二场)中会用到NE555来测量频率以及频率周期,平时也会用到所以这个是必须要掌握的知识,简单来介绍一下芯片和编程用法. 芯片简介 NE555是属于555系列的计时I ...

  9. 蓝桥杯 模板Template Part9:PCF8591 ADC/DAC

    九层妖塔 起于垒土 蓝桥杯 模板Template Part9:PCF8591 ADC/DAC 一.原理图 二.通过IIC对PCF8591的写操作与读操作 写操作 读操作 三.基本模板 1.`头文件` ...

最新文章

  1. IDEA配置NodeJS项目遇到问题及解决
  2. 引用asp.net母版页后,母版页和内容页的页面事件执行顺序
  3. 复旦大学把衣服变成了显示器,能聊天能导航,水洗弯折都不怕 | Nature
  4. 边缘计算云原生开源方案选型比较
  5. C# linq Expression left join如何使用
  6. MiniGUI编程--列表框
  7. 构建高性能ASP.NET站点
  8. [转载] ASP.NET MVC4使用百度UEDITOR编辑器
  9. 基于qgis和arcgis进行CAD转GIS操作
  10. 逆向直播盒子MT·Box-iOS客户端
  11. SD和SDHC和SDXC卡的区别, class与u1/u3关系
  12. IntelliJ IDEA 自定义注释作者名字
  13. 用CSS3实现无图片的百度Logo
  14. Python游戏编程(五)Tic Tac Toe
  15. 用计算机弹奏的成都,抖音成都怎么用计算器弹奏_抖音成都计算器乐谱_管理资源吧...
  16. 通过MapReduce统计PV和UV
  17. 如何在线批量转换图片格式为jpg?
  18. Java快速开发框架_若依——Ruoyi-SpringCloud版本-2.安装redis服务端和客户端-win7
  19. Suzy找到实习了吗Day 13 | 栈和队列结束啦 239. 滑动窗口最大值,347. 前 K 个高频元素
  20. jsp项目发布到服务器

热门文章

  1. 华为linux版本wifi驱动,HuaWei华为
  2. 【F-16资料库】AIFF和IFF控制面板(Block25 MLU)
  3. python代码实现一朵玫瑰
  4. win7变成xp风格了怎么改回_【让win7变成xp】win7变成xp风格_win7界面变成xp
  5. 深度神经网络中的梯度消失与爆炸
  6. 数学题类英语作文(导数大题)
  7. 上课睡觉(合并石子问题)
  8. arduino超声波测距接线图详细_使用Arduino UNO开发板和超声波传感器测量距离
  9. js时间戳13位转日期格式
  10. 实体类定义规则以及主要实体类详解