登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:半双工串口通信实例36:STC12单片机和STC12单片机串口通信

点击:723 回复:3

半双工串口通信实例36:STC12单片机和STC12单片机串口通信
一、串口通信实例目的:
STC12单片机主站数字量输入DI01~DI08控制STC12单片机从站数字量输出DO01~DO08;
STC12单片机从站数字量输入DI01~DI08控制STC12单片机主站数字量输出DO01~DO08。
二、通信硬件连接:
1、单片机主站串口2通信口端子含义:
3脚:即为RS485发送\接收+信号
8脚:即为RS485发送\接收-信号
2、单片机从站串口2通信口端子含义:
3脚:即为RS485发送\接收+信号
8脚:即为RS485发送\接收-信号
3、通信硬件连接:
STC12单片机主站串口2的3脚 接 STC12单片机从站串口2的3脚;
STC12单片机主站串口2的8脚 接 STC12单片机从站串口2的8脚。
三、STC12单片机主站通信程序:
1、发送字节计数为4;
2、通信参数:数据位8位、无校验、1位停止位、波特率9600bps、起始符为0x02、结束符为0x03;
3、将数字量输入DI01~DI08转换为ASCII码送入发送缓冲区中;
4、初始化开始启动发送;
5、发送完成后等待接收;
6、将接收到的ASCII码数据转换为16进制送入DO01~DO08。
附件 STC单片机主站.jpg
四、STC12单片机从站通信程序:
1、通信参数:数据位8位、无校验、1位停止位、波特率9600bps、起始符0x02、结束符0x02;
2、STC12单片机从站8路输入DI01~DI08转换为ASCII码保存至发送缓冲区里;
3、初始化等待接收,接收完成后,处理接收到的数据;
5、接收完成后,延时10ms开始发送,将STC12单片机从站8路数字量输入DI01~DI08发送出去。

图片
查看大图

五、通信程序高清截图提供下载:
附件:
[本地下载]
20-05-03 11:45
六、通信测试:
硬件接线完成后,将STC12单片机主站通信程序、STC12单片机从站通信程序下载到单片机中,断电再上电,即可实现:
STC12单片机主站数字量输入DI01~DI08控制STC12单片机从站数字量输出DO01~DO08;
STC12单片机从站数字量输入DI01~DI08控制STC12单片机主站数字量输出DO01~DO08。
20-05-03 11:47
关版这是什么协议了?
20-05-03 16:01

引用 pqsh 在 2020/5/3 16:01:22 发言【内容省略】

自定义协议
主站发送4个字节:起始符STX、主站8路输入组成一个字节转换为ASCII码后的2个字节、结束符ETX
从站收到后将中间2个ASCII码转换为16进制映射到自己的8路输出
从站返回4个字节:起始符STX、从站8路输入组成一个字节转换为ASCII码后的2个字节、结束符ETX
主站收到后将中间2个ASCII码转换为16进制映射到自己的8路输出
20-05-03 16:23

工控新闻

更多新闻资讯