1、P3.2控制ADC0809的转换结束信号(EOC)。系统框图如图1-2所示。图1-1 电路原理图图1-2 系统框图一主要元器件的介绍1. 模数转换芯片ADC0809: ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图1-3所示。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。 图1-3 ADC0809实物图1) ADC0809内部逻辑结构图1-4 ADC0809的内部逻辑结构及引脚图ADC0809的内部逻辑结构如图1-4所示。图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路
2、完成对A、B、C三个地址位进行锁存与译码,如表1-1所示。表1-1 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道IN01IN1IN2IN3IN4IN5IN6IN72) ADC0809的引脚ADC0809芯片为28引脚双列直插式封装,其引脚排列如图1-4所示。(1)IN0IN7:8路模拟量输入通道。(2)A、B、C:模拟通道地址线。这3根地址线用于对8路模拟通道的选择,其译码关系如表1-1所示。其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。(3)ALE:地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。(4)STAR
3、T:转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。(5)D7D0:数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高。(6)OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。(7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。(8)EOC:转换结束信号。EOC=0,正在进行转换
4、;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。(9)Vcc: +5V电源,GND:地。(10)Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=0V)。3) ADC0809的工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,
5、这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。(注意:ALE信号常与START信号连在一起,这样连接可以在信号的前沿写入地址信号,在其后沿启动A/D转换,图1-5为ADC0809信号的时序配合图)。图1-5 ADC0809信号的时序配合2. 数据处理及控制芯片STC89C51: STC89C51片内含有4k字节Flash闪速存储器。ALE:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出
6、的脉冲或用于定时目的。3.AT89C51与ADC0809的连接AT89C51与ADC0809的连接电路如图1-1所示。AT89C51与ADC0809的连接必须注意处理好3个问题:(1)在START端送一个100ns宽的启动正脉冲; (2)获取EOC端上的状态信息,因为它是A/D转换的结束标志;(3)给“三态输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号。4. 4位一体7段LED数码管本实验的显示模块主要由一个4位一体的7段LED数码管(SM410564)构成,用于显示测量到的电压值。它是一个共阳极的数码管,每一位数码管的原理图如图1-13所示。每一位数码管的a,b,c,
7、d,e,f,g和dp端都各自连接在一起,用于接收AT89C51的P1口产生的显示段码。1,2,3,4引脚端为其位选端,用于接收AT89C51的P3口产生的位选码。图1-4和图1-5分别为其实物图和引脚图。图1-4 一位数码管的原理图图1-5 SM410564数码管实物图1.主程序设计初始化中主要对AT89C51,ADC0809的管脚和数码管的位选及所用到的内存单元70H,78H,79H,7AH 进行初始化设置。准备工作做好后便启动ADC0809对IN2脚输入进的05V电压模拟信号进行数据采集并转换成相对应的0255十进制数字量。在数据处理子程序中,运用标度变换知识,编写算法将0255十进制数字
8、量转换成0.005.00V的数据,输出到显示子程序进行显示。整个主程序就是在A/D转换,数据处理及显示程序循环执行。整个程序流程框图如图16所示。图16 主程序流程图2.各子程序设计1)A/D转换子程序启动ADC0809对模拟量输入信号进行转换,通过判断EOC(P3.2引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,将转换完成的数据存储到70H中。程序流程图如图17所示。图17 A/D转换程序流程图2)数据处理子程序3)显示子程序显示子程序采用动态扫描法实现三位数码管的数值显示。测量所得的A/D转换数据放在70H内存单元中,测量数据在显示时需转换成10进制BCD
9、码放在78H7AH单元中。寄存器R1用作显示数据地址指针。程序流程图如图1-8所示。 图18 显示子程序流程图程序如下: ORG 0000H LJMP START ORG 0030HSTART: CLR A MOV 70H,A MOV 78H,A MOV 79H,A MOV 7AH,A MOV 7BH,ALOOP: LCALL AD_SUB LCALL TRN_SUB LCALL DISP_SUB LJMP LOOPAD_SUB: CLR P2.6 SETB P3.2 CLR P2.7 SETB P2.3 SETB P2.4 CLR P2.5 MOV R0,#70H SETB P2.7 NOP
10、WAIT: JB P3.2,DSAVE SJMP WAITDSAVE: MOV P0,#0FFH SETB P2.6 MOV A,P0 MOV R0,A RETTRN_SUB:MOV A,R0 MOV B,#51 DIV AB MOV A,B MOV B,#10 MUL ABDISP_SUB:MOV R1,#78H MOV A,R1 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P1,A CLR P3.4 LCALL DELAY SETB P3.4 INC R1 MOV DPTR,#TAB2 MOV P1,A CLR P3.5 SETB P3.5 CLR P3.6 LCALL DELAY SETB P3.6 MOV A,#0C1H CLR P3.7 SETB P3.7 RET DELAY: MOV R5,#3S1: MOV R6,250 DJNZ R6,$ DJNZ R5,S1TAB1: DB 40H,79H,24H,30H,19H,12HTAB2: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1