我用了两个晚上的时间查阅一些资料,利用三菱PLC的扩展RS485通讯板与其51单片机连接通讯,可写PLC任意的地址。长度可达1000米,看见网上写的都很烦且对三菱和单片机不是很熟的朋友来说有一定的阅读难度,今天将它与大家分享。希望在此基础上大家能扩展出自己想要的功能,过些时间有空我在写个半双工的程序。
硬件部分:
我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工通讯,须将P3.0口到下载程序的RS232芯片的线断开可用一个跳线,用RS485的时候断开RS232,用RS232的时候插上跳线帽。硬件连接如图
PLC程序:
通讯我用单片机做主机(只发送指令),PLC做从机(只接收指令),单工单向,以便初学着掌握。
格式:1位启始,8位数据,一位停止。
所以PLC寄存器D8120:0C81.
plc程序很简单不懂的可以看下三菱PLC的通讯手册。如下图:
三:单片机程序:
#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芯片的电源不能接反,否则要烧坏芯片。
关键字:51单片机 PLC 无协议通讯
引用地址:
51单片机与三菱PLC无协议通讯成功
推荐阅读最新更新时间:2024-03-16 15:13
51单片机红外接收解码程序
接收以S52单片机作为接收系统。以S52的P3.3口作为接收端口,该端口是外部中断1。 这个接受程序是以 XC866作为红外发送控制系统 ,接收程序如下: #include reg52.h //头文件 #include intrins.h #define uchar unsigned char //宏定义 #define uint unsigned int sbit HWRx=P3^3; //位声明 code uchar Table = //共阴数码管 0-9 a-f - 表 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5
[单片机]
一种简单的基于51单片机的电子密码锁设计
1 单片机电子密码锁的背景和设计特点 在高科技迅速发展的今天,人们已经发明了密码锁、电子锁和激光锁等多种形式。这些锁在传统钥匙的基础上,利用磁场、声波和光束等多种方式来控制锁的开启和关闭,从而有效地增强了锁的安全性,保护了人们的生命财产和安全,有效地防止盗贼的光顾。 单片机又称为单片微电脑或者单片微型计算机,它有效的集合了中央处理器、只读存储器、随机存取存储器和输入输出端口等计算机功能部件。计算机体积庞大,不易携带,导致单片机的应运而生,电子密码锁就是在单片机的外部接上简单的电路,人为的写入程序来完成其核心部分,这样不仅能够缩小锁的体积还能够降低成本,保持精度,并且能够有效的升级和改善电子密码锁。 2 单片机
[单片机]
C51单片机是怎么存储程序和数据的
初学51总是会有这样的疑问,从电脑下载程序到开发板后,程序去哪了? C51中,用户或应用程序,系统程序和数据都是存放在哪的? 51单片机从物理结构上,可分为片内,片外程序存储器,片内片外数据存储器。 51单片机从功能上,有程序存储器,片内数据存储器,特殊功能寄存器,位地址空间,片外数据存储器。 程序存储器 51单片机的程序存储器用于存储代码和一些固定表格常数。 可寻址的程序存储器空间为64KB。 51单片机的从物理角度上可分为:片内,片外程序存储器,作为编址空间,编址规律是:先片内,后片外,片内片外连续,不重叠。 如图:为51单片机程序存储器编址图。 单片机如何执行指令? 如图: 无论片内程序存储器,还是片外程序存储器,他
[单片机]
用51单片机对SAA3010T编码芯片进行解码的方法
单片机电路原理图见下图硬件还可以加个蜂鸣器加以指示。 //功能实现对p1口八个发光二级管控制,程序中设置了串行口来查看遥控器的发送的编码IRCode
[单片机]
PLC之MODBUS通讯口通信案例解析
1. 硬件设置 程序中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个 CPU 都有两个通讯口)。在主站侧也可以用相应库文件 MBUS_CTRL_P1 和 MBUS_MSG_P1 通过1号通讯口通信。通讯口 1 用 Micro/WIN 与 PG 或 PC 建立连接,两个 CPU 的通讯口 0 通过 Profibus 缆进行连接(电缆的针脚 连接为3,3,8,8 - 见图 01)。另外,需要确定逻辑地M相连 。 2. 参数匹配 对于 MODBUS 通讯,主站侧需要程序库 MBUS_CTRL 和 MBUS_MSG ,从站侧需要程序库 MBUS_INIT and MBUS_SLAVE 。 在
[嵌入式]
51单片机-74HC595移位寄存器
1.74HC595芯片介绍 74HC595芯片是一个串行输入,并行输出设备。其内部包括一个8位移位寄存器、一个存储器以及三态输出门电路,其中移位寄存器和存储器都有相互独立的时钟,每当移位寄存器输入时钟SHCP上升沿来临之时,数据被移出。 1.1.引脚定义 引脚定义,怎么命名,并没有个统一的规则,所以每个人在绘制芯片引脚图时,根据个人习惯命名可能都不一样(如:14号引脚(DS/SER),10号引脚(MR/SCLR),11号引脚(SHCP/SCK),12号引脚(STCP/RCK)等);虽然命名可能不一样,但引脚的功能确是一样; 1.2.工作原理 工作方式1:将DS的数据,通过SHCP产生上升沿,一位位的移入移
[单片机]
基于AT89c51单片机的流水灯,中断定时,按钮控制
中断 定时器/计时器是51单片机最基本的功能器件,熟练掌握其编写方法至关重要; #include reg51.h #include stdio.h unsigned char n=0,f=0,s=0; void main() { TMOD=0X61; TH0=(65536-9216)/256; TL0=(65536-9216)%256;初始化定时器 TH1=156; TL1=156; IT0=1; EX0=1; EA=1; T1=0; while(1)P1=s; } void Timer0() interrupt 1 { T1=1; TH0=(65536-9216
[单片机]
基于51单片机和nRF905的无线通信装置的设计
0 引言 随着当前网络通信技术的高速发展,人们对各类场合下的无线通信的需求也随之增高。在短距离低成本的无线通信的应用中,基于51单片机以及Nordic公司的nRF905无线通信芯片的应用方案被广泛采用。比如,文献设计了一种基于51单片机与nRF905收发器的无线智能控制交通灯,文献设计了一种基于AT89S52和nRF905的无线遥控系统。 本文设计了一种基于AT89S52单片机和nRF905的无线通信装置。该装置适用于小范围的室内无线点对点文字信息交换应用。 1 系统总体设计 本文设计的装置是由发送和接收两个完全相同的节点模块构成,图1所示为系统示意图。需发送的信息通过PC机上的客户端软件输入,接收的信息显示在节点模
[单片机]