8入8出可编程场效应管设计资料.docx

上传人:b****6 文档编号:8470821 上传时间:2023-01-31 格式:DOCX 页数:51 大小:1.10MB
下载 相关 举报
8入8出可编程场效应管设计资料.docx_第1页
第1页 / 共51页
8入8出可编程场效应管设计资料.docx_第2页
第2页 / 共51页
8入8出可编程场效应管设计资料.docx_第3页
第3页 / 共51页
8入8出可编程场效应管设计资料.docx_第4页
第4页 / 共51页
8入8出可编程场效应管设计资料.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

8入8出可编程场效应管设计资料.docx

《8入8出可编程场效应管设计资料.docx》由会员分享,可在线阅读,更多相关《8入8出可编程场效应管设计资料.docx(51页珍藏版)》请在冰豆网上搜索。

8入8出可编程场效应管设计资料.docx

8入8出可编程场效应管设计资料

1八入八出场效应管工控开发板功能介绍

1.1八入八出场效应管工控开发板简介

●尺寸:

115mmX77mmX25MM

●供电:

板子供电直流6到40V

●八路数字量输入光耦(PC817)隔离

●八路场效应管输出带光耦(PC817)隔离

●拓展口八个io

●输入输出带指示

●晶振11.0592Mhz

●场效应管(IRF1205)输出可控制55V44A负载

功能:

八个输入可以接八个NPN型传感器,或者控制设备的限位开关、启动、停止开关等等,可以实现任意控制设备的编程(仿西门子s7-200开关管型),可以控制直流12V到55V,107w负载

1.2硬件连接标注说明

整版标注:

●485连接

注:

RS485建议采用双绞线连接,采用带屏蔽的双绞线连接,并将屏蔽层接地,总线上挂多个模块时,采用手拉手不的连接方式。

采集外部干接点开关量信号的接法

输出控制负载连接

1.3STC12C5A60S2系列1T单片机简介

STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。

⏹增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051

⏹工作电压:

STC12C5A60S2系列工作电压:

5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:

3.6V-2.2V(3V单片机)

⏹工作频率范围:

0-35MHz,相当于普通8051的0~420MHz

⏹用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......

⏹片上集成1280字节RAM

⏹通用I/O口(36/40/44个),复位后为:

准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:

准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA

⏹ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片

⏹有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9.看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)

⏹外部掉电检测电路:

在P4.6口有一个低压门槛比较器5V单片机为1.32V,误差为+/-5%,

3.3V单片机为1.30V,误差为+/-3%

⏹12.时钟源:

外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟

常温下内部R/C振荡器频率为:

5.0V单片机为:

11MHz~15.5MHz

3.3V单片机为:

8MHz~12MHz

精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准

⏹13.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器

做串行通讯的波特率发生器

再加上2路PCA模块可再实现2个16位定时器

⏹2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟

⏹外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)

⏹PWM(2路)/PCA(可编程计数器阵列,2路)---也可用来当2路D/A使用---也可用来再实现2个定时器---也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)

⏹A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口

⏹STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)

⏹工作温度范围:

-40-+85℃(工业级)/0-75℃(商业级)

⏹封装:

LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。

#include//库文件

#include

#defineucharunsignedchar//宏定义无符号字符型

#defineuintunsignedint//宏定义无符号整型

/********************************************************************

初始定义

*********************************************************************/

/********************************************************************

初始定义

*********************************************************************/

/*定义八位数字量输入为单片机P0口*/

sbitX00=P0^0;

sbitX01=P0^1;

sbitX02=P0^2;

sbitX03=P0^3;

sbitX04=P0^4;

sbitX05=P0^5;

sbitX06=P0^6;

sbitX07=P0^7;

/*定义八位数字量输出IO口*/

sbitY00=P2^6;

sbitY01=P2^7;

sbitY02=P5^0;

sbitY03=P5^1;

sbitY04=P4^1;

sbitY05=P4^6;

sbitY06=P4^5;

sbitY07=P4^4;

/********************************************************************

数据表格

*********************************************************************/

