AD转换目录

  • 一、AD转换(PCF8591)
    • ①初始化函数
    • ②读取ADC值的函数
  • 二、DA转换(PCF8591)
  • 三、STC15系列单片机用户手册.pdf—第10章

一、AD转换(PCF8591)


思路:(6+6,两个地址0x90写,0x91读)

①初始化函数

(1)启动IIC函数
(2)发送地址激活PCF8591:地址为0x90(A2A1A0已经接地了,最后一位为0表示写)
(3)等待应答函数
(4)发送通道函数(前面6个都是0,最后两位选择通道->0x01光敏电阻;0x03滑动变阻器)
(5)再等待应答
(6)关闭IIC函数

②读取ADC值的函数

(1)启动IIC函数
(2)发送地址激活PCF8591:地址为0x91(A2A1A0已经接地了,最后一位为1表示读)
(3)等待应答
(4)IIC读取函数
(5)等待应答
(6)关闭IIC

unsigned char AD_Read(unsigned char add)
{unsigned char temp;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(add);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();temp = IIC_RecByte();IIC_WaitAck();IIC_Stop();return temp;
}

*同时用滑动变阻器和光敏电阻时,会出现位置窜位 直接两个数据对调就可以了,解决方法(① 读两次 ② 反过来)

二、DA转换(PCF8591)

void AD_Write(unsigned char add,unsigned char dat)
{IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(add);IIC_WaitAck();IIC_SendByte(dat);IIC_WaitAck();IIC_Stop();
}

调用说明:

    AD_Write(0x40,0xFF);//0x40-模拟输出,0xFF-5V电压Delay5ms();

PCF8591的AD采集和DA输出功能不能同时使用

三、STC15系列单片机用户手册.pdf—第10章

———10.6.2 AD转换的测试程序(ADC查询方式)

#define 宏名 注释
#define ADC_POWER 0x80 //ADC电源控制位
#define ADC_FLAG 0x10 //ADC完成标志
#define ADC_START 0x08 //ADC起始控制位
#define ADC_SPEEDLL 0x00 //540个时钟
BYTE GetADCResult(BYTE ch) /*----------------------------读取ADC结果----------------------------*/
{ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;_nop_(); //等待4个NOP_nop_();_nop_();_nop_();while (!(ADC_CONTR & ADC_FLAG));   //等待ADC转换完成ADC_CONTR &= ~ADC_FLAG; //Close ADCreturn ADC_RES;  //返回ADC结果
}
void InitADC()/*----------------------------初始化ADC----------------------------*/
{P1ASF = 0xff; //设置P1口为AD口ADC_RES = 0;    //清除结果寄存器ADC_CONTR = ADC_POWER | ADC_SPEEDLL;Delay(2); //ADC上电并延时
}//添加头文件#include "intrins.h"
//(把BYTE改成uchar)
//Delay(2);用STC-ISP软件改成 Delay2ms();
调用说明:
ad = GetADCResult(1);   //ch可取0、1、2、3、4、5、6、7(分别代表P1对应引脚)

