第七讲:单片机的AD转换
单片机AD转换

基本引脚
数据 时钟 控制(片选或其他形式的控制信号)
4
10位串行数模转换芯片AD7810
AD7810是美国模拟器件公司(Analog Devices )生产的一种低功耗10位高速串行A/D转换器。 该产品有8脚DIP和SOIC两种封装形式,并带有 内部时钟。 外围接线极其简单,AD7810的转换时间为2μs, 采用标准SPI同步串行接口输出和单一电源( 2.7V~5.5V)供电。 在自动低功耗模式下,该器件在转换率为1kSPS 时的功耗仅为27μW,因此特点适合于便携式仪 表及各种电池供电的应用场合使用。
}
10
设计实例
天然气机监控系统设计
AD 模块
SP485 ……
SCI
AD 模块
主控计算机
SP485
SCI
AT24C04
89C52
计数器
AT24C04 转速 信号
89C52
计数器
转速 信号
11
D/A转换器
12
D/A转换器
数字/模拟转换器是一个重要的输出模块。串 行D/A与并行D/A相比,除输入部分的解码和 移位逻辑外,其他部分一般不会有很大的差别
8位满幅型MAX517/518/519
应用实例
伺服控制系统
Kp*Error+Ki*ΣError 输出:速度控制,控制伺服驱动器速度 输入:位置信号(光栅尺、相对编码器、绝对编码器)
A B CLK DIR
29
硬件原理框图
伺服电机 编码器信号 QEP解码器 电流 伺服驱动器
方向/脉冲信号
5
10位串行数模转换芯片AD7810
引脚功能
工作模式
关于的单片机的AD转换

单片机在日常生活中用得越来越多,其集成度也越来越高,目前拥有多种单片机都集成有A/D转换功能,如PIC,AVR,SUNPLUS,SH等。
处理器的位数从4位到32位或更高,转换精度从6位,8位,10位或更高。
单片机内集成的A/D转换,一般都有相应的特殊功能寄存器来设置A/D的使能标志,参考电压,转换频率,通道选择,A/D输入口的属性(模拟量输入还是普通的I/O口),启动,停止控制等。
有了这些寄存器,使得我们控制单片机的模拟量采集变得非常方便。
A/D转换的基本原理是:将参考电平按最大的转换值量化,再利用输入模拟电平与参考电平的比例来求得输入电平的测量值(V测=V参*(AD量化值/AD转换的最大值))。
有些MCU A/D转换的参考电平可以选择由一个外部引脚输入,这样使得用户可以对A/D转换进行更好的控制。
值得注意的一点就是A /D转换的输入电平必须比参考电平低或相等,不然测试的结果就会有很大的偏差。
下面以参考电平为5V,转换的精度为8位为例来说明如何取得实际的测量值是多少。
如果AD量化值为128,则V测= 5*128/256=2.5V。
因为V测=V参*(AD量化值/AD转换的最大值)=AD量化值*(V参/AD转换的最大值),而针对具体的硬件电路,“V参/AD转化的最大值”是一个固定的系数。
而这个系数,就相当于测试的精度了。
对于10位的A/D,5V的参考电压的测试精度约5毫伏,而用2.048伏的参考电压,精度就可以达到2毫伏。
当然测试的电压范围相应的也减小了。
我曾经就用这种减小测量范围来提高精度,使用PIC16F76做A/D测量,使得正负误差不超过5毫伏的高精度测试电源。
当误差超过5毫伏时,电路发出报警声,提示操作员,重新调解电压到规定范围内。
然而,即使使用同样一款MCU,不同的软硬件设计者,使得A/D转换的效果相差也甚远。
主要是很多新手在处理上有些不当,不是直接把一次转换后的结果拿来处理并做相应的显示,就是对参考电平不做处理。
单片机ad转换原理

