自学单片机之ADC 模数转换

自学单片机之ADC 模数转换
自学单片机之ADC 模数转换

ADC 模数转换

Adc转换的值乘以分辨率的最小刻度就是对应电压值

1.1 AD转换的主要技术指标

1.11 分辨率(可以类比于量程最小刻度来理解)

常用二进制的位数来表示。例如:12位的ADC 分辨率就为12 位,或者说分辨率为满刻度的1/(2^12) 。一个10V的满刻度的12 位adc 能分辨的输入电压变化最小值为:

10V*1/(2^12)=2.4mv

1.12 量化误差

所谓量化:ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程就是量化,所引起的误差就是量化误差。

1.13 偏移误差满刻度误差线性度绝对精度转换速率(详见普中51单片机教程)

1.14 逐次逼近式AD转换器介绍:

1.2 xpt 2046 芯片

XPT2046 是一款 4 线制电阻式触摸屏控制器,内含 12 位分辨率 125KHz 转换速率逐步逼近型 A/D 转换器。XPT2046 支持从 1.5V 到 5.25V 的低电压 I/O 接口。XPT2046 能通过执行两次 A/D 转换查出被按的屏幕位置,除

此之外,还可以测量加在触摸屏上的压力。内部自带 2.5V 参考电压,可以作为辅助输入、温度测量和电池监测

之用,电池监测的电压范围可以从 0V 到 6V。XPT2046 片内集成有一个温度传感器。在2.7V 的典型工作状态

下,关闭参考电压,功耗可小于 0.75mW。

X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分模式。选择VBAT、Temp和AUX 时应该配置为单端模式;作为触摸屏应用时,应该配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换精度。

1.3 编程相关

通信时序:

程序:

程序思路:

1首先我们要定义一个全局变量来存储我们读到的AD (模数转换)值;

2再就是SPI 通信,我们首先要给XPT2046写入命令字,高位在前一位一位写入,即选择相应的通道输出。

3 再就是读取XPT2046 的12 位输出值,一位一位读取,先读高位。

void SPI_Write(uchar dat) 写入命令字函数

{

uchar i;

CLK = 0;

for(i=0; i<8; i++) //写八次

{

DIN = dat >> 7; // 右移七位将最高位写入XPT2046

dat <<= 1; //右移一位选取次高位

CLK = 0;

CLK = 1; 时钟上升沿开始写入

}

}

uint SPI_Read(void) // SPI 通信读函数因为读取的值是要用的,所以程序最后

需要返回值,又因为读取的数据为12位,所以用uint 而

不是空定义void

{

uint i, dat=0;

CLK = 0;

for(i=0; i<12; i++) //循环读取12 次注意写函数是先赋值,再移位。而读函数需要先移位再赋值,因为只需移位十一次,第一次移位是初值0 所以并没有移位{

dat <<= 1;

CLK = 1; //开始读

CLK = 0;

dat |= DOUT; 用“与”符号是防止干扰只要DOUT有1 则dat 就有1

}

return dat; 返回值

}

uint Read_AD_Data(uchar cmd) 单片机读取AD值函数

{

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; 返回值等待调用

}

void datapros() 数据处理函数{

u16 temp;

static u8 i;

if(i==50)

{

i=0;

temp = Read_AD_Data(0x94); // }

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];

}

数模模数转换实验报告

数模模数转换实验报告 一、实验目的 1、了解数模和模数转换电路的接口方法及相应程序设计方法。 2、了解数模和模数转换电路芯片的性能和工作时序。 二、实验条件 1、DOS操作系统平台 2、数模转换芯片DAC0832和模数转换器ADC0809芯片。 三、实验原理 1、数模转换: (1)微机处理的数据都是数字信号,而实际的执行电路很多都是模拟的。因此微机的处理结果又常常需要转换为模拟信号去驱动相应的执行单元,实现对被控对象的控制。这种把数字量转换为模拟量的设备称为数模转换器(DAC),简称D/A。 (2)实验中所用的数模转换芯片是DAC0832,它是由输入寄存器、DAC 寄存器和D/A 转换器组成的CMOS 器件。其特点是片内包含两个独立的8 位寄存器,因而具有二次缓冲功能,可以将被转换的数据预先存在DAC 寄存器中,同时又采集下一组数据,这就可以根据需要快速修改DAC0832 的输出。 2、模数转换: (1)在工程实时控制中,经常要把检测到的连续变化的模拟信号,如温度、压力、速度等转换为离散的数字量,才能输入计算机进行处理。实现模拟量到数字量转换的设备就是模数转换器(ADC),简称A/D。

