1、项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.1.1 ADC08095.1.1 ADC0809的性能指标的性能指标1)分辨率为8位。2)最大不可调误差小于1LSB。3)单电源5V。4)可锁存三态输出,输出与TTL电平兼容。5)当用5V电源供电时,模拟输入电压范围为 05V。6)温度范围4085。7)功耗为15mw。8)输出与TTL兼容9)转换速度取决于芯片的时钟频率,其时钟频率范围为10kHz1280KHZ,若CLK500kHZ,转换速度为128s。5.1 A/D转换器转换器下面以典型的A/D转换器ADC0809芯片为例,说明A/D转
2、换器的性能、结构、工作原理及接口技术。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.1.2 ADC0809的组成及工作原理的组成及工作原理如图5-1所示。ADC0809由两部份组成,第一部份为8通道多路模拟开关以及相应的通道地址锁存与译码电路,可以实现8路模拟信号的分时采集,其8路模拟输入通道的选择如表5-1所示。三个地址信号ADDA、ADDB和ADDC决定是哪一路模拟信号被选中迸送到内部A/D转换器中进行转换。第二部份为一个逐位逼近式A/D转换器,它由比较器、控制逻辑、三态输出缓冲器、逐位逼近寄存器以及开关树和256R梯型电阻网络组
3、成。其中由开关树和256R梯型电阻网络构成D/A转换器。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术IN07ADDAADDBADDCALE地 址锁 存与译 码8位模 拟开 关控 制 与 时 序SAR三 态输 出锁 存缓 冲器EOCD07树 状 开 关256R电 阻 网 络VCCGND REF()REF()OESTART CLK图5-1 ADC0809原理图ADDCADDBADDA输入通道000IN0001IN1010IN2111IN7表5-1 8路模拟输入通道寻址表项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽
4、车单片机单片机应用技术应用技术5.1.35.1.3 ADC0809 ADC0809引脚功能引脚功能ADC0809的引脚,如图5-2所示。(1)IN0IN7:8个模拟量输入端。(2)START:启动A/D转换,当START为高电平时,A/D开始转换。(3)EOC:转换结束信号。当A/D转换完毕。此信号可用作A/D转换是否完成的查询信号或向CPU请求中断的信号。(4)OE:输出允许信号或称为A/D数据读信号。当此信号为高电平时,可从A/D转换器中读取数据。此信号可作系统中的片选信号。(5)CLK:实时时钟,可通过外接电路提供频率信号,也可用系统ALE分频获得。(6)ALE:通道地址锁存允许。当AL
5、E为高电平时,允许ADDC、ADDB、ADDA锁存到通道地址锁存器,并选择对应通道的模拟输入送A/D转换器。(7)ADDA、ADDB、ADDC:通道地址输入,C为最高,A为最低。(8)D0D7:数字量输出线。(9)VREF(+),VREF():正负参考电压,用来提供D/A转换器的基准参考电压。一般VREF(+)接+5V,VREF()接地。(10)Vcc,GND:电源电压Vcc接+5V,GND为地。12345678910151617181920111213142122232425262728ADC0809IN3IN4IN5IN6IN7STARTEOCIN2IN1IN0ADDAADDBADDCAL
6、ED0D7D6D5D4D3D2REF()OECLKVCCREF()GNDD1图5-2 ADC0809引脚图项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术ADC0809的操作时序如图5-3所示。从时序图中可以看出,启动信号START和地址锁存信号ALE的上升沿将三位地址送上地址总线,相应的模拟量经多路模拟开关进入指定的通道开送到A/D转换器。在STRAT信号的下降沿的作用下,逐位逼近转换开始。此时转换结速信号EOC呈低电平状态,由于逐位逼近需要一定过程,所以,在此期间模拟输入量应维持不变,比较器要一次次进行比较,直到转换结束。此时转换结束信
7、号EOC变为高电平,若CPU发出一输出允许信号OE(高电平)则可读出数据。一次A/D转换的过程就完成了。数 字 出O EE O CS T A R T模 拟 入地 址A L E图5-3 ADC0809时序项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.1.4 89C515.1.4 89C51与与ADC0809接口设计接口设计图5-4给出了一种89C51与ADC0809的接口方法。P0.774LS373A0 A1A2+5VIN0IN7VCCVREFVREFGNDOEALESTARTEOCCLKD0D7A B CADC08094ALEINT0
8、89C51P2.7WRRDP0.0+图5-4 89C51与ADC0808、ADC0809转换器接口电路项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术根据测量系统要求不同以及CPU忙闲程度,通常可采用三种软件编程控制方式;程序查询方式,定时采样方式和中断控制方式。1 1程序查询方式程序查询方式在接入模拟量以后,发出一启动A/D转换命令,用查询检测P1.0引脚电平是否为“0”(设EOC反相后与P1.0相接)的方法来读取A/D转换器的数据,否则继续查询,直到P1.0引脚电平为“0”。这种方法较好地协调了CPU与A/D转换器在速度上的差别,通常用
9、于检测回路较少、而CPU工作不十分繁忙的情况下。(有兴趣的读者可试一下:晶振为6 MHz时,无需分频,直接将89C51的ALE信号项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术 MOVR1,#40H;置数据缓冲区指针 MOVDPTR,#7FF8H;置IN0通道地址 MOVXDPTR,A;IN0接A/D,并启动A/DH1:JBP1.0,H1;P1.0为高,则继续查询 MOVXA,DPTR;数据读入A MOVR1,A;存入40H单元例例5-1 模拟量由通道模拟量由通道0输入,转换成对应的数字量之后存入内部输入,转换成对应的数字量之后存入内部R
10、AM的的40H单元中。程序清单:单元中。程序清单:项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术 MOVRn,#32H;延时常数H2:DJNZRn,H2;重复执行一次2s2 2定时采样方式定时采样方式这种方式实际是无条件传送I/O方式,当向A/D转换器发出启动命令后,即进行软件延时,延时时间取决于进行一次A/D转换所需的时间,此时A/D转换器的数据(准备就绪)肯定转换完毕,从A/D转换器中读取数据即为采样值。若89C51的晶振为12MHz,则延时程序清单如下:为了确保转换完成,延时常数可改写为35H40H。项目五项目五 汽车温度传感器的读
11、取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.2 D/A转换器转换器5.2.1 DAC08325.2.1 DAC0832的特性参数的特性参数DAC0832是一种具有两个输入数据寄存器的8位D/A转换器,它能直接与MCS-51单片机相接,不需要附加任何其它I/O接口芯片。其主要特性参数如下:(1)分辨率8位;(2)电流稳定时间1s;(3)可以双缓冲,单缓冲或直接数字输入;(4)只需在满量程下调整其线性度;(5)单一电源供电(+5V+15V);(6)所有引脚逻辑电平与T
12、TL兼容。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.2.2 DAC08325.2.2 DAC0832的结构及原理的结构及原理图5-5 DAC0832结构框图项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.2.3 DAC08325.2.3 DAC0832引脚功能引脚功能DAC0832的引脚排列,如图5-6所示。1234567891011121314151617181920DAC083008310832CSWR1AGNDD3D2D1D0VREFRfbDGNDVCCILEWR2X
13、FERD4D5D6D7IOUT2IOUT1图5-6 DAC0832引脚图项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术2 2其它引脚的功能其它引脚的功能D0D7:数字输入量。D0是最低位(LSB),D7是最高位(MSB)。IOUT1:DAC电流输出1。当DAC寄存器为全1时,表示IOUT1为最大值,当DAC寄存器为全0时,表示IOUT1为0。IOUT2:DAC电流输出2。IOUT2为常数减去IOUT1,或者IOUT1+IOUT2常数。在单极性输出时,IOUT2通常接地。Rfb:反馈电阻,为外部运算放大器提供一个反馈电压。Rfb可由内部提供
14、,也可由外部提供。VREF:参考电压输入,要求外部接一个精密的电源。当VREF为10V(或5V)时,可获得满量程四象限的可乘操作。VCC:数字电路供电电压,一般为+5V+15V。AGND:模拟地。DGND:数字地。这是两种不同的地,但在一般情况下,这两个地最后总有一点接在一起,以便提高抗干扰能力。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.2.4 8位位D/A转换器输入端的接口方法转换器输入端的接口方法1 1二级缓冲型接口方法二级缓冲型接口方法这种接口方法主要应用在多路D/A转换器同步系统中。实际应用中,将数据从输入寄存器传送到DA
15、C寄存器,可用下列三种接口方法:1)采用地址译码器输出端某二个地址号,各进行一次写操作,由程序自动控制传送。2)单片机的P2口中某2位作为控制信号,由程序自动控制传送。3)由外部控制电路提供选通脉冲信号。图5-7示出第二种接口方法举例。VOUTDAC0832RfbIOUT1IOUT2WR2WR1XFERILECSP2.5P2.4写操作WR接高电平或某一控制信号8位数据输入图5-7 双缓冲型接口电路项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用
16、技术3 3直通型的接口电路直通型的接口电路这种电路一般很少用于微机系统。可将该电路用在连续反馈控制系统中。它是将、和接地,ILE端保持高电平。如图5-9所示。VOUTDAC0832RfbIOUT1IOUT2WR2WR1XFERILECS+5V10KD0D7数据总线图5-9 直通型接口电路项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术5.2.5 D/A5.2.5 D/A转换器的输出方式转换器的输出方式D/A转换器输出分为单极性和双极性两种输出形式。其转换器的输出方式只与模拟量输出端的连接方式有关,而与其位数无关。1 1单极性输出单极性输出图
17、5-10给出了DAC0832与89C51单片机的一种接口电路。在该图中,DAC0832的输出端连接成单极性输出电路。其输入端接成单缓冲型接口电路。它主要应用于只有一路模拟输出,或几路模拟量不需要同步输出的场合。这种接口方式,将二级寄存器的控制信号并接,输入数据在控制信号作用下,直接打入DAC寄存器中,并由D/A转换成输出电压。+5VVCCVSSWRP0.7P0.6P0.0D7D0Q7Q0A7A074LS373EC89C51EA ALEDGNDAGNDIO2D0D7D6XFERCSDAC0832IO1AOUTRfb+5VWR1WR2VCCILEVREFRfb图5-10 DAC0832单极性输出接
18、口电路项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术输入数字量模拟量输出MSBLSB11111111VREF(255/256)10000010VREF(130/256)10000000VREF(128/256)01111111VREF(127/256)00000000VREF(0/256)表5-2 单极性输出D/A关系在单极性输出方式下,当VREF接+5V(或5V)时,输出电压范围是05V(或0+5V)。若VREF接+10V(或10V)时,输出电压范围为010V(或0+10V)。其中数字量与模拟量的转换关系,如表5-2所示。项目五项目五
19、汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术2 2双极性输出双极性输出在一般情况下把D/A转换器输出端接成单极性输出方式。但在随动系统中(例如电机控制系统),由偏差产生的控制量不仅与其大小有关,而且与控制量的极性有关。这时,要求D/A转换器输出为双极性,此时,只需在图5-10的基础上增加一个运算放大器即可,其电路如图5-11所示。DAC0832VREFR=2R1R=2R3RfbIOUT1IOUT2VOUT1R=R2I1I2R4A2V=(128)/128VOUT2REF数字码A1图5-11 DAC0831双极性输出电路项目五项目五 汽车温度传感器的读取
20、与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术89C51P2.6WRP0.7P0.0CSWR1D7D0+5VILEVCCAGNDDAC0832+5V15K15K7.5KVOUTVREFRfbI01I02XFERWR2DGND图5-12 电压波形发生器硬件电路项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术MSW:MOVDPTR,#0BFFH;指向D/A输入寄存器DA0:MOVR7,#80H;置输出初值DA1:MOVA,R7;数字量送A MOVXDPTR,A;送D/A转换 DJNZR7,DA1;修改数字量 AJMPDA0
21、;重复下一个波形(1 1)反向锯齿波程序清单)反向锯齿波程序清单其输出电压波形如图5-13(a)所示。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术PSW:MOVDPTR,#0BFFFH;指向D/A输入寄存器DAP0:MOVR7,#80H;置输出初值DAP1:MOVA,R7;数字量送A MOVXDPTR,A;送D/A转换 INCR7;修改数字量 CJNER7,#255,DAP1;数字量255,转DAP1 AJMPDAP0;重复下一个波形(2 2)正向锯齿波程序清单)正向锯齿波程序清单其输出电压波形如图5-13(b)所示。项目五项目五 汽车
22、温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术DSW:MOVDPTR,#0BFFFH MOVR7,#0DAD0:MOVA,R7 MOVX DPTR,A INCR7 AJMPDAD0(3 3)双向锯齿波程序清单)双向锯齿波程序清单其输出波形如图5-13(c)所示。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术SSW:MOVDPTR,#0BFFFHDAS0:MOVR7,#80HDAS1:MOVA,R7 MOVXDPTR,A INCR7 CJNER7,#255,DAS1DAS2:DECR7 MOVA,R7
23、MOVXDPTR,A CJNER7,#80H,DAS2 AJMPDAS0(4 4)三角波程序清单)三角波程序清单其输出波形为正向三角波如图5-13(d)所示。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术SIN:MOVR7,#00H;置偏移量DAD0:MOVA,R7 MOVDPTR,#TABH;设指针 MOVCA,A+DPTR;取数据 MOVDPTR,#0BFFFH;MOVXDPTR,A;送D/A转换 INCR7;修改偏移量 DJMPDAD0;TAB:DB80H,83H,86H,89H,8DH,90H,93H,96H DB99H,9CH,
24、9FH,A2H,A5H,A8H,ABH,AEH DB69H,6CH,6FH,72H,76H,79H,7CH,80H(5 5)正弦波电压输出)正弦波电压输出正弦波电压输出为双极性电压,最简单的办法是将一个周期内电压变化的幅值(5V+5V)按8位D/A分辨率分为256个数值列成表格,然后依次将这些数字量送入D/A转换输出。只要循环不断地送数,在输出端就能获得正弦波输出,如图5-13(e)所示。正弦波程序清单:项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用
25、技术应用技术MOVDPTR,#0DFFFH;选通UI输入寄存器MOVA,#Datal;数字量送AMOVXDPTR,A;数字量锁入U1输入寄存器MOVDPTR,#0BFFFH;选通U2输入寄存器MOVA,#Data2;数字量送AMOVXDPTR,A;数字量锁入U2输入寄存器MOVDPTR,#7FFFH;选通U1U2DAC寄存器MOVXDPTR,A;同步转换89C51执行下列程序,即可完成双路D/A同步控制。项目五项目五 汽车温度传感器的读取与显示汽车温度传感器的读取与显示汽车汽车单片机单片机应用技术应用技术在图5-14中若将U1U2的第二级缓冲器锁存信号分开控制,并修改相应的程序,就可以进行异步输出的控制。CSWR1XFERWR2D0D7VCCVSS+5V+5VVCCILEVREFRfbIOUT1IOUT2AGNDDGND89C51P2.6P0.0P0.7P2.7P2.5WR15K15K7.5KVOUTA3A4U2CSWR1XFERWR2D7+5VVCCILEVREFRfbIOUT1IOUT2AGNDDGND15K15K7.5KVOUTA1A2U11515151515151515图5-14 双路DAC0832与89C51接口电路