PCF8591.h

#ifndef _PCF8591_H
#define _PCF8591_Huint8_t getADCvalue(uint8_t chn);
void uint8_tToArray(uint8_t * arry, uint8_t val);#endif

PCF8591.c

#include <stc15f2k60s2.h>      //检查是否有误
#include "stdint.h"
#include "I2C.h"        //需要用到I2C通信协议
#include "PCF8591.h"/* 读取当前的ADC转换值,chn-ADC通道号0~3 */
uint8_t getADCvalue(uint8_t chn) {uint8_t val;I2Cstart();if (I2Cwrite(0x48 << 1) == 0) {    //寻址PCF8591,如未应答,则停止操作并返回0I2Cstop();return 0;}I2Cwrite(0x40 | chn);   //写入控制字节,选择转换通道I2Cstart();I2Cwrite((0x48 << 1) | 0x01);  //寻址PCF8591,指定后续为读操作I2CreadAck();              //先空读一个字节,提供采样转换时间val = I2CreadNak();        //读取刚刚转换完的值I2Cstop();return val;
}
/* ADC转换值转为实际电压值的BCD码形式,arry-数组指针,val-AD转换值 */
void uint8_tToArray(uint8_t * arry, uint8_t val) {arry[0] = (uint8_t)((uint16_t)val * 25 / 2550);      //10^0arry[1] = (uint8_t)((uint16_t)val * 25 / 255) % 10;  //10^-1     arry[2] = (uint8_t)((uint16_t)val * 250 / 255) % 10;//10^-2
}

PCF8591组件(A/D和D/A转换)相关推荐

  1. matlab coff,matlab生成com组件时LINK : fatal error LNK1123: 转换到 COFF 期间失...

    本帖最后由 Victorgc 于 2016-9-9 20:42 编辑 matlab生成com组件时LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏. ...

  2. wepy公共样式_wepy组件化开发之html转换组件

    - 前言 相信大家在小程序开发时都会遇到需要将html代码转换为在小程序中可以展示的代码的情况,例如:我们在管理后台中通过富文本编辑器中录入公告,需要在小程序中动态展示这些公告,大家都知道,大部分的富 ...

  3. 调用WPS服务COM组件转换PDF

    由于从客户有可能上传各中类型的附件,那么在客户实现在线阅览就必须统一格式.基本实现方式就是把所有各种类型文件转换成pdf.然后使用SWFTool把pdf转换成.swf播放文件.在客户端安装flash播 ...

  4. 蓝桥杯单片机-ADC-A/D转换-测量PCF8591中AIN3通道(滑动变阻器Rb2)的电压

    文章目录 前言 实例程序: 题目 main.c iic.c iic.h 前言 蓝桥杯单片机开发板CT107D中的板载A/D转换芯片PCF8591可进行ADC和DAC的转换,该芯片有4个输入通道; 在该 ...

  5. vue中显示和隐藏如何做动画_vue-State Transitions(状态转换)

    Vue的过渡系统提供了许多简单的方法来动画进入,离开和列表,但动画数据本身又如何呢?例如: 数字和计算 显示颜色 SVG节点的位置 元素的大小和其他属性 所有这些都已经存储为原始数字或可以转换为数字. ...

  6. ESFramework介绍之(21)-- Tcp组件接口ITcp介绍

            写了这么多篇介绍ESFramework的文章才想起来还有一些很基础的内容没有介绍,前面介绍的一些组件.框架基本上是与协议无关的(比如无论是Tcp还是Udp甚至是Remoting.Web ...

  7. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台

    引言 移动互联网的初期,囿于设备硬件性能限制,流量以原生App为主,iOS.Android是当时两大平台. 随着硬件及OS的更新换代,H5可承载的体验逐步完善,为提高开发效率.节约资源(复用代码)以及 ...

  8. Qt Creator设置3D组件属性

    Qt Creator设置3D组件属性 设置3D组件属性 设置节点的不透明度和可见性 管理3D转换 设置3D组件属性 该组元件是一个节点可以被用于包装其它目的为将它们分组的目的的类型.这使您可以同时在& ...

  9. vue-day03-vue组件化开发

    文章目录 组件 组件注册 全局注册 组件基础用 组件注意事项 局部注册 Vue 调试工具 Vue组件之间传值 父组件向子组件传值 子组件向父组件传值 兄弟之间的传递 组件插槽 匿名插槽 具名插槽 作用 ...

最新文章

  1. 腾讯面试官:如何停止一个正在运行的线程?我蒙了。。。
  2. linux挂载home分区,Linux(CentOS6) 调整 /home 挂载 分区大小
  3. 使用jQuery操作DOM
  4. (chap3 数据链路)MAC地址
  5. Flutter布局锦囊---验证码倒计时
  6. 截取文件最后10行_10 行 Python 代码自动清理电脑内重复文件,解放双手
  7. 【计算机视觉-从入门到精通系列】 第三章 立体匹配
  8. Conky Harmattan : 一款时尚的Linux桌面助手
  9. 解决前端浏览器字体小于12px办法
  10. tomcat设置独立jvm的例子
  11. k8s1.18-kubeadm安装手册
  12. 英雄联盟自定义局怎么和其他服务器的玩家玩,英雄联盟自定义为什么没有玩家进来...
  13. 工程线图中计算机的处理方法,CAD建筑施工图绘制复杂施工放线方法
  14. 农产品追溯管理平台解决方案
  15. 游戏本地化不止是翻译,还有……
  16. HTML导出PDF有边框,使用jspdf导出的pdf的页面边框
  17. 方舟手游修改服务器难度,方舟生存进化单机版怎么调难度等级
  18. 字符串的长度和字符串数据的长度,length和length()
  19. exfat fat_正确的名称是exFAT还是FAT64?
  20. via ladder

热门文章

  1. 遍历Set集合的四种方法
  2. 人工智能-模糊计算(一)
  3. 技术社招!揭秘「剪映」技术团队如何从0到1打造爆款APP?
  4. 软件工程作业之统计单词出现频率前10 的单词
  5. mysql数据库IO高问题排查
  6. html5响应苹果6手机代码,HTML5 6(示例代码)
  7. hibernate生成表中有BLOB字段的javabean,hql查询出现无效列类型异常
  8. 无效的列类型:1111解决方法
  9. 教你如何免费白漂小白AI字幕播放点数
  10. 结构设计模式之桥接模式