AD/DA转换(XPT2046)
AD/DA介绍
AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号
DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号
AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能。
硬件电路模型
AD转换通常有多个输入通道,用多路选择开关连接至AD转换器,以实现AD多路复用的目的,提高硬件利用率。
AD/DA与单片机数据传送可使用并口(速度快、原理简单),也可使用串口(接线少、使用方便)
可将AD/DA模块直接集成在单片机内,这样直接写入/读出寄存器就可进行AD/DA转换,单片机的IO口可直接复用为AD/DA的通道。
硬件电路
• 单独供电
• PCF8591 的操作电压范围2.5V-6V
• 低待机电流
• 通过I²C 总线串行输入/输出
• PCF8591 通过3 个硬件地址引脚寻址
• PCF8591 的采样率由I²C 总线速率决定
• 4 个模拟输入可编程为单端型或差分输入
• 自动增量频道选择
• PCF8591 的模拟电压范围从VSS 到VDD
• PCF8591 内置跟踪保持电路
• 8-bit 逐次逼近A/D 转换器
DA原理
AD原理
AD / DA一般性能指标
XPT2046
XPT2046.c
#include <REGX52.H>
#include <INTRINS.H>//引脚定义
sbit XPY2046_DIN=P3^4;
sbit XPY2046_CS=P3^5;
sbit XPY2046_DCLK=P3^6;
sbit XPY2046_DOUT=P3^7;/*** @brief ZPT2046读取AD值* @param Command 命令字,范围:头文件内定义的宏,结尾的数字表示转换的位数* @retval AD转换后的数字量,范围:8位为0~255,12位为0~4095*/
unsigned int XPT2046_ReadAD(unsigned char Command)
{unsigned char i;unsigned int Data=0;XPY2046_DCLK=0; //初始化XPY2046_CS=0; //初始化for(i=0;i<8;i++) //循环依次把8位发出去{XPY2046_DIN=Command&(0x80>>i); //最高位XPY2046_DCLK=1;XPY2046_DCLK=0;}for(i=0;i<16;i++){XPY2046_DCLK=1;XPY2046_DCLK=0;if(XPY2046_DOUT){Data|=(0x8000>>i);}}XPY2046_CS=1;return Data>>8;
}
主函数
#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "XPT2046.h"unsigned int ADValue;void main(void)
{LCD_Init();LCD_ShowString(1,1,"ADJ NTC GR");while(1){ADValue=XPT2046_ReadAD(XPT2046_XP); //读取AIN0,可调电阻LCD_ShowNum(2,1,ADValue,3); //显示AIN0ADValue=XPT2046_ReadAD(XPT2046_YP); //读取AIN1,热敏电阻LCD_ShowNum(2,6,ADValue,3); //显示AIN1ADValue=XPT2046_ReadAD(XPT2046_VBAT); //读取AIN2,光敏电阻LCD_ShowNum(2,11,ADValue,3); //显示AIN2Delay(100);}
}
#ifndef __XPT2046_H__
#define __XPT2046_H__
//AIN0-AIN3
#define XPT2046_VBAT 0xAC
#define XPT2046_AUX 0xEC
#define XPT2046_XP 0x9C //0xBC
#define XPT2046_YP 0xDCunsigned int XPT2046_ReadAD(unsigned char Command);#endif
AD/DA转换(XPT2046)相关推荐
- [网友问答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:数字量 模拟量:自然界连续变化的物理量.所谓连续,包含两个方面的含义: 一方面从时间上来说,它是随时间连续变化的: 另一方面从数值上来说,它的数值也是连续 ...
- 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 ...
- C51---16 AD/DA 模拟数字转换
C51---16 AD/DA 模拟数字转换 AD/DA介绍 硬件电路模型 运算放大器 运算放大电路 DA原理 AD原理 AD/DA性能指标 XPT2016芯片时序 AD采集可调电阻.热敏电阻.光敏电阻 ...
- 单片机c语言ad与da转换实验报告,单片机AD与DA转换实验报告.docx
单片机AD与DA转换实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...
最新文章
- Android系统Surface机制的SurfaceFlinger服务的线程模型分析
- intellij idea 13amp;14 插件推荐及高速上手建议 (已更新!)
- 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数
- oracle32位11g中文乱码,win7 64位系统 Oracle32bit + PL/SQL访问Orale服务,Oracle 11g的安装,中文乱码问题的解决...
- 里约奥运会的五项技术创新
- HIBERNATE调试工具JBOSS TOOLS
- 《现代控制工程基础》复习笔记
- 并发编程 CAS算法
- altium designer(AD13)隐藏敷铜的方法
- MGV2000_S905L系列_线刷_通刷固件
- 2012第35周国内Android应用下载动态
- 96---Python 绘制阿基米德螺旋线
- 《Head First 设计模式》例子的C++实现(4 单件模式)
- 讯飞语音转文字 PHP demo
- Linux中verilog-mode使用方法总结
- 2022出海拉美:巴西电商市场现状及网红营销特点
- 天津联通光猫创维DT541-csf改桥接
- 棋盘覆盖问题C++版
- 如何用Zabbix监控OpenWrt路由器-Zabbix-Agent安装篇
- InvalidDefinitionException: No serializer found for class... 因为没有给对象写get、set方法
热门文章
- public class 和 class 的区别
- Autojs - 打开或关闭系统代理
- 一首火遍美国的小诗《纽约比加州时间早三个小时》
- 【基于Java的超级玛丽游戏的设计与实现(效果+源代码+论文+答辩PPT)】
- USB Map 解决 AX200 蓝牙不出现的问题-黑苹果 Big Sur 11.5.2-TUF B550M PLUS WI-FI
- STM32F103C8T6 移植 μC/OS-ii Keil(二)
- 基于FullCalendar插件的个人日程安排系统(4)
- Hutool导出Excel,在一个单元格设置多个字体样式
- 计算机怎么强制显示桌面,电脑显示桌面太大怎么办
- 中国青年女科学家奖公布:付巧妹等20人、风云卫星高精度定标与定位技术等5个团队获奖 | 美通社头条...