资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,电子电气工程系,主讲人:张启,单片机技术基础,能够把模拟量变成数字量的器件称为模数转换器,(A/D),。,能够把数字量变成模拟量的器件称为数模转换器,(D/A),。,代表型号:,DAC0832,ADC0809,AD,转换有并行比较式、积分式、逐次逼近式等多种转换方式。,课题九,电压表,8,位并行输出,A/D,转换器,ADC0809,接口,(1)ADC0809,的特点,8,路模拟输入,8,位数字输出的,A/D,转换芯片,采用,逐次逼近,的方法完成,A/D,转换,完成一次转换约需,100s,驱动时钟不大于,1280Khz,,典型时钟,640Khz,9.3.3,逐次逼近型,A/D,转换器接口,逐次逼近型,ADC,基本原理,逐次逼近,ADC,原理电路框图,思考:和利用多路比较器实现的并行,AD,有什么优缺点?,驱动时钟不大于,1280Khz,,典型时钟,640Khz,如何处理,ADC0809,需要的时钟?,方法一:,独立硬件电路提供,方法二:,单片机系统的,ALE,锁存脚频率是晶振周期的,1/6,,即,2Mhz,。增加二分频电路可获得,1Mhz,频率信号。,方法三:,利用定时计数器进行软分频,(参考定时计数器的输出频率例子),8,位并行输出,A/D,转换器,ADC0809,接口,(2)ADC0809,的结构,ADC0809,的结构框图如图所示。,ADC0809,由单一,+5V,电源供电,此时输入范围为,0-5V,;,片内有一个带有锁存功能的,8,通道多路模拟开关,可对,8,路,0-5V,的输入模拟电压信号分时进行转换,三个地址信号,A,、,B,和,C,决定是哪一路模拟信号被选中并送到内部,A/D,转换器中进行转换,,片内具有多路开关、地址译码器和锁存电路以及逐次逼近寄存器。输出具有,TTL,三态锁存缓冲器,可直接接到单片机数据总线上。,START,开始,输出控制,输出允许,多路,转换,开关,A B C,IN0,IN1,IN7,A/D,转换,(3)ADC0809,的引脚,ADC0809,是,28,脚双列直插式封装,引脚图如图所示。,IN,0,IN,7,:,8,路模拟量输入引脚。,START,:,A/D,转换启动信号输入端。上升沿时,复位,ADC0809,;,START,下降沿时启动转换;转换期间应保持 低电平。,ALE,:通道地址锁存允许信号输入端,上升沿锁存通道地址。,EOC,:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。,OE,:输出允许控制端,用以打开三态数据输出锁存器。,CLK,:时钟信号输入端。,A,、,B,、,C,:地址输入线,经译码后可选通,IN,0,IN,7,八通道中的一个通道进行转换。,A,为最低,,C,为最高。,D,7,D,0,:,8,位数字量输出引脚。,V,R,(,),:参考电压正端。一般接,+5V,高精度参考电源。,V,R,(,),:参考电压负端。一般接模拟地。,Vcc,,,GND,:电源电压,Vcc,接,+5V,,,GND,为数字地。,(,4,),ADC0809,与,8051,的接口电路,ADC0809,与,8051,单片机的接口如图所示。,(,5,),ADC0809,接口,ADC0809,从启动转换到结束转换需要一段时间,如何获取数据?,说明:转换大约需要,100us,,转换状态能通过,EOC,引脚体现。,可以采用定时采样、查询和中断三种控制方式。,定时采样,:,既然转换时间大概是,100us,,启动转换后等,100us,再读取数据。,查询,:,判断,EOC,转换结束信号,作为读数的条件。,启动转换后,EOC=0,,转换结束后,EOC=1,。,中断,:,利用,EOC,信号当作外部中断信号,向,CPU,发出外部中断申请。,获得数据和输入电压的关系,ADC0809,是,8,位,AD,,如果基准电压使用,2.55V,,则,0 x00,:,0v,0 xff,:,2.55v,为便于计算,可定义基准电压为,2.55V,,则单位变化量是,0.01V,。,练习:,在,Proteus,里,利用一个电位器,POT-LIN,输出模拟电压给,ADC0809,的,IN0,通道,转换后在,3,位数码管上显示。,分析:,(,1,),ADC0809,的时钟信号,为了节省电路成本,可以采用定时器进行软定时。,为了简化程序难度,可以采用外加硬件电路实现:,单片机的,ALE,脚是时钟的,6,分频输出,,12m,晶振的时候就是,2mhz,,再次分频可满足要求。,一个简单的,D,触发器构成的二分频电路如下:,分析:,(,2,),ADC0809,的控制,1.,转换之前主程序对,ADC0809,的初始化,START,和,OE,引脚初始状态为,0,,,EOC,为,1,:,START=0,:不启动转换;,OE=0,:,ADC0809,不输出;,EOC=1,:没开始转换或者转换已经结束。,分析:,(,2,),ADC0809,的控制,2.,进行转换的时候:,ABC,选定通道,,IN0,通道的,ABC=000,;,ALE,上升沿锁定地址。,(,ALE,的正脉冲可以指令实现,也可以用总线方式。),START,下降沿启动转换,该信号至少要保持,100ns,。,(,12m,晶振时,高一下低一下得到的正脉冲已经有,1us,),注意下一次启动转换一样需要,START,下降沿。,更换通道了需要重新锁存地址。,分析:,(,2,),ADC0809,的控制,3.,转换结束的时候:,根据,EOC,信号判断是否转换结束。,EOC=1,,转换结束。(转换时,EOC,自动变为,0,),定时采样:调用,100us,延时。,查询方法:,while,(,EOC,=0,),;,/,等待变高,中断方法:,EOC,接,51,的,INTx,。,如果转换结束,然后:,OE=1,,允许转换数据输出;,端口取数;,OE=0,,关闭,ADC0809,输出;,分析:,(,3,)数码管的动态扫描,既然每次,AD,转换需要,100us,时间,如果每次转换,3,位数码管轮流显示一次,不停的转换,+,显示,大约也有几百到上千,hz,的扫描频率。,While(1),。,/,转换,约耗时,100us,。,/,显示一遍,约耗时,xxms,。,本例中,Proteus,做仿真的一些注意事项和小技巧,1,:,Proteus,中的,ADC0809,没有开发模型库,不能仿真,可以,使用其改进型,ADC0808,代替,ADC0808,和,ADC0809,的主要区别是,0808,的不可调误差更小,是正负半个,LSB,,,0809,是正负,1,个,LSB,。,本例中,Proteus,做仿真的一些注意事项和小技巧,2.ADC0808,在,Proteus,中的一个有点囧的问题:,OUT1,是高位,,.OUT8,是低位,本例中,Proteus,做仿真的一些注意事项和小技巧,3.,为了简便,可利用:,调试信号,D clock,作为,1khz,时钟频率源;,调试信号,DC,作为,2.55v,直流基准电压源;,本例中,Proteus,做仿真的一些注意事项和小技巧,POT,可调电阻顺便增加一个直流电压表;,注意,可调电阻,POT,必须选用,ACTIVE,属性的,仿真时才能操作,本例中,Proteus,做仿真的一些注意事项和小技巧,KEIL,或,PROTEUS,可打开监控窗口,为了绘图简洁,可考虑使用网络标号和总线,实验课要求:,修改本例。基础要求:,1.,采用中断方式(,EOC+,非门到,INT1,),2.0808,的时钟采用,ALE+,二分频实现。,51,属性的,SPF,要改为,yes,,否则,ALE,无输出,提高要求:,ADC0809,的连接采用系统总线方式,参考课本,P175-P177,的电路及操作分析。,唠叨完毕,!,
展开阅读全文