产品选型

单片机ad 电压 51单片机之AD芯片

小编 2025-07-03 产品选型 23 0

51单片机之AD芯片

本文章,提供8、10、12位分辨率的AD芯片,与单片机的连接图,程序。

学生时代,在学校学的stc89c51,算是最简单入门的单片机了。有时候,要读取电压值,但是单片机处理的是数字信号,是不能直接读取模拟信的,这就需要我们在单片机外围接上AD芯片。

工业上,很多传感器的输出是4--20ma电流的。举个例子,电流传感器,测量范围1--100A, 对应输出就是4--20ma电流。那么,我们怎么测出输出电流,从而知道传感器的输入电流多大呢?

很简单,在传感器的输出,接上一个250欧姆的电阻,根据U=IR,就可以把4-20ma的电流,转化为1--5V电压,通过AD芯片,单片机得出电压值,从而得到输出电流值,再根据传感器输入电流和输出电流的对应公式,程序写好,我们就可以得到电流传感器所测到的输入电流了。

好吧,废话少说,与其飞飞在这“长篇大论”,说那么多,有什么用呢,是吧?还不如直接上图、给程序来得痛快。

(1) 8位串行模数转换器:TLC549

TCL549与单片机连接图

驱动程序

假如所测真实电压是1.234V,为什么返回是1234,而不是1.234呢? 很简单:

ad_value/1000,可以得到千位数字1;

ad_value/100%10,可以得到百位数字2;

ad_value/10%10,可以得到十位数字3;

ad_value%10,可以得到个位数字4。这样数码管就可以显示出我们所测电压值了。

(2)10位串行模数转换器 :TLC1543

看图,这个芯片,可以测11路输入:

TLC1543与单片机连接图

TL1543驱动

(3) 12位串行模数转换器 :MAX1241

max1241与单片机连接

max1241驱动

好吧,protues仿真一下(3)

检查一下,lcd显示,与MAX1241所测的模拟量,数据是一致的。

小5带你飞(8)—AVR(ATmega 328P)单片机片内ADC的原理和使用(1)

ATmega328p内部集成了一个10位的逐次逼近的A/D转换器。该转换器与一个8通道的模拟多路复用器连接。它能够对来自端口A的8路单端输入电压进行采样。

ADC转换模块的原理图

看一下它的基本特性:

10位分辨率

0.5 LSB积分非线性

±2 LSB绝对精度

13 -~260µs转换时间

最高采样速率76.9 kSPS/s

6路可选的单端输入通道

2路额外多路复用单端输入通道(TQFP 、QFN/MLF)

温度传感器输入通道

ADC读取的结果可设置为左端对其

0~Vcc ADC输入电压范围

可选择1.1v ADC参考电压

自由连续转换模式和单次转换模式

在ADC转换完成时中断

睡眠模式噪音消除

ADC的供电和参考电压:

ADC由独立的专用的模拟电压引脚AVCC供电,AVCC和VCC的电压差别不能大于±0.3V。

ADC的参考电源可以是芯片内部的1.1v的参考电源,也可以是AVCC,也可以采用外部参考电源,使用外部参考电源的时候,外部参考电源可由引脚AREF接入,使用内部参考电压源的时候,可以通过在AREF引脚外部并接一个电容来提高ADC的抗噪性能。这个电容一般可为0.1uF

与ADC有关的寄存器:

ADMUX:多路复用选择寄存器

bit6、bit7 :ADC参考电压选择。如果在转换过程中改变了设置,则只有等待当前转换结束后才起作用。如果在 AREF引脚上施加了外部参考电压,则内部参考电压将不能被选择。这个参考电压的选择见下图:

还是解释一下:

00 :AREF,内部基准源关闭

01 :AVCC,AREF外接滤波电容

10 : 保留

11 :1.1v内部基准电压源,AREF外接滤波电容

bit5:转换结果对齐位。置位左对齐,清位右对齐

bit4:一个保留位

bit3~bit0:模拟通道选择位

就是选择连接到哪个通道上,这个没啥说的。看表就好了,如下:

2. ADCSRA:ADC控制和状态寄存器A

bit7:ADC使能位。置位则启动ADC功能,清位ADC功能关闭

bit6:ADC开始转换。

在单次转换模式下,该位置位将启动一次ADC转换,在连续转换模式下,该位置位,将启动首次转换

bit5:ADC自动触发使能位。

该位置位,则启动ADC自动触发功能。

bit4:ADC中断标志位

ADC转换结束且数据寄存器被更新后该位置位,如果ADIE及SREG寄存器中的全局中断使能位I被置位,

则ADC转换结束中断服务程序被执行,同时该位被硬件清零,也可以通过软件写1清零。

bit3:ADC中断使能位。如果该位及SREG寄存器中的全局中断使能位I被置位,则ADC转换结束中断将被使能。

bit2~bit0:ADC预分频器的选择。这三位决定ADC输入时钟与CPU时钟之间的分频系数,如下表:

3. ADCL 、 ADCH :ADC数据寄存器

分别是左对齐的和右对齐的数据

ADC转换结束后,转换结果将存在这两个寄存器当中。首先ADMUX寄存器当中的ADLAR和MUXn影响转换结果在寄存器中的存放形式。当ADCL被读取时,ADC数据寄存器在读取ADCH之前不会更新,如果转换结果为左对齐且只需要8位的精度,那么仅需要读取ADCH就可以了,否则需先读取ADCL然后读取ADCH。

4.ADCSRB :ADC控制和状态寄存器B

bit2~bit0:ADC自动触发源的选择

说明一下吧:

000:连续转换模式

001:模拟比较器

010:外部中断请求0

011:定时器/计数器0比较匹配A

100:定时器/计数器0溢出

101: 定时器/计数器0比较匹配B

110:定时器DIDR0数器1溢出

111:定时器/计数器1捕捉事件

5. DIDR0:数字输入禁用寄存器0

说明一下:

bit5~bit0 :当这些位置位,相应的ADC引脚的数字输入缓存区被禁止,相应的PIN寄存器读取的时候都为0,

模拟信号运用于ADC5~ADC0,是不需要这么做的,ADC6和ADC7是没有缓存区的。

下面来看看ADC的基本使用步骤:

ADC输入端口初始化

基准电压的设置,数据对齐方式的设置,通道的选择。(ADMUX寄存器的配置)

AD使能,启动装换,中断的设置(ADCSRA寄存器的设置)

触发源的选择(ADCSRB寄存器的设置)

选择中断号,编写中断服务程序,读取ADC的数据(ADCL 、 ADCH )

好的,关于ADC的寄存器就写这么多了,下一篇我们来写ADC的驱动程序。

更多内容请关注头条号:小5嵌入式

相关问答

单片机 自带 ad 转换的 电压 值范围是多少?

AD测量范围:0~基准电压。包含0跟基准电压。基准电压分多种:1、单片机电源电压;(有AD功能的就有)2、内置高精度电压1.23V;(如果单片机有的话)3、...包含...

ad 的输出与 电压 的对应关系?

如果没有分压电阻的话:实际电压=测得数字量*基准电压/2^n,如10位AD转换器,测得数字量是512(总共10位存于两个8位寄存器中,一般分高8位低2位或低8位高2位)...

单片机 怎么用 AD 测电阻?

忽略温度等因素的影响,直接采用串联电阻测电压的方法就可以。原理是采用一只高精度的已知阻值电阻[假设为R0],串联一只被测电阻[R1]将这串联的电阻两端加上一...

24V电磁阀工作时1.5A电流,干扰STM32的 AD电压 检测,使电压稳定...

[最佳回答]应该是共地引起的.直接采用隔离控制就可以.

单片机 输出 电压 有24V吗?

不行。明确单片机不能直接输出24V电压。单片机的输出电压通常在5V以下,甚至有些是只有几毫伏,如果需要输出高电压,需要使用电平转换电路或者驱动芯片。电平转...

单片机 供电多少伏?

单片机供电电压通常在3.3V或5V之间。具体的供电电压取决于单片机的型号和规格要求。一般来说,较新的单片机通常采用3.3V供电,而较旧的单片机则采用5V供电。供...

单片机 精确测量1V左右 电压 ,要求精确到mV-ZOL问答

LM331只能测一个点哦,看你具体需要,如果需要准确测量各个电压值,可以用AD芯片,参考SN8P2711A,12BITAD精度,可以精确到5MV,如有需要可以给你个样品测试。楼上几...

单片机 新性能指标?

单片机的性能指标只要表现在1、单片机的工作的最高频率2、同一频率下单片机执行同一功能的速度3、单片机正常工作时承受的电压波动大小4、单片机的资源(中...

数字电源为什么一般用DSP控制,而不能用普通的 单片机 ?

理、参数...传统模拟电源通过弱电传输信号,电源柜内部电磁环境复杂,弱电信号传输易受到电磁干扰;DSP智能感应加热电源采用光纤传输,光不受电磁环境影响,因此...

51 单片机 运行需要多少伏电源-ZOL问答

有3种,5V,3.3V,1.8V其中5V和3.3V单片机较常用,不能通用,如果你部明确你手上的单片机是几伏的,可以下载芯片资料,写的很清楚因单片机芯片而异。具体要看芯片资...

猜你喜欢