找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4793|回复: 1
打印 上一主题 下一主题
收起左侧

四路仿PLC单片机继电器控制板设计开发资料 含PCB与源码和电路图

[复制链接]
跳转到指定楼层
楼主
Altium Designer画的简易PLC编程单片机控制板原理图和PCB图如下:(51hei附件中可下载工程文件)




单片机源程序如下:
  1.                /********************************************************************
  2.                             汇诚科技
  3. 实现功能:串口通信参考程序_有返回值
  4. 使用芯片:STC12C2052AD
  5. 晶振:11.0592MHZ
  6. 波特率:9600
  7. 编译环境:Keil
  8. *********************************************************************/
  9. /********************************************************************
  10. 单片机与PC机采用9针串口,MAX232通讯,波特率默认为9600.

  11. 单片机接收PC机发送的字符进制码表如下:

  12. 01、全开:PC发送I; 单片机返回I;
  13. 02、全关:PC发送i;  单片机返回i;

  14. 03、第一路开:PC发送A;单片机返回A;
  15. 04、第二路开:PC发送B;单片机返回B;
  16. 05、第三路开:PC发送C;单片机返回C;
  17. 06、第四路开:PC发送D;单片机返回D;

  18. 11、第一路关:PC发送a;单片机返回a;
  19. 12、第二路关:PC发送b;单片机返回b;
  20. 13、第三路关:PC发送c;单片机返回c;
  21. 14、第四路关:PC发送d;单片机返回d;
  22.                          
  23. 19、输入状态查询:PC发送0x55;单片机返回输出状态(返回值十六进制);
  24. 20、输出状态查询:PC发送0xAA;单片机返回输出状态(返回值十六进制);
  25. 21、输出取反指令:PC发送0X11;单片机返回0x11;

  26. *********************************************************************/
  27. #include<stc2052.h>  
  28. #define uchar unsigned char//宏定义无符号字符型
  29. #define uint unsigned int  //宏定义无符号整型
  30. /********************************************************************
  31.                             初始定义
  32. *********************************************************************/

  33. unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
  34. /*定义八位出为单片机P2口*/
  35. sbit K1=P3^2;
  36. sbit K2=P3^3;
  37. sbit K3=P3^4;
  38. sbit K4=P3^5;

  39. /*定义八位入为单片机P1口*/
  40. sbit SB1=P1^0;
  41. sbit SB2=P1^1;
  42. sbit SB3=P1^2;
  43. sbit SB4=P1^3;
  44. sbit SB5=P1^4;
  45. sbit SB6=P1^5;
  46. sbit SB7=P1^6;
  47. sbit SB8=P1^7;

  48. /********************************************************************
  49.                             延时函数
  50. *********************************************************************/
  51. void delay(uchar t)
  52. {
  53.   uchar i,j;
  54.    for(i=0;i<t;i++)
  55.    {
  56.             for(j=13;j>0;j--);
  57.          { ;
  58.          }
  59.    }
  60. }

  61. /********************************************************************
  62.               功能:串口初始化,波特率9600,方式1
  63. *********************************************************************/
  64. void Init_Com(void)
  65. {
  66. TMOD = 0x20;
  67. PCON = 0x00;
  68. SCON = 0x50;
  69. TH1 = 0xFd;
  70. TL1 = 0xFd;
  71. TR1 = 1;
  72. }

  73. /********************************************************************
  74.                             主函数
  75. *********************************************************************/
  76. void main()
  77. {
  78. Init_Com();//串口初始化
  79. while(1)
  80. {
  81.                 if(SB1==0){K1=0;delay(100);}else K1=1;
  82.             if(SB2==0){K2=0;delay(100);}else K2=1;
  83.                 if(SB3==0){K3=0;delay(100);}else K3=1;
  84.                 if(SB4==0){K4=0;delay(100);}else K4=1;   
  85.                 if(SB5==0){K1=0;delay(100);}else K1=1;  
  86.                 if(SB6==0){K2=0;delay(100);}else K2=1;  
  87.                 if(SB7==0){K3=0;delay(100);}else K3=1;  
  88.                 if(SB8==0){K4=0;delay(100);}else K4=1;                     
  89. if ( RI ) //扫描判断是否接收到数据,
  90. {
  91. dat = SBUF; //接收数据SBUF赋与dat
  92. RI=0; //RI 清零。
  93. }
  94. /********************************************************************
  95.                             接收数据判断函数
  96. *********************************************************************/
  97. switch(dat) //接收数据判断
  98. {
  99. uchar k;
  100. k=10;
  101. case 'I': P3=0X00;delay(k);SBUF = dat;dat=0xee;break; //  全开
  102. case 'i': P3=0XFF;delay(k);SBUF = dat;dat=0xee;break; //  全关

  103. case 'A': K1=0;delay(k);SBUF = dat;dat=0xee;break;           //  第一路开
  104. case 'B': K2=0;delay(k);SBUF = dat;dat=0xee;break;           //  第二路开
  105. case 'C': K3=0;delay(k);SBUF = dat;dat=0xee;break;           //  第三路开
  106. case 'D': K4=0;delay(k);SBUF = dat;dat=0xee;break;           //  第四路开

  107. case 'a': K1=1;delay(k);SBUF = dat;dat=0xee;break;           //  第一路关
  108. case 'b': K2=1;delay(k);SBUF = dat;dat=0xee;break;           //  第二路关
  109. case 'c': K3=1;delay(k);SBUF = dat;dat=0xee;break;           //  第三路关
  110. case 'd': K4=1;delay(k);SBUF = dat;dat=0xee;break;           //  第四路关

  111. case 0x55: SBUF = P1;delay(k);dat=0xee;break;           //  读输入口状态
  112. case 0xAA: SBUF = (P3&0XFF);delay(k);dat=0xee;break;           //  读输出口状态

  113. case 0x11: K1=~K1;K2=~K2;K3=~K3;K4=~K4;delay(k);SBUF = dat;dat=0xee;break;  //  输出口取反

  114. default:break;                                           //  跳出
  115. }
  116.   
  117. }  
  118. }
  119.        
  120. /********************************************************************
  121.                               结束
  122. *********************************************************************/
