全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

三菱PLC扩展RS485通讯板与51单片机之间的通讯设计

时间:2019-07-24 15:50

人气:

作者:admin

标签: RS485接口 

导读:三菱PLC扩展RS485通讯板与51单片机之间的通讯设计-我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工...

我用了两个晚上的时间查阅一些资料,利用三菱PLC的扩展RS485通讯板与其51单片机连接通讯,可写PLC任意的地址。长度可达1000米,看见网上写的都很烦且对三菱和单片机不是很熟的朋友来说有一定的阅读难度,今天将它与大家分享。希望在此基础上大家能扩展出自己想要的功能,过些时间有空我在写个半双工的程序。

硬件部分:

我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工通讯,须将P3.0口到下载程序的RS232芯片的线断开可用一个跳线,用RS485的时候断开RS232,用RS232的时候插上跳线帽。硬件连接如图

三菱PLC扩展RS485通讯板与51单片机之间的通讯设计

PLC程序:

通讯我用单片机做主机(只发送指令),PLC做从机(只接收指令),单工单向,以便初学着掌握。

格式:1位启始,8位数据,一位停止。

所以PLC寄存器D8120:0C81.

plc程序很简单不懂的可以看下三菱PLC的通讯手册。如下图:

三菱PLC扩展RS485通讯板与51单片机之间的通讯设计

三:单片机程序:

#include /*单片机的头文件*/

unsigned char code tab[]={0x17,0xff};/*PLC输出的Y点数,PLC输出Y灯0125678亮*/

sbit led=P1^1; /*将RS485置为发送数据模式*/

unsigned char i;

void init()

{

SCON=0x50; /*串口中断开*/

TMOD=0x20; /*定时器设置*/

TH1=0xfd; /*定时时间的高位*/

TL1=0xfd; /*定时时间的低位,速度为9600BPS*/

TR1=1; /*定时器开*/

EA=1; /*开总中断*/

TI=0; /*复位串口中断*/

led=1; /*将RS485置为发送数据模式*/

}

void main()

{

init(); /*调用子程序*/

for(i=0;i《2;i++)

{

SBUF=tab[i]; /*将数据发送到串口*/

while(!TI); /*等待串口数据发送结束*/

TI=0; /*复位串口中断*/

}

}

四:注意点。

1:RS485的线不能接反,否则数据将不正确。

2:单片机的晶振要选择11.0592MHZ,否则PLC接收到数据也不正确。

3:RS485芯片的电源不能接反,否则要烧坏芯片。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信