16路输入6路输出继电器可编程工控板产品使用说明Word文档下载推荐.docx
《16路输入6路输出继电器可编程工控板产品使用说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《16路输入6路输出继电器可编程工控板产品使用说明Word文档下载推荐.docx(56页珍藏版)》请在冰豆网上搜索。
10、电流加有,光电隔离,续流二极管,压敏电阻,抗干扰能力强。
11、四周有固定安装孔,也可插入PCB107mm卡槽,安装在DIN导轨上。
12、通讯稳定,提供原理图,及板子的参考例程。
13、单片机无加密,可插拔更换,带有程序下载口,可随意更改程序
14、、端子采用螺旋压接端子
15、工作温度-40度至+70度
16、工作湿度40%~80%RH
使用说明:
【标示图】
【供电接线图】
【通讯及下载接线图】
【模拟量输入接线图】
【光电隔离输入接线图】
特别声明:
IN3至IN14低电平有效,输入信号电压支持0~36V。
【高速光耦输入接线图】
【外接315M无线遥控模块】
(默认发货不提供接收模块和遥控器需要另外联系销售购买)通过编程实现控制。
提供相关例程。
【输出部分标注说明】
【原理图】
(提供PDF文件)
【PCB图】
【原件清单】
【测试程序】
(提供源代码及各个模块功能的代码)
01.一对一点动输出程序
/********************************************************************
汇诚科技
使用芯片:
STC12C5A60S2
晶振:
11.0592MHZ
编译环境:
Keil
作者:
zhangxinchunleo
*********************************************************************/
程序说明:
//模拟量输入(这里用作普通IO口,高电平触发)
当IN1口与+5V口接通后,对应的继电器吸合,OUT1接通
//第一组普通开光量输入(可做脉冲输入,最大1Khz的脉冲)
当IN2口与GND口接通后,对应的继电器吸合,OUT2接通
当IN3口与GND口接通后,对应的继电器吸合,OUT3接通
当IN4口与GND口接通后,对应的继电器吸合,OUT4接通
当IN5口与GND口接通后,对应的继电器吸合,OUT5接通
当IN6口与GND口接通后,对应的继电器吸合,OUT6接通
当IN7口与GND口接通后,对应的继电器吸合,OUT7接通
//第二组普通开光量输入(可做脉冲输入,最大1Khz的脉冲)
当IN8口与GND口接通后,对应的继电器吸合,OUT8接通
当IN9口与GND口接通后,对应的继电器吸合,OUT9接通
当IN10口与GND口接通后,对应的继电器吸合,OUT10接通
当IN11口与GND口接通后,对应的继电器吸合,OUT11接通
当IN12口与GND口接通后,对应的继电器吸合,OUT12接通
当IN13口与GND口接通后,对应的继电器吸合,OUT1接通
//高速脉冲输入(最大100KHz)(也可作普通IO口用)
当IN14口与GND口接通后,对应的继电器吸合,OUT2接通
当IN15口与GND口接通后,对应的继电器吸合,OUT3接通
**********************************************************************
*/
#include"
STC12C5A60S2.H"
初始定义
/*定义十四个输入*/
//模拟量接口,做普通IO口时,高定平有效(这里用做普通IO口)
sbitIN1=P1^0;
//开光量输入低电平有效
sbitIN2=P1^1;
sbitIN3=P1^4;
sbitIN4=P1^5;
sbitIN5=P1^6;
sbitIN6=P1^7;
sbitIN7=P3^4;
sbitIN8=P3^5;
sbitIN9=P3^6;
sbitIN10=P3^7;
sbitIN11=P4^6;
sbitIN12=P4^5;
sbitIN13=P4^4;
//高速脉冲输入,触发信号高低可选
sbitIN14=P3^2;
sbitIN15=P3^3;
/*定义八位输出*/
sbitOUT1=P0^4;
sbitOUT2=P0^5;
sbitOUT3=P0^6;
sbitOUT4=P0^7;
sbitOUT5=P2^7;
sbitOUT6=P2^6;
sbitOUT7=P2^5;
sbitOUT8=P2^4;
sbitOUT9=P2^3;
sbitOUT10=P2^2;
sbitOUT11=P2^1;
sbitOUT12=P2^0;
voidmain()
{
P1M1|=0X01;
//00000001//因为此IO口直接引出,外加下拉电阻。
所以配置IO口的时候需要把它设定为“开漏模式”
P1M0|=0X01;
//00000001
P4M1|=0x70;
//01110000//P4口设置为“输入模式”
P4M0=0x00;
//00000000
P4SW|=0x40;
//01000000//P4^6设置成普通IO口
while
(1)
{
if(IN1==1)OUT1=0;
elseOUT1=1;
if(IN2==0)OUT2=0;
elseOUT2=1;
if(IN3==0)OUT3=0;
elseOUT3=1;
if(IN4==0)OUT4=0;
elseOUT4=1;
if(IN5==0)OUT5=0;
elseOUT5=1;
if(IN6==0)OUT6=0;
elseOUT6=1;
if(IN7==0)OUT7=0;
elseOUT7=1;
if(IN8==0)OUT8=0;
elseOUT8=1;
if(IN9==0)OUT9=0;
elseOUT9=1;
if(IN10==0)OUT10=0;
elseOUT10=1;
if(IN11==0)OUT11=0;
elseOUT11=1;
if(IN12==0)OUT12=0;
elseOUT12=1;
if(IN13==0)OUT1=0;
if(IN14==0)OUT2=0;
if(IN15==0)OUT3=0;
}
}
02.串口通讯程序
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
上位机通过串口一发送十六进制0xff继电器全开
发送十六进制0x00继电器全关
触发IN2,板子会向上位机发送0x01
/***********************************************************
数据定义
***********************************************************/
unsignedchardat=0xA1;
函数定义
//延时函数
voiddelay(unsignedchart)
unsignedchari,j;
for(i=0;
i<
t;
i++)
for(j=0;
j<
250;
j++);
//初始化定义函数
voidinit()
//IO口配置
//串口一配置
TMOD=0x20;
//定时器一产生波特率
SCON=0x50;
//方式一,八位数据位,一位停止位
TH1=0XFD;
//波特率9600
TL1=0xFD;
TR1=1;
ES=1;
EA=1;
init();
if(dat==0xFF)
dat=0xA1;
OUT1=0;
OUT2=0;
OUT3=0;
OUT4=0;
OUT5=0;
OUT6=0;
OUT7=0;
OUT8=0;
OUT9=0;
OUT10=0;
OUT11=0;
OUT12=0;
}
if(dat==0x00)
OUT1=1;
OUT2=1;
OUT3=1;
OUT4=1;
OUT5=1;
OUT6=1;
OUT7=1;
OUT8=1;
OUT9=1;
OUT10=1;
OUT11=1;
OUT12=1;
if(IN2==0x00)
delay(10);
if(IN2==0X00)
SBUF=0X01;
while(!
IN2);
/*--------------------------------------
串口一接收中断函数
--------------------------------------*/
voiduart_isr()interrupt4using2
if(RI)
RI=0;
dat=SBUF;
if(TI)
TI=0;
03.485通讯程序
上位机通过485发送十六进制0xff继电器全开
//485配置
S2CON=0x50;
//方式1,八位数据,可变波特率
AUXR1=0x00;
//1T工作方式
BRT=256-(11059200/12/32)/9600;
//BRT=0XFD;
//设置波特率9600
AUXR=0x10;
//启动波特率发生器
IE2=0x01;
//开串口2中断
S2BUF=0X01;
/************485发送接收中断函数******/
voiduart2_isr()interrupt8
if(S2CON&
0x01)
S2CON&
=~0x01;
dat=S2BUF;
0x02)
S2CON&
=0xfd;
04.掉电存储程序
向内部eeprom中写数据,然后再读取出来,
如果正确继电器全部吸合,
如果不正确继电器全部断开
#include<
intrins.h>
//用nop函数延时的头文件
typedefunsignedcharuint8;
typedefunsignedintuint16;
#defineENABLE_ISP0x82//系统工作时钟<
20MHz时,对IAP_CONTR寄存器设置此值
sbit