AD-DA转换(PCF8591)相关推荐

  1. AD/DA转换(XPT2046)

    AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转 ...

  2. [网友问答1]STM32驱动PCF8591模块,实现AD/DA转换

    欢迎关注 程序员小哈带你玩转嵌入式,微信搜索:嵌入式从0到1,更多干货等着你. 想进小哈技术交流群,请加程序员小哈个人微信,带你嵌入式入门进阶. 问题原由 粉丝提问,STM32如何驱动PCF8591? ...

  3. PCF8591芯片的AD/DA转换(适用于蓝桥杯单片机)

    目录 1.PCF8591的引脚介绍 2.用IIC发送或接收字节 发送的第一个字节 发送的第二个字节 发送第三个字节 3.发送和接收的字节转换 4.全部代码 IIC部分 接收电压数据 发送电压数据 1. ...

  4. PCF8591模块ad/da转换

    A/D转换获取电压值 0x43从滑动变阻器中获得电压 0x41从光敏电阻获得电压 实时电压/51.0 给芯片0~255值控制电压0~5v

  5. 51单片机——AD/DA转换

    模数和数模转换 A:模拟量        D:数字量 模拟量:自然界连续变化的物理量.所谓连续,包含两个方面的含义: 一方面从时间上来说,它是随时间连续变化的: 另一方面从数值上来说,它的数值也是连续 ...

  6. 单片机C语言DA转换,51单片机PCF8591的DA转换程序详解[含HL-1与HJ-c52 DA代码AD/DA原理图](可直接复......

    以下是补充(能想到的范围有限有没想到的还请谅解) DA工作原理 基于PCF8591芯片 DA是什么? n DA指数模转换(Digital to Analog),顾名思义,就是把数字信号转换成模拟信号. ...

  7. AutoLeaders控制组——51单片机学习笔记(AD/DA、红外遥控)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  8. 51单片机学习笔记AD/DA

    AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...

  9. STC89C52单片机AD/DA介绍与代码演示

    目录 AD/DA介绍 硬件电路模型 硬件电路图 运算放大器 运放电路 AD原理 DA原理 AD/DA性能指标 XPT2046的使用介绍与配置 XPT2046的时序 代码解释 AD/DA介绍 AD(An ...

  10. PCF8591 ---AD\DA转换器的使用(IIC通信的软件模拟与应用) (by 51单片机)

    依旧是借着蓝桥杯的机会,来学习一些模块,和软件模拟一些通信方式. 今天学习的模块是PCF8591,一款AD\DA转换器,使用IIC通信方式. 芯片的内部框图如下所示: 各引脚作用如下表所示: 仍旧和之 ...

最新文章

  1. 提高C++代码质量 - [083]不要返回局部变量的引用
  2. C# 中几个关键词的使用
  3. mysql专区_MySQL-技术专区-详解索引原理
  4. lz4压缩算法--速度之王
  5. Outlook收件箱无法看到新邮件而OWA的收件箱可以
  6. python机器学习搭建空气质量AQI(air quality index)预测模型
  7. android 内嵌web,Android《内嵌浏览器-WebView》
  8. 【插件】油猴插件安装
  9. 仿微信的语音点击播放时的语音图标动画效果
  10. css 平移到某个位置_CSS3 对象平移translate()translatex()translatey()应用实例,包括水平垂直居中...
  11. 中首清算:她被誉为中国第一美女,迷倒国际花花公子,今36岁仍单身
  12. Jinji2 模板引擎简介
  13. creo绘图属性模板_creo制作工程图模板教程
  14. 必应词典英语学习APP案例分析
  15. 有一对兔子,从出生后的第 3 个月起每个月都生一对兔子。小兔子长到第 3 个月后每个月又生一对兔子,假设所有的兔子都不死,问 20 个月内每个月的兔子总数为多少?
  16. python基础知识整理13-正则re
  17. spingboot报错I/O error on POST request for “9411/api/v2/spans“: connect timed out
  18. html中点击图标变色,css可变色图标及原理分析
  19. SSM框架简单搭建 不涉及权限
  20. 辉羲智能完成天使+轮融资,用创新计算平台赋能智慧出行

热门文章

  1. Gemsouls借助亚马逊云科技,将虚拟人社交平台遍布世界各地
  2. 基于物联网技术的48V蓄电池组远程在线监测解决方案
  3. [C] 在GCC中获取CPUID信息(兼容VC)
  4. ppt可以转换成HTML格式吗,极强PDF转换器如何将ppt转换成html网页格式
  5. excel汇总统计怎么做?
  6. Mac OS X系统中如何安装Python
  7. c++使用循环语句对cosx多项式求和
  8. 精致的像素级别的风格转换 ----- Deep Image Analogy
  9. angular实现百度地图实现电子围栏
  10. 上海服务器 微信平台,微信公众平台服务器 fastweixin