hal库模拟量_无ADC采集模块的单片机对模拟信号的处理

本文介绍了在早期没有内置ADC模块的单片机如何处理模拟信号,主要通过外部ADC芯片如ADC0809进行采样、取样保持和量化编码。软件方面,需要设置接口电路,编写数据转换和显示的程序。随着技术进步,现代单片机如STM32内置ADC模块,简化了模拟信号处理流程。
摘要由CSDN通过智能技术生成

早期的单片机内部没有带ADC(模数转换)模块,比如我们以前常用的AT89C51/S51系列的8位单片机,在使用这种单片机进行模拟信号的处理时通常要在单片机外部增设ADC(模数转换)芯片比如常用的有ADC0809、ADC0832和PCF8591等芯片,它的主要作用是能够把连续的模拟量变化为离散的数字信号,然后再把这个数字信号通过排线送入到单片机中进行读取处理。这种处理的方法是通过软件与硬件相结合的方法实现了对模拟信号的采集处理的。

1、第一步是对模拟量的采样

我们先说说ADC(模数转换)芯片转换的过程,对于连续的模拟量比如温度、压力、速度等要通过一定的感应器先把这些物理量转换成电压信号,这个电压信号就是模拟信号,它通入到ADC芯片的输入端口时,ADC芯片内部的电路首先要做的事情就是把这个连续变化的模拟信号转变为离散的模拟量,有点类似把一根曲线在一定间隔的时间内把它分切成一段一段的,如下图所示的那样。这个过程就是对模拟量进行“采样”的过程。

2、第二步是对离散过后的模拟量进行“取样”

ADC(模数转换)电路中的取样就是对采集到的离散的模拟量进行取样保持,以便能为后续的电路“捕捉”到所采集的信号,否则的话由于速度过快不能够完全取出所采样的信号就会造成采样信号的缺失,造成转换误差过大。一般ADC中都有取样保持电路用来完成这项“任务”。

3、第三步是对取样的电压量进行量化与编码

为了说明量化与编码的方法我们来举个例子,例如把0V到1V的模拟电压分成8份,每一份只占其中的八分之一,这样就把1V的电压量进行了量化,然后把每一份的电压值在用一个二进制的代码表示出来。这样在ADC(模数转换)芯片中大体经过这几个步骤就完成了从模拟量到数字量的转换任务。

4、软件的处理

以上是用硬件来完成从模拟量到数字量的转换,那么剩下的任务就应该交给单片机里的软件来完成了。首先要把单片机与ADC芯片设置好接口电路,为它们进行数据流通做好准备,进入单片机内部后就开始有软件接手处理发送来的数据了。根据ADC不同的特性有的采用并口线,有的采用串口线,比如PCF8591模数转换芯片就采用了IIC方式与单片机进行“交流”的。

在软件上的程序除了主程序外还要有对送入单片机里的数据进行转换处理的子程序,显示数值的子程序等,如果用IIC进行与单片机“交流”的话还需要IIC通信协议程序。所以用内部不带ADC模块的单片实现单片机对模拟信号的处理比较繁琐一些。

有ADC采集模块的单片机对模拟信号的处理

随着技术的发展,现在很多兼容C51单片机的芯片内部都设置了ADC转换模块,对于一些16位和32位高端单片机都设置了不止一路ADC模块,比如STM32系列的单片机,不仅有ADC模块还有DCA模块等用起来十分方便。用这类单片机处理模拟量只要对GPIO口进行配置和调用相应的ADC库函数就可以了,使用起来比较方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>