(2)模数转换芯片的工作过程大体分为三个阶段:首先要启动模数转换过程。其次,由于转换过程需要时间,不能立即得到结果,所以需要等待一段时间。一般模数转换芯片会有一条专门的信号线表示转换是否结束。微机可以将这条信号线作为中断请求信号,用中断的方式得到转换结束的消息,也可以对这条信号线进行查询,还可以采用固定延时进行等待(因为这类芯片转换时间是固定的,事先可以知道)。最后,当判断转换已经结束的时候,微机就可以从模数转换芯片中读出转换结果。 (3)实验采用的是8 路8 位模数转换器ADC0809 芯片。ADC0809 采用逐次比较的方式进行A/D 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。推测信号由D/A 转换器的输出获得,当推测信号与模拟信号相等时,向D/A 转换器输入的数字就是对应模拟信号的数字量。ADC0809 的转换时间为64 个时钟周期(时钟频率500K 时为128S)。分辨率为 8 位,转换精度为±LSB/2,单电源+5V 供电时输入模拟电压范围为04.98V。 四、实验内容 1、把DAC0832 的片选接偏移为10H 的地址,使用debug 命令来测试 DAC0832 的输出,通过设置不同的输出值,使用万用表测量Ua 和Ub 的模拟电压,检验DAC0832 的功能。选取典型(最低、最高和半量程等)的二进制值进行检验,记录测得的结果。实验结果记录如下:

∑-△模数转换器的原理及应用

∑-△模数转换器的原理及应用 张中平 (东南大学微电子机械系统教育部重点实验室,南京210096) 摘要:∑-△模数转换器由于造价低、精度高、性能稳定及使用方便等特点,越来越广泛地使用在一些高精度仪器仪表和测量设备中,介绍该转换器的基本原理,并重点举例介绍AD7708芯片的应用,该芯片是16 bit模数转换器,与24 bit AD7718引脚相同,可直接升级。 关键词:模数转换器;寄存器;串行口 我们通常使用的模数转换器(ADC)大多为积分型和逐次逼近型,积分型转换效果不够好,转换过程中带来的误差比较大;逐次逼近型转换效果较好但制作成本较高,尤其是高位数转换,转换位数越多,精度越高,制作成本就越高。而∑-△ADC可以以相对逐次逼近型简单的电路结构,而得到低成本,高位数及高精度的转换效果∑-△ADC大多设计为16或24 bit转换精度。近几年来,在相关的高精度仪器制作领域该转换器得到了越来越广泛的应用[1]。 1 ∑-△ADC的基本工作原理简介 ∑-△模数转换器的工作原理简单的讲,就是将模数转换过后的数字量再做一次窄带低通滤波处理。当模拟量进入转换器后,先在调制器中做求积处理,并将模拟量转为数字量,在这个过程中会产生一定的量化噪声,这种噪声将影响到输出结果,因此,采用将转换过的数字量以较低的频率一位一位地传送到输出端,同时在这之间加一级低通滤波器的方法,就可将量化噪声过滤掉,从而得到一组精确的数字量[1,2]。 2 AD7708/AD7718,∑-△ADC的应用 AD7708/AD7718是美国ADI公司若干种∑ΔADC中的一种。其中AD7708为16 bit转换精度,AD7718为24 bit转换精度,同为28条引脚,而且相同引脚功能相同,可以互换。为方便起见,下面只介绍其中一种,也是我们工作中用过的AD7708。 2.1AD7708的工作原理 同其它智能化器件一样,AD7708也可以用软件来调节其所具有的功能,即通过微控制器MCU编程向AD7708的相应寄存器填写适当的参数。AD7708芯片中共有11个寄存器, 当模式寄存器(Mode Regis-ter)的最高位后,其工作方框图[2]如图1所示。

模数转换模块地位与作用

