资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第十章,8535单片机模拟量输入接口,模数(A/D)转换器,模拟比较器,1,第十章 8535单片机模拟量输入接口 模数(A/D)转换,10.1,8535单片机A/D接口,一、,主要特点:,1、10位,精度,的逐次逼近型,A/D,转换器(由一定的时钟控制称之为AD时钟),;,2、,8 个,模拟量输入,通道,(PA07);,3、,自由运行模式和单次转换模式;,4、,ADC 转换结束中断;,5、,睡眠模式噪声消除;,6、,转换速度快、精确一般;,2,10.1 8535单片机A/D接口 一、主要特点:1、,二、AD转换器接口框图,10位,A/D转换器,MUX0-2,A/DC,预分频器,分频选择,ADPS02,ADC,10位,数据,寄存器,ADCL70,ADCH10,主频CK,ADEN,AD允许,ADSC,AD开始转换,注1:先读低8位,逻辑与,AD转换结束中断请求(受I位控制),ADFR,自由运行,ADIF,ADIE,分频因子2128,50-200kHz,AD时钟,8 通道模拟,开关,ADC0,ADC1,ADC7,3,二、AD转换器接口框图MUX0-2A/DC预分频器分频选择A,三、AD转换器的两种工作模式,初始化AD转换器:,首次转换(在ADEN=1后的第一次转换),将进行一次哑转换过程(虚拟转换),之后才是真正的转换过程。(第一次转换增加12个AD时钟),1、,单次转换模式,启动一次A/D,则转换一次。(14个AD时钟),2、,自由运行模式,启动一次A/D,连续不断AD转换,并更新,ADC,数据寄存器,。(13个AD时钟),单次转换的时序,自由运行的时序,首次转换(单次模式)的时序,4,三、AD转换器的两种工作模式初始化AD转换器:首次转换(在A,单次转换,的时序,5,单次转换的时序5,自由运行,的时序,6,自由运行的时序6,首次转换,(单次模式),的时序,7,首次转换(单次模式)的时序7,四、相关的I/O寄存器,初值=$00,可读写;用于选择通道号,新设定的通道要等到当前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位的更新,,直到CPU用in指令读完高位。,8,四、相关的I/O寄存器初值=$00,可读写;用于选择通道号,,四、相关的I/O寄存器2,初值=$00,可读写。,3、ADC,控制和状态寄存器,ADCSR-$06($26),ADEN,ADSC,ADFR,ADIF,ADIE,ADPS 2,ADPS 1,ADPS 0,ADEN:,=1 ADC,使能,;=0用作PA口。,ADSC:,ADC 开始转换。,为1启动AD 转换,对于单次模式,ADC结束自动清零,自由运行模式一直保持为1。,ADFR:,=1 ADC 自由运行模式;0 单次模式。,ADIF:,转换结束后,ADC 中断标志置1。,ADIE:,ADC 中断使能,9,四、相关的I/O寄存器2初值=$00,可读写。3、ADC 控,3、,ADC,控制和状态寄存器,ADEN,ADSC,ADFR,ADIF,ADIE,ADPS 2,ADPS 1,ADPS 0,ADPS,2 0:,ADC 预分频选择,0 1 1,8,0 0 1,2,0 1 0,4,0 0 0,2,1 0 0,16,1 0 1,32,1 1 0,64,1 1 1,128,10,3、ADC 控制和状态寄存器ADEN ADSC ADFR A,五、多通道的扫描,基本规则,:,当前,AD,转换结束之后,新设定的通道号才起作用。,分两种情况讨论:,1.,对于单次模式;,2.,对于自由运行模式。,11,五、多通道的扫描基本规则:当前AD转换结束之后,新设定的通道,1、多通道的扫描,单次模式,基本思路与方法:,在设定通道号、ADEN=1之后;,启动AD转换,ADSC,=1;,进入AD转换过程,ADSC,一直保持为高;,AD转换结束,,转换结果存入AD数据寄存器,,ADSC由硬件自动清0、ADIF=1;,此时可读取转换结果(先低后高)、改变通道号(可以在主程序或,转换结束,中断服务程序中完成),再次启动AD转换。,12,1、多通道的扫描单次模式基本思路与方法:12,2、多通道的扫描,自由运行模式,基本思路与方法:,在设定通道号、ADEN=1之后;,只要,启动,一次AD转换即可,ADSC,=1;,进入AD转换过程;,AD转换结束,,转换结果存入AD数据寄存器,,ADSC保持为1、ADIF=1,,同时进行新的转换,;,之后可以在任意时刻读取转换结果(先低后高)、改变通道号(可以在主程序或,转换结束,中断服务程序中完成)。,13,2、多通道的扫描自由运行模式基本思路与方法:13,对于自由运行模式-,改变通道号与读取转换结果,基本规则:,当前,AD,转换结束之后,新设定的通道才起作用。,1、,在,主程序,中,改变通道号,2、,在,转换结束,中断服务程序,中,改变通道号,0.1mS,0.1mS,0.1mS,0.1mS,0.1mS,0.1mS,7,7,7,6,6,6,7,6,7,7,6,改,读到,1mS,1mS,1mS,1mS,1mS,1mS,7,7,6,6,6,6,7,7,6,7,14,对于自由运行模式-改变通道号与读取转换结果基本规则:当前A,六、,使用时应考虑的,几个问题,确定通道数,选择通道号;,确定运行模式:自由运行模式和单次转换模式;,多个通道的扫描;,ADC噪声的抑制。,转换速度问题;,15,六、使用时应考虑的几个问题确定通道数,选择通道号;确定运行模,七、,应用举例,测量,8535,的,ACH6,和,ACH7,两路模拟电压信号,电路如图,10.6,所示。,16,七、应用举例测量8535的 ACH6和ACH7两路模拟电压信,1.,模拟量输入信号端的处理,两路输入信号经,RC,滤波去除交流分量。,6.2V,稳压管起保护作用,高于,6.2V,的输入信号被限幅在,6.2V,之内。对负的输入信号,稳压管反向导通,限幅在,0.7V,之内,以避免损坏输入引脚。,17,1.模拟量输入信号端的处理两路输入信号经RC滤波去除交,2.,AD的基准电压的稳定,及供电,基准电压的稳定、准确事关ADC转换结果的精确性。,采用LM336(5.0V)的三端精密并联式二极管。通过调节精密多圈电位器可调节V,REF,的电压值。,可调到V,REF,5.12V。,AVcc的,供电,经100和0.1F 电容滤波以减少交流分量对ADC影响。,转换结果(数字量)对应的输入电压(模拟量)间的关系?,18,2.AD的基准电压的稳定及供电基准电压的稳定、准确事关A,3.,AD转换结果的显示,PB口8,根,线作动态扫描数码管,字线,,,PD口低5位作动态扫描数码管,位线,,数码管用共阴极。,五位数码管,最左边,显示测量的路号,,右边4位,显示A/D转换的数字量。,每隔1秒钟轮换显示一次。当ADC采用,单次转换,模式,时程序如下,每秒钟换路一次(读完ADC结果,,,改变多路开关),。,19,3.AD转换结果的显示PB口8根线作动态扫描数码管字线,,4.,编程思路,表格的定义,初始化,堆栈及并口,。,通道7的处理,设定通道号,启动转换,延时等待转换结束,读取转换结果,二转十,动态扫描显示,通道6的处理,与同道7类似,循环处理.,20,4.编程思路表格的定义20,5.,程序清单,.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,r16,21,5.程序清单.include 8535def.inc,程序清单,并口初始化,;,定义PB、PD为输出口,ldi r16,$ff,out ddrb,r16,out ddrd,r16,;,定义PA口为输入口,,,ldi r16,$00,out ddra,r16,;,不带内部上拉电阻,ldi r16,$00,out porta,r16,22,程序清单并口初始化;定义PB、PD为输出口22,程序清单.,aa:,ldi r16,$07 ;先第7路ADC,out admux,r16,ldi 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,mov r18,r16,ldi r17,200 ;每一路A/D扫描200次,恰好1s,bb:rcall smiao ;调动态扫描子程序见7.2.2,dec r17,brne bb,通道7的处理,23,程序清单.aa:ldi r16,$07,程序清单.,ldi r18,$,06,;改变ADMUX为,第6路,out admux,r18,ldi 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 ;调用二转十子程,ldi r22,6,;万位显示路号,6,mov r21,r19 ;四位ADC结果送显示缓冲区,mov r20,r18,mov r19,r17,mov r18,r16,ldi r17,200 ;每一路A/D扫描200次,恰好1s,cc:rcall smiao ;调动态扫描子程序见7.2.2,dec r17,brne cc,rjmp aa,通道6的处理,24,程序清单.ldi r18,$06,10.3,模拟比较器,一、概述,模拟比较器对正极,PB2,引脚(,AIN0,)和负极,PB3,引脚(,AIN1,)之上的输入值进行比较。当,PB2,上的电压高于,PB3,的电压时模拟比较器输出,ACO,被置位。比较器的输出可用来为触发模拟比较器中断(上升沿、下降沿或电平变换),也可触发定时,/,计数器,1,的输入捕获功能。.,25,10.3 模拟比较器一、概述25,二、,模拟比较器方框图,26,二、模拟比较器方框图 26,三、相关的I/O寄存器-,1个,1、,模拟比较器控制和状态寄存器,-,ACSR,-$08($28),ACD,-,ACO,ACI,ACIE,ACIC,ACIS 1,ACIS0,位7,ACD,:,模拟比较器禁止位,当该位设为1时,模拟比较器的电源关闭。可以在任何时候对其置位,以便关闭模拟比较器。这样可以减少器件功耗,常用于休闲模式下又不需从模拟比较器中断唤醒的情况。改变ACD位时,模拟比较器中断必须通过清空ACSR中的ACIE位来禁止;否则,在该位改变时,会产生中断 。,位5,ACO,:,模拟比较器输出,。,27,三、相关的I/O寄存器-1个1、模拟比较器控制和状态寄存器-,三、相关的I/O寄存器-,1个,1、,模拟比较器控制和状态寄存器,-,ACSR,-$08($28),ACD,-,ACO,ACI,ACIE,ACIC,ACIS 1,ACIS0,位,4,ACI,:,模拟比较器中断标志位,当比
展开阅读全文