导航:首页 > 操作系统 > 51单片机485通讯

51单片机485通讯

发布时间:2022-05-17 17:05:33

❶ 51单片机怎样和PC通过RS485进行通信

你已经用USB转成RS485,再将RS485转成TTL了,剩下的事就简单了,就把RS485TTL的RXD接到单片机RXD,把485TTL的TXD接到单片机的TXD上就行了。然后就要写程序了。电脑的USB转485线要安驱动程序,虚拟出一个串口来,电脑就可以用串口调试助手与单片机通信了。

❷ 51单片机485通讯实验

void send(unsigned char dat)
{
DE=1; //485发送程序多了个DE控制,其他不变
SBUF=dat;
while(TI==0);
TI=0;
DE=0;
}

❸ 急急急!!!51单片机问题!用485通信,接受字符串!!

不是你代码的问题,硬件协议的问题
485是
半双工
总线协议,232是全双工总线协议,直接使用会出问题。
两种解决办法:
1,485有一条线是总线忙判断(置位)线,把这条线的控制编到你的程序里面控制一下。
2,买232转422的转换模块,232调好后,422可以直接用,不用改程序

❹ 51单片机使用485总线怎样控制单片机的双向通讯

485接口芯片上都有一个方向控制引脚,直接接单片机的I/O口控制即可。485总线是主从式,必须有一个主机,由主机巡检其它子机,巡到谁谁获得总线使用权。

❺ 关于51单片机RS485通信问题

/*******************************************************************************
* 标题: RS485串口通信试验(接受与发送) *
* *
* 1.通过本例程了解串口的基本原理及使用 ,理解并掌握对串口进行初始化 *
* *
* 2.请使用串口调试助手(Baud 4800、数据位8、停止位1、效验位无)做为上位机(发送)数据和(接受)数据,
* 请在字符串输入框中输入字符和数字(HEX),按发送按钮。观看接受窗显示情况.也可以用自动循环发送。
*
* 3.试验RS485需要用RS232转485的转换头。RS485的A对应串口头的9针 B对应4针.接法大家可以参考原理图。
* *
* 请学员认真消化本例程,学会用C语言操作串口和485的实现 *
********************************************************************************/

#include <REG52.H>
#include <stdio.h>

sbit RS485E=P3^7; //定义485的使能脚
bit SendFlag;
unsigned int ReData,SenData;

/**************************************
延时程序
**************************************/
void delay(unsigned char i)
{
unsigned char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}

void main (void) {

SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80;
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)
TH1 = 0xF3; // //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //开串口中断
EA = 1; // 开总中断

// IE = 0x0;

while(1)
{

if (SendFlag==1) // max485(半双工通信) RE/DE定义 RE=0为接受状态 DE=1为发送状态(参考MAX485芯片管脚)
{ RS485E=1; // RS5485E=0为接收状态 RS5485E=1为发送状态
SBUF=SenData; //发送数据
delay(50);
}
else
{

RS485E=0; //接收状态
}

}

}

/****************************************************
串口中断程序
******************************************************/
void ser_int (void) interrupt 4 using 1
{
if(TI == 1)
{
TI = 0;
SendFlag = 0;
}

if(RI == 1) //RI接受中断标志
{
RI = 0; //清除RI接受中断标志
ReData = SBUF; //SUBF接受/发送缓冲器
SenData=ReData;
SendFlag = 1;

}
}

❻ 51单片机能直接接收RS485信号吗

51单片机能直接接收RS485信号吗
不行,要用RS485转换的。RS485有8个引脚:一个电源;一个地,一个差分+;一个差分-(是通讯线),还有一个接单片机RXD,一个接TXD,另外两个是输出控制和输入控制的(这两个通常连在一起)。
所以单片机的输出是先送到TXD,再由RS485变成差分信号送出去的;
输入是把差分的输入信号由RS485送到单片机的RXD引脚的。

❼ 用多块51单片机用485进行串行通信

很明显,第一个程序是发送程序,通过定时器控制发送的内容;第二个程序时接受程序,使用串口中断接收。Rs485芯片有控制管脚,接收使能是低电平,一般只有在需要发送时方将其转为发送状态(高电平),发送完毕后即转为接收状态。

❽ 51单片机rs485通讯问题,高分求助!

你这类似modbus协议,发送8个字节,这程序好写的。先声明一个数组,8个元素,依次对应一帧数据的8个字节,按协议先写成每个元素的初始数。
发送时,地址字节重写入需要发送的地址,功能码,数据码需要变化就重写入数组,然后循环计算前面字节的和,作为校验和写入最后的元素内。
好啦,要发送的数据帧准备完,就可以循环发送这个数组了,就是发送一帧数据了。
下位机接收数据也采用类似方法,只是先接收,后判断处理一帧数据。

❾ 51单片机与PLC上的RS485如何连接

一般单片机的通讯接口是UART串口电平是TTL电平,与485的差分信号是无法直接连接的,中间需要需要用485芯片进行转换的, 给你推荐一颗芯片PB331,可以兼容485协议,接线不分极性总线可以供电。

❿ 51单片机之间如何实现485通讯

如果自己做板,加一个485芯片,单片机串口与之相连,485芯片出来的是差分的485信号。

阅读全文

与51单片机485通讯相关的资料

热点内容
c语言经过编译的后缀 浏览:875
怎么做一款app 浏览:969
小红书看过的视频在哪个文件夹 浏览:536
中兴云服务器市场份额 浏览:407
内网系统报文加密 浏览:210
centeroslinux 浏览:910
xcode如何编译大型项目 浏览:59
平安京编译器 浏览:869
把文件夹名称改成符号 浏览:128
iis如何启动命令 浏览:801
单片机驱动电机原理 浏览:905
app扫哈罗单车怎么操作 浏览:509
电脑版吃鸡为什么登录服务器忙 浏览:982
linux查端口命令 浏览:489
linuxhttp客户端 浏览:820
linux下运行jar包 浏览:435
彩虹弹弹解压球视频 浏览:83
pdf怎样转换成word格式 浏览:673
怎么查找解压文件在哪里 浏览:852
德语小说pdf 浏览:125