单片机ad转换原理
单片机的AD转换原理基于模拟信号的数字化处理。
在单片机中,AD转换是将模拟信号转换为数字信号的过程,以便于单片机进行数字信号的处理和运算。
AD转换的过程主要由两个部分组成:采样和量化。
采样是指对模拟信号进行离散化处理,将连续的模拟信号转换为离散的采样值。
这是通过采样定理实现的,采样定理认为,如果采样频率大于模拟信号的最高频率的两倍,那么就能够完全还原原始信号。
量化是将采样后的连续值转换为离散值的过程。
通过使用一个固定的参考电压,将模拟信号的幅值分为若干个等级,然后将每个等级映射为一个数字值。
量化的结果是离散的数字信号,每个数字代表一个特定的幅值范围,通常用二进制表示。
在单片机中,通常使用的AD转换器是SAR(逐次逼近型)的AD转换器。
SAR AD转换器通过逐次逼近的方式,不断调整DAC(数字-模拟转换器)的输出值,使其逼近输入信号的幅值,最后得到一个与输入信号幅值对应的数字量。
AD转换器的输出可以通过串行或并行方式传输给单片机的内部数据总线,供单片机进行后续的数字信号处理和运算。
在程序设计中,可以通过对AD转换器的配置和控制,调整转换精度、采样率等参数,以满足具体应用的需求。
总结起来,单片机的AD转换原理是将模拟信号经过采样和量
化,转换为数字信号,并通过AD转换器将结果传输给单片机进行处理。
这个过程是通过逐次逼近的方式实现的,利用固定的参考电压和二进制编码表示模拟信号的幅值范围。
STC单片机AD转换及EEPROM使用

STC单片机AD转换及EEPROM使用STC单片机AD转换及EEPROM使用随着各种电子设备的普及,信号处理的重要性日益凸显。
而一款好的ADC (Analog to Digital Convertor) 和一个高效的存储平台EEPROM (Electrically Erasable Programmable Read-Only Memory) 就成为建立可靠稳定的信号处理系统的重要组成部分。
本文将讨论STC单片机如何进行AD转换及EEPROM的使用。
首先,AD转换是将模拟信号转换成数字量的过程,是建立信号处理系统的关键步骤之一。
STC单片机内置了一个12位的AD转换器,也就是说,它可以将模拟信号转换成一个12位的数字信号,这是非常精确的。
下面我们来看看如何在代码中使用AD转换。
AD转换的原理很简单,即将待转换的模拟信号输入到AD口,接着启动AD转换。
当转换结束后,检测转换结束标志位,然后将转换结果读出。
这里具体介绍一下代码的实现方法。
首先,需要定义AD口的引脚、参考电压及转换效率等参数。
代码如下:#define ADC_PIN 0x01 //定义AD口所连接的引脚为P1.1#define ADC_REF 0x80 //定义参考电压为内部参考电压#define ADC_MODE 0xC0 //定义转换效率为最快接着,需要配置AD口所连接的引脚,使其成为输入口。
代码如下:P1ASF = 0x02; //定义P1.1为AD口输入接下来,启动AD转换,等待转换结束标志位的出现。
代码如下:ADC_CONTR = ADC_REF | ADC_MODE | ADC_PIN; //配置AD口ADC_CONTR |= 0x08; //启动AD转换while (!(ADC_CONTR & 0x20)); //等待转换结束标志位最后,将AD转换结果读出。
代码如下:uint16_t value;value = ADC_RES;value |= ADC_RESL << 8;我们可以看到,在STC单片机中使用AD转换非常方便,只需要简单的几行代码就可以完成。
51单片机ad转换程序解析

