您当前的位置:五五电子网电子知识单元电路变换电路串行I/O、A/D转换器与单片机接口及程序设计 正文
串行I/O、A/D转换器与单片机接口及程序设计

串行I/O、A/D转换器与单片机接口及程序设计

点击数:7448 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   变换电路

  ADC0831、ADC0832、ADC0834、ADC0838是具有多路转换开关的8位串行I/O A/D转换器,转换速度较高(转换时间32 μs),单电源供电,功耗低(15 mW),适宜袖珍式智能仪器选用。现以ADC0832为例,介绍它与51单片机的接口。
  
  ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路输入的模拟信号实施A/D转换,可在两个单端输入方式和差分方式下工作。它的一个重要特性是采用串行通信方式,实施通道选择、数据采集及串行数据链的传送。其工作时序如图1所示。由图可见,ADC0832需要外接时钟源、片选信号、数据采集启动信号、模拟通道选择信号和A/D转换后的数据输出信号。利用它的数据采集启动信号、模拟通道选择信号和A/D转换后的数据输出信号在时间上是分时的特点,可使这几个信号共用一条线,从而设计出一种如图2所示的ADC0832与8051单片机的硬件接口电路,十分简单。
  
  图2中所示的接口电路具有如下特点。

串行I/O、A/D转换器与单片机接口

  ①ADC0832与8051之间仅需3条连线:一条片选线、一条时钟线、一条数据兼控制线和地址线。
  
  ②在此接口电路中,8051的P3.5是发出片选信号的片选线的输出端,TxD和RxD是8051的串行口。若选择8051的串行口在方式O工作,则TxD是时钟信号输出端,而RxD可灵活地被分别设定为ADC0832的数据采集启动信号、模拟通道选择信号的发送端以及A/D转换后的数据输出信号的接收端。
  
  ③由于ADC0832的时钟频率要求低于400 kHz,因此8051的石英晶体谐振器选用4 MHz。串行口在方式O工作时,在TxD端的输出时钟频率为4 MHz/12≈333 kHz,符合要求。
  
  ④数据采集时,单片机通过本接口电路是不能简单地由ADC0832直接读取相应输入模拟量的8位数字量的。

  通过分析图1的数据输出时序可看出,ADC0832输出的一列串行数据,其中有效数据共15位,由两段8位数据构成,前一段是最高位在先,后一段是最高位在后,两段数据的最低位共用。而且还可看出,只有在时钟信号的下跳瞬间,ADC0832的输出数据链才下移一位。而时钟信号是由8051的TxD端输出的,只有当单片机允许接收和发送时,时钟信号才由8051的TxD端输出。因此,根据以上数据结构和通信特点,可以由单片机控制时钟信号的发送,达到控制ADC0832输出数据位的目的。为了得到一列完整的8位数据,对ADC0832的一列输出数据,8051分两次采集含有不相同位的几位数据,再合成一列完整的8位数据,从而实现了51单片机通过ADC0832对输入模拟信号的数据采集。
  
  例如,为了要对输入到ADC0832 CH.通道的模拟信号数据采集,在片选CS=O后,把51单片机的串行口设定为方式0工作,发送数据# 07H;同时在ADC0832的CLK端得到8个时钟脉冲,从而完成了A/D转换的启动和CHi的选择;同时ADC0832的Do口向单片机输送MSB第一数据的高4位,由于此时REN=O,不允许接收,丢失了D7~D,4位数据。当REN-1后,单片机发出的8个时钟脉冲使ADC0832连续送出LSB第一数据的低4位D3~Do和MSB第一数据的Do~D4位。在单片机的累加器中形成的数据结构为:合成了一列完整的8位数据,达到了预定的数据采集目的。对CH1通道模拟输入信号数据采集的实用子程序如下:

对CH1通道模拟输入信号数据采集的实用子程序
  
  CLR P3.5    MOV B,A

对CH1通道模拟输入信号数据采集的实用子程序




本文关键字:单片机  程序设计  转换器  接口  变换电路单元电路 - 变换电路