四川工商学院 单片机原理及应用 刘 强 liuliu408@163.com 15928681548 58570305
课程教学内容
复习:IAP15W4K58S4单片机的内部结构 P0~P7 CPU Bus ROM RAM T/C UART 中断系统 ADC CCP/PWM SPI I/O CPU Watch Dog 总线控制器 CPU实际是通过外设和外部世界进行连接,外设是为特定的控制应用而设计的。
本节内容 11.0 A/D转换概述(A/D认知) 11.1 IAP15W4K58S4单片机A/D模块的结构
一. A/D转换概述 1. A/D转换是时间和幅值都连续的模拟量,转换为时间、幅值都离散的数字量。 t V t V 1 1 2. 在现实世界中,许多量都是模拟量,例如电压、电流、温度、湿度、压力等信号,而在MCU、DSP、ARM等微控制器的世界中,所有的量都是数字量,那么如何实现将现实的模拟量提供MCU等微控制器呢?
单片机 控 制 对 象 传感器 放大器 滤波器 A / D D / A 执行部件
3. A/D转换工作原理 2)保持。需要这个信号连续的保持一段时间,否则就有可能是一个干扰或者信号毛刺,这样的干扰和毛刺是不符合采样标准的。即,必须经过保持以避免输入电压在转换期间发生变化!! ①抽样 ②量化 ③编码
8位分辨率---对应编码位数8位
③转换精度:指实际输入的模拟值与理论输入的模拟值(根 据A/D输出推算)之间的偏差。常用数字量最低有效位 LSB 的几 分之几表示。 ①分辨率:指A/D转换器所能分辨的最小模拟输入量,通常用A/D的位数表示。 如:8位A/D的分辨率为8位,10位A/D的分辨率为10位 ② 转换时间和转换速度:转换时间指完成一次A/D转换所需 的时间,从启动信号开始到转换结束,得到稳定数字量的时间。 转换速度是转换时间的倒数。 CPU 对 ADC 转换结果的读取方式 程序延时方式; 程序查询方式; 中断方式 ③转换精度:指实际输入的模拟值与理论输入的模拟值(根 据A/D输出推算)之间的偏差。常用数字量最低有效位 LSB 的几 分之几表示。 1 4 LSB 1 2 LSB
5、几种市面上常用的模数转换器比较 注:SPS为每秒采样次数 类型 并行比较型 分级型 逐次逼近型 Σ-Δ型 积分型 VFC型 超高速 高速 主要特点 超高速 高速 速度、精度 价格等 综合性价比高 高分辨率 高精度 低成本 高抗干扰能力 分辨率 6~10 8~16 16~24 12~16 转换时间 几十ns 几十~几百ns 几~几十μs 几~几十ms 几十~几百ms 采样频率 几十MSPS 几MSPS 几十~几百KSPS 几十KSPS 几~几十SPS 价格 高 中 低 主要用途 超高速视频处理 视频处理 高速数据采集 数据采集 工业控制 音频处理 数字仪表 简易ADC 注:SPS为每秒采样次数
6.常用A/D转换方案 + 用户根据实际产品需求自行选择方案! 方案1:采用MCU + A/D芯片 ADC0809(8位,ADC0832(8位),ADC574(12位)---比较古老 PCF8591(8位)、TL549(8位)、TL1549(10位)、ADS1118(16位) 方案2:采用带A/D功能的MCU(SOC) 选择依据 (1)主要指标:分辨率、转速速率; (2)接口(PCB设计):并口、SPI,I2C等。 目前市面上的最新的51单片机内部都带有A/D外设! 用户根据实际产品需求自行选择方案!
ADC输入通道与P1端口复用,不作为ADC仍可作为普通I/O端口。 11.1 IAP15W4K58S4单片机A/D模块的结构 如图所示,ADC模块由多路复选开关、比较器、逐次逼近比较器、10位DAC、结果寄存器以及控制器构成。模拟信号通过P1端口送入到ADC模块内部,P1端口功能复用。 通过数据开关设置,可最多输入8路模拟量。逐次逼近型比较,完成对模拟信号的量化处理,使被测信号的编码在000H-3FFH范围内,和模块量一一对应。 STC15F单片机片内集成有8通道10位高速电压输入型模拟数字转换器ADC,采用逐次比较方式进行A/D转换,速度可达到300KHz 。 ADC输入通道与P1端口复用,不作为ADC仍可作为普通I/O端口。
11.2 IAP15W4K58S4单片机A/D模块的控制
1. P1端口模拟输入通道功能控制寄存器P1ASF P1ASF的8个控制位与P1端口的8个引脚: 一一对应置为1,对应P1端口的引脚为ADC功能 一一对应置为0,对应P1端口的引脚为普通I/O功能,默认 P1ASF |=0X01; //设置P1.0为AD口
2. ADC控制寄存器ADC_CONTR ⑴ ADC_POWER:ADC电源控制位。 ADC_POWER = 0,关闭ADC电源;- 默认 ⑵ SPEED1、SPEED0:A/D转换速度控制位。
2. ADC控制寄存器ADC_CONTR ⑶ ADC_FLAG:A/转换结束标志位。 A/D转换完成,ADC_FLAG = 1。需要软件清0。 如果允许A/D转换中断(EADC = 1,EA = 1),则请求产生中断; 查询该标志位可判断A/D转换是否结束。 ⑷ ADC_START:A/D转换启动控制位。 ADC_START = 1,开始转换; ADC_START = 0,不转换。- 默认
2. ADC控制寄存器ADC_CONTR ⑸ CHS2.CHS1.CHS0:模拟输入通道选择控制位。
3. A/D转换结果寄存器ADC_RES和ADC_RESL A/D转换结果的存储格式由时钟分频寄存器CLK_DIV的bit5位ADRJ进行控制。 执行CLK_DIV | = 0x20设置ADRJ = 1,单片机硬件复位后默认ADRJ = 0。
3. A/D转换结果寄存器ADC_RES和ADC_RESL (1)当ADRJ = 0时, 10位ADC值: 高8位存放在ADC_RES寄存器, 低2位存放在ADC_RESL寄存器的低2位。
3. A/D转换结果寄存器ADC_RES和ADC_RESL (2)当ADRJ = 1时, 10位ADC值: 高2位存放在ADC_RES寄存器的低2位, 低8位存放在ADC_RESL寄存器。
4. 与A/D转换中断有关的寄存器 中断允许控制寄存器IE EA:CPU总中断控制端 EA=1 开总中断; EA=0 关总中断。 EADC:ADC使能控制端 EADC=1 开ADC中断; EADC=0 关ADC中断。 当EA=1,EADC=1时,ADC控制寄存器ADC_CONTR中的B4位ADC_FLAG是A/D转换结束标志,又是A/D转换结束的中断请求标志。
11.3 IAP15W4K58S4单片机A/D转换的应用 ADC模块的应用编程要点: ⑴ 打开ADC工作电源。 ⑶ 选择P1端口中的相应口线作为A/D转换模拟量输入通道。 ⑷ 设置ADC输入通道。 ⑸ 根据需要选择转换结果存储格式,默认ADRJ = 0。 ⑹ 查询A/D转换结束标志ADC_FLAG,完成则读出A/D转换结果,并进行数据处理。 ⑺ 若采用中断方式,还需进行中断设置。 ⑻ 在中断服务程序中读取A/D转换结果,并将ADC中断请求标志ADC_FLAG清0。
11.3 IAP15W4K58S4单片机A/D转换的应用 案例学习
例11.1 利用IAP15W4K58S4单片机编程实现,ADC通道4接外部模拟电压0~5V直流电压,10位精度,采用查询方式循环进行转换,并将转换结果保存于整型变量ADC_rssult中。 LED数码管 输入电压 0~5V IAP15W4K58S4
例11.2 利用IAP15W4K58S4单片机编程实现,ADC通道4接外部模拟电压0~5V直流电压,10位精度,采用中断方式进行转换,并将转换结果保存于整型变量ADC_rssult中。 LED数码管 输入电压 0~5V IAP15W4K58S4
(2)ADC按键识别
ADC按键的原理是通过采集不同的电压执行不同的功能。当不同的按键被按下时,AD转换的电压不同,通过AD转换值便可以判断出是哪个按键被按下。
小结 A/D转换是将模拟电信号转换成数字信号。 A/D转换的结构: 采样、量化、编码。 A/D转换主要技术指标:分辨率、转换速率。
Thank You ! Question & Answer 任何建议和疑问,请不要犹豫! liuqiang@stbu.edu.cn 常用码制、 正数表示方法、 正数码制转换、 负数表示方法、 负数补码的计算 定点数表示、 浮点数表示 Question & Answer 任何建议和疑问,请不要犹豫! liuqiang@stbu.edu.cn