51单片机ad转换程序解析1.引言1.1 概述概述部分旨在介绍本篇文章的主题——51单片机AD转换程序,并对文章的结构和目的进行简要说明。
51单片机是指Intel公司推出的一种单片机芯片,它广泛应用于嵌入式系统中。
而AD转换则是模拟信号转换为数字信号的过程,是嵌入式系统中的重要功能之一。
本文将详细解析51单片机中的AD转换程序。
文章结构分为引言、正文和结论三个部分。
引言部分将给读者介绍本篇文章的内容和结构安排,正文部分将详细讲解51单片机AD转换程序的相关要点,而结论部分将总结正文中各个要点的内容,以便读者能够更好地理解和掌握51单片机AD转换程序的实现原理。
本文的目的在于向读者提供一份对51单片机AD转换程序的详细解析,使读者能够了解51单片机的AD转换功能以及如何在程序中进行相应的设置和操作。
通过本文的学习,读者将掌握如何使用51单片机进行模拟信号的采集和处理,为后续的嵌入式系统设计和开发提供基础。
在下一节中,我们将开始介绍文章的第一个要点,详细讲解51单片机AD转换程序中的相关知识和技巧。
敬请期待!1.2 文章结构文章结构部分主要是对整篇文章的框架和内容进行介绍和归纳,以帮助读者更好地理解文章的组织和内容安排。
本文以"51单片机AD转换程序解析"为主题,结构分为引言、正文和结论三个部分。
引言部分主要包括概述、文章结构和目的三个方面。
首先,通过对单片机AD转换程序的解析,来讲解其实现原理和功能。
其次,介绍文章的结构,帮助读者明确整篇文章的主要内容和组织方式。
再次,阐明文章的目的,即为读者提供关于51单片机AD转换程序的详尽解析和指导,帮助读者深入了解该技术并进行实际应用。
正文部分则分为两个要点,即第一个要点和第二个要点。
第一个要点可以从AD转换的基本概念入手,介绍51单片机AD转换的原理和流程。
包括输入电压的采样、AD转换器的工作原理、ADC的配置和控制等方面的内容。
在此基础上,深入解析51单片机AD转换程序的编写和调用方法,包括编程语言、寄存器的配置、数据的获取和处理等。
第7章 AD转换

第7章AD转换7.1 概述7.1.1 AD转换器AD转换器即ADC(Analog to Digital Converter),是能将模拟量转换为数字量的器件。
单片机能直接处理和控制的是数字量,对于模拟量,则可通过AD转换器件将其先转换为数字量,然后再交付单片机去做进一步处理。
在AD转换器件将模拟量转换为数字量的过程中,有许多参数值得我们关注,其中最重要的两个参数是转换时间和转换分辨率。
目前,常见AD转换器与微处理器间的数据接口有并行和串行之分,AD转换器的转换精度有8位、10位、12位等多种类型。
此处选取并行8位AD转换器ADC0809,并行12位AD转换器AD574,串行8位AD转换器ADC0832,串行12位AD转换器TLC2543,共四种AD转换器件,分别说明其特点和使用方法。
7.1.2 AD转换分辨率AD转换中,用转换分辨率来表示AD转换器对输入模拟信号的分辨能力,常用转换结果的二进制数的位数来表示,8位精度代表转换结果用8位二进制数表示,12位精度代表转换结果用12位二进制数表示。
以下通过两个例子具体解释其内在含义。
例1:假设被转换的模拟量是电压信号,被测电压值在0V~5V的固定区间内连续可调,AD转换器分辨率假设是8位。
我们已经熟知,8位无符号二进制数的数值范围是十进制的0~255,共256个数。
如果AD转换器分辨率是8位,则从理论上说,被测电压范围5V(5V-0V=5V)被平均等分为256等份,每一份是5V/256=0.01953125V≈0.02V=20mV,这每一份的含义是:电压每增大20mV,AD转换结果的数值就增加1;0V电压对应的转换结果应该是最小值0,而5V电压对应的转换结果应该是最大值255,2.5V电压对应的转换结果应该是0~255的中间值128,其它电压依次成比例对应某一数值。
例2:假设被转换的模拟量是电压信号,被测电压值在0V~5V的固定区间内连续可调,AD转换器分辨率假设是12位。
单片机课设AD转换

