|
|
| | -文章搜索 - 最新文章 - | |
W78E58与MAX1247/MAX525接口及软件设计 |
| 发布时间:2006年5月11日 点击次数:429 |
| 来源:单片机与嵌入式系统应用 作者:华北航天工业学院 张盛福 王喜斌 廊坊食品工程学院 张 鹏 |
摘要:介绍应用MAX1247、MAX525与单片机构成的4入、4出A/D和D/A测控系统,并给出详细的编程软件、使用者可以将该软件直接嵌入自己的应用系统中。 关键词:A/D、D/A接口 单片机 接口软件 MAX1247是4通道模拟输入12位串行输出A/D转换器,MAX525是4通道模拟输出12位串行输入D/A转换器。这两种芯片特性有很多相似之处,可以和单睡机构成一个完整的4通道测控系统。由于是串入、串出,解决了单片机口线资源不足的缺点,适当的选择外围电路,能取代工控机组成的测控系统。 一、两种芯片的主要特性 (1)单电源供电,MAX1247电源从+2.7~+5.25V,MAX525为+5V。 (2)MAX1247为4通道单端或2通道差分模拟信号输入。MAX525为单通道二进制数据输入、4通道模拟信号输出。 (3)接口标准与SPI、QSPI或Microwire兼容,因此,两种芯片仅需7条口线(MAX1247为4条,MAX525为3条)即可完成4路模拟量输入、4路模拟量输出的数据采集和控制。 (4)均可由软件设定为低功耗模式。 (5)两种芯片的典型参考电压均为2.5V。 二、工作原理 1.引脚排列及功能 MAX525为D/A转换器,20引脚,SSOP封装如图1所示。 各引脚功能如下。 (1)AGND、DGND:模拟地和数字地。 (2)OUTA~OUTD:DAC的A~D通道模拟电压输出端。 (3)FBA~FBD:DAC的A~D通道模拟放大器负反馈端。 (4)REFAB、REFCD:AB和CD通道参考电压输入端,取值范围从0V到VDD-1.4V,典型值为2.5V。模拟输出电压为Vref×(NB/4096)×G(NB)为输入待转化的二进制数据,G为增益),因此,AB、CD端的参考电压不同,满度输出的电压范围也不同。 (5)SCLK:串行时钟输入端。 (6)DIN:串行二进制数据输入端。 (7)DOUT:串行二进制数据输出端。该数据为MAX525移位寄存器的数据,CPU可以读此数据,校正DAC转换结果。 (8)UPO:应用编程逻辑输出。 (9)PDL:电源关闭端。如果接低电平,写入控制命令字(1100XXXXXXXXXX)以后,参考电压输入和输出放大器全部为高阻状态,正常使用为高电平。 (10)CS:片选输入端(低电平有效)。CL:复位端,低电平时,清除所有DAC寄存器和输入寄存器,复位所有的输出放大器为低电平输出。 MAX1247为A/D转换器,16引脚,QSOP封装,如图2所示。 各引脚功能如下: (1)VDD:正电源电压端。 (2)CH0~CH3:采样模拟输入端。 (3)COM:模拟地。 (4)SHDN:三级关闭输入端。当其接地时,芯片处于低拉耗模式;当其接高电平时,内部缓冲放大器处于内部补偿模式;当其浮置时,内部缓冲放大器处于外部补偿模式。 (5)VREF:参考电压输入端。 (6)SCLK:串行时钟输入端。 (7)CS:芯片选择,低有效。 (8)DOUT:串行数据输出端。 (9)AGND:模拟地。 (10)DGND:数字地。 (11)REFADJ:参考缓冲放大器输入端。若接VDD,则内部缓冲放大器无效。 (12)DIN:串行二进制数输入端。 (13)SSTRB:转换结束信号。在内部时钟模式下,开始转换时,SSTRB变为低电平,转换结束后变高。在外部时钟模式下,当CS为高电平时,SSTRB为高阻;当CS为低电平时,在控制字节最后一位之后以及在转换成二进制数的最高有效之前,SSTRB为高电平。工作命令字及原理可参考《电测与仪表》杂志2000年第2期。 2.控制格式 每一路DAC是由1个输入寄存器和1个DAC寄存器组成双缓冲输入,串行数据控制格式是由16位组成,如表1所列。
表2 串口编程命令
表2给出各种工作时的命令格式工,供用户编程参考。 3.电路连接方式 MAX1247和MAX525与单片机V78E58连接方式如图3所示。W78E58为台湾华邦公司生产的8位单片机,内含32KB Flash/EEPROM,其引脚功能与8051系列单片机完成兼容。图3中4个三极管为恒流源变换,可将DAC输出的模拟信号变换成4~20mA的恒流,由P1~P4输出,24V外接电源。两种芯片的参考电压输入端一般为2.5V,须另外由电路提供。 注意:MAX525有两种参考电压输入端:REFCD、REFAB,其值可以不同。 三、软件 下面给出C语言编程的系统软件,见dacdaclel(MAX1247A/D转换子程序)和dacdac(MAX525DAC子程序)。 #include<absacc.h> /*绝对地址访问函数*/ #include<reg51f.h> #include<math.h> /*各种不同类型的数字函数*/ #define uchar unsigned char sbit P1_0=P1^0; /*定义P1~7为W78E58的P1口*/ sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; void dcadac(unsigned long dacdata 1,dacdata2) {uchar ee=0; unsigned long xdata dacdatatransfer=0; P1_6=0; Resetdog(); /*调用看门狗复位子程序*/ P1=P1&0xdf; /*片选CS置低电平*/ for(ee=0;ee<4;ee++){ P1_6=0; P1=P1&0xef; dacdatatransfer=dacdata1; dacdatatransfer=((dacdatatransfer>>(3-ee))&0x01)<<3; P1=P1ldacdatatransfer; P1_6=1; } P1_6=0; For(ee=0;ee<12;ee++){ P1_6=0; resetdog(); P1=P1&0xef; dacdatatransfer=dacdata2; dacdatatransfer=((dacdatatransfer>>(11-ee))&0x01)<<3; P1=P1ldacdatatransfer; P1_6=1; } P1_6=0; P1=P1l0x20; } 该子程序可完成两路DAC模拟电压输出,欲转换的12位二进制数据已经分别存放于变量dacdac1、dacdac2中。 /*流量A/D转换一次,其中P1-1为片选端,P1-0为时钟输入端,P1-2为数据输入,P1-3为数据输出*/ void adcadc() { P1_1=0; P1_0=0; adaddress=0x9e; /*送控制命令字:启动、选择1通道,单极性转化、单极性模拟输入方式*/ for(l=0;l<8;l++){ adaddresstransfer=adaddress; adaddresstransfer=(adaddresstransfer>>(7-1))&0x01; P1_3=adaddresstransfer; /*右移动1次,以后送到P1-2口*/ P1_0=0; /*此处为送时钟信号*/ for(kkl=0;kkl<2;kkl++); /*空操作*/ P1_0=1; for(kkl=0;kkl<2;kkl++); P1_0=0; /*时钟信号周期等于等于4条指令时间*/ } P1_1=0; for(l=0;l<6;l++); P1_1=0; lldatatransfer=0; P1_0=1; for(l=0;l<12;l++){ P1_0=0; P1_0=1; lldatatransfer=P1_2; /*读出串行12位数据*/ lldatatransfer=lldatatransfer<<(11-l); lldata[lldatacounter]=lldata[lldatacounter]lldatatransfer; } lldatatransfer=lldata[lldatacounter]; for(l=0;l<4;l++){ P1_0=0; P1_0=1; } P1_1=1; } /*该子程序完成4路A/D变换,结果存放在变量lldatatransfe中*/ 在石油系统,需要在线测量石油的含水、含气及流量、温度等。本文所述内容,已应用于新型DRH原油含水、含气分析仪二次智能仪表,达到设计指标要求。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
[另类其他] 相关文章: 一种三MCU系统的硬件实现简介:
摘要: 介绍以两片80C196KC为主处理MCU、一片89C51进行动态LED显示的三MCU系统。两80C196KC之间通过互访数据存储器进行数据交换,80C196KC与89C51的通讯使用串行口。 关键词: 单片机 多处理器 总线控制 存储器共享 ...... USB总线的体系结构
提高实时系统数据采集质量的研究
VFD专用驱动芯片M35500原理及应用
基于ISA总线的高速同步数据采集系统设计
MIC2778和MIC2545在USB双限流开关中的应用
CF卡在数字音频系统中的应用
AD7874--四通道十二位同步数据采集器结构及特点
I2C总线通信接口的CPLD实现
DSP芯片与触摸屏的接口控制 |
|
|
|