《AT89S51单片机原理及应用技术王全电子课件第8章节》由会员分享,可在线阅读,更多相关《AT89S51单片机原理及应用技术王全电子课件第8章节(78页珍藏版)》请在金锄头文库上搜索。
1、第8章 AT89S51单片机的专用外围电路的扩展,内容提要:本章介绍了部分专业最常用的、最实用的AT89S51单片机的专用外围电路的扩展,包括DAC、ADC、V/F转换器、开关型功率接口、时钟日历芯片、数字温度传感器、电机控制驱动接口、I2C总线等,所介绍的各种应用电路和程序都经过实际调试,可以直接使用。 8.1 DAC的扩展 8.2 ADC的扩展 8.3 V/F转换器的扩展 8.4 开关型功率接口的扩展 8.5 时钟日历芯片接口的扩展 8.6 数字温度传感器接口的扩展 8.7 电机控制驱动接口的扩展 8.8 I2C总线的应用扩展 思考与练习题8,8.1 DAC的扩展,8.1.1 DAC芯片简
2、介 1、封装及内部结构,8.1 DAC的扩展,2、引脚 DI0DI7:为8位数字信号输入端,与CPU数据总线相连,用于输入CPU送来的待转换数字量,DI7为最高。 /CS:片选端,当CS为低电平,本芯片被选中。 ILE:数据锁存允许控制端,高电平有效。 WR1:第一级输入寄存器写选通控制,低电平有效,当CS=0、ILE=1、WR1=0时,数据信号被锁存到第一级8位输入寄存器中。 /XFER:数据传输控制,低电平有效。 WR2:DAC寄存器写选通控制端,低电平有效,当/XFER=0,、WR1=0时,输入寄存器状态传入8位DAC寄存器中。 Iout1:D/A转换器电流输出1端,输入数字量全“1”时
3、,Iout1最大,输入数字量全为“0”时,Iout1最小。 Iout2:电流输出2端,Iout2 + Iout1 = 常数。 Rfb:外部反馈信号输入端,内部已有反馈电阻,根据需要也可外接反馈电阻。 Vcc:电源输入端,可在+15V -15V范围内。 Vref:参考电压(也称基准电压)输入端,电压范围(-10 V 10V)之间。 DGND:数字信号接地端。 AGND:模拟信号接地端,最好与参考电压共地。,8.1 DAC的扩展,3、输出形式 1)单极性输出,Vref为参考电压,系统设计 好后该值是个常数 B为数字量对应的十进制值,8.1 DAC的扩展,2)双极性输出,B为8位数字量对应的十进制值
4、,范围为0255 Vref为参考电压,8.1 DAC的扩展,3DAC0832用作程控放大器 DAC0832还可以用作程控放大器,其电压放大倍数可由CPU通过程序设定。图8-5所示为用作电压放大器的DAC0832接线电路。,8.1 DAC的扩展,8.1.2 DAC0832扩展电路 单缓冲方式的接口电路如图8-6所示。,8.1 DAC的扩展,8.1 DAC的扩展,#include “reg51.h” #include “intrins.h” /使用的“_nop_()”在这个头文件中 #define DATAPORT_0832 P0 sbit nCS_0832 =P35; sbit nWR1_083
5、2 =P24; void main(void) unsigned char aData=0x55; /要输出的数据 ,8.1 DAC的扩展,nCS_0832=0; /使能DAC0832的片选 DATAPORT_0832=aData; /将数据写到DAC0832的数据口 nWR1_0832=0; /向DAC0832发出写命令 _nop_(); _nop_(); _nop_(); nWR1_0832=1; /撤消写命令 _nop_(); _nop_(); nCS_0832=1; /撤消片选信号 ,8.1 DAC的扩展,AT89S51和DAC0832在双缓冲方式下的连接关系如图8-8所示。,8.1
6、DAC的扩展,程序流程如图8-9所示。 图8-9 OutTo0832()函数的程序流程,8.1 DAC的扩展,假设图8-8中1#DAC0832的芯片地址为0x64,2#DAC0832的芯片地址为0x65,使XFER引脚有效的地址为0x66。双缓冲电路的样例程序如下: #include “reg51.h“ #include “absacc.h“ /使用的“XBTYE”在这个头文件中 Void OutTo0832(unsigned int aData) unsigned char Temp; Temp=aData; /取aData的低8位 XBYTE0x64=Temp; /低8位送到1#DAC08
7、32的8位输入寄存器 Temp=(aData8); /取aData的高8位 XBYTE0x65=Temp; /高8位送到2#DAC0832的8位输入寄存器 XBYTE0x65=0x00; /将两片DAC0832的8位输入寄存器中的数据 /同时送入各自的8位DAC寄存器 ,8.1 DAC的扩展,void main(void) OutTo0832(0x55aa); while(1); ,8.2 ADC的扩展,8.2.1 ADC芯片简介 1、引脚,/CS:芯片片选信号,低电平有效,即CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的
8、ADC0804芯片,从而可以实现多个ADC通道的分时复用。 /WR:启动ADC0804进行ADC采样,该信号低电平有效,即WR信号由高电平变成低电平时,触发一次ADC转换。 /RD:低电平有效,即RD=0时,可以通过数据端口DB0DB7读出本次的采样结果。,8.2 ADC的扩展,UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。 VREF/2:参考电压接入引脚
9、,该引脚可外接电压也可悬空,若外接电压,则ADC0804的参考电压为该外接电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。 CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK为1.1RC的倒数,一般要求频率范围100KHz1.28MHz。 AGND和DGND:分别接模拟地和数字地。 INTR:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当INT信号有效时,还需等待RD=0才能正确读出A/D
10、转换结果,若ADC0804单独使用,则可以将INT引脚悬空。 DB0DB7:输出A/D转换后的8位二进制结果。,8.2 ADC的扩展,2、ADC0804启动时序,8.2 ADC的扩展,3、ADC0804读数据时序,8.2 ADC的扩展,8.2.2 ADC的扩展应用,8.2 ADC的扩展,#include “reg51.h“ #include “intrins.h“ #define DATAPORT_0804 P1 sbit nCS_0804 =P34; sbit nRD_0804 =P37; sbit nWR_0804 =P36; sbit nINTR_0804 =P32; void Star
11、t0804(void) nWR_0804=1; nINTR_0804=1; nCS_0804=0; _nop_(); _nop_(); _nop_();,8.2 ADC的扩展,nWR_0804=0; _nop_(); nWR_0804=1; _nop_(); _nop_(); _nop_(); nCS_0804=1; unsigned char Read0804(void) unsigned char Temp=0; if(!nINTR_0804) /判断转换是否结束 nCS_0804=0;,8.2 ADC的扩展,_nop_(); _nop_(); _nop_(); nRD_0804=0; _
12、nop_(); Temp=DATAPORT_0804; /读取转换结果 _nop_(); _nop_(); _nop_(); nRD_0804=1; _nop_(); _nop_(); _nop_(); nCS_0804=1; return(Temp); ,8.2 ADC的扩展,void main(void) unsigned char Data_0804; Start0804(); while(1) Data_0804=Read0804(); ,8.3 V/f转换器的扩展,V/f转换器是把电压信号转变为频率信号的器件。通过对V/f转换器输出的频率信号进行计数就可以实现A-D转换,因此, V/
13、f转换器通常用于一些非快速转换而需要进行远距离信号传输的A-D转换。 8.3.1 V/f转换器芯片简介 LMX31系列包括LM131/LM231/LM331,是通用型的V/f转换器。适用于A-D转换器、高精度V/f转换器、长时间积分器、线性频率调制或解调器等电路。 1主要特性 1)频率范围:1100kHz。 2)低的非线性:正负0.01%。 3)单电源或双电源供电。 4)单电源供电电压为+5V时,可保证转换精度。 5)温度特性:最大正负50ppm/。 6)低功耗:Vs = 5V时为15mW。,8.3 V/f转换器的扩展,LMX31的两种封装形式,如图8-15所示。,8.3 V/f转换器的扩展,
14、2LMX31系列的V/f转换电路 LMX31系列的V/f转换电路如图8-16所示。,8.3 V/f转换器的扩展,3LMX31系列的高精度V/F电路,8.3 V/f转换器的扩展,8.3 V/f转换器的扩展,8.3.2 V/f转换器的扩展电路 1)V/F转换器可以直接与AT89S51单片机接口。这种接口方式比较简单,把频率信号接入单片机的定时器/计数器输入端即可,如图8-19所示。 2)在一些电源干扰大,模拟电路部分容易对单片机产生电气干扰等恶劣环境中,可采用光电隔离的方法使V/F转换器与单片机无电信号联系,如图8-20所示。,8.3 V/f转换器的扩展,3)当V/F转换器与单片机之间距离较远时需
15、要采用线路驱动以提高传输能力,一般可采用串行通信的驱动电路和接收器来实现。如图8-21所示,其中SN75174/75175是RS-422标准的四差分线路驱动/接收器。 4)采用无线传输时,需配发送、接收装置,如图8-22所示。,8.4 开关型功率接口的扩展,要想用单片机控制各种各样的高电压、大电流负载,如电动机、电磁铁、继电器、灯泡等,不能用单片机的I/O口线直接驱动,必须通过各种驱动电路和开关电路来驱动。 开关型功率接口中单片机输出的控制信号通常为开关量,与这一信号相适应的常用开关型驱动器件有光电耦合器、继电器、晶闸管、功率MOS管、集成功率电子开关和固态继电器等。,8.4 开关型功率接口的
16、扩展,1AT89S51与光耦合器的接口 光电耦合器以其输出电路的形式分为晶体管输出型和晶闸管输出型。晶体管输出型光电耦合器的受光器是光电晶体管。光电晶体管除了没有外引的基极外,与变通晶体管没有什么两样。取代基极电流的是以光作为晶体管的输入。光电耦合器的电路原理图如图8-23所示。,8.4 开关型功率接口的扩展,光电耦合器的工作原理是: 当光电耦合器的发光二极管导通时,光电晶体管受光的影响在cb间和ce间就会有电流流过,这两个电流基本上受光的照度控制,常用ce极间的电流作为输出电流,输出电流受Vce的电压影响很小。光电晶体管的集电极电流与发光二极管的电流之比称为光电耦合器的电流传输比。不同结构的光电耦合器电流传输比相差很大。,8.4 开关型功率接口的扩展,晶体管型光电耦合器应用