模数转换模块地位与作用 模数转换模块简介: DAM-6160是模数转换模块,可采集16路单端模拟信号;模块采用高性能12位AD芯片,通过电路处理及软件特殊算法,采集测量精度优于±0.2%。模块配置有RS232接口,方便与PC或PLC通信,模块配置有RS485接口,可单独与PC或PLC通信,也可以与多个485模块组网使用。DAM-6160采用逐次逼近型模数转换器,分辨率为12位,通过特殊软件处理,分辨率可达14位,测量精度优于0.2%(典型值)。用户可通过简单的命令对模块进行现场校准,提高现场测量精度。能满足大多数的工业现场及安防、智能楼宇、智能家居、电力监控、过程控制等场合。产品针对工业应用设计:通过DC-DC变换,实现测量电路和主控电路电源隔离;同时控制单元与信号采集单元采用高性能磁隔离技术实现电气隔离,与一般的光电隔离相比数据通信更快更可靠。采用485/CAN隔离电路,将通信与系统单独隔离开,消除通信设备之间共模干扰。模块配有瞬态抑制电路,能有效抑制各种浪涌脉冲,保护模块在恶劣的环境下可靠工作。 模数转换模块参数: 输入通道数:16路单端输入 输入范围:+20mA,+5V,+10V,+24V 转换速率:40次/秒(全通道) AD转换分辨率:优于12位 测量精度:±0.2%(典型值) 输入端过压保护,过流保护,并有低通滤波 常模抑制(NMR):60dB 隔离耐压:DC2500V

ESD保护:±15KV 供电范围:DC+8~+36V 地址/波特率/量程可由用户配置 支持MODBUS-RTU协议和ASCII 支持模块主动发送数据模式 支持RS485,RS232支持定制CAN RS485隔离通信 功耗:小于1W 工作温度:-40℃~+80℃ 工业级V0级防火塑料外壳保障产品应用各类环境安全 安装方式:标准DIN35导轨安装 型号输入类型通道数通讯接口 60同系列其他型号: DAM-6010模拟量1AI RS485和RS232 DAM-6020模拟量2AI RS485和RS232 DAM-6040模拟量4AI RS485和RS232 DAM-6080模拟量8AI RS485和RS232 DAM-6084模拟量、开关量8AI+4IO RS485或RS232 DAM-6044模拟量、开关量4AI+4IO RS485或RS232 DAM-6160模拟量16AI RS485和RS232 模数转换模块接线: 所谓模拟量信号是指连续的,任何时刻可为任意一个数值的信号,例如我们常见的温度、压

STC12C5A60S2单片机的AD转换

A/D转换测试程序(ADC查询方式) #include “stc12c5a.h”//头文件在STC公司主页上下载 #include ”intrins.h” //与STC12C5A60S2单片机ADC相关的寄存器说明// Sfr ADC_CONTR = 0xBC;//AD转换控制寄存器 Sfr ADC_RES = 0xBD;//AD转换结果寄存器高 Sfr ADC_RESL = 0xBE;//AD转换结果寄存器低 Sfr P1ASF = 0x9D;//P1口模拟转换功能控制寄存器 Sfr AURX1 = 0xA2;//AD转换结果存储方式控制位 #define ADC_POWER 0x80 //ADC电源开 #define ADC_FLAG 0x10 //ADC结束标志位 #define ADC_START 0x08 //ADC启动控制位设为开 #define ADC_SPEEDLL 0x00 //设为540个时钟周期ADC一次 #define ADC_SPEEDL 0x20 //设为360个时钟周期ADC一次 #define ADC_SPEEDH 0x40 //设为180个时钟周期ADC一次 #define ADC_SPEEDHH 0x60 //设为90个时钟周期ADC一次 void AD_init(void); void delay(unsigned int a); unsigned int AD_get(unsigned char n); float AD_work(unsigned char n); void main() { unsigned char i; AD_init(); while(1) { for(i=0;i<8;i++) { AD_work(i); delay(20); } } } unsigned int AD_get(unsigned char n) //第n通道ADC采样函数 { unsigned int adc_data; ADC_RES = 0; //清零 ADC_CONTR=ADC_POWER|ADC_SPEEDLL|n|ADC_START;//打开AD转换电源、

DAC_ADC模数及数模转换器的发展综述

