在51单片机中如何编写RS485通讯程序最好是有详细注释的?谢谢

有没有流程图?

485只是一种传输协议,用单片机串口程序,书上有很多,硬件在串口输出,输入上加一个芯片MAX485就可以了,剩下的编程就是串口程序
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-18
RS485是一准备的协议,如果是多机通讯可以自定义协议包。

51单片机与rs485连接电路???在串口程序中怎么驱动485???在线等!!!谢 ...
软件方式的话硬件电路比较简单,吧485的2、3脚连在一起,并接在51单片机的一脚上(比如P1_0),单片机发送脚TX接485的DI脚(也就是4脚),单片机的串口接收RX接485的RO脚(1脚)。默认P1_0为低电平,当发送数据之前先把P1_0置高,发送结束后再置低。

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

基于RS-485的单片机多机通信如何实现?其c语言或者汇编程序如何写?
RS485的多机通信,对于上位机来说,是一拖多,对于下位机来说,就的多对一的关系,首先,要解决一个多对一的问题,你上位机发送的指令,是给谁的,怎么区分?怎么解决,每台下位机给一个不同的地址,用地址区分数据是给谁的!这样,上位机的指令就有针对性了,不会出现混乱。再有,下位机多对...

PC通过485与51单片机通讯去控制继电器,如何编单片机C语言程序?
51对于继电器的控制,只用高低电平就可以了。关键是,你在你的程序里要有一个判断子程序,判断单片机从PC机(通过RS485)穿过来的是什么数据,从而对单片机的某位置位或者复位。比如:你可以用一个if语句,如果收到的数据时11111,在置位,如果收到的数据时00000,则复位,相应的继电器就会动作了。

用电脑串口如何跟485口通信?
3、在设备管理器的端口选项中看到已经设置好的的串口2和串口4,并且两个已经设置好的串口已经相连说明两个串口之间可以进行通信了。4、在windows中找到proteus仿真软件并打开,在工具栏中双击单片机打开51单片机的属性选项。5、在调试程序这里选择刚才已经写好的串口调试的程序,调试程序为hex后缀结尾的二进制...

RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的?
RS485主从式多机通讯协议的数据传输协议:此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。此协议决定了每个控制器须要知道它们的设备...

关于RS485与单片机通讯的程序,数据返回不正常
这一段,UART1_Send_index这个值不能从1一直加到8,加1之后程序运行到uart1_sent_over=0;这个置零,UART1_Send_index这个回回到缺省值8,然后再回到0开始加啊 追答:因为串口是SBUF一次只能送一个字节,发送一个写成这样看看 void SendBytes_UART_one(unsigned char dataNum){ UART1_send_lenth =...

RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的?写个类似...
从机地址是由你从机中的软件定义的,当然要设置界面方便修改,以避免地址相同的情况。在串口中断处理程序中监听接收所有的串口消息,然后看命令中的地址是否是本机地址,是则响应命令,不是则直接丢弃改命令。

...有没有C语言的基于485的51单片机的主从应答的程序啊,就是主机向各个...
单片机方面:首先对接收数据进行核对,如果不是本地地址,放弃,如果是本地地址,在检测命令是否正确,如果正确,做出处理后返回PC本地地址并发送命令 我举个例子教你怎么玩多站通讯,下面是我已经通过测试的一个程序 include <reg51.h> \/\/选用晶振11.0592MHz include <absacc.h> define DATA51 D...

您好,有没有关于单片机RS485多机通信的c语言程序啊
DDRB|=_BV(PB0); \/\/485的收发模式控制端口,低电平为接收模式,高电平为发送模式 PORTB&=~_BV(PB0);DDRC&=~_BV(PC0); \/\/ADC0引脚定义 PORTC&=~_BV(PC0);TCCR1B=0x03; \/\/T1预设分频:256 TCNT1=65536-F_CPU\/64.0*1.5; \/\/晶振4MHZ,1.5S定时初值 TIMSK=0x04; ...

相似回答