在学习单片机的过程中,我在网络上参考了不少同学的毕业设计。其中最令我觉得有意思的就是智能家居系统,特别是我看着那些小巧的温湿度传感器和角度传感器,我就在想,如果真的应用到实际的场景中,那些传感器的线还能用杜邦线吗?起码I2C的传感器肯定是不能用了。那他们怎么扩大传输距离呢?结合在网上零零碎碎的看到什么工业控制用485,我就想着试一试,最后结果还行。哥们找遍CSDN都没找到几个免费的有用信息,实验成功后想想还是放上来给大家参考下。所以就引来了本文的主角——485通信。
RS485是电气层面上的规则,真要看起来理论一大堆。一堆人说485协议,又有一些人说485就不是协议而是标准,爱咋咋地吧,本文不谈理论,就告诉大家如何去用。
前期准备
单片机使用的是STC89C516RD+,引脚与89C52一样,就是程序存储较大。资料来源于STC。
在淘宝上购买了TTL转485模块,以下是接线示意图。有了这个模块,我们就可以按照配置串口的方式来实现485通讯。有基础的可以直接偷掉电路图画到自己板子上哈哈
485通讯在应用上使用的是双绞线,既可以去淘宝上购买485专用线,也可以在实验阶段使用网线验证。网线中包含着四对双绞线,对个人而言容易获得。在实验无干扰的情况下地线可以不接。这次我使用了60M的网线,实验结果非常OK。
串口配置
首先,要配置串口控制寄存器SCON和电源控制寄存器PCON。
SM0、SM1: 根据手册上的说明,如果我们想要实现波特率可变的通信,就要使用