DAC_ADC模数及数模转换器的发展综述 1 概述 随着数字技术,特别是计算机技术的飞速发展普及,在现代控制、通讯及检测领域中,对信号的处理广泛采用了数字计算机技术。由于系统的实际处理对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别和处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量往往也需要将其转换成为相应的模拟信号才能为执行机构所接收。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路——模数转换电路或数模转换电路。 能将模拟信号转换成数字信号的电路,称为模数转换器(简称ADC转换器);而将能反数字信号转换成模拟信号的电路称为数模转换器(简称DAC转换器),ADC转换器和DAC 转换器已经成为计算机系统中不可缺少的接口电路。 2 数模转换电路 2.1 数模转换电路原理 数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的权。为了将数字量转换成模拟量,必须将每1位的代码按其权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字—模拟转换。这就是构成DAC转换器的基本思路。 2.2 数模转换电路的主要性能指标 DAC转换器的主要性能指标有:转换速度、转换精度、抗干扰能力等。在选用D/A转换器时,一般应根据上述几个性能指标综合进行考虑。 2.3 二进制加权架构 从概念上讲,最简单的DAC采用的是二进制加权架构,在该架构中,将n个二进制加权元件(电流源、电阻器或电容器)进行组合以提供一个模拟输出(n = DAC分辨率)。这种架构虽然最大限度地减少了数字编码电路,但MSB和LSB加权之间的差异却随着分辨率的增加而增大,从而使得元件的精确匹配变得很困难。采用该架构的高分辨率DAC不仅难以制造,而且还对失配误差很敏感。 2.4 开尔文(Kelvin)分压器架构

单片机:模数转换

模数转换 一.单片机对ADC0809的控制过程 先选择一个模拟输入通道,本连接选择IN4。当执行MOVX @DPTR,A是,单片机WR有效,产生脉冲。脉冲给ADC0809的START,开始对模拟信号进行转换。当转换结束后EOC为高电平。一次转换结束。 二.单片机与ADC0809的连接 1.单片机P0.0-P0.7数据线接ADC0809的OUTI-OUT8. 2.单片机的地址线低8位接锁存器输出接ADC0809的三根地址线A,B,C.选通IN0-IN7通道。 3.START 为启动信号输入端,OE为输出允许端。由于ADC0809没有片选端,用P2.7与单片机的WR,RD进行控制。WR与P2.7接或非门控制START。RD 与P2.7接或非控制OE。 因为START与ALE连在一起,所以ADC0809A在锁存通道地址的同时,启动并进行转换。 4.单片机的CLK输出是被6分频之后的1MHZ,接一个触发器之后降频到500K 后与ADC0809连接使其正常运行。 三.单片机在读取ADC转换结果时有查询和中断两种方式 1.查询方式 程序如下 ORG 0000H SJMP MAIN EOC EQU P3.0

MAIN: MOV SP,#60H SP初值赋60H MOV DPTR,#7FFCH IN4的地址7FFCH给DPTR LL: MOV A,#0 MOVX @DPTR,A A值给7FFCH.启动转换器,开始转换 LCALL DL 延时程序,跳过EOC的延时 JNB P3.0,$ EOC变低电平。当EOC变高电平是转换完成。 MOVX A,@DPTR RD为低电平,OE为高电平,允许输出。 MOV P1,A 输出到P1口 SJMP LL DL: MOV R7,#10 DJNZ R7,$ RET END 2.中断方式 程序如下 ORG 0000H SJMP MAIN ORG 0003H LJMP BB MAIN: SETB EX0 打开外部中断子开关 SETB IT0 选择边沿触发方式 SETB EA 打开中断总开关

数模转换器和模数转换器实验报告

实验报告 课程名称微机原理与接口技术 实验项目实验五 数/模转换器和模/数转换器实验实验仪器 TPC-USB通用微机接口实验系统 系别计算机系 专业网络工程 班级/学号 学生 _ 实验日期 成绩_______________________ 指导教师王欣

实验五数/模转换器和模/数转换器实验 一、实验目的 1. 了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。 2. 了解模/数转换器的基本原理,掌握ADC0809的使用方法。 二.实验设备 1.PC微机系统一套 2.TPC-USB通用微机接口实验系统一套 三.实验要求 1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。 2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。 3.实验前仔细阅读理解教材相关章节的相关容,实验时必须携带教材及实验讲义。 四.实验容及步骤 (一)数/模转换器实验 1.实验电路原理如图1,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),编程产生以下锯齿波(从Ua和Ub输出,用示波器观察) 图1 实验连接参考电路图之一 编程提示: 1. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:

(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。 2. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。 3. 参考流程图(见图2): 图2 实验参考流程图之一 (二)模/数转换器 1. 实验电路原理图如图3。将实验(一)的DAC的输出Ua,送入ADC0809通道1(IN1)。 图3 实验连接参考电路图之二 2. 编程采集IN1输入的电压,在屏幕上显示出转换后的数据(用16进制数)。编程提示: 1. ADC0809的IN0口地址为298H,IN1口地址为299H。 2. IN0单极性输入电压与转换后数字的关系为:

单片机AD模数转换实验报告

1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D转换程序。 5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 四、实验程序流程框图和程序清单。

1、 查询法: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB , LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回

基本模数转换器(ADC)的设计

《数字逻辑电路分析与设计》课程 项目 实施报告 题目(A):基本模数转换器(ADC)的设计 组号: 8 任课教师:。。。 组长:。。。。 成员:。。。。 成员:。。。 成员:。。。 成员:。。。 联系方式:。。。 二零一四年十月二十五日

基本模数转换器(ADC )的设计 一.设计要求 (1) 设计一个每单次按下按钮,就能够实现数模转换的电路,并用LED 显示对应输入模拟电压(0—3V )的等级,当输入电压>3V 后,有“溢出”显示。 (2) 功能模块如图: (3) 图中的“模数转换”为本教材第六章的并行ADC 转换电路。在此基础上自行设计按键、LED 显示、模拟电压调节等模块,实现单次模数转换的功能。 模拟电压 调节模数转换LED 显示 按键 5V 电源

自行设计溢出标记的显示。 (4) 本电路的测试方法是,通过一个电位器对电源电压连续分压,作为ADC 的输入电压,每按下一次按键时,ADC 电路进行一次ADC 转换,并将转换的结果用数码管显示出来。注意不要求显示实际的电压值,仅显示模拟电压的量化等级。 二.电路原理图 LED 显示

三.设计思路 根据题目要求,我们的电路本应分五个个模块,但实验室缺少8-3编码器不能实现转化,所以只能有四个一下模块:模拟电压调节;比较电路;记忆模块;LED显示。模拟电压的调节可以用划变电阻来调节电压,理想中数模转化模块应由比较器,D触发器和编码器来实现,在我们的实际电路中我们只用了前两者。最终我们用LED的亮灭来显示结果。 具体原理叙述如下: 在比较电压时,将参考电压V ref经电阻分压器产生一组不同的量化电平V i:v1=1/16V ref,v2=3/16V ref,v3=5/16V ref ,v4=7/16V ref ,v5=9/16V ref ,v6=11/16V ref ,v7=13/16V ref ,v8=15/16V ref ,这些量化电平分别送到相应lm339比较器的反相输入端,而输入电压V同时作用于lm339比较器的同相输入端。 当V大于V i时,第i个比较器输出状态1,即高电平;反之,比较器输出状态0,即低电平。比较器的输出加到D触发器的输入端,在时钟脉冲CP的作用下,把比较器的输出存入触发器,得到稳定的状态输出Q,再由LED的亮暗状态显示,高电平则亮,低电平就暗。 当V≥15/16 V ref的时候,即V超过该转换器的最大允许的输入电压的时候产生“溢出”,我们使用了一个红色的报警LED亮作为显示。 此外,鉴于会因为按键时间的长短不一而造成的脉冲不整齐的问题,需要

基于51单片机的模数转换(AD)实验设计

HEFEI UNIVERSITY 单片机课程综述报告 主题基于51单片机的模数转换(A/D)实验设计姓名郭丽丽 专业通信工程 学号 1105021006 班级 11级通信(1)班 指导老师汪济洲 2014 年 6 月 2 日

目录 1.实验目的与要求 (1) 1.1实验目的 (1) 1.2实验要求 (1) 2.实验原理 (1) 2.1电路原理图 (1) 2.2 Proteus7.4 软件简介 (2) 3、实验步骤 (6) 4、源程序代码 (6) 5. 实验结果分析 (10) 6.总结 (10)

1.实验目的与要求 1.1实验目的 1.掌握A/D转换与单片机的接口方法 2.了解A/D芯片ADC0809转换性能及编程方法 3.通过实验了解单片机如何进行数据采集 1.2实验要求 1.采用查询法或中断法编程进行A/D采集; 2.采集0~5V范围的电压信号(以电位器模拟被测信号),使用4位串行数码管显示0~5V数值,小数点保留三位,实现简易电压表功能。 2.实验原理 2.1电路原理图 熟悉8051的输入输出端口的使用方法, 本实验的电路连接如图1所示。 图1 连接电路

2.2 Proteus7.4 软件简介 Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 ④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 其操作界面如下图所示: 图2 Proteus操作页面

单片机AD模数转换实验报告

一、实验目的和要求 1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D转换程序。 5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图

四、实验程序流程框图和程序清单。 1、 查询法: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码 送位选信号延时1ms 熄灭第四位数码管 延时1ms 返回

模数转换器ADC0809应用原理

AD0809应用原理--很全面的资料 1. 0809的芯片说明: ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS 组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1)ADC0809的内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当O E端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2).引脚结构 IN0-IN7:8条模拟量输入通道