codeucharKM[]={

0xFF,0xE1,0xFF,0xFF,0xFF,0xFF,0xFC,0xC5,0x92,0xFF,0xB7,0xB8,0xC9,0x80,0x7F,0xFF,

0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFC,0x4F,0xEF,0x3F,0xC8,0x1A,0x20,0xC0,0x00,0x00,

0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0x75,0x86,0xF6,0xC0,0x00,0x00,

0xFF,0x03,0xEF,0x9F,0xFB,0xFF,0xF8,0x7F,0xFF,0xFF,0xFB,0xDF,0xFE,0xC0,0x7F,0xFF,

0x00,0x07,0xDE,0x7F,0xC7,0xFF,0xF0,0x7E,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,

0x00,0x07,0x1C,0xF7,0x9F,0xDF,0xF0,0x7E,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,

0xFC,0x07,0x00,0x8C,0x1F,0xBF,0xE7,0x3C,0x3F,0xFF,0xFF,0xFF,0xFF,0xC0,0x7F,0xFF,

0x00,0x07,0x00,0x08,0x1C,0x3F,0x88,0x3C,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,

0x00,0x06,0x0C,0x08,0x98,0x7F,0x80,0x0D,0x9F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,

0xFC,0x06,0x1C,0xE3,0x99,0xFF,0x00,0x0C,0x0F,0xFF,0xFF,0xFF,0xFF,0xC0,0x5F,0xFF,

};//数据表格

/********************************************************************

延时函数

*********************************************************************/

voiddelay(uchart)//当t等于50时,大概延时0.5秒;当t等于10时,大概延时0.1秒;

