WWcW_PLCJS_COM-PLC-技.术_网
sbit IC4_S = P1^4; /* AD输入端口设置*/P.L.C.技.术.网——可编程控制器技术门户
sbit IC4_D = P1^5;WWW_PL※CJS_COM-PLC-技.术_网
sbit IC4_C = P1^3;WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
void input(void )WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
{ unsigned char idata i;WWW_PLCJS@_COM%-PLC-技.术_网
unsigned int idata result=0x0000;WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
IC4_C = 0; /* CS端为低电平*/WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
for(i=0;i<12;i++)WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
{ result = result << 1;WWW.PLCJS.COM——可编程控制器技术门户
IC4_S = 0; /*时钟端产生时钟脉冲*/P.L.C.技.术.网——可编程控制器技术门户
IC4_S = 1;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
if( IC4_D ) result++; /*从串行数据输出端读入A/D转换数据*/WWW_P※LCJS_CO※M-PLC-技-.术_网
}——可——编——程——控-制-器-技——术——门——户
IC4_C = 1; /* CS端为高电平*/plcjs.技.术_网
pdat[1] = result;WWW_PLCJS@_COM%-PLC-技.术_网
}WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
MAX187的工作时序图见图2。WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
图2 MAX187的工作时序图WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLCJS_COM-PLC-技.术_网
(2) 模拟量输出模块扩展P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
这里以一路12位模拟量输出为例,设计中将采用12位D/A转换芯片MAX531来实现数摸转换。我们在MAX531的输出端接运算放大器,将模拟输出调节至0~5V,输出部分的硬件电路如图3所示。这里,MAX531是12位串行D/A,具有较高的转换速度, MAX531具有内部参考电压,既10#管脚(REFOUT)为2.048V,因此, D/A转换的全量程为2.048V。而输出信号一般要求是标准的0~5V,因此,要加一级运放把MAX531输出的0~2.048V信号转换成 0~5V信号。AT89C52的P1.0和MAX531的串行时钟信号端(SCLK)相连、AT89C52的P1.1和MAX531的串行数据输入端(DIN)相连、AT89C52的P1.2和MAX531的片选端(CS)相连。PLC把要输出的模拟量通过串行口传送给单片机,存入的内存中,再由单片机完成D/A转换进行输出。A/D转换的C51程序如下:WWcW_PLCJS_COM-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
图3 D/A转换及放大器原理图WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLCJS_COM-PLC-技.术_网
#include WWW_PLC※JS_COM-PmLC-技.术_网
#include WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
sbit IC2_S = P1^0; /*DA输出端口设置*/P.L.C.技.术.网——可编程控制器技术门户