1、先读低:先读低8位位逻辑与逻辑与AD转换结束中断请转换结束中断请求(受求(受I位控制)位控制)ADFR自由自由运行运行ADIFADIE分频因子分频因子212850-200kHzAD时钟时钟 8 通通道道模模拟拟开开关关ADC0ADC1ADC73三、三、AD转换器的两种工作模式转换器的两种工作模式v初始化初始化AD转换器:转换器:首次转换(在首次转换(在ADEN=1后的第一次转后的第一次转换),将进行一次哑转换过程(虚拟转换),之后才是真换),将进行一次哑转换过程(虚拟转换),之后才是真正的转换过程。(第一次转换增加正的转换过程。(第一次转换增加12个个AD时钟)时钟)1、单次转换模式单次转换模
2、式每启动一次每启动一次A/D,则只转换一次。(,则只转换一次。(14个个AD时钟)时钟)2、自由运行模式自由运行模式 启动一次启动一次A/D,转换结束后立即进行下一次,连续不,转换结束后立即进行下一次,连续不断断AD转换转换,并更新并更新ADC 数据寄存器数据寄存器。(。(13个个AD时钟)时钟)单次转换的时序单次转换的时序自由运行的时序自由运行的时序首次转换(单次模式)的时序首次转换(单次模式)的时序4单次转换单次转换的时序的时序5自由运行自由运行的时序的时序6首次转换首次转换(单次模式)(单次模式)的时序的时序7四、相关的四、相关的I/O寄存器寄存器初值初值=$00,可读写;用于选择通道号
3、,新设定的通道要等到可读写;用于选择通道号,新设定的通道要等到当前当前AD转换结束之后才起作用。转换结束之后才起作用。MUX2 MUX1 MUX0 1、ADC 多路选择寄存器多路选择寄存器ADMUX-$07($27)2、ADC 数据寄存器:数据寄存器:ADCL-$04($24)低低8位位ADC 数据寄存器:ADCH-$05($25)高)高2位位ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0-ADC9 ADC9规则:规则:先读低先读低8位,后读高位,后读高2位。位。同步:用用in指令读低指令读低8位后,位后,就禁止就禁止ADC对对高高2位的更新,位的更新,直到直到
4、CPU用用in指令读完高位。指令读完高位。8四、相关的四、相关的I/O寄存器寄存器2初值初值=$00,可读写。可读写。3、ADC 控制和状态寄存器控制和状态寄存器ADCSR-$06($26)ADEN ADSC ADFR ADIF ADIE ADPS 2 ADPS 1 ADPS 0ADEN:=1 ADC 使能使能;=0用作PA口。ADSC:ADC 开始转换。开始转换。为为1启动启动AD 转换,对于单次模式,转换,对于单次模式,ADC结束自动清零,结束自动清零,自由运行模式一直保持为自由运行模式一直保持为1。ADFR:=1 ADC 自由运行模式自由运行模式;0 单次模式。单次模式。ADIF:转换结
5、束后,转换结束后,ADC 中断标志置中断标志置1。ADIE:ADC 中断使能中断使能 93、ADC 控制和状态寄存器控制和状态寄存器ADEN ADSC ADFR ADIF ADIE ADPS 2 ADPS 1 ADPS 0ADPS 2 0:ADC 预分频选择预分频选择 0 1 1 80 0 1 20 1 0 40 0 0 21 0 0 161 0 1 321 1 0 641 1 1 12810五、多通道的扫描五、多通道的扫描v基本规则基本规则:当前当前AD转换结束之后,转换结束之后,新设定的通道号才起作用。新设定的通道号才起作用。v分两种情况讨论:分两种情况讨论:1.1.对于单次模式;对于单次
6、模式;2.2.对于自由运行模式。对于自由运行模式。111、多通道的扫描、多通道的扫描单次模式单次模式基本思路与方法:基本思路与方法:在设定通道号、在设定通道号、ADEN=1ADEN=1之后;之后;启动启动ADAD转换转换ADSC =1;进入进入AD转换过程,转换过程,ADSC 一直保持为高;一直保持为高;AD转换结束,转换结束,转换结果存入转换结果存入ADAD数据寄存器,数据寄存器,ADSC由由硬件自动清硬件自动清0、ADIF=1;此时可读取转换结果(先低后高)、改变通道号(可此时可读取转换结果(先低后高)、改变通道号(可以在主程序或以在主程序或转换结束转换结束中断服务程序中完成),再次启中断
7、服务程序中完成),再次启动动AD转换。转换。122、多通道的扫描、多通道的扫描自由运行模式自由运行模式基本思路与方法:只要只要启动启动一次一次ADAD转换即可转换即可,ADSC =1;进入进入AD转换过程转换过程;AD转换结束,转换结束,转换结果存入转换结果存入ADAD数据寄存器,数据寄存器,ADSC保持为保持为1、ADIF=1,同时进行新的转换同时进行新的转换;之后可以在任意时刻读取转换结果(先低后高)、改变通道之后可以在任意时刻读取转换结果(先低后高)、改变通道号(可以在主程序或号(可以在主程序或转换结束转换结束中断服务程序中完成)。中断服务程序中完成)。13对于自由运行模式对于自由运行模
8、式-改变通道号与读取转换结果改变通道号与读取转换结果基本规则:基本规则:当前当前AD转换结束之后,新设定的通道才起作用。转换结束之后,新设定的通道才起作用。1、在在主程序主程序中中改变通道号改变通道号2、在在转换结束转换结束中断服务程序中断服务程序中中改变通道号改变通道号0.1mS0.1mS0.1mS0.1mS0.1mS0.1mS77766676776改改读到读到1mS1mS1mS1mS1mS1mS776666776714六、六、使用时应考虑的使用时应考虑的几个问题几个问题v确定通道数,选择通道号;确定通道数,选择通道号;v确定运行模式:确定运行模式:v多个通道的扫描;多个通道的扫描;vADC
9、噪声的抑制。噪声的抑制。v转换速度问题;转换速度问题;15七、七、应用举例应用举例测量8535的 ACH6和ACH7两路模拟电压信号,电路如图10.6所示。161.模拟量输入信号端的处理模拟量输入信号端的处理v两路输入信号经RC滤波去除交流分量。v6.2V稳压管起保护作用,高于6.2V的输入信号被限幅在6.2V之内。对负的输入信号,稳压管反向导通,限幅在 0.7V之内,以避免损坏输入引脚。172.AD的基准电压的稳定的基准电压的稳定及供电及供电v基准电压的稳定、准确事关ADC转换结果的精确性。v采用LM336(5.0V)的三端精密并联式二极管。通过调节精密多圈电位器可调节VREF的电压值。可调
10、到可调到V VREFREF 5.12V5.12V。vAVcc的供电经100和0.1F 电容滤波以减少交流分量对ADC影响。v转换结果(数字量)对应的输入电压(模拟量)间的关系?183.AD转换结果的显示转换结果的显示vPB口8根线作动态扫描数码管字线,PD口低5位作动态扫描数码管位线,数码管用共阴极。v五位数码管最左边显示测量的路号,右边4位显示A/D转换的数字量。v每隔1秒钟轮换显示一次。当ADC采用单次转换模式时程序如下,每秒 钟 换 路 一 次(读 完ADC结果,改变多路开关)。194.编程思路编程思路v表格的定义v初始化堆栈及并口。v通道7的处理设定通道号启动转换延时等待转换结束读取转
11、换结果二转十动态扫描显示v通道6的处理与同道7类似v循环处理.205.程序清单程序清单.include 8535def.inc.org$0000 rjmp reset tab:.db$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f ;七段码表 reset:ldi r16,low(ramend);栈指针置初值 out spl,r16 ldi r16,high(ramend)out sph,r1621程序清单程序清单并口初始化;定义PB、PD为输出口ldi r16,$ffout ddrb,r16out ddrd,r16;定义PA口为输入口,ldi r16,$00out
12、 ddra,r16;不带内部上拉电阻ldi r16,$00out porta,r1622程程序序清清单单.aa:ldi r16,$07 ;先第7路ADC out admux,r16ldi r18,$C6 ;允许ADC,启动ADC,单次模式out adcsr,r18 ;64分频做A/D时钟rcall t1ms ;延时1毫秒in r16,adcl ;读A/D结果放入R17:R16中in r17,adch rcall b16td5 ;调用二转十子程见5.3.1 ldi r22,7 ;万位显示路号7 mov r21,r19 ;四位ADC结果送显示缓冲区 mov r20,r18 mov r19,r17
13、mov r18,r16 ldi r17,200 ;每一路A/D扫描200次,恰好1sbb:rcall smiao ;调动态扫描子程序见7.2.2 dec r17 brne bb通道7的处理23程程序序清清单单.ldi r18,$06 ;改变ADMUX为第6路 out admux,r18ldi r18,$C6 ;调用二转十子程 ldi r22,6 ;万位显示路号6 mov r21,r19 ;每一路A/D扫描200次,恰好1scc:调动态扫描子程序见7.2.2 dec r17 brne cc rjmp aa通道6的处理2410.3 模拟比较器模拟比较器一、概述 模拟比较器对正极PB2引脚(AIN0
14、)和负极PB3引脚(AIN1)之上的输入值进行比较。当PB2上的电压高于PB3的电压时模拟比较器输出ACO被置位。比较器的输出可用来为触发模拟比较器中断(上升沿、下降沿或电平变换),也可触发定时/计数器1的输入捕获功能。二、二、模拟比较器方框图模拟比较器方框图 26三、相关的三、相关的I/O寄存器寄存器-1个个1、模拟比较器控制和状态寄存器模拟比较器控制和状态寄存器-ACSRACSR-$08($28)ACD-ACOACI ACIE ACIC ACIS 1 ACIS0位位7ACD:模拟比较器禁止位模拟比较器禁止位 当该位设为1时,模拟比较器的电源关闭。可以在任何时候对其置位,以便关闭模拟比较器。这样可以减少器件功耗,常用于休闲模式下又不需从模拟比较器中断唤醒的情况。改变ACD位时,模拟比较器中断必须通过清空ACSR中的ACIE位来禁止;否则,在该位改变时,会产生中断 。位位5ACO:模拟比较器输出模拟比较器输出。27三、相
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1