MCS-51与 AD7543的应用

2023-07-18  

MCS-51与AD7543的应用

在微机控制的电气设备中,常常需要把数字信号变成模拟信号,以驱动电气设备的运行,在这个过程中,D/A转换是一个十分重要的环节,亦是微机控制系统重要的组成部分。一般的D/A转化芯片都是并行接口,如8位系列0830/0831/0832、10位系列7520/7530/7533和 12位系列1208/1209/1210等均为并行接口,14位、16位系列也全部为并行接口。只有AD7543是12位串行D/A转换芯片,它是美国模拟器件公司(Analog Devices)的产品,属于特殊用途D/A转换器,和并行接口芯片有很大不同,使用该芯片构成的系统具有接线简单、使用方便、控制灵活的特点,具有较好的应用前景和开发价值。


2. AD7543内部框图和特性
  AD7543为16引脚双列直插式封装,内部框图和引脚符号如图1所示。
  AD7543的逻辑电路由12位串行输入并行输出移位寄存器(A)和12位DAC输入寄存器(B)以及12位DAC单元组成。在选通输入信号的前沿或后沿(由用户选择)定时地把RSI引脚上的串行数据装入寄存器A,一旦寄存器A装满,在加载脉冲的控制下,寄存器A的数据便装入寄存器B。并进行D/A转换。
  AD7543的引脚功能见表1。出现在AD7543的SRI引脚上的串行数据在STB1、STB2和STB4的上升沿或STB3的下降沿作用下,定时的移到移位寄存器A中,寄存器A和B控制输入端所要求的各种信号的逻辑关系如表2所列。

  AD7543的主要特性如下:
  ● 分辨率为12位。
  ● 非线性为±1/2LSB。
  ● 接正或负选通进行串行加载。
  ●用非同步清除输入使其初始化。

  ●低功耗、最大为40mW。


3. AD7543和8031单片机的接口设计
  实现AD7543与单片机的连接有两种方法,其一是基于字节操作,利用串行通讯接口实现,其二是基于位操作,利用普通输入输出口线实现,两种实现方法对A/D转化芯片的转换速度、工作以及数据传输的波特率等技术指示的要求各不相同。以下具体说明这两种实现的方法。
3.1 AD7543与单片机串行通讯接口的连接
  图2是8031的串行口和AD7543相连的接口电路,8031的串行口选用方式0(移位寄存器方式),其TXD端移位脉冲的负跳变将RXD输出的位数据移入AD7543,利用P1.0产生加载脉冲,由于是低电平有效,从而将AD7543移位寄存器A中的内容输入到寄存器B中,并启动D/A,单片机复位端接AD7543的消除CLR端,以实现系统的同步。

  由于AD7543的12位数据是由高字节至低字节串行输入的,而8031单片机串行口工作于方式0时,其数据是由低字节至高字节串行输出的。因此,在数据输出之前必须重新装配,并改变发送顺序,以适应AD7543的时序要求。如表3所列,其中数据缓冲区DBH为高字节存储单元,DBL为数据低8位存储单元。
  改变数据发送顺序的程序如下:
OUTDA:MOV A,DBH ;取高位
   SWAP ;高4位和低4位交换
    MOV DBH,A
    MOV A,DBL ;取低位
    ANL A,#OFOH ;截取高4位
    SWAP ;高4位和低4位交换
    ORL A,DBH ;合成,(DBH)=D11 D10 D9 D8 D7 D6 D5 D4
    LCALL ASMBB ;顺序转换
    MOV DBH,A  ;存结果(DBH)=D4 D5 D6 D7 D8 D9 D10 D11
    MOV A,DBL   ;取低位
    ANL A,#OFH  ;截取低4位
    SWAP ;交换,(A)=D3 D2 D1 D0 0 0 0 0
    LCALL ASMBB  ;顺序转换
     MOV DBL,A  ;存结果(A)=0 0 0 0 D0 D1 D2 D3
     MOV A, DBH
     MOV SBUF,A ;发送高8位
     JNB TI $   ;等待发送完成
     CLR TI    ;发送完毕,清标志
     MOV A,DBL
       MOV SBUF,A ;发送低4位
     JNB TI $    ;等待
     CLR TI     ;发送完毕
     CLR P1.0    ;A寄存器加载到B寄存器
     NOP
     SETB P1.0    ;恢复
     REF
     ……
ASMBB: MOV R6,#00H
     MOV R7,#08H
     CLR C
ALO:   RLC A
     XCH A,R6
     RRC A
     XCH A,R6
     DJNZ R7,AL0
     XCH A,R6
     RET
  以上这种方式的单片机串行通讯口与AD7543的接口电路,其波特率固定为CPU时钟频率的1/12,如果CPU的频率为6MHz,那么波特率为50kbps,位周期为20μs,显然,这种连接方法只能用于高速系统。
3.2 AD7543与单片机普通输入输出口线的连接
  AD7543可以用8031的P1口实现数据传送。这种方法的波特率可调,传输速度由程序控制。电路与图2相同,仅把8031的数据输出端由RXD引脚改为P1.1,将移位脉冲输出端由TXD改为P1.2口线,P1.0仍为加载脉冲输出。其程序如下:
FS:   MOV R7,#04H
    MOV A,DBH;数据高4位
    SWAP
LOOP1: RLC A
    MOV P1.0 ;输出
    LCALL PULSE ;移位脉冲输出
    DJNZ R7,LOOP1 ;4位未完继续
    MOV R7,#08H
    MOV A,DBLH ;数据低8位
LOOP2: RLC A
    MOV P1.0 C ;输出
    LCALL PULSE ;移位脉冲输出
    DJNZ R7,LOOP2 ;8位未完继续
    CLR P1.1 ;输出加载脉冲
    NOP
    SETB P1.1
    RET ;传送完毕
PULSE: SETB P1.1 ;输出高电平
    MOV R3,#4
PULS1: DJNZ R3,PULS1
    CLR P1.1;输出低电平
    MOV R3,#4
PULS2:DJNZ R3,PULS2
    RET
  其中FS为AD7543驱动程序,子程序PULSE为移位脉冲形成程序,改变R3的数值可以改变移位脉冲的频率。从而改变串行通讯波特率。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。