单片机RS485串口通信

发布者:MusicLover123最新更新时间:2016-05-18 来源: eefocus关键字:单片机  RS485  串口通信 手机看文章 扫描二维码
随时随地手机看文章
RS-485是半双工的通信方式,发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通信对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作。要使总线上的设备在时序上严格配合。在复位时,使主从机都处于接收状态。

MAX3082的发送和接收转换是由芯片的 RE/和DE端控制的。RE/=1,DE=1时,MAX3082处于发送状态;RE/=0,DE=0时,MAX3082处于接收状态。一般使用单片机的一个IO口连接RE/和DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,由于上电时各电路不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX3082的控制端,使上电时MAX3082处于接收状态。另外,在主从机软件上也应做处理措施,如:上电时或通信之前,对串行口做几次空操作,清除端口的非法数据和命令。

RS-485的通信程序编写和RS-232没有太大区别,如果使用一个IO口控制MAX3082的RE/和DE端口, RS-485只比RS-232多了一个接收和发送的转换控制位。初始化串口时,使该位处于低电平,即接收状态。发送数据时,使该位先为高,发送完数据后拉低。程序如下:

 

sbit  RS485_E  P3^5     //发送,接收控制位

 

void UART1_Init(void)

{

      SCON = 0x50;           //方式1,8位数据,可变波特率

 

      RS485_E      = 0;        //置低,接收

 

      TMOD|= 0x20;           //定时器1,方式2,8位自重载

      PCON = 0x00;           //波特率倍频禁止

      TH1  = 0xfd;             //晶振22.1184MHz,波特率19200;

      TL1  = 0xfd;             

      IE      |= 0x90;                  //开中断

      IP     = 0x10;

      TR1  = 1   ;            //启动定时器

}

 

void UART1_Send_Char(const INT8U dt)

{   

      SBUF    = dt;

      while(!TI);           

      TI = 0;

}

 

void UART1_Send_String(INT8U *str, INT8U len)

