AD-DA转换(PCF8591)
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)相关推荐
- AD/DA转换(XPT2046)
AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转 ...
- [网友问答1]STM32驱动PCF8591模块,实现AD/DA转换
欢迎关注 程序员小哈带你玩转嵌入式,微信搜索:嵌入式从0到1,更多干货等着你. 想进小哈技术交流群,请加程序员小哈个人微信,带你嵌入式入门进阶. 问题原由 粉丝提问,STM32如何驱动PCF8591? ...
- PCF8591芯片的AD/DA转换(适用于蓝桥杯单片机)
目录 1.PCF8591的引脚介绍 2.用IIC发送或接收字节 发送的第一个字节 发送的第二个字节 发送第三个字节 3.发送和接收的字节转换 4.全部代码 IIC部分 接收电压数据 发送电压数据 1. ...
- PCF8591模块ad/da转换
A/D转换获取电压值 0x43从滑动变阻器中获得电压 0x41从光敏电阻获得电压 实时电压/51.0 给芯片0~255值控制电压0~5v
- 51单片机——AD/DA转换
模数和数模转换 A:模拟量 D:数字量 模拟量:自然界连续变化的物理量.所谓连续,包含两个方面的含义: 一方面从时间上来说,它是随时间连续变化的: 另一方面从数值上来说,它的数值也是连续 ...
- 单片机C语言DA转换,51单片机PCF8591的DA转换程序详解[含HL-1与HJ-c52 DA代码AD/DA原理图](可直接复......
以下是补充(能想到的范围有限有没想到的还请谅解) DA工作原理 基于PCF8591芯片 DA是什么? n DA指数模转换(Digital to Analog),顾名思义,就是把数字信号转换成模拟信号. ...
- AutoLeaders控制组——51单片机学习笔记(AD/DA、红外遥控)
本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...
- 51单片机学习笔记AD/DA
AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...
- STC89C52单片机AD/DA介绍与代码演示
目录 AD/DA介绍 硬件电路模型 硬件电路图 运算放大器 运放电路 AD原理 DA原理 AD/DA性能指标 XPT2046的使用介绍与配置 XPT2046的时序 代码解释 AD/DA介绍 AD(An ...
- PCF8591 ---AD\DA转换器的使用(IIC通信的软件模拟与应用) (by 51单片机)
依旧是借着蓝桥杯的机会,来学习一些模块,和软件模拟一些通信方式. 今天学习的模块是PCF8591,一款AD\DA转换器,使用IIC通信方式. 芯片的内部框图如下所示: 各引脚作用如下表所示: 仍旧和之 ...
最新文章
- 提高C++代码质量 - [083]不要返回局部变量的引用
- C# 中几个关键词的使用
- mysql专区_MySQL-技术专区-详解索引原理
- lz4压缩算法--速度之王
- Outlook收件箱无法看到新邮件而OWA的收件箱可以
- python机器学习搭建空气质量AQI(air quality index)预测模型
- android 内嵌web,Android《内嵌浏览器-WebView》
- 【插件】油猴插件安装
- 仿微信的语音点击播放时的语音图标动画效果
- css 平移到某个位置_CSS3 对象平移translate()translatex()translatey()应用实例,包括水平垂直居中...
- 中首清算:她被誉为中国第一美女,迷倒国际花花公子,今36岁仍单身
- Jinji2 模板引擎简介
- creo绘图属性模板_creo制作工程图模板教程
- 必应词典英语学习APP案例分析
- 有一对兔子,从出生后的第 3 个月起每个月都生一对兔子。小兔子长到第 3 个月后每个月又生一对兔子,假设所有的兔子都不死,问 20 个月内每个月的兔子总数为多少?
- python基础知识整理13-正则re
- spingboot报错I/O error on POST request for “9411/api/v2/spans“: connect timed out
- html中点击图标变色,css可变色图标及原理分析
- SSM框架简单搭建 不涉及权限
- 辉羲智能完成天使+轮融资,用创新计算平台赋能智慧出行
热门文章
- Gemsouls借助亚马逊云科技,将虚拟人社交平台遍布世界各地
- 基于物联网技术的48V蓄电池组远程在线监测解决方案
- [C] 在GCC中获取CPUID信息(兼容VC)
- ppt可以转换成HTML格式吗,极强PDF转换器如何将ppt转换成html网页格式
- excel汇总统计怎么做?
- Mac OS X系统中如何安装Python
- c++使用循环语句对cosx多项式求和
- 精致的像素级别的风格转换 ----- Deep Image Analogy
- angular实现百度地图实现电子围栏
- 上海服务器 微信平台,微信公众平台服务器 fastweixin