pcf8951

原理图

在一个完整的单片机系统中, A/D 转换芯片往往是必不可少的。在与 CPU 的信息传输过程中仅靠时钟线 SCL 和数据线 SDA 就可以实现。 PCF8591 是具有 I2C 总线接口的 8 位 A/D 及 D/A 转
换器,有 4 路 A/D 转换输入, 1 路 D/A 模拟输出。
PCF8591 采用典型的 I2C 总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向
位组成。飞利浦公司规定 A/D 器件地址为 1001。引脚地址为 A2、 A1、 A0,其值由用户选择,因
此 I2C 系统中最多可接 8 个具有 I2C 总线接口的 A/D 器件。地址的最后一位为方向位 R/W,当主
控器对 A/D 器件进行读操作时为 1,进行写操作时为 0。总线操作时,由器件地址、引脚地址和
方向位组成的从地址为主控器发送的第一字节。
控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。控制字节存放在控制
寄存器中,总线操作时为主控器发送的第二字节。

D7 D6 D5 D4 D3 D2 D1 D0
0 x x x 0 x x x

D1和D0为AD通道编号

D1 D0 对应通道
0 0 通道0
0 1 通道1
1 0 通道2
1 1 通道3

D2 是自动增益选择(1 有效);
D5 和 D4 是模拟量输入选择: 00—四路单端输入、 01—三路差分输入、 10—两两单端与一路差分、 11—两路差分;
D6 是模拟输出允许(1 有效)。

代码

/*************************************************
函数功能:AD输入
*************************************************/
uchar Pca_Adin(uchar pca)
{uchar vlot;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(0x40|pca);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();vlot = IIC_RecByte();IIC_SendAck(1);IIC_Stop();return vlot;
}
/*************************************************
函数功能:DA输出
*************************************************/
void Out_DAC(unsigned char Digital)
{IIC_Start();          //打开iicIIC_SendByte(0x90);器件寻址,方向上是写(写命令)IIC_WaitAck();       //等待应答IIC_SendByte(0x40);  //打开输出通道IIC_WaitAck();       //等待应答IIC_SendByte(Digital);//输出值255 = 5v;IIC_WaitAck();IIC_Stop();
}

51单片机PCF8951芯片的A/D和D/A相关推荐

  1. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”

    利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇"显示贪吃蛇" 完整的项目链接: https://github.com/linxinloningg/51_chip_ ...

  2. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇“自动运行函数”

    利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇"自动运行函数" 完整的项目链接: https://github.com/linxinloningg/51_chip ...

  3. 51单片机(四)—— 51单片机仿真芯片的使用

    在前面的文章中,我们都是直接用串口将程序烧写到单片机中运行,在这种开发方式下,如果程序有问题,很难找到问题所在,用过一些高端单片机的人可能知道,一般单片机是可以用调试器调试的,可以单步调试.设置断点等 ...

  4. 写一下在写代码时遇到的小问题及解决方法(51单片机-89c51芯片)

    1.keil5没有51系列单片机的cpu选项 解决方法:从KEIL官网上下载一个C51的支持包并安装到keil5根目录即可 2.***WARNINGL16:UNCALLEDSEGMENT,IGNORE ...

  5. 基于51单片机TLC2543芯片实现AD转换

    #include<reg52.h> //头文件 sbit TCL2543_EOC = P1^0; //转换结束标志IO口 sbit TCL2543_CLK = P1^1; //I/O时钟输 ...

  6. 51单片机智能温控风扇

    大三上学期写的一个课程设计,完成的功能就是读取当前环境温度,在数码管上显示,并根据其驱动风扇转动的快慢,另用键盘扫描实现了总开关,超过一定阈值蜂鸣器响起.用51单片机由于芯片问题,使用两个定时器,很容 ...

  7. 《uCOS51移植心得》---七年前之《快快乐乐跟我学51单片机操作系统和IP栈》

    http://www.amobbs.com/forum.php?mod=viewthread&tid=3396563 <uCOS51移植心得>---七年前之<快快乐乐跟我学5 ...

  8. 基于51单片机电子密码锁门禁开关设计全套资料

    基于51单片机电子密码锁门禁(实物图+原理图+源程序+仿真+毕设论文)全套资料 资料编号:011 本系统采用 51单片机 +24C02芯片+矩阵键盘 +继电器 +开锁指示灯 + LCD1602液晶 + ...

  9. 51单片机空气质量检测系统 甲醛DHT11温湿度烟雾光照报警器WIFI系统

    采用51单片机+ADC0832芯片+DHT11+按键+LCD12864液晶+蜂鸣器+wifi模块+稳压模块+光敏电阻+烟雾传感器+甲醛传感器设计而成. 1.LCD12864液晶实时显示烟雾浓度.当前空 ...

最新文章

  1. Qt 工程 pro文件
  2. 比学习新技术更重要的是思维的改变
  3. spark sql基本使用方法介绍(转载)
  4. c++远征之继承篇——继承方式
  5. mysql 回退查询_MySQL数据库:第十章:分页查询
  6. python编辑器编程猫_编程猫Python编辑器 Mac版0.4.0 下载 - 51下载网
  7. 2、两数相加(python)
  8. CI框架初识-视图渲染
  9. Unity3d和连接MySQL数据库实现登陆注册等功能
  10. 诺贝尔奖离中国还有多远
  11. 【博闻强记】java来发送邮件
  12. 了解伽马(GAMMA、伽马值、光度、灰度系数)
  13. 小啊呜产品读书笔记001:《邱岳的产品手记-05》第9讲 产品案例分析:Hopper的“人工智能” 第10讲 产品被抄袭了怎么办?
  14. 熟悉mysql数据库设计和性能优化_MySQL性能优化学习笔记-(1)数据库设计
  15. Unexpected exception parsing XML document from class path resource
  16. 软件定义网络 Software Defined Network (一)概述
  17. 最长子序列(LCS, LIS, LCIS)
  18. Ignite Beijing 2019你参加了吗?多图,慎点!
  19. 1. 神经网络面试题总结
  20. 2022年全国计算机等级考试(四级)测试题含答案

热门文章

  1. Stata: 因变量是类别变量时采用什么方法估计?
  2. node 环境 启用 ES2015导入功能
  3. PDF 合并软件大全,合并 PDF 文件的简单免费工具
  4. 页高速缓存和页回写(一)
  5. C语言实例:输出各种形式的九九乘法表
  6. 基于SnowNLP的购物评论文本情感分析及准确率验证
  7. Laravel使用Apidoc注解自动生成Api接口文档
  8. Java网络编程与NIO学习总结
  9. 上海大学大一计算机补测查询网址,上海大学检测复习
  10. 发那可g10_FANUC加工中心G10