如下图所示,从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。ADC0809的VREF接+5V电压。 4.电路原理图 5.程序设计: (1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。 (2).进行A/D转换之前,要启动转换的方法: ABC=110选择第三通道 ST=0,ST=1,ST=0产生启动转换的正脉冲信号 . (3). 关于0809的计算: ad0809是根据逐位逼近的方法产生数据的。。 参考电压为0-5V的话。以0809八位255的转换精度每一位的电压值为(5-0)/255≈0. 0196V 设输入电压为X则: X-27*0.0196>=0则AD7=1否则AD7=0。 X-26*0.0196>=0则AD6=1否则AD6=0。 X-20*0.0196>=0则AD0=1否则AD0=0。 (27指2的7次方。26-------20同理) 若参考电压为0-1V (1-0)/255≈0.0039V精度自然高了。。可测量范围小了。 1)汇编源程序: CH EQU 30H DPCNT EQU 31H DPBUF EQU 33H GDATA EQU 32H ST BIT P3.0

AD转换实验报告

A/D转换实验报告

摘要 本设计是利用AT89C51、ADC0809、CD4027芯片为核心,加以其他辅助电路实现对信号的A/D转换,其中以单片机AT89C51为核心控制A/D转换器。先是对信号进行采集,然后用ADC0809对信号实现从模拟量到数字量的转换。改变采样数据,调整电路,使其达到精确转换。

目录 1.方案设计与论证 (1) 1.1理论分析 (1) 1.2输出、输入方案选择 (1) 1.3显示方案 (2) 1.4时钟脉冲选择 (2) 2.硬件设计 (2) 2.1A/D转换器模块 (2) 2.2单片机模块 (3) 2.3JK触发器模块 (4) 3软件设计 (4) 4.仿真验证与调试 (5) 4.1测试方法 (5) 4.2性能测试仪器 (7) 4.4误差分析 (7) 5.设计总结及体会 (5) 附录(一)实物图 (6) 附录(二)软件程序 (6)

1.方案设计与论证 1.1理论分析 8位A/D转换由芯片内部的控制逻辑电路、时序产生器、移位寄存器、D/A转换器及电压比较器组成,它具有将模拟量转换成数字量的特性,其原理图如下: AD转换原理图(1) 1.2输出、输入方案选择 A/D转换器有多路选择器,可选择八路模拟信号IN0~IN7中的一路进入A/D转换。现在选择IN0通道作为输入,则对应的地址码位ADD C=0、ADD B=0、ADD A=0。当转换完成后,OE=1,打开三态输出锁存缓冲器,将转换数据从D7~D0口输出到单片机的P0端口。 IN口输入D端口输出 A/D转换器 图(2)

1.3显示方案 单片机控制数码管显示有两种动态和静态两种方法,由于静态控制数码管每次只能显示一位,造成资源浪费,所以选择动态扫描,并增加变换频率。 1.4时钟脉冲选择 方案一:可以直接用矩形波来控制 方案二:ALE通过JK触发器完成二分频,然后 Q端接CLK。因为晶振的频率是12MHz,ALE的频率为12NHz×1/6=2MHz,经过JK 触发器二分频后就是1MHz. 2.硬件设计 2.1 A/D转换器模块 A/D转换电路图(3) 模拟量从IN0端口输入,经电压比较器后输入到控制电路,转换后从D0~D7口输出,地址码位ADD C=0、ADD B=0、ADD A=0。OE 端输出允许控制信号,EOC转换结束控制信号,EOC=0,转换结束后EOC=1。START转换启动信号,上升沿将片内寄存器清零,下降

TLC549模数转换器的控制实验