{

      INT8U i;

      RS485_E      = 1;        //置高,发送

      ES          = 0;

      for(i=0; i

      {

             UART1_Send_Char(*(str+i));  

      }

      RS485_E      = 0;        //置低,接收

      ES          = 1;                     

}

 

void UART1_Interrupt(void) interrupt 4        

{

      RS485_E = 0;             //接收   

      ES = 0;

      if(RI)                                 

      {

             //中断接收数据

      }

      ES = 1;

}

 

关键字:单片机  RS485  串口通信 引用地址:单片机RS485串口通信

上一篇:单片机的串口通信编程的总结
下一篇:51单片机与PC通信要注意的地方

推荐阅读最新更新时间:2024-03-16 14:54

带8通道12位AD转换器ADuC812及其应用
1、引 言   A/D转换器的种类很多,不同的应用场合对其要求不同,有的要求高转换速率,有的要求有高精度,还有的用于便携式仪表中,需要低功耗等等。用于数据采集板的A/D转换器,一般是和计算机或微处理器结合在一起使用。随着单片机在各种智能仪器仪表中的广泛应用,出现了一些将A/D转换器和单片机内核集成在一块芯片上的数据采集芯片,ADuC812就是这样一种芯片。   ADuC812是8通道12位逐次逼近式A/D转换器,它具有如下特点(见 Analog Devices公司的资料:MicroConverter,Multichannel 12-Bit ADC withEmbedded Flash MCU ADuC812,2002):   内含
[单片机]
带8通道12位AD转换器ADuC812及其应用
STM32系列单片机命名规则
示例: STM32 F 100 C 6 T 6 B XXX 1 2 3 4 5 6 7 8 9 从上面的料号可以看出以下信息: ST品牌ARM Cortex-Mx系列内核32位超值型MCU,LQFP -48封装 闪存容量32KB 温度范围-40℃-85℃; 1.产品系列: STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU; 2.产品类型: F:通用快闪(Flash Memory); L:低电压(1.65~3.6V);F类型中F0xx和 F1xx系列为2.0~3.6V; F2xx和F4xx系列为1.8~3.6V;W:无线系统芯片,开发版. 3.产品子系列
[单片机]
STM32系列<font color='red'>单片机</font>命名规则
硬件单片机实现温室智能控制
近年来,温室环境控制在国内外得到了相应的研究和应用。国内现有的智能温室系统硬件大部分从国外引进,国外的系统是经过多年的发展和完善,在技术上是比较成熟与先进的。但在我国的应用中出现了一些问题,如体积大、能耗大、温室降温较差、在我国使用不适应。从经济效益上看,因其设备投资大,运行费用高,普遍亏损。“林木种苗工厂化生产环境控制设备与自动化控制集成应用研究示范”是我们自主开发的智能温室监控系统,该系统对于实现农业精细化、自动化生产,提高农业生产的效率与农产品的质量有一定的促进作用。 系统硬件相关技术指标要求如下: ( 1) 对现场空气温度湿度,土壤基质温度湿度,光照强度进行实时的数据采集、数据信号处理、数据分析。数据采集时延 3min
[单片机]
硬件<font color='red'>单片机</font>实现温室智能控制
Atmel单片机型号的含义
每种单片机的型号都是由一长串字母和数字构成,里面包含了芯片生产商、芯片家族、芯片的最高时钟频率、芯片的封装、产品等级等信息。 下面以AT89S52-24PU单片型号为例介绍型号里各个字符表示的含义: AT—生产商标志,表示该器件是ATMEL公司的产品。 89—ATMEL公司的产品89系列家族(内涵Flash存储器)。 S—表示可在线编程。 还有C表示是CMOS产品、LS表示低电压2.7V-4V、LV表示低电压2.7V-6V、LP表示低功耗单时钟周期指令。 52—表示存储器的容量是8K,还有53是12K、54是16K、55是20K,51是4K、2051是2K等。 24—表示芯片的最高时钟频率为24MHZ。还有33MH
[单片机]
51单片机ADC0809电压表(12864显示,程序 + 仿真)
51单片机ADC0809电压表(12864显示,程序 + 仿真)并口;0~5V先上图正常工作图 上图:最大电压值 上图渐变电压值(最大到最小) 这是仿真图,可以进行仿真 #include reg51.h #include LCD12864.h sbit OE=P3^6; sbit EOC=P3^7; sbit CLOCK=P3^0; sbit ST=P3^3; void Lcd12864_Display(); unsigned char dat = 0.000V ; unsigned int tmp; unsigned char adc; void main() { EA=1; ET0=1; T
[单片机]
51<font color='red'>单片机</font>ADC0809电压表(12864显示,程序 + 仿真)
STM8 8位MCU 开发环境搭建
1 安装STVD和STVP 安装完成后,出现以下图标。 根据安装过程中的提示,这个时候需要关机重起。 重启完成之后,就可以用ST Visual Develop 打开工程了。 点击编译按钮,这个时候消息提示框出现一个错误提示: 提示 找不到cxstm8 ,原来STVD里面没有包含编译器。 安装编译器 安装完成,多了一个这个图标。 编译成功。
[单片机]
STM8 8位<font color='red'>MCU</font> 开发环境搭建
采用AVR单片机对FPGA进行配置
Altera公司的ACEX、FLEX等系列的FPGA芯片应用广泛,但其FPGA基于SRAM结构,决定电路逻辑功能的编程数据存储于SRAM中。由于SRAM的易失性,每次上电时必须重新把编程数据装载到SRAM中,这一过程就是FPGA的配置过程。FPGA的配置分为主动式和被动式。在主动模式下,FPGA上电后主动将配置数据从专用的EPROM(如EPC1,EPC2等)加载到SRAM中。被动模式下,FPGA为从属器件,由相应的控制电路或微处理器控制配置过程,包括通过下载电缆由计算机控制配置和单片机模拟配置时序配置。其中,专用的EPROM价格高,可编程次数少,而计算机配置在现场应用中又很不现实,因此本文提出一种基于AVR单片机的被动配置方式。由于
[单片机]
采用AVR<font color='red'>单片机</font>对FPGA进行配置
一种基于MCU内部Flash的在线仿真器设计方法
    摘要: 提出了一种基于MCU内部Flash的仿真器设计方法,并完成了设计和仿真。     关键词: 微控制器 在线仿真 开发系统 Flash SRAM 由于市场对MCU功能的要求总是不断变化和升级,MCU应用的领域也不断扩展,因此往往需要对最初的设计进行修改。Flash MCU与以往OTP/MASK MCU相比,最大的优点就在于可进行高达上万次的擦写操作,顺应了MCU功能不断修改的需求;另一方面,Flash MCU市场价格也在不断下降。因此,许多OEM已将Flash MCU用于产品的批量生产。对于Flash MCU,基于内部Flash的在线仿真器更接近于程序真实的运行特性,程序调
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved