STC8H系列单片机入门教程之ADC基础知识(四)

这篇具有很好参考价值的文章主要介绍了STC8H系列单片机入门教程之ADC基础知识(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、A/D转换过程

二、ADC转换流程图

三、采样定理

四、ADC基本参数

4.1、分辨率

4.2、采样速率

4.3、转换时间

4.4、量程 

4.5、最低有效位

五、静态参数

5.1、微分非线性

5.2、积分非线性

六、逐次逼近型模数转换器

七、ADC常用分压电路

八、示例代码


一、A/D转换过程

ADC即模数转换器,用来将模拟信号转换成数字信号。转换过程如下:

stc8h adc,单片机,嵌入式硬件

采样:采样就是把随时间连续变化的模拟量转换为时间离散的模拟量;

保持:将采样电路取得的模拟信号转化为数字信号都 需要一定的时间 (不能做到实时转换),为了给后续的量化编码过程提供一个稳定值,每次取得的模拟信号必须通过保持电路保持一段时间。通过一个电容器就可以存储输入的模拟电压。

量化:模拟信号通过ADC转换成数字信号的过程称为量化

编码:按照一定的规律,把量化后的值用二进制数字表示;

二、ADC转换流程图

stc8h adc,单片机,嵌入式硬件

三、采样定理

采样定理又称奈奎斯特采样定理,即当采样频率fs大于采样信号最高频率fmax的两倍时,采样后的数字信号完整地保留了原始信号中的信息。在A/D转换中,模拟波形在固定点采样,然后将被采样的值转换成二进制数值。由于转换需要花费一定的时间,因此在一定时间周期内,模拟信号的采样数是有限的。比如说:某ADC在1ms内完成一次转换,那么在一秒钟内它能进行1000次转换。也就是说,在一秒钟的间隔内,可以将1000个不同的模拟值转换成数字形式,采样频率为1kHz。

Nyquist采样定理解释了采样率fs和所测信号频率之间的关系。 阐述了采样率fs必须大于被测信号感兴趣最高频率分量的两倍,该频率通常被称为奈奎斯特频率fN。用公式显示就是fs>2*fN。

1、假设采样率 fs = fN

如下图所示,因为采样率和被测信号频率一致,我们可以理解为周期是一致的,那就是相当于一个正弦波信号一个周期内只能采样到1个点。那么对于一个周期函数而言,每个周期内采样的都是同一个位置的点,最后ADC采样完成并重建出来的信号波形就是不变的一条直线,明显得不到我们想要的结果。

stc8h adc,单片机,嵌入式硬件

2、假设采样率 fs =(4/3)* fN

那么我们稍微提高一点采样率,变为4/3倍,可以发现在不同周期内,有的时候可以采样到1个点,有的时候可以采样到2个点,但是最后重建出来的线条还是失真严重,因此也不满足。

stc8h adc,单片机,嵌入式硬件

3、假设采样率 fs = 2*fN

当我们采样率达到2倍信号频率的时候,假如说我们运气比较好正好第一个采样点就在正弦波的波峰或者波谷,那么在被测信号的每个周期内,正好可以分别采样到幅度最大和最小的两个点,最后把所有的点线性连接起来后可以得到三角波,经过适当地函数处理可以恢复成原来的正弦波。

stc8h adc,单片机,嵌入式硬件

但是我们也发现了问题,如果每个周期采样的两个点并不是位于波峰或者波谷的话,采样过来的信号同样会失真。因此2倍这个数字只是理论值,也是可以通过数学推导推出来的,但是我们实际在使用的时候,比如说用100M带宽的示波器去检测信号,工程上面一般是缩小5倍,也就是最高能检测20M的信号而不失真,一个周期内至少采样被测信号5个点。

四、ADC基本参数

4.1、分辨率

分辨率是ADC最基本的参数,可以用每个模拟信号值的位数(二进制)来表示。一个4位ADC能表示16个不同的模拟信号值,因为2的4次方是16。位数越多,转换的精度越高,分辨率也就越大。注意,ADC的精度并不仅仅取决于分辨率。ADC分辨率越高更重要是说明采样动态范围广。

在最大输入电压一定时,位数越多,量化单位越小,误差越小,分辨率越高。

stc8h adc,单片机,嵌入式硬件

4.2、采样速率

采样速率就是我们最高的ADC采样频率,也就是数据手册中的Maximum Sampling Frequency。ADC的采样速率必须小于转换速率,常用单位是 Ksps 和 Msps,表示每秒 采样千/百万次(kilo / Million Samples per Second)。

注意上一章节讲的奈奎斯特采样定理,ADC采样频率必须高于被测信号频率的两倍!

stc8h adc,单片机,嵌入式硬件

4.3、转换时间

转换时间的导数就是转换速率。因为将一个模拟信号值转换成一个数字量不能瞬间完成,这个过程需要一定的时间。下图说明了转化时间的基本概念,在t0时刻进行模拟电压值的转换,但是直到t1时刻才完成转换。

stc8h adc,单片机,嵌入式硬件

stc8h adc,单片机,嵌入式硬件

4.4、量程 

作为测量元件,量程一定是需要关注的,指的是允许输入的模拟信号范围。超过量程会导致信号测量不准确,严重的会损坏芯片。

stc8h adc,单片机,嵌入式硬件

4.5、最低有效位

最低有效位又称最小分辨率,要记住这个参数的英文LSB,满量程值除以ADC的分辨率就是LSB,很好理解,就比如说一个4位的ADC,数字量最高可以表示2的4次方也就是16,满量程5V,那么最小的分辨率就是5/16=0.31V,也就是说这个ADC最小辨认的电压是0.31V,可以用数字量0001表示0.31V这个模拟量。LSB越小表明ADC的精度越高。下图纵坐标是数字量编码,横坐标每一个台阶就代表LSB。

stc8h adc,单片机,嵌入式硬件

五、静态参数

ADC静态参数包括微分非线性和积分非线性。

5.1、微分非线性

ADC中任意两个相邻码之间所测得的变化值与理想的1 LSB变化值之间的差异。 用通俗易懂的语言来描述这个DNL特性就是说,理论上我们用数字量的台阶去给模拟电压值进行编码的时候,台阶的宽度应该都是一样的,也就是说当ADC输入和输出是呈线性关系的时候,每次模拟输入按照最小分辨率LSB进行步进的时候,数字输出就增加1,也就是0000变成0001的一个过程。但是由于DNL,导致可能当数字输出由1000变成1001的时候,模拟值的变化却不是按照LSB进行增长的,可能会多一点也可能少一点。

5.2、积分非线性

积分大多跟累计误差有关,根据实际的模拟出一条曲线。INL是指ADC器件在所有的数值点上对应的模拟值和真实值之间误差最大的那一点的误差值,表示测量值的绝对误差。下图绿色虚线所示用的表示理想曲线方法是两点法,就是把头和尾用直线连起来。红色虚线是根据实际的情况模拟出的曲线,找到两个曲线纵坐标差距最大的点。

六、逐次逼近型模数转换器

逐次逼近寄存器型(SAR)模数转换器(ADC)占据着大部分的中等至高分辨率ADC市场。SAR ADC的采样速率最高可达5Msps,分辨率为8位至18位。SAR架构允许高性能、低功耗ADC采用小尺寸封装,适合对尺寸要求严格的系统。

尽管实现SAR ADC的方式千差万别,但其基本结构非常简单(见图1)。模拟输入电压(VIN)由采样/保持电路保持。为实现二进制搜索算法,N位寄存器首先设置在中间刻度(即:100… .00,MSB设置为1)。这样,DAC输出(VDAC)被设为VREF/2,VREF是提供给ADC的基准电压。然后,比较判断VIN是小于还是大于VDAC。如果VIN大于VDAC,则比较器输出逻辑高电平或1,N位寄存器的MSB保持为1。相反,如果VIN小于VDAC,则比较器输出逻辑低电平,N位寄存器的MSB清0。随后,SAR控制逻辑移至下一位,并将该位设置为高电平,进行下一次比较。这个过程一直持续到LSB。上述操作结束后,也就完成了转换,N位转换结果储存在寄存器内。

stc8h adc,单片机,嵌入式硬件

七、ADC常用分压电路

电池电压常用两个电阻分压到合理电压范围内,通过单片机ADC引脚采集输入电压,这种电路是成本最低,检测方式最简单的。一般选择电阻较大,这样功耗较低,需注意ADC的输入阻抗影响,电容的作用就是存储电荷的作用,当然也有滤波,和上面那个电阻组成低通滤波,ADC的采样和转化其实就是ADC内部电容的快速充放电,快速充放电的时候,这个电容可以快速给ADC补给电荷,否则ADC的采样值会有振荡,因为电阻分压的响应速度很慢。电容容值大小可根据实际采集情况选择,一般是PF级别就够了。

根据电阻分压公式,U_adc= U_bat* R5/(R2+R5),其中U_bat为电池电压,U_adc为单片机采集到的经过分压电阻后的电压,根据如上公式可以得到电池电压。

stc8h adc,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-847396.html

八、示例代码

void main(void)
{
	unsigned char i = 0;
	
	P1M1 = 0X08; P1M0 = 0X00; //设置P13为ADC口
	P_SW2 |= 0x80;
    ADCTIM = 0x3f; //设置ADC内部时序
    P_SW2 &= 0x7f;
    ADCCFG = 0x0f; //设置ADC时钟为系统时钟/2/16
    ADC_CONTR = 0x83; //使能ADC模块,使能ADC3

	while(1)
	{
		ADC_CONTR |= 0x40; //启动AD转换
		_nop_();
        _nop_();
        while (!(ADC_CONTR & 0x20)); //查询ADC完成标志
        ADC_CONTR &= ~0x20; //清完成标志
        adc3 = ADC_RES; //读取ADC结果
		adc_buf[0] = adc3/1000; //获取adc3变量的千位
		adc_buf[1] = adc3%1000/100; //获取adc3变量的百位
		adc_buf[2] = adc3%100/10; //获取adc3变量的十位
		adc_buf[3] = adc3%10; //获取adc3变量的个位
    }
}

到了这里,关于STC8H系列单片机入门教程之ADC基础知识(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STC8H8K64U单片机-ADC采集数

    配置单片机的ADC时一定要将IO口配置成高阻输入模式, 以下是单片机引脚对应的ADC通道  

    2024年02月07日
    浏览(33)
  • 一键使用PWM并输出,STC8H系列库函数,PWM外设教程

    随着STC单片机的发展,外设功能也不断增加,开发时间也慢慢的延长了很多博主为了缩短开发时间自己开发了一种库文件。可以一键使用外设,顾名思义就是我们不用再去配置寄存器不用再去看开发手册只需要对外设有一定了解便可以非常灵活的使用这个库函数,并且我在每

    2024年02月15日
    浏览(37)
  • STC8H驱动hub75e接口的64*64LED点阵屏

    由于最近在做毕业设计,应导师要求学习LED点阵屏的显示原理,学习并驱动hub75e接口的64*64LED点阵屏。点阵屏上一个点有三个颜色分量R,G,B,1为亮,0为灭。当这个点为110时,颜色为红色和绿色的混合--黄色。          hub75e接口如上图所示,其中R1/G1/B1和R2/G2/B2为两个R

    2024年02月11日
    浏览(53)
  • 51单片机(STC8) -- 开发环境搭建(Keil C51)

    STC8H3K系列芯片概述 文章中所用的芯片选型为STC8H3K64S4,后续STC8案例均以该芯片展开 内核 • 超高速 8051 内核(1T),比传统 8051 约快 12 倍以上,指令代码完全兼容传统8051 • 21个中断源,4 级中断优先级 • 支持在线仿真 工作电压 • 1.9V~5.5V 工作温度 • -40℃~85℃ Flash 存储

    2024年01月25日
    浏览(43)
  • STC8G1K08单片机接收485发送的不等长混合数据

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:以下是本篇文章正文内容,下面案例可供参考 这里以芯力特的485芯片为例如图1: 引脚功能: 1.接收器输出端(接单片机的RXD引脚) 2.接收器输出使能控制(接收器输出使能控制。当/RE 接低电平

    2024年02月16日
    浏览(30)
  • 单片机读/写端口或引脚区别及具体1个用例(一种基于STC8G1K08A最小8脚嵌入式单片机LED安全夜灯方案)

    51单片机读引脚和读端口测试总结_单片机怎么读取引脚电平_爱嘟嘟的小屁孩的博客-CSDN博客 近期看了几篇有关单片机读/写端口或引脚的区别的文章,其中上面引用本CSDN的这篇文章,总结的2点感觉还不错,先引用一下: 1. 51单片机里对某一个I/O口进行读--改--写(例如上面的

    2024年02月08日
    浏览(42)
  • 基于STC15系列单片机的智能门锁

    一、项目背景及功能需求 1.1项目背景 智能门锁是一种智能化、高效、安全的门锁,它可以实现密码识别开锁方式,极大地提高了门锁的安全性和便利性。随着人们对安全性的要求越来越高,智能门锁已经成为了现代家庭和企业的必备设备。因此,本项目旨在设计一款基于S

    2024年02月04日
    浏览(49)
  • STC15系列单片机学习6:外部中断

    外部中断,就是通过单片机IO引脚电平的变化触发的中断。 STC15系列单片机的外部中断源一共有5个,分别是外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)、外部中断4(INT4);当然不是所有的STC15系列单片机都有着5个外部中断。 中断源 触发行为

    2024年03月12日
    浏览(97)
  • STC15系列单片机学习4:串口通讯

    在使用单片机的串口前,得先知道所使用的单片机有几个串口,再结合你的硬件电路图来使用哪个串口。 以下是STC15各系列单片机的串口数量,STC15W4K32S4系列有4个串口 工作模式0:同步移位寄存器(官方建议初学者不学) 工作模式1:8位串口,波特率可变 工作模式2:9位串口

    2024年04月13日
    浏览(33)
  • stc89C51系列单片机介绍

    STC89C51 是一款基于 8051 内核的高性价比单片机,由国内的 STC 微电子公司生产。STC89C51 系列单片机的特点是具有高速运行、丰富的外设接口、广泛的应用领域等优点。本文将从以下几个方面介绍 STC89C51 系列单片机。 STC89C51 系列单片机基于 80C51 内核,具有 1T 和 2T 两种不同的时

    2024年02月01日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包