ZKX's LAB

PCF8591 AD 转换时为什么如何实现连续读取数据 pcf8591控制字0x40

2020-09-26知识15

单片机问题PCF8591这种转换器怎么用?编程时0x90 0x91 0x40这些地址都怎么用,又是什么?还有时序图怎么看 需要你看懂芯片资料,就能运用了。先设置寄存器,再进行AD转换,读取转换结果。

PCF8591 AD 转换时为什么如何实现连续读取数据 pcf8591控制字0x40

pcf8591采集电压的程序? 求一个pcf采集电压,在数码管显示的程序。谢过了 Jane 我能吞下玻璃而不伤身 1 人赞同了该回答 include include\"lcd12864.h include\"intrins.h include\"iic.h 。

PCF8591 AD 转换时为什么如何实现连续读取数据 pcf8591控制字0x40

谁知道pcf8591是怎么采集的,程序怎么写啊 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。

PCF8591 AD 转换时为什么如何实现连续读取数据 pcf8591控制字0x40

关于PCF8591的AD DA转换问题 首先说write_byte这个函数的问题,程序一开始就位声明SDA,那么SDA的值要么是0要么是1,如果这次SDA=0,下次SDA=1,那最后SDA不就是1,怎么可以通过for将一个字节的数据赋给SDA?SDA是串行通信数据线,将一个字节赋值给SDA的理解是错误的,实际上是将一个字节的数据分8次一次1位的传送给SDA,在串行时钟的驱动下,SDA上的数据再一位一位的传送出去。再说这个read_byte的问题,首先定义了uchar型的变量k,也把SDA拉高,在执行k=(k)|SDA;的时候,k移出的高位0与SDA(1)进行或,肯定为1,也就是此时k=0000 0001,下次k的值是0000 0010(在上次的基础上加一)还是0000 0011(0000 001 再在最低位补上新来的1)?那么AD是怎么采集的?AD采集的数据存在于字节中,在串行时钟驱动下,一位一位传出来,单片机就是用k=(k)|SDA再把串行数据拼装成字节。至于AD的采集过程,在通过串行口配置好AD转换器后,是自动进行的。read这个函数,为什么一开始要发生0x90这个地址,也就是写?接着发送0x40的控制字使能模拟输出?然后又写了start后发送0x91,也就是读,不能一开始就读吗?这是按照协议操作的,具体见AD手册。

PCF8591进行AD转换读电位值,请教一下控制字节每位的含义和为什么有两个iic_start(); 首先要了解你这个IC的操作顺序,比如读AD的数据,首先是要告诉你的IC读哪个口(通道)(一般一个AD转换的IC是有几个口的了),这是写操作,然后转入读操作,所以出现了两次的iic_start()。还有好好看看这个函数的具体动作就知道了。这是个人的理解,希望能给你帮助。

单片机 PCF8591的AD/DA程序问题 程序语法没有问题,如果出现逆所说的现象你可以用万用表测试下CH0,CH1是不是短路连接,那样的话调节通道1的也就是调节通道0的,单片机会优先执行通道0的。

PCF8591芯片通道什么意思 PCF8591有四个模拟信号输入采集端,通过00,01,02,03来选择你要用到的端口。比如你用第四个端口,就给控制寄存器写0x03,这样第四个通过口就会采集信号。。

#pcf8591#ad转换

随机阅读

qrcode
访问手机版