A/D芯片TLC549的转换与数据采集实验 1、实验目的 (1) 掌握A/D转换与单片机的接口方法; (2)掌握A/D芯片TLC549的编程方法; (3)掌握数据采集程序的设计方法; 2、实验内容 利用实验开发装置上的TLC549做A/D转换器,对电位器提供的模拟电压信号进行定时采样,结果在数码管上进行显示。 3、I/O地址 A/D转换芯片 TLC549 CLK P1.5 时钟位 DAT P1.7 数据位 CS P1.6 选片位 4、实验线路 将TLC549的CLK接P1.5、DAT接P1.7、CS接P1.6,将模拟电压输入端连到电位器的电压输出端,并接万用表进行输入电压测量。 5、实验步骤 在PC机输入源程序并汇编,然后下载到单片机上,进行调试。 调节电位器,电压从0V到5V变化,记录数码管的显示数值。记录到表中。

6、实验报告 (1) 整理好实验程序和实验记录,进行数据处理分析并做图。 (2) 数据采集中,如何实现精确的定时数据采集? (3) 数码管动态扫描显示程序设计中,显示刷新的时间如何确定? TLC549实验程序 #include "reg52.h" #include #define uchar unsigned char #define uint unsigned int /*************************************************** TLC549 A/D转换 ****************************************************/ sbit CLK=P1^5; sbit DAT=P1^7; sbit CS =P1^6; uchar TLC549ADC(void) { uchar i,x; CLK=0; DAT=1; CS=0; for(i=0;i<8;i++) { CLK=1; x<<=1; if(DAT==1) x++; CLK=0; } CS=1; return (x); } uint y; uchar x; void main() { while(1)

单片机实验数据采集_AD转换

单片机实验报告 姓名: XX 班级: XXXXX 学号: XXXXXXX 专业:电气工程与自动化

实验1 名称:数据采集_A/D转换 一、实验目的 ⑴掌握A/D转换与单片机接口的方法; ⑵了解A/D芯片0809 转换性能及编程方法; ⑶通过实验了解单片机如何进行数据采集。 二、实验设备 装有proteus和keil软件的电脑一台 三、实验说明及实验原理: A/D 转换器大致分有三类:一是双积分A/D 转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并联比较型A/D转换器,速度快,价格也昂贵。实验用ADC0809属第二类,是8位A/D转换器。每采集一次一般需100μs。由于ADC0809A/D 转换器转换结束后会自动产生EOC 信号(高电平有效),取反后将其与8031 的INT0 相连,可以用中断方式读取A/D转换结果。ADC0809 是带有8 位A/D转换器、8 路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1) ADC0809 的内部逻辑结构 由图1.1 可知,ADC0809 由一个8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁A/D 转换完的数字量,当OE 端为高电平时, 才可以从三态输出锁存器取走转换完的数据。 (2) ADC0809 引脚结构 ADC0809各脚功能如下: D7 ~ D0:8 位数字量输出引脚。IN0 ~ IN7:8位模拟量输入引脚。 VCC:+5V工作电压。GND:地。 REF(+):参考电压正端。REF(-):参考电压负端。 START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。 (3) ADC0809 对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4 条ALE为地址锁存允许输入线,高电平有效。当ALE 线为高电平时,地址锁存与译码器将A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C为地址输入线,用于选通IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。 C B A 选择模拟通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5

AD_DA原理及主要技术指标

