- 别 称
- 模拟一数字转换
- 作 用
- 信号数字化
- 中文名
- 模数转换
- 外文名
- analogue-to-digital conversion;ADC
-
AD转换
2020-05-17 21:48:27AD转换 1.AD转换就是模拟信号转数字信号 2.我们使用的芯片是:xpt2046 原理图:我们使用的是AIN0 3.引脚的含义: 4.命令字的含义: 5.操作时序: 代码:来源于普中科技单片机教程 void SPI_Write(uchar dat) { ...AD转换
1.AD转换就是模拟信号转数字信号
2.我们使用的芯片是:xpt2046
原理图:我们使用的是AIN0
3.引脚的含义:
4.命令字的含义:
5.操作时序:
代码:来源于普中科技单片机教程void SPI_Write(uchar dat) { uchar i; CLK = 0; for(i=0; i<8; i++) { DIN = dat >> 7; //放置最高位 dat <<= 1; CLK = 0; //上升沿放置数据 CLK = 1; } } uint SPI_Read(void) { uint i, dat=0; CLK = 0; for(i=0; i<12; i++) //接收12位数据 { dat <<= 1; CLK = 1; CLK = 0; dat |= DOUT; } return dat; } uint Read_AD_Data(uchar cmd) { uchar i; uint AD_Value; CLK = 0; CS = 0; SPI_Write(cmd); for(i=6; i>0; i--); //延时等待转换结果 CLK = 1; //发送一个时钟周期,清除BUSY _nop_(); _nop_(); CLK = 0; _nop_(); _nop_(); AD_Value=SPI_Read(); CS = 1; return AD_Value; } /************************************************************************************** * 电位器AD实验 * 实现现象:下载程序后数码管后4位显示电位器检测的AD值,范围是0-4095,一般达不到最大,这个受 你供电电压的影响. 注意事项:如果不想让点阵模块显示,可以将74HC595模块上的JP595短接片拔掉。 ***************************************************************************************/ #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include"XPT2046.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; u8 disp[4]; u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } /******************************************************************************* * 函数名 :datapros() * 函数功能 :数据处理函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void datapros() { u16 temp; static u8 i; if(i==50) { i=0; temp = Read_AD_Data(0x94); // AIN0 电位器,8bit模式 } i++; disp[0]=smgduan[temp/1000];//千位 disp[1]=smgduan[temp%1000/100];//百位 disp[2]=smgduan[temp%1000%100/10];//个位 disp[3]=smgduan[temp%1000%100%10]; } /******************************************************************************* * 函数名 :DigDisplay() * 函数功能 :数码管显示函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void DigDisplay() { u8 i; for(i=0;i<4;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 case(3): LSA=1;LSB=1;LSC=0; break;//显示第3位 } P0=disp[3-i];//发送数据 delay(100); //间隔一段时间扫描 P0=0x00;//消隐 } } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { while(1) { datapros(); //数据处理函数 DigDisplay();//数码管显示函数 } }
-
AD 转换
2011-01-13 18:28:00AD转换常常遇到这样一种情况,就是AD转换时常常发现只转换了一次,要按复位键,采集到的数据才有变化.这是因为,你的OE(AD0809)置为1之后,便没有将它拉低, OE——输出允许信号。用于控制三态输出锁存器向...AD转换常常遇到这样一种情况,就是AD转换时常常发现只转换了一次,要按复位键,采集到的数据才有变化.这是因为,你的OE(AD0809)置为1之后,便没有将它拉低, OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据,并不能将OE与VCC相连,这样是不行的,这样只采集了一次.其它的AD芯片也是一样的,比如AD0832
-
单片机AD转换
2018-10-09 14:01:29单片机AD转换 -
AD转换电路
2018-12-09 20:24:33ad转换电路,工程文件, -
STC12C5410AD AD转换示例程序
2020-08-02 05:49:04本文主要介绍了STC12C5410AD AD转换示例程序。 -
ADC0832作AD转换及串口显示程序
2017-10-09 01:47:19最近用了一个模拟的火焰传感器,很不好用,于是用0832芯片作了AD转换,加了串口显示,方便调试。 先给出0832的工作资料 ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小...最近用了一个模拟的火焰传感器,很不好用,于是用0832芯片作了AD转换,加了串口显示,方便调试。
先给出0832的工作资料
ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC083X是市面上常见的串行模—数转换器件系列。ADC0831、ADC0832、ADC0834、ADC0838是具有多路转换开关的8位串行I/O模—数转换器,转换速度较高(转换时间32uS),单电源供电,功耗低(15mW),适用于各种便携式智能仪表。本章以ADC0832为例,介绍其使用方法。
ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
ADC0832 具有以下特点:
· 8位分辨率;
· 双通道A/D转换;
· 输入输出电平与TTL/CMOS相兼容;
· 5V电源供电时输入电压在0~5V之间;
· 工作频率为250KHZ,转换时间为32μS;
· 一般功耗仅为15mW;
· 8P、14P—DIP(双列直插)、PICC 多种封装;
· 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为-40°C to +85°C;
图3 ADC0832引脚图
芯片接口说明:
· CS_ 片选使能,低电平芯片使能。
· CH0 模拟输入通道0,或作为IN+/-使用。
· CH1 模拟输入通道1,或作为IN+/-使用。
· GND 芯片参考零电位(地)。
· DI 数据信号输入,选择通道控制。
· DO 数据信号输出,转换数据输出。
· CLK 芯片时钟输入。
· Vcc/REF 电源输入及参考电压输入(复用)
ADC0832的工作原理:
正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。
通道地址
通道
工作方式说明
SGL/DIF
ODD/SIGN
0
1
0
0
+
-
差分方式
0
1
-
+
1
0
+
单端输入方式
1
1
+
表1:通道地址设置表
如表1所示,当此两位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当两位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第三个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO端输出转换数据最高位Data7,随后每一个脉冲的下降沿DO端输出下一位数据。直到第11个脉冲时发出最低位数据Data0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出Data0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。时序说明请参照图4。
作为单通道模拟信号输入时ADC0832的输入电压是0—5V且8位分辨率时的电压精度为19.53mV,即(5/256)V。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。
ADC0832的工作时序
图4 ADC0832工作时
用的单片机为无AD转换功能的51单片机
程序如下
#include<reg52.h>
sbit ADC_CLK=P0^0;
sbit ADC_DI=P0^1;// DI DO也可用同一引脚,因为IO口双向且DI DO在不同时间使用,互不干扰
sbit ADC_DO=P0^2;
sbit ADC_CS=P0^3;
/*******************************************************************/
void Delay(unsigned char x)
{
unsigned char i;
for(i=0;i<x;i++);
}
unsigned char ADC0832(void) //把模拟电压值转换成8位二进制数并返回
{
unsigned char i,data_c;
data_c=0;
ADC_CS=0;
ADC_DO=0;//片选,DO为高阻态
for(i=0;i<10;i++)
{;}
ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;
Delay(2); //第一个脉冲,起始位
ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;
Delay(2); //第二个脉冲,DI=1表示双通道单极性输入
ADC_CLK=0;
Delay(2);
ADC_DI=1;
ADC_CLK=1;
Delay(2); //第三个脉冲,DI=1表示选择通道1(CH2)
ADC_CLK=0;//
ADC_DI=0;
ADC_DO=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备
ADC_CLK=1;
Delay(2);
ADC_CLK=0;
Delay(2);//经实验,这里加一个脉冲AD便能正确读出数据,
//不加的话读出的数据少一位(最低位d0读不出)
for (i=0; i<8; i++)
{
ADC_CLK=1;
Delay(2);
ADC_CLK=0;
Delay(2);
data_c=(data_c<<1)|ADC_DO;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数
}
ADC_CS=1;//取消片选 一个转换周期结束
return(data_c);//返回
}
void senddata(unsigned char dat)
{
SBUF =dat;
while(!TI);
TI = 0;
}
void init(void)
{
SCON=0x50; //设定串口工作方式
PCON=0x00; //波特率不倍增
TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
EA=1;
ES = 1; //允许串口中断
TL1=0xfd;
TH1=0xfd; //波特率9600
TR1=1;
}
/*********************************************************
串行中断服务函数
*********************************************************/
void main()
{
unsigned char ss;
init();
while(1)
{
P1= ADC0832();
ss= ADC0832();//观察P1仿真结果变化
senddata(ss/1000+0x30);
senddata(ss%1000/100+0x30);
senddata(ss%100/10+0x30);
senddata(ss%10+0x30);
senddata(0x0d);
senddata(0x0a);
}
}
-
ad转换程序
2013-04-12 09:54:13ad转换程序 -
单片机-AD转换
2020-08-27 14:22:29在很早以前,也就是2006年的时候,我见过一个电子称点设计电路板。最核心就是一个AD转换的电路 -
AD转换器的选择
2020-11-13 11:18:11AD转换器的主要指标如下。 (1)分辨率(Resolution)。指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。分辨率又称精度,通常以数字信号的位数来表示。 (2)转换速率(Conversion Rate... -
AD转换 数码管显示
2016-10-20 22:25:59AD转换 数码管显示 -
codewarrior单片机AD转换程序
2020-03-09 16:14:05codeworrior单片机ad转换程序,可实现AD转换功能,便于学生更好地理解单片机AD转换程序及其应用。 -
AD转换芯片资料
2018-11-02 18:03:11希望各位借鉴学习一下,这个是我之前作AD转换时使用的 -
AD转换实验
2014-04-30 10:15:19ad转换程序,单片机为AT89S52,转换器ADC0809并能够上传pc机 -
stm32AD转换
2019-03-27 18:05:32使用STM32F407VGT6进行ad转换,并将多次采集结果求取平均值,提高采集精度 -
AD转换c语言程序
2016-07-28 16:07:43C语言编写的AD转换程序 -
AD转换AD7835
2009-08-31 09:24:45AD7835是12位AD转换,希望大家用得开心,哈哈哈哈哈哈哈 -
关于单片机的AD转换
2020-07-19 06:22:25本文主要讲了一下关于单片机的AD转换,希望对你的学习有所帮助。 -
三菱AD转换概述操作Manual
2021-01-05 10:55:25三菱AD转换概述,适合PLC学习人员使用 -
PIC单片机之AD转换
2020-07-13 12:25:11AD转换 我们先看看R1和R2,R2是个可调电阻如果我们将R2变大 RA0这个管脚上的电压就越大。R2变小 RA0这个管脚上的电压就越小。那单片机是怎么知道电压变化的。这就需要AD转换。就是将模拟量转换成数字量。 ... -
AD转换VHDL代码
2015-07-21 20:24:16FPGA仿真实测 AD转换VHDL代码 -
AD转换仿真及例程
2017-05-04 11:07:14AD转换仿真及例程 -
ad转换器库文件
2017-03-11 10:44:39ad转换器库文件 -
AVR8515积分AD转换
2020-03-21 14:03:39AVR8515积分AD转换,定时器0中断采样,低电平用充电开始部分,高电平用放电开始部分,线性好一些。转换结果还比较满意。试验成功! 就这一个C文件,自己做工程,把此文件添加到工程中。 -
AD转换滤波线路的设计
2020-08-11 18:44:43本讲主要介绍AD转换滤波器线路的设计。 -
AD转换器相关名词解释
2020-07-18 12:42:11AD转换器相关名词解释 1)分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。分辩率又称精度,通常以数字信号的位数来表示。 2) 转换速率(Conversion Rate)是指完成一次从模拟... -
模拟技术中的AD转换器种类-模数转换的方法-模数转换原理
2020-11-15 21:20:53下面简要介绍常用的几种模数转换类型...初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。 转换器种类2)逐次比较型(如TLC0831)模数转换的方法 逐次比较型AD由一个比较器和DA转换器通过逐次比
-
傲梅轻松备份AOMEI_Backupper_v6.3.rar
-
FPGA 之 SOPC 系列(七)NIOS II 高级技术
-
单元测试UnitTest+Pytest【Selenium3】
-
EXCEL 2000操作读和写.e
-
小论文数据求解.zip
-
在鼠标位置输入一个字母(模拟按健).e
-
易语言显示鼠标座标.e
-
OSPF拓扑搭建
-
中文说明worldserver.conf
-
Selenium3分布式与虚拟化
-
【数据分析-随到随学】机器学习模型及应用
-
单片机完全学习课程全五季套餐
-
flutter插件调用APP页面、使用原生aar,framework库
-
pyechart数据可视化
-
【数据分析-随到随学】数据可视化
-
微信支付2021系列之扫码支付一学就会java版
-
jdk-8u161-linux-x64.zip
-
Driver Signature Enforcement Overrider-桌面系统工具类资源
-
隐马尔可夫模型(HMM)-C++代码类资源
-
转行做IT-第6章 IDEA、方法