8入8出可编程场效应管设计资料.docx_第1页
8入8出可编程场效应管设计资料.docx_第2页
8入8出可编程场效应管设计资料.docx_第3页
8入8出可编程场效应管设计资料.docx_第4页
8入8出可编程场效应管设计资料.docx_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1 八入八出场效应管工控开发板功能介绍21.1八入八出场效应管工控开发板简介21.2硬件连接标注说明21.3 STC12C5A60S2系列1T单片机简介31.4 N沟道Irf1205场效应管简介52 开发板编程入门教学72.1 Keil uVision4简介72.2 用keil软件建一个简单工程72.3 下载程序方法143 开发板应用实例193.1控制某一路延时通断实例193.2随机输出控制使用实例203.5、八路输出流水灯实例233.4一对一输入输出点动控制程序253.5一对一输入输出自锁控制实例273.6一对一输入输出互锁控制实例293.7上位机串口控制测试313.8上位机485接口控制测试353.9上位机232或485接口控制测试403.10加密设定开机次数记忆453.11掉电记忆测试程序493.12 PWM控制直流电机53附录:原理图531 八入八出场效应管工控开发板功能介绍1.1八入八出场效应管工控开发板简介l 尺寸:115mmX77mmX25MMl 供电:板子供电直流6到40Vl 八路数字量输入光耦(PC817)隔离l 八路场效应管输出带光耦(PC817)隔离l 拓展口八个iol 输入输出带指示l 晶振11.0592Mhzl 场效应管(IRF1205)输出可控制55V44A负载功能:八个输入可以接八个NPN型传感器,或者控制设备的限位开关、启动、停止开关等等,可以实现任意控制设备的编程(仿西门子s7-200开关管型),可以控制直流12V到55V,107w负载1.2硬件连接标注说明l 整版标注:l 485连接注:RS485建议采用双绞线连接,采用带屏蔽的双绞线连接,并将屏蔽层接地,总线上挂多个模块时,采用手拉手不的连接方式。l 采集外部干接点开关量信号的接法l 输出控制负载连接1.3 STC12C5A60S2系列1T单片机简介STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。n 增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051n 工作电压:STC12C5A60S2系列工作电压:5.5V- 3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V- 2.2V(3V单片机)n 工作频率范围:0 - 35MHz,相当于普通8051的 0420MHzn 用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节.n 片上集成1280字节RAMn 通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mAn ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片n 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)n 外部掉电检测电路:在P4.6口有一个低压门槛比较器 5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%n 12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz 3.3V单片机为: 8MHz12MHz 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准n 13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器n 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟n 外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,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)n PWM(2路)/PCA(可编程计数器阵列,2路)-也可用来当2路D/A使用 -也可用来再实现2个定时器 -也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)n A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口n STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)n 工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)n 封装:LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。#include /库文件#include #define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/* 初始定义*/*定义八位数字量输入为单片机P0口*/sbit X00=P00;sbit X01=P01;sbit X02=P02;sbit X03=P03;sbit X04=P04;sbit X05=P05;sbit X06=P06;sbit X07=P07;/*定义八位数字量输出IO口*/sbit Y00=P26; sbit Y01=P27;sbit Y02=P50;sbit Y03=P51;sbit Y04=P41;sbit Y05=P46;sbit Y06=P45;sbit Y07=P44;/* 数据表格*/code uchar KM=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, ; /数据表格/* 延时函数*/void delay(uchar t) /当t等于50时,大概延时0.5秒;当t等于10时,大概延时0.1秒;uchar m,n,s;for(m=t;m0;m-)for(n=20;n0;n-)for(s=248;s0;s-);/* 输出处理函数*/void open_X3(uchar turm)char i;for(i=7;i=0;i-)urm=_crol_(turm,1);switch(i) case 0:Y00=turm&0x01;break; case 1:Y01=turm&0x01;break; case 2:Y02=turm&0x01;break; case 3:Y03=turm&0x01;break; case 4:Y04=turm&0x01;break; case 5:Y05=turm&0x01;break; case 6:Y06=turm&0x01;break; case 7:Y07=turm&0x01;break; default:break;/* 配置P4口 */void P4_init(void) P4SW=0x70; /配置P4口 P4M0&=0x80; P4M1&=0x80;/* 主函数*/void main() uchar a,b; P4_init(); for(a=0;a3;a+) /循环3次 for(b=0;b160;b+)/继电器输出数据表里的状态 open_X3(KMb); /取表格里的数据送P2口delay(50); /延时约0.5秒 /* 结束*/3.5、八路输出流水灯实例/*程序说明:开关管Y00导通约0.2秒后,断开,同时Y01吸合,然后延时约0.2秒,继电器Y01断开,同时Y02吸合,依次八个开关管轮换导通与断开!*/#include /库文件#include #define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/*定义八位数字量输入为单片机P0口*/sbit X00=P00;sbit X01=P01;sbit X02=P02;sbit X03=P03;sbit X04=P04;sbit X05=P05;sbit X06=P06;sbit X07=P07;/*定义八位数字量输出IO口*/sbit Y00=P44; sbit Y01=P45;sbit Y02=P41;sbit Y03=P46;sbit Y04=P50;sbit Y05=P51;sbit Y06=P27;sbit Y07=P26;/* 延时函数*/void delay(uchar t) uchar m,n,s;for(m=t;m0;m-)for(n=20;n0;n-)for(s=248;s0;s-);/* 配置P4口 */void P4_init(void) P4SW=0x70; /配置P4口 P4M0&=0x80; P4M1&=0x80;/* 主函数*/void main() 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 #define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/*定义八位数字量输入为单片机P0口*/sbit X00=P00;sbit X01=P01;sbit X02=P02;sbit X03=P03;sbit X04=P04;sbit X05=P05;sbit X06=P06;sbit X07=P07;/*定义八位数字量输出IO口*/sbit Y00=P44; sbit Y01=P45;sbit Y02=P41;sbit Y03=P46;sbit Y04=P50;sbit Y05=P51;sbit Y06=P27;sbit Y07=P26;/* 延时函数*/void delay(uchar t) uchar i,j; for(i=0;i0;j-); /* 配置P4口 */void P4_init(void) P4SW=0x70; /配置P4口 P4M0&=0x80; P4M1&=0x80;/* 主函数*/void main() 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导通(即:输出控制电源);*/#include /库文件#define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/*定义八位数字量输入为单片机P0口*/sbit X00=P00;sbit X01=P01;sbit X02=P02;sbit X03=P03;sbit X04=P04;sbit X05=P05;sbit X06=P06;sbit X07=P07;/*定义八位数字量输出IO口*/sbit Y00=P44; /硬件的p2.6口有问题,测试时把p2.5和p2.6短接了sbit Y01=P45;sbit Y02=P41;sbit Y03=P46;sbit Y04=P50;sbit Y05=P51;sbit Y06=P27;sbit Y07=P25;/* 延时函数*/void delay(uchar t) uchar i,j; for(i=0;i0;j-); ; /* 配置P4口 */void P4_init(void) P4SW=0x70; /配置P4口 P4M0&=0x80; P4M1&=0x80;/* 主函数*/void main() P4_init(); while(1) if(X00=0)delay(100);while(!X00);Y00=0; /Y00和被控电源地接通if(X01=0)delay(100);while(!X01);Y01=0; /Y01和被控电源地接通if(X02=0)delay(100);while(!X02);Y02=0; /Y02和被控电源地接通if(X03=0)delay(100);while(!X03);Y03=0; /Y03和被控电源地接通if(X04=0)delay(100);while(!X04);Y04=0; /Y04和被控电源地接通if(X05=0)delay(100);while(!X05);Y05=0; /Y05和被控电源地接通if(X06=0)delay(100);while(!X06);Y06=0; /Y06和被控电源地接通if(X07=0)delay(100);while(!X07);Y07=0; /Y07和被控电源地接通 /* 结束*/3.6一对一输入输出互锁控制实例/*程序说明:当X00口与COM口接通后,对应的场效应Y00导通(即:输出控制电源);当X01口与COM口接通后,对应的场效应Y01导通(即:输出控制电源);当X02口与COM口接通后,对应的场效应Y02导通(即:输出控制电源);当X03口与COM口接通后,对应的场效应Y03导通(即:输出控制电源);当X04口与COM口接通后,对应的场效应Y04导通(即:输出控制电源);当X05口与COM口接通后,对应的场效应Y05导通(即:输出控制电源);当X06口与COM口接通后,对应的场效应Y06导通(即:输出控制电源);当X07口与COM口接通后,对应的场效应Y07导通(即:输出控制电源);*/#include /库文件#include #define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/*定义八位数字量输入为单片机P0口*/sbit X00=P00;sbit X01=P01;sbit X02=P02;sbit X03=P03;sbit X04=P04;sbit X05=P05;sbit X06=P06;sbit X07=P07;/*定义八位数字量输出IO口*/sbit Y00=P44; sbit Y01=P45;sbit Y02=P41;sbit Y03=P46;sbit Y04=P50;sbit Y05=P51;sbit Y06=P27;sbit Y07=P25;/* 延时函数*/void delay(uchar t) uchar i,j; for(i=0;i0;j-); /* 配置P4口 */void P4_init(void) P4SW=0x70; /配置P4口 P4M0&=0x80; P4M1&=0x80;/* 互锁输出处理函数*/void open_X3(uchar turm) char i;for(i=7;i=0;i-)turm=_crol_(turm,1);switch(i) case 0:Y00=turm&0x01;breakcase 1:Y01=turm&0x01;break;case 2:Y02=turm&0x01;break;case 3:Y03=turm&0x01;breakcase 4:Y04=turm&0x01;break;case 5:Y05=turm&0x01;break;case 6:Y06=turm&0x01;breakcase 7:Y07=turm&0x01;break;default:break;/* 主函数*/void main() P4_init();while(1)if(X00=0)delay(100);while(!X00);open_X3(0xfe); /Y00和被控电源地接通if(X01=0)delay(100);while(!X01);open_X3(0xfd); /Y01和被控电源地接通if(X02=0)delay(100);while(!X02);open_X3(0xfb); /Y02和被控电源地接通if(X03=0)delay(100);while(!X03);open_X3(0xf7); /Y03和被控电源地接通if(X04=0)delay(100);while(!X04);open_X3(0xef); /Y04和被控电源地接通if(X05=0)delay(100);while(!X05);open_X3(0xdf); /Y05和被控电源地接通if(X06=0)delay(100);while(!X06);open_X3(0xbf); /Y06和被控电源地接通if(X07=0)delay(100);while(!X07);open_X3(0x7f); /Y07和被控电源地接通/* 结束*/3.7上位机串口控制测试/*单片机与PC机采用9针串口,MAX232通讯,波特率默认为9600.单片机接收PC机发送的十六进制码表如下:输出控制01、全开:PC发送0xFF; 02、全关:PC发送0X00; *03、第一路开:PC发送0x01;*11、第一路关:PC发送0xF1;04、第二路开:PC发送0x02;*12、第二路关:PC发送0xF2;05、第三路开:PC发送0x03;*13、第三路关:PC发送0xF3;06、第四路开:PC发送0x04;*14、第四路关:PC发送0xF4;07、第五路开:PC发送0x05;*15、第五路关:PC发送0xF5;08、第六路开:PC发送0x06;*16、第六路关:PC发送0xF6;09、第七路开:PC发送0x07;*17、第七路关:PC发送0xF7;10、第八路开:PC发送0x08;*18、第八路关:PC发送0xF8;*输入控制*03、第一路触发:向PC发送0xA104、第二路触发:向PC发送0xA205、第三路触发:向PC发送0xA306、第四路触发:向PC发送0xA407、第五路触发:向PC发送0xA508、第六路触发:向PC发送0xA609、第七路触发:向PC发送0xA710、第八路触发:向PC发送0xA8*/#include /库文件#include #define uchar unsigned char/宏定义无符号字符型#define uint unsigned int /宏定义无符号整型/* 初始定义*/unsigned char dat; /用于存储单片机接收发送缓冲寄存器SBUF里面的内容/*定义八位数字量输入为单片机P0口*/sbit X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论