单片机学习——ADC讲解(A/D转换、D/A转换)

这篇具有很好参考价值的文章主要介绍了单片机学习——ADC讲解(A/D转换、D/A转换)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

单片机必学系列

单片机学习——中断系统

单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

单片机学习——定时器/计数器

单片机学习——A/D转换

更新ing



前言

A/D转换模块是单片机的高功能模块,用于对模拟信号进行数字转换,本文以STC8H8K64U单片机为例(原理与其他51单片机并无差别),该单片机A/D模块为16通道12位。本文主要摘录STC丁向荣《单片机微机原理与接口技术》。

A/D转换模块的结构

STC8H的这个单片机A/D转换模块输入通道有16个(通道越多,同时可以接收的模拟量就越多),分别为ADC0——ADC15,其中ADC15用于测试内部1.19V基准电压,工作时,各个输入通道都工作在高阻状态

关于位数:12位是用于精度,位数越多,精度越高,以5v电压为例,当一位时,只能分成两份,2.5v以上是1,2.5v以下为0,当两位时,可以分成4份,也就是1.25v,2.5v,3.75v,5v为分界,提高了精度,以此类推。

该单片机A/D转换模块由多路选择开关、比较器、逐次比较寄存器、12位数字模拟转换器(D/A转换模块)、A/D转换结果寄存器、A/D转换模块控制寄存器以及A/D转换模块配置寄存器构成。

A/D转换模块的分类

按转化原理分类:逐次逼近型、双积分型、并行/串行比较型、压频转换型等
按转化速度分类:超高速<=1ns、高速<=20us、中速<=1ms、低速<=1s。
按转化位数分类:8、12、14、16。

目前主要有逐次比较型转换器(最常用的)和双积分型转换器,故接下来主要讲解逐次比较型转换器。

逐次比较型转换器

逐次比较型模拟数字转换器根据逐次比较的逻辑,从最高位(MSB)开始,逐次对每一个输入的电压模拟量与内部D/A转换器输出进行比较,多次比较之后,使得转换得到的数字量逼近输入模拟量对应值,直到A/D转换结束。

下图为逐次比较型转换器原理图
单片机学习——ADC讲解(A/D转换、D/A转换)

A/D转换模块的参考电压源

该A/D转换模块的电源与单片机电源是同一个,但A/D模块有独立的参考电压源输入端。
当测量精度要求不高时,可以直接使用单片机的工作电压,高精度时使用精准的参考电压。

A/D转换模块的控制

A/D转换模块主要由ADC_CONTR、ADCCFG、ADC_RES、ADC_RESL和A/D转换模块时序控制寄存器ADCTIM以及控制A/D转换的有关中断的控制寄存器进行控制和管理。

由于寄存器标志位等过多,此处仅列举较为重要的个别寄存器。

/****************测量AD值*************************/
uint	Get_ADC12bitResult(uchar channel)	//channel = 0~15
{
	ADC_RES = 0;	//将转换结果寄存器清0
	ADC_RESL = 0;

	ADC_CONTR = (ADC_CONTR & 0xe0) | 0x40 | channel; 	//启动ADC
	_nop_();  	_nop_(); 	_nop_();	_nop_();//第一次开始的时候需要等待电路稳定

	while((ADC_CONTR & 0x20) == 0)	;	//等待ADC完成
	ADC_CONTR &= ~0x20;		//清除ADC结束标志
	return	(((uint)ADC_RES << 8) | ADC_RESL );
}

此代码中出现的寄存器有ADC_CONTR,ADC_RES,ADC_RESL。
其中ADC_RES和ADC_RESL共同作为存储结果寄存器,RES是高8位,RESL是低8位。

ADC_CONTER各位如下图:
单片机学习——ADC讲解(A/D转换、D/A转换)
B7是A/D模块的电源控制位,1打开,0关闭。
B6是A/D转换启动控制位,1时启动转换,转换完成后自动清0,为0时无影响(当A/D转换模块启动之后,即使写0也无法停止)
B5是完成标志位,完成转换后置1,需要手动清0。

主要:启动A/D转换前一定保证A/D转换模块电源已打开,A/D转换结束后关闭A/D转换模块电源可以降低能耗。初次打开时需要适当延时,等内部电路稳定后再启动A/D转换。

