AVR10AD转换11.ppt
《AVR10AD转换11.ppt》由会员分享,可在线阅读,更多相关《AVR10AD转换11.ppt(29页珍藏版)》请在冰点文库上搜索。
1,第十章8535单片机模拟量输入接口,模数(A/D)转换器模拟比较器,2,10.18535单片机A/D接口,一、主要特点:
3,二、AD转换器接口框图,10位A/D转换器,MUX0-2,ADPS02,ADC10位数据寄存器,注1:
先读低8位,AD转换结束中断请求(受I位控制),分频因子2128,50-200kHzAD时钟,4,三、AD转换器的两种工作模式,初始化AD转换器:
首次转换(在ADEN=1后的第一次转换),将进行一次哑转换过程(虚拟转换),之后才是真正的转换过程。
(第一次转换增加12个AD时钟),1、单次转换模式,每启动一次A/D,则只转换一次。
(14个AD时钟),2、自由运行模式,启动一次A/D,转换结束后立即进行下一次,连续不断AD转换,并更新ADC数据寄存器。
(13个AD时钟),单次转换的时序,自由运行的时序,首次转换(单次模式)的时序,5,单次转换的时序,6,自由运行的时序,7,首次转换(单次模式)的时序,8,四、相关的I/O寄存器,初值=$00,可读写;用于选择通道号,新设定的通道要等到当前AD转换结束之后才起作用。
2、ADC数据寄存器:
ADCL-$04($24)低8位,ADC数据寄存器:
ADCH-$05($25)高2位,规则:
先读低8位,后读高2位。
同步:
用in指令读低8位后,就禁止ADC对高2位的更新,直到CPU用in指令读完高位。
9,四、相关的I/O寄存器2,初值=$00,可读写。
ADEN:
=1ADC使能;=0用作PA口。
ADSC:
ADC开始转换。
为1启动AD转换,对于单次模式,ADC结束自动清零,自由运行模式一直保持为1。
ADFR:
=1ADC自由运行模式;0单次模式。
ADIF:
转换结束后,ADC中断标志置1。
ADIE:
ADC中断使能,10,3、ADC控制和状态寄存器,11,五、多通道的扫描,基本规则:
当前AD转换结束之后,新设定的通道号才起作用。
分两种情况讨论:
1.对于单次模式;2.对于自由运行模式。
12,1、多通道的扫描单次模式,基本思路与方法:
在设定通道号、ADEN=1之后;启动AD转换ADSC=1;进入AD转换过程,ADSC一直保持为高;AD转换结束,转换结果存入AD数据寄存器,ADSC由硬件自动清0、ADIF=1;此时可读取转换结果(先低后高)、改变通道号(可以在主程序或转换结束中断服务程序中完成),再次启动AD转换。
13,2、多通道的扫描自由运行模式,基本思路与方法:
在设定通道号、ADEN=1之后;只要启动一次AD转换即可,ADSC=1;进入AD转换过程;AD转换结束,转换结果存入AD数据寄存器,ADSC保持为1、ADIF=1,同时进行新的转换;之后可以在任意时刻读取转换结果(先低后高)、改变通道号(可以在主程序或转换结束中断服务程序中完成)。
14,对于自由运行模式-改变通道号与读取转换结果,基本规则:
当前AD转换结束之后,新设定的通道才起作用。
1、在主程序中改变通道号,2、在转换结束中断服务程序中改变通道号,15,六、使用时应考虑的几个问题,确定通道数,选择通道号;,确定运行模式:
自由运行模式和单次转换模式;,多个通道的扫描;,ADC噪声的抑制。
转换速度问题;,16,七、应用举例,测量8535的ACH6和ACH7两路模拟电压信号,电路如图10.6所示。
17,1.模拟量输入信号端的处理,两路输入信号经RC滤波去除交流分量。
6.2V稳压管起保护作用,高于6.2V的输入信号被限幅在6.2V之内。
对负的输入信号,稳压管反向导通,限幅在0.7V之内,以避免损坏输入引脚。
18,2.AD的基准电压的稳定及供电,基准电压的稳定、准确事关ADC转换结果的精确性。
采用LM336(5.0V)的三端精密并联式二极管。
通过调节精密多圈电位器可调节VREF的电压值。
可调到VREF5.12V。
AVcc的供电经100和0.1F电容滤波以减少交流分量对ADC影响。
转换结果(数字量)对应的输入电压(模拟量)间的关系?
19,3.AD转换结果的显示,PB口8根线作动态扫描数码管字线,PD口低5位作动态扫描数码管位线,数码管用共阴极。
五位数码管最左边显示测量的路号,右边4位显示A/D转换的数字量。
每隔1秒钟轮换显示一次。
当ADC采用单次转换模式时程序如下,每秒钟换路一次(读完ADC结果,改变多路开关)。
20,4.编程思路,表格的定义初始化堆栈及并口。
通道7的处理设定通道号启动转换延时等待转换结束读取转换结果二转十动态扫描显示通道6的处理与同道7类似循环处理.,21,5.程序清单,.include8535def.inc.org$0000rjmpresettab:
.db$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f;七段码表reset:
ldir16,low(ramend);栈指针置初值outspl,r16ldir16,high(ramend)outsph,r16,22,程序清单并口初始化,;定义PB、PD为输出口ldir16,$ffoutddrb,r16outddrd,r16;定义PA口为输入口,ldir16,$00outddra,r16;不带内部上拉电阻ldir16,$00outporta,r16,23,程序清单.,aa:
ldir16,$07;先第7路ADCoutadmux,r16ldir18,$C6;允许ADC,启动ADC,单次模式outadcsr,r18;64分频做A/D时钟rcallt1ms;延时1毫秒inr16,adcl;读A/D结果放入R17:
R16中inr17,adchrcallb16td5;调用二转十子程见5.3.1ldir22,7;万位显示路号7movr21,r19;四位ADC结果送显示缓冲区movr20,r18movr19,r17movr18,r16ldir17,200;每一路A/D扫描200次,恰好1sbb:
rcallsmiao;调动态扫描子程序见7.2.2decr17brnebb,通道7的处理,24,程序清单.,ldir18,$06;改变ADMUX为第6路outadmux,r18ldir18,$C6;允许ADC,启动ADC,单次模式outadcsr,r18;64分频做A/D时钟rcallt1ms;延时1毫秒inr16,adcl;读A/D结果放入R17:
R16中inr17,adchrcallb16td5;调用二转十子程ldir22,6;万位显示路号6movr21,r19;四位ADC结果送显示缓冲区movr20,r18movr19,r17movr18,r16ldir17,200;每一路A/D扫描200次,恰好1scc:
rcallsmiao;调动态扫描子程序见7.2.2decr17brneccrjmpaa,通道6的处理,25,10.3模拟比较器,一、概述模拟比较器对正极PB2引脚(AIN0)和负极PB3引脚(AIN1)之上的输入值进行比较。
当PB2上的电压高于PB3的电压时模拟比较器输出ACO被置位。
比较器的输出可用来为触发模拟比较器中断(上升沿、下降沿或电平变换),也可触发定时/计数器1的输入捕获功能。
.,26,二、模拟比较器方框图,27,三、相关的I/O寄存器-1个,位7ACD:
模拟比较器禁止位当该位设为1时,模拟比较器的电源关闭。
可以在任何时候对其置位,以便关闭模拟比较器。
这样可以减少器件功耗,常用于休闲模式下又不需从模拟比较器中断唤醒的情况。
改变ACD位时,模拟比较器中断必须通过清空ACSR中的ACIE位来禁止;否则,在该位改变时,会产生中断。
位5ACO:
模拟比较器输出。
28,三、相关的I/O寄存器-1个,位4ACI:
模拟比较器中断标志位当比较器输出触发中断时ACI将置位。
位3ACIE:
模拟比较器中断使能当ACIE位设为1,且状态寄存器中的I位被设为1时,模拟比较器中断被触发。
当被清为0时,中断被禁止。
29,三、相关的I/O寄存器-1个,位2ACIC:
模拟比较器输入捕获使能设置为1时,模拟比较器的输出直接连到输入捕获前端逻辑,使比较器能利用T/C1输入捕获中断的噪声消除和边缘选择的特性。
当该位=0时,模拟比较器和输入捕获功能之间没有联系。
为了使比较器触发定时器/计数器1的输入捕获中断,定时器中断屏蔽寄存器(TIMSK)的TICIE1位必须被设置。
位1,0ACIS1,ACIS0:
模拟比较器中断模式选择00:
电平变换引发中断;01:
保留;10:
ACO下降沿中断;11:
ACO上升沿中断,