STC 单片机ADC实现原理
- 模数转换器原理
数模转换器( analog to digitI converter,ADC),简称为A/D,ADC是链接模拟世界和数字世界的桥梁。它用于将连续的模拟信号转换为数字形式离散信号。典型的,ADC将模拟信号转换为与电压值成比例表示的数字离散信号,对于不同厂商所提供的ADC,其输出的数字信号可能使用不同的编码格式
注:有一些模叔数字转换器并非纯的电子设备,如旋转编码器,也可看作是模拟数字转换器
- ADC的一些参数
分辨率、响应类型、误差和采样率
1)分辨率
在模拟数字转换器中,分辨率是指对于所允许输入的模拟信号范围,它能输出离散数字信号值的个数。这些输出的信号值通用二进制数来表示,如图22.1所示,因此,分辨率经常用比特作为单位,且这些离散值的个数是2的幂次方。例如,一个具有8位分辨率的模拟数字转换器可以将模拟信号编码成256个不同的离散值(离散梯度),其范围可以是0~255(即无符号整数)或从-128~127(即带符号整数),至于使用哪一种编码格式,则取决所选用的ADC器件。
分辨率也可以用电气性质来描述,如使用伏特(V),使得输出离散信号产生一个变化所需的最小输入电压的差值被称作最低有效位( least significant bit,LSB电压。这样,模数字转换器的分辨率(Q)等于LSB电压。模拟数字转换器的电压分辨率由下面等式确定子式中,VRefHi和VRefLOw一是转换过程允许输入到ADC的电压上限和下限值;N是模拟数字
Q=( VRefHi - VRefLOw)/2N
如果输入电压的变化小于Q值,则ADC无法分辨出电压的变化,这样,就带量化误差,N值越大,即ADC输出数字量的位数越多,则Q越小,可分辨的电压变化欲小,分辨能力就越强,量化导致的误差就越小
2)响应类型
大多数模拟数字转换器的响应类型为线性,这里的线性是指输出信号的值与输入信号的值成线性比,一些早期的转换的响应类型呈对数关系,ADC器件可表示数字量的范围内,中间部分线性度较好,而两端线性度较差
3)误差
模拟数字转换器的误差有若干种来源。量化误差和非线性误差是任何模拟数字转换中存在的内在误差
3)采样率
模拟信号在时域上是连续的,可以将它转换为时间上连续的一系列数字信号。因此,要R定义一个参数来表示获取模拟信号上每个值并表示成数字信号的速度。通常将这个参数称为ADC的采样率或采样航率
- 模数转换器的类型(以后自己了解了在上图分析)
Flash ADC
逐次逼近寄存器型ADC
积分型ADC
数字跃迁型ADC
- STC单片机内ADC的结构
STC单片机的ADC由多路选择开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器 ADC RES和 ADC RESI以及ADC控制寄存器ADC_ CONTR构成
通过设置ADC控制寄存器ADC_ CONTR中的 SPEED1和 SPEEDO比特位,该ADC模块的最高采样速率可以达到300kHz,即30万次采样/s(30ksps,30 k sample per second)。
该ADC是典型的SAR结构,这种结果是一种典型的闭环反馈系统。在该ADC的前端提供了一个8通道的模拟多路复用开关,在ADC控制寄存器 ADC CONTR内的CHS2CS比特位的控制下,将ADC=ADC7的模拟信号多路复用到比较器
该结构的ADC包含一个比较器和DAC,通过逐次比较逻辑,从最高有效位MSB开始,顺序地对每一个输入电压与内置DAC输出进行比较。经过多次比较后,使其转换得到的数字量逼近输入模拟信号所对应的数字量的值。将最终得到的数字量保存在ADC转换结果寄存器 ADC _RES和 ADC _RESL中.同时,将ADC控制寄存器 ADC_CONTR中的转换结束标志 ADC_ FLAG置1,以供程序查询或者向CPU发出中断请求.
- ADC装换结果的计算方式
- P1模拟功能控制寄存器
STC单片机的8路模拟信号的输入端口设置在P1端口的8个引脚上,即P1.0~P.7.当上电复位后,P1口设置为弱上拉I0口,用户可以通过软件将8个引脚上的任何一个设置为ADC模拟输入,没有设置为ADC模拟输人的引脚可以作为普通I/O使用。
7.ADC控制寄存器
1) ADC_POWER
ADC电源控制位。当该位为0时,关闭ADC电源;当该位为1时,打开ADC电源
2)SPEED1 与SPEED0 数模速度转换控制位
3)ADC_FLAG
ADC转换结束标志位。当ADC转换结束时,有硬件将该位置1,需要软件清0
4)ADC_START
ADC 转换启动位,1是ADC开始启动转换
5)CHS0 CSH1 CHS2模拟输入通道位
控制哪一个引脚作为模拟输入 。
8.中断有关的寄存器
IE地址0xA8 其中的B5 ,为EADC,当该位是1 是,允许ADC 中断
IP优先级控制器0xB8 ,其中的B5位 PADC ,为1 是最高级中断级别,0 最低级中断级别。
STC 单片机ADC实现原理的更多相关文章
- 单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别
STC单片机简介 STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等.还支持I ...
- STC单片机串口输出ADXL335角度值
STC单片机串口输出ADXL335角度值: //***************************************************** //名称:单片机串口输出ADXL335角度值 ...
- STC单片机控制28BYJ-48步进电机
STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程 ...
- 【CC2530入门教程-06】CC2530的ADC工作原理与应用
第6课 CC2530的ADC工作原理与应用 广东职业技术学院 欧浩源 一.A/D转换的基本工作原理 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是AD ...
- STC单片机 IAP(EEPROM)的使用
STC89C51.52内部都自带有2K字节的EEPROM,54.55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次 ...
- STC单片机Flash做EEPROM的代码
STC官方给出的建议: /***************************************************************Author:Liming*** * @brie ...
- 单片机ADC检测4-20mA电路,以及计算方法
单片机ADC检测4-20mA电路,以及计算方法 转载:https://www.hongchangzidonghua.com/?id=24 1,手里有一个4-20mA输出的压力传感器,假设测量范围是0M ...
- 探索ADC的原理(自制3位并行比较型ADC)
摘要 本文通过列举历史中出现的产品,梳理了模数转换器在20世纪30年代~~20世纪80年代末的发展历史.接下来,简要介绍模数转换器的原理.技术指标.分类和未来发展方向.最后,提供了一种自制3位FLAS ...
- STC单片机掉电断电失电瞬间EEPROM数据保存处理办法(转)
由于客户在请人设计开发一设备,但是设备用户处总停电,造成设备及其周边耗材损耗严重,因此请我司在现有STC为主要芯片的基础上做掉电瞬间EEPROM里的20个参数保存,上电后通过读取EEPROM中的参数回 ...
随机推荐
- C语言入门编程思维引导
编程思维引导: C语言中 include<stdio.h> 称之为导包,导入写好的函数库,多个则依次写 #define N 3 意思是将N这个字母定义为数字3 当使用的时候就直接用 i ...
- 基于oracle数据库存储过程的创建及调用
1.PLSQL编程 1.1概念和目的 PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支.循 ...
- React Native获取组件位置和大小
RN页面中定位或滚动操作时,需要获取元素的大小和位置信息,有几种常用的方法 获取设备屏幕的宽高 import {Dimensions} from 'react-native'; var {height ...
- iOS下ajax回调函数里不能播放audio
iOS下audio必须监测到事件才可播放, ajax回调函数里不能播放 解决办法 在点击方法里先播放然后立即暂停,在回调函数里重新播放 onclick(function(){ $("#_wx ...
- P1015 回文数解题思路(非原创)
测试 #include<bits/stdc++.h> using namespace std; int n,m,step; string nn; int len,nex; bool dfs ...
- Java---Huffman树的实现
什么是哈弗曼树 1.哈弗曼树是最优二叉树,树的带权路径长度最小的一个二叉树. 2.带权路径长度为根节点到该节点的路径长度和该节点权重的乘积.3.路径长度为当前节点到另一个节点所经过的分支的个数(边的个 ...
- 自己动手写一个简易对象关系映射,ORM(单例版和数据库池版)
准备知识 DBUtils模块 <<-----重点 DBUtils是Python的一个用于实现数据库连接池的模块 此连接池有两种连接模式: DBUtils提供两种外部接口: Persist ...
- Spring AOP代理模式
代理模式 代理模式是一种设计模式,提供了对目标对象的另外的访问方式.即通过代理访问目标对象. 好处:可以再目标对象实现的基础上,增加额外的功能的操作.扩展目标对象的功能,而不改变现有的功能逻辑. 1. ...
- PHP常用函数归类【持续整理】
学习了这么久PHP,基础知识总感觉不牢靠,尤其是数组,字符串函数的应用,全部手敲过次手,做出总结都是基础,在回顾一下吧. 一.PHP基础语法 变量,常量 严格区分大小写,但内置结构或关键字无所 ...
- 利用python操作mrjob实例---wordcount
网上利用java实现mr操作实例相对较多,现将python实现mr操作实例---Wordcount分享如下: 在操作前,需要作如下准备: 1.确保linux系统里安装有python3.5,pyt ...