A/D转换模块转换结果选择

A/D转换模块转换结束后,结果保存到ADC_RES和ADC_RESL中(因为是12位,一个寄存器8位,所以需要两个寄存器拼起来存储结果),但是有两种存储格式,由ADCFG中的RESFMT控制。
RESFMT=0时,结果左对齐,右边空余位自动为0。
RESFMT=1时,结果右对齐,左边空余位自动为0。文章来源地址https://www.toymoban.com/news/detail-489818.html

到了这里,关于单片机学习——ADC讲解(A/D转换、D/A转换)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 学习笔记|ADC|NTC原理|测温程序|STC32G单片机视频开发教程(冲哥)|第十九集:ADC应用之NTC

    NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热

    2024年02月07日
    浏览(59)
  • 51单片机——矩阵按键实验,小白讲解,相互学习

    矩阵按键介绍:         独立按键与单片机连接时,每一个按键都需要单片机的一个I/O 口,若某单片机系统需较多按键,如果用独立按键便会占用过多的I/O 口资源.单片机系统中I/O 口资源往往比较宝贵,当用到多个按键时为了减少I/O 口引脚,引入了矩阵按键。       

    2024年02月12日
    浏览(50)
  • 51单片机——独立按键实验,小白讲解,相互学习

    按键介绍:         按键是一种电子开关,使用时轻轻按开关按钮就可式开关接通,当松手时,开关断开。开发板上使用的按键及内部简易图如下图:         按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态,如果按键按下,初始导通状态变为断

    2024年02月04日
    浏览(55)
  • 单片机学习笔记---AD模数转换&DA数模转换

    目录 AD模数转换 XPT2046.c XPT2046.h main.c DA数模转换 main.c 上一篇博客讲了AD/DA转换的工作原理,也介绍了运算放大器的工作原理,这节开始代码演示! 新创建一个工程:AD模数转换 第一个工程将用到LCD1602和Delay函数,所以首先将我们之前讲过的代码模块添加进来 然后创建主程序

    2024年02月19日
    浏览(51)
  • 51单片机——步进电机实验,小白讲解,相互学习

    步进电机简介:         步进电机是将电脉冲信号转变为角位移或多线位移的开源控制元件。在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性的关系的存在

    2024年02月04日
    浏览(39)
  • PIC单片机之AD转换学习记录

            首先,简单介绍一下AD原理。ADC是指将模拟信号转换成数字信号的过程。通俗理解ADC采样就是采集电路中的电压,通过数值的方式表现出来。         以PIC16F877芯片为例,它是10位ADC,供电电压是5V,它能检测的电压也是0~5V(参考电压可以自己修改)。这就好理解了,

    2024年02月04日
    浏览(50)
  • 51单片机——定时器中断实验,小白讲解,相互学习

    定时器介绍 1,CPU时序的有关知识 震荡周期:为单片机提供定时信号的震荡源的周期(晶振周期或外加震荡周期)。 状态周期:2个震荡周期为1个状态周期,用S表示。震荡周期又称S周期或时钟周期。 机器周期:1个机器周期含6个状态周期,12个震荡周期 指令周期:完成1条指

    2024年02月03日
    浏览(48)
  • 51单片机——中断系统之外部中断实验,小白讲解,相互学习

     中断介绍         中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。         为了更容易的理解中断概

    2024年02月07日
    浏览(50)
  • 学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战

    19.5.4 利用ADC第15通道(内部1.19V参考信号源)测量外部电压或电池电压 注意:这里的1.19V不是ADC 的基准电压ADC-Vref+,而是ADC15通道的固定输入信号源,1.19V STC32G系列ADC的第15通道用于测量内部参考信号源,由于内部参考信号源很稳定,约为1.19V,且不会随芯片的工作电压的改变而变化

    2024年02月07日
    浏览(49)
  • 单片机的ADC

            如何理解ADC。ADC就是将模拟量转换成数字量的过程,就是转换为计算机所能存储的0和1序列,比如将模拟量转换为一个字节,所以这个字节的大小要能反应模拟量的大小,比如一个0-5V的电压测量量(外部输入电压最小0V,最大为5V),将0V对应成0000 0000,将5V对应为1111

    2024年02月11日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包