找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用51做了个 PLC:X、Y、高速计数输入、高速输出、Modbus等直接用,超低学习成本

[复制链接]
跳转到指定楼层
楼主
ID:353115 发表于 2026-3-3 08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我是一名嵌入式开发者。一直觉得工业 PLC 价格高、定制难,于是决定用 51 单片机从零做一个小型 PLC。现在已经实现了DI、DO、AI、AO、高速计数输入、Modbus RTU 通信、辅助继电器、通用数据寄存器、16位通用加计数器、32位通用加减计数器、1ms定时器、10ms定时器、100ms定时器、1s定时器、1min定时器,这个帖子将逐步介绍,项目在proteus上的STC15W4K32S4上实现,若有需要可提供实板原理图,进行定制专用的MCU-PLC。

51hei1.jpg (240.86 KB, 下载次数: 0)

51hei1.jpg

51hei2.jpg (183.39 KB, 下载次数: 0)

51hei2.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

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

使用道具 举报

沙发
ID:353115 发表于 2026-3-3 17:01 | 只看该作者
本项目是一个已建立好的KEIL工程,下载后直接打开即可。

直接在app_plc文件夹编写自己的代码就好了,
图片中的程序代码是在Y103输出500Hz,占空比50%的PWM波形
高速计数输入计250时,即250/500为0.5s,
在仿真中,将Y103连接到了X0,Y0接了一个LED灯,可以看到LED闪烁。


回复

使用道具 举报

板凳
ID:353115 发表于 2026-3-3 17:33 | 只看该作者
这里放上proteus的仿真(需要8.15版本)、工程(内含设计说明书)。

PLC单片机proteus仿真(需8.15版本).zip

21.79 KB, 下载次数: 0, 下载积分: 黑币 -5

v1.0.0.260228.zip

562.76 KB, 下载次数: 0, 下载积分: 黑币 -5

回复

使用道具 举报

地板
ID:353115 发表于 2026-3-4 08:14 | 只看该作者
通用输入/通用输出操作。
X为输入,Y为输出。
读取输入,直接写名称即可。
  1. IF (X0)
  2. {
  3.     ……
  4. }
复制代码
将输出置为0的三种写法:
  1. RST(Y0);
  2. Y0=0;
  3. MOV(0,Y0);
复制代码
将输出置为1的三种写法:
  1. SET(Y0);
  2. Y0=1;
  3. MOV(1,Y0);
复制代码
将输入短路至输出的两种写法:
  1. Y0=X0;
  2. MOV(X0,Y0);
复制代码

回复

使用道具 举报

5#
ID:283207 发表于 2026-3-4 10:11 | 只看该作者
感谢楼主,下载学习一下。51做PLC仅供学习原理应该是没什么问题的
回复

使用道具 举报

6#
ID:647576 发表于 2026-3-4 13:40 | 只看该作者
提议降分, 代码不全, 功能关键代码缺失
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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