一.产生原因 随着现代科学技术的迅猛发展特别是数字系统已广泛应用于各种学科领域及日常生活微型计算机就是一个典型的数学系统。但是数字系统只能对输入的数字信号进行处理其输出信号也是数字信号。而在工业检测控制和生活中的许多物理量都是连续变化的模仿量如温度、压力、流量、速度等这些模拟量可以通过传感器或换能器变成与之对应的电压、电流或频率等电模拟量。为了实现数字系统对这些电模拟量进行检测、运算和控制就需要一个模拟量与数字量之间的相互转换的过程。即经常需要将模拟量转换成数字量简称为AD转换完成这种转换的电路称为模数转换器(Analog to Digital Converter) 简称ADC;或将数字量转换成模拟量简称DA转换完成这种转换的电路称为数模转换器(Digital to Anal og Converter) 简称DAC图1是某微机控制系统框图。 二.ADC和DAC基本原理及特点 2.1 模数转换器(ADC)的基本原理 模拟信号转换为数字信号一般分为四个步骤进行即取样、保持、量化和编码。前两个步骤在取样-保持电路中完成后两步骤则在ADC中完成。 常用的ADC有积分型、逐次逼近型、并行比较型/串并行型、Σ -Δ调制型、电容阵列逐次比较型及压频变换型。下面简要介绍常用的几种类型的基本原理及特点: 1)积分型(如TLC7135) 。 积分型ADC工作原理是将输入电压转换成时间或频率,然后由定时器/计数器获得数字值。其长处是用简朴电路就能获得高分辨率,但缺点是由于转换精度依靠于积分时间因此转换速率极低。 初期的单片ADC大多采用积分型,现在逐次比较型已逐步成为主流。双积分是一种常用的AD 转换技术具有精度高,抗干扰能力强等优点。但高精度的双积分AD芯片价格较贵,增加了单片机系统的成本。 2)逐次逼近型(如TLC0831) 。 逐次逼近型AD由一个比较器和DA转换器通过逐次比较逻辑构成从MSB开始顺序地对每一位将输入电压与内置DA转换器输出进行比较经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低在低分辨率( 12位)时价格很高。 3)并行比较型/串并行比较型(如TLC5510) 。 并行比较型AD采用多个比较器仅作一次比较而实现转换又称FLash型。由于转换速率极高n位的转换需要2n - 1个比较器因此电路规模也极大价格也高只适用于视频AD 转换器等速度非凡高的领域。串并行比较型AD结构上介于并行型和逐次比较型之间最典型的是由2个n /2位的并行型AD转换器配合DA转换器组成用两次比较实行转换所以称为Halfflash型。 二.4)Σ-Δ调制型(如AD7701) 。 Σ- Δ型ADC以很低的采样分辨率( 1位)和很高的采样速率将模拟信号数字化通过使用过采样、噪声整形和数字滤波等方法增加有效分辨率然后对ADC输出进行采样抽取处理以降低有效采样速率。Σ-Δ型ADC的电路结构是由非常简单的模拟电路和十分复杂的数字信号处理电路构成。 5)电容阵列逐次比较型。 电容阵列逐次比较型AD在内置DA转换器中采用电容矩阵方式也可称为电荷再分配型。一般的

实验十ADC0832数模转换的显示

实验报告十 实验名称:ADC0832数模转换的显示 目的:ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。 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。

AD-DA转换技术的发展历程及其趋势

AD/DA转换技术的发展历程及其趋势 引 言 随着电子产业数字化程度的不断发展,逐渐形成了以数字系统为主体的格局。A/D转换器作为模拟和数字电路的接口,正受到日益广泛的关注。随着数字技术的飞速发展,人们对A/D转换器的要求也越来越高,新型的模拟/数字转换技术不断涌现。本文着重介绍了当前几种常用的模拟/数字转换技术;并通过对数字技术发展近况的分析,探讨了模拟/数字转换技术未来的发展趋势。 A/D转换器的发展历史 计算机、数字通讯等数字系统是处理数字信号的电路系统。然而,在实际应用中,遇到的大都是连续变化的模拟量,因此,需要一种接口电路将模拟信号转换为数字信号。A/D转换器正是基于这种要求应运而生的。1970年代初,由于MOS工艺的精度还不够高,所以模拟部分一般采用双极工艺,而数字部分则采用MOS工艺,而且模拟部分和数字部分还不能做在同一个芯片上。因此,A/D转换器只能采用多芯片方式实现,成本很高。1975年,一个采用NMOS工艺的10位逐次逼近型A/D转换器成为最早出现的单片A/D转换器。 1976年,出现了分辨率为11位的单片CMOS积分型A/D转换器。此时的单片集成A/D 转换器中,数字部分占主体,模拟部分只起次要作用;而且,此时的MOS工艺相对于双极工艺还存在许多不足。1980年代,出现了采用BiCMOS工艺制作的单片集成A/D转换器,但是工艺复杂,成本高。随着CMOS工艺的不断发展,采用CMOS工艺制作单片A/D转换器已成为主流。这种A/D转换器的成本低、功耗小。1990年代,便携式电子产品的普遍应用要求A/D转换器的功耗尽可能地低。当时的A/D转换器功耗为mW级,而现在已经可以降到μW级。A/D转换器的转换精度和速度也在不断提高,目前,A/D转换器的转换速度已达到数百MSPS,分辨率已经达到24位。 模拟/数字转换技术的发展现状 通常,A/D转换器具有三个基本功能:采样、量化和编码。如何实现这三个功能,决定了A/D转换器的电路结构和工作性能。A/D转换器的类型很多,下面介绍几种目前常用的模拟/

相关文档
最新文档