外部程序存储器寻址空间为64KB,外部数据存储器寻址空间为64KB。
111条指令,大部分为单字节指令。
单一+5V电源供电,双列直插40引脚DIP封装。
5.2.3 复位电路
复位电路有两种:上电自动复位和上电/按键手动复位。在这里我们采用上电/按键手动复位,如图所示按下按键SW,电源对电容C充电,使RESET端快速达到高电平。松开按键,电容向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。既可上电复位,又可按键复位。一般R1选470欧姆,R2选8.2K欧姆,C选22uF。
6.2 主程序
主程序主要是设置数据区的起始地址为60H,模拟路数为8路,设置外部中断方式是下降沿触发,开总中断,向ADC0809写数据启动AD转换。
图1主流程图的设计框架
6.3中断服务程序
中断服务程序主要完成取AD转换结果存储,模拟路数自增1,存储区自增1,判断8路是否转换完毕,若完毕则返回。
图2 T0中断服务程序流程图
MOV @DPTR,A
就启动了AD转换。
8051的P2.7(A15)和 经或非门后的信号YOE与ADC0809的OE端相连,但单片机执行如下程序后,
MOV DPTR,#7FF8H
MOV A,@DPTR
就可以获取AD的转换结果。
转换数据的传送可以有定时传送方式,查询方式和中断方式,在这里我们采用中断方式。因为ADC0809的转换时间为100us,而单片机执行一条指令的时间为1us,它们之间相差两个数量级。而且采用中断方式的好处在于可以不占用CPU硬件资源,使CPU可以在转换的过程中完成其他的工作。将ADC0809的EOC引脚经或非门后与8051的INT0相连,这样就能在外部中断子程序中实现对采集来的数据进行存储。
基于单片机的AD转换电路与程序设计