{

ucharm,n,s;

for(m=t;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

/********************************************************************

输出处理函数

*********************************************************************/

voidopen_X3(ucharturm)

{

chari;

for(i=7;i>=0;i--)

{

urm=_crol_(turm,1);

switch(i)

{

case0:

Y00=turm&0x01;break;

case1:

Y01=turm&0x01;break;

case2:

Y02=turm&0x01;break;

case3:

Y03=turm&0x01;break;

case4:

Y04=turm&0x01;break;

case5:

Y05=turm&0x01;break;

case6:

Y06=turm&0x01;break;

case7:

Y07=turm&0x01;break;

default:

break;

}

}

}

/********************************************************************

配置P4口

*********************************************************************/

voidP4_init(void)

{

P4SW=0x70;//配置P4口

P4M0&=0x80;

P4M1&=0x80;

}

/********************************************************************

主函数

*********************************************************************/

voidmain()

{

uchara,b;

P4_init();

for(a=0;a<3;a++)//循环3次

{

for(b=0;b<160;b++)//继电器输出数据表里的状态

{

open_X3(KM[b]);//取表格里的数据送P2口

delay(50);//延时约0.5秒

}

}

}

/********************************************************************

结束

*********************************************************************/

3.5、八路输出流水灯实例

/********************************************************************

程序说明:

开关管Y00导通约0.2秒后,断开,同时Y01吸合,然后延时约0.2秒,

继电器Y01断开,同时Y02吸合,依次八个开关管轮换导通与断开!

*********************************************************************/

#include//库文件

#include

#defineucharunsignedchar//宏定义无符号字符型

#defineuintunsignedint//宏定义无符号整型

/********************************************************************

初始定义

*********************************************************************/

/*定义八位数字量输入为单片机P0口*/

sbitX00=P0^0;

sbitX01=P0^1;

sbitX02=P0^2;

sbitX03=P0^3;

sbitX04=P0^4;

sbitX05=P0^5;

sbitX06=P0^6;

sbitX07=P0^7;

/*定义八位数字量输出IO口*/

sbitY00=P4^4;

sbitY01=P4^5;

sbitY02=P4^1;

sbitY03=P4^6;

sbitY04=P5^0;

sbitY05=P5^1;

sbitY06=P2^7;

sbitY07=P2^6;

/********************************************************************

延时函数

*********************************************************************/

voiddelay(uchart)

{

ucharm,n,s;

for(m=t;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

/********************************************************************

配置P4口

*********************************************************************/

voidP4_init(void)

{

P4SW=0x70;//配置P4口

P4M0&=0x80;

P4M1&=0x80;

}

/********************************************************************

主函数

*********************************************************************/

voidmain()

{

P4_init();

while

(1)

{

Y00=0;//开关管Y00导通

delay(200);//调用延时函数

Y00=1;//开关管Y00断开

Y01=0;//开关管Y01导通

delay(200);//调用延时函数

Y01=1;//开关管Y01断开

Y02=0;//开关管Y02导通

delay(200);//调用延时函数

Y02=1;//开关管Y02断开

Y03=0;//开关管Y03导通

delay(200);//调用延时函数

Y03=1;//开关管Y03断开

Y04=0;//开关管Y04导通

delay(200);//调用延时函数

Y04=1;//开关管Y04断开

Y05=0;//开关管Y05导通

delay(200);//调用延时函数

Y05=1;//开关管Y05断开

Y06=0;//开关管Y06导通

delay(200);//调用延时函数

Y06=1;//开关管Y06断开

Y07=0;//开关管Y07导通

delay(200);//调用延时函数

Y07=1;//开关管Y07断开

}

}

/********************************************************************

结束

*********************************************************************/

3.4一对一输入输出点动控制程序

*********************************************************************/

#include//库文件

#include

#defineucharunsignedchar//宏定义无符号字符型

#defineuintunsignedint//宏定义无符号整型

/********************************************************************

初始定义

*********************************************************************/

/*定义八位数字量输入为单片机P0口*/

sbitX00=P0^0;

sbitX01=P0^1;

sbitX02=P0^2;

sbitX03=P0^3;

sbitX04=P0^4;

sbitX05=P0^5;

sbitX06=P0^6;

sbitX07=P0^7;

/*定义八位数字量输出IO口*/

sbitY00=P4^4;

sbitY01=P4^5;

sbitY02=P4^1;

sbitY03=P4^6;

sbitY04=P5^0;

sbitY05=P5^1;

sbitY06=P2^7;

sbitY07=P2^6;

/********************************************************************

延时函数

*********************************************************************/

voiddelay(uchart)

{

uchari,j;

for(i=0;i

{

for(j=13;j>0;j--);

{;}

}

}

/********************************************************************

配置P4口

*********************************************************************/

voidP4_init(void)

{

P4SW=0x70;//配置P4口

P4M0&=0x80;

P4M1&=0x80;

}

/********************************************************************

主函数

*********************************************************************/

voidmain()

{

P4_init();

while

(1)

{

if(X00==0)

{delay(100);Y00=0;while(!

X00);Y00=1;}//Y00和被控电源地接通

if(X01==0)

{delay(100);Y01=0;while(!

X01);Y01=1;}//Y01和被控电源地接通

if(X02==0)

{delay(100);Y02=0;while(!

X02);Y02=1;}//Y02和被控电源地接通

if(X03==0)

{delay(100);Y03=0;while(!

X03);Y03=1;}//Y03和被控电源地接通

if(X04==0)

{delay(100);Y04=0;while(!

X04);Y04=1;}//Y04和被控电源地接通

if(X05==0)

{delay(100);Y05=0;while(!

X05);Y05=1;}//Y05和被控电源地接通

if(X06==0)

{delay(100);Y06=0;while(!

X06);Y06=1;}//Y06和被控电源地接通

if(X07==0)

{delay(100);Y07=0;while(!

X07);Y07=1;}//Y07和被控电源地接通

}

}

/********************************************************************

结束

*********************************************************************/

3.5一对一输入输出自锁控制实例

/********************************************************

程序说明:

当X00口与COM口接通后,对应的场效应Y00导通(即:

输出控制电源);

当X01口与COM口接通后,对应的场效应Y01导通(即:

输出控制电源);

当X02口与COM口接通后,对应的场效应Y02导通(即:

输出控制电源);

当X03口与COM口接通后,对应的场效应Y03导通(即:

输出控制电源);

当X04口与COM口接通后,对应的场效应Y04导通(即:

输出控制电源);

当X05口与COM口接通后,对应的场效应Y05导通(即:

输出控制电源);

当X06口与COM口接通后,对应的场效应Y06导通(即:

输出控制电源);

当X07口与COM口接通后,对应的场效应Y07导通(即:

输出控制电源);

************************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1