复制代码
简要说明:
一、 尺寸:长121mmX宽86mmX高20mm
二、 主要芯片:STC12C2052AD(兼容51程序)
三、 工作电压:12V或者24V(工作电压等于继电器额定工作电压)
四、 串口下载程序
五、 特点:1、具有电源指示。
              2、八路输入,其中四路光电隔离,四路可做AD信号输入。
              3、四路输出光隔离输出控制继电器
              4、标准的11.0592M晶振。
              5、具有上电复位和手动复位。
              6、主芯片完全兼容51程序。
              7、有内部看门狗,EEPROM
              8、输入四路具有LED指示。
              9、输出四路具有LED指示。
             10、高效率电源稳压芯片给单片机供电,工作更稳定。。
             11、可控制交流220V/10A一下设备。
             12、具有串口通信功能(可以上位机控制)。 六、有详细使用说明书七、提供相关软件八、提供例程及其学习资料

全部资料51hei下载地址:

8路模拟量采集4路开关量输入.rar

112.29 KB, 下载次数: 64, 下载积分: 黑币 -5

该板发货程序.rar

28.26 KB, 下载次数: 57, 下载积分: 黑币 -5

简易PLC编程单片机控制板产品使用手册.doc

3.65 MB, 下载次数: 56, 下载积分: 黑币 -5

简易PLC编程单片机控制板原理图.doc

47.5 KB, 下载次数: 57, 下载积分: 黑币 -5

该板配套测试程序.rar

427.18 KB, 下载次数: 56, 下载积分: 黑币 -5

四路仿PLC继电器控制板DXP资料.rar

184.09 KB, 下载次数: 71, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:247734 发表于 2018-11-17 18:07 | 只看该作者
谢谢,刚好可以用,省的画。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表