基于单片机的AD转换电路与程序设计单片机(MCU)是一种集成了处理器核心、内存、输入输出接口和各种外围设备控制器等功能的集成电路。
MCU通常用于嵌入式系统,广泛应用于各个领域,例如家电、工业控制、汽车电子等。
其中,AD转换是MCU中的一个重要模块,用于将模拟信号转换成数字信号。
在应用中,常常需要将外部的温度、湿度、压力或光照等模拟信号进行转换和处理。
AD转换电路一般由模拟输入端、引脚连接、采样保持电路、比较器、取样调节电路、数字输出端等部分组成。
模拟输入端负责接收外部的模拟量信号;引脚连接将模拟输入信号引到芯片的模拟输入端;采样保持电路负责将引脚输入的模拟信号进行采样和保持,保证AD转换的准确性;比较器用于将模拟信号与参考电压进行比较,判断信号的大小;取样调节电路用于调整模拟信号的边界;数字输出端将模拟信号转换成数字信号输出给MCU。
在程序设计方面,MCU通常使用C语言进行编程。
程序设计分为初始化和数据处理两个步骤。
初始化阶段主要包括设置IO口、初始化外设、设置模拟输入通道等工作。
数据处理阶段主要包括数据采样、数值转换、数据处理和输出等工作。
下面以一个简单的温度采集系统为例进行说明。
首先,在初始化阶段,需要设置IO口和外设,以及设置模拟输入通道。
具体步骤如下:1.设置IO口:根据具体需要配置MCU的引脚功能和工作模式。
2.初始化外设:根据需要初始化ADC模块,包括设置采样频率、参考电压等参数。
3.设置模拟输入通道:选择需要转换的模拟输入通道。
接下来,在数据处理阶段,需要进行数据采样、数值转换和数据处理。
具体步骤如下:1.数据采样:使用ADC模块进行模拟信号的采样,将采样结果保存到寄存器中。
2.数值转换:将采样结果转换成数字信号,可以使用如下公式进行转换:数字信号=(ADC采样结果/采样最大值)*参考电压3.数据处理:根据具体需求进行数据处理,例如计算平均值、最大值或最小值,也可以进行滤波或校正。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2 ATmega8 中A/D转换简介
1、 ATmega8中A/D的几个参数
ATmega8中A/D为逐次逼近A/D转换器
ATmega8的输入信号量程是0-5V的直流电压 信号。 ATmega8中A/D的位数为10位。
VIN
2、逐次逼近式ADC的转换原理
VN D/A转换器 VREF D7 D6 D5 D4 D3 D2 D1 D0 OE
Bit3-0:输入通道选择
MUX1 0 0 1 1 0 0 1 1 MUX0 0 1 0 1 0 1 0 1 单端输入口 ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7
②ADCSRA——ADC 控制和状态寄存器A
Bit Bit ADCSRA 7 ADEN 6 ADSC 5 ADFR 4 ADIF 3 ADIE 2 1 0 ADPS0 ADPS2 ADPS1
•Bit7-ADC使能:为1 时使能ADC功能; •Bit6-ADC开始转换:
•Bit5-ADC连续转换模式选择:
•Bit4- ADC中断标志: •Bit3- ADC中断允许: •Bit2-0 ADC预分频选择:
ADPS2 0 0 0 0 1 1 1 1
ADPS1 0 0 1 1 0 0 1 1
ADPS0 0 1 0 1 0 1 0 1
1024 0
0.005V
A/D转换的基本概念
④ 分辨率: ADC的分辨率是指使输出数字量变 化一个相邻数码所需输入模拟电压的变化量。 通常用1/2LSB表示。
N位ADC的分辨率为满刻度FS的1/2N。
例:
一个10V满刻度的12位ADC能分辨输入电压变化 最小值是: 10V×1/212 =2.4mV。
2、 A/D转换的基本概念
① 输入信号量程:指A/D转换器输入信号的最低和最高的电 压。输入信号如果超出范围,则会导致芯片的损坏。 ② 基准电源: A/D转换器为量化输入的电压信号,在转换 时必须提供一个基准电压,及基准电源。基准电源的电压 值决定可以转换输入信号的最大值,所以一般等于输入信 号的最大值。 ③ 位数:指A/D转换器用多少位二进制数表示输入信号的值。 位数越多,说明A/D转换器精度越高。
单片机趣味小制作
第七讲:ATmega8单片机的AD转换
7.1 A/D转换的基本概念 7.2 ATmega8 中A/D转换简介 7.3 A/D的基本应用举例
7.1 A/D转换的基本概念
1、 A/D转换的作用 模拟量:指信号是连续变化的量。如电压信号、温度 信号、油的压力信号等。 数字量:由二进制数表示的量。计算机只能处理数字 量。 计算机只能处理数字量,所以必须通过模/数转换器(简 称A/D转换器或ADC)把模拟信号转换成数字信号。 模/数转换器根据其转换采用的方法,可以分成并行型 A/D转换器、逐次逼近型A/D转换器、双积分型A/D转 换器三种。 ATmega8中A/D为逐次逼近A/D转换器。
Bit7-6:基准电源选择 •Bit5:输出数据对齐格式。为0 数据右对齐,为1左对齐
REFS1 0 0 1 1 REFS0 0 1 0 1 基准电源选择 参考电压为AREF,内部 参考电源关闭 AVcc为参考电压, AREF通过电容接地 保留 使用内部2.56V参考电压, AREF通过电容接地 MUX3 0 0 0 0 0 0 0 0 MUX2 0 0 0 0 1 1 1 1
左对齐:ADMUX的ADLAR=1时
位 15 14 13 12 11 10 9 8
ADCH
AHale Waihona Puke CL 位ADC9ADC1 7
ADC8
ADC0 6
ADC7
0 5
ADC6
0 4
ADC5
0 3
ADC4
0 2
ADC3
0 1
ADC2
0 0
7.3 A/D的基本应用举例
例
用12位二进制数表示0-5V的信号,则0V对应数字0, 5V对应212(4096)。所以最小可以表示的电压是: 5 0 V 0.001V 4096 0 用10位二进制数表示0-5V的信号,则0V对应数字0x000, 5V对应210 (1024)。所以最小可以表示的电压是:
5 0 V
分频系数 2 2 4 8 16 32 64 128
③ ADCL及ADCH——ADC 数据寄存器
由于是10位的A/D,所以结果存放在两个8位寄存器ADCL和ADCH 中, 读取结果时必须先读取低位,再读取高位,否则读到的结果是不正确 的。结果数据格式如下: 右对齐:ADMUX的ADLAR=0时
位 ADCH ADCL 位 15 0 ADC7 7 14 0 ADC6 6 13 0 ADC5 5 12 0 ADC4 4 11 0 ADC3 3 10 0 ADC2 2 9 ADC9 ADC1 1 8 ADC8 ADC0 0
START 控制 逻辑 EOC N位寄存器
锁 存 缓 存 器
3、 ATmega8中ADC相关寄存器
ADMUX - ADC 多工选择寄存器
ADCSRA——ADC 控制和状态寄存器A
ADCL 及ADCH——ADC 数据寄存器
① ADMUX - ADC 多工选择寄存器
Bit ADMUX 7 REFS1 6 REFS0 5 ADLAR 4 3 MUX3 2 MUX2 1 MUX1 0 MUX0