新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PIC单片机与触摸屏串行通信MODBUS协议

PIC单片机与触摸屏串行通信MODBUS协议

作者:时间:2012-02-21来源:网络收藏

4 程序的开发

程序采用C语言编写。编译工具选择Hitech公司的C编译器。程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块。主程序流程图如图2所示。

16F877USART功能模块带有一个八位的波特率发生器BRG,BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的八位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)被用来控制波特率。对口进行的初始化如下:
GIE=1; %全局中断允许;
SPBRG=25; %设置波特率为9600;
TXSTA=0x04; %选择异步高速方式;
RCSTA=0x80; %允许同步口工作;
RTISC6=1;
TRISC7=1; %将C口的RC6和RC7设置为异步模式;
PFIE=1; %外围接口中断允许;
RCIE=1; %USART接收中断允许;
TXIE=1; %USART发送中断允许;

数据接收模块由一个中断函数组成。该中断函数将发来的Modbus数据帧存储在一个自定义的数组中,当一帧数据接收完时,置接收结束标志位为 1,转入数据处理及发送模块。串行通信接收器的核心是接收移位寄存器RSR,当接收到停止时,如果RCREG缓冲器为空,RSR就把接收到的数据送入 RCREG。传送完成后,接收中断标志位RCIF被置1。实际的中断是否被CPU响应,可以通过设置外围接口中断允许寄存器PIE1的中断允许位RCIE 来控制。

38.jpg

数据处理及发送模块执行Modbus功能码对应的运用。eView与单片机以Modbus通信。

以Modbus功能码03为例来说明触摸屏及单片机的实际通信数据格式。如单片机地址编号为01H,触摸屏需要查看单片机中地址为0031H的寄存器的值,发送命令格式如表3所示。

当波特率达到38400kb/s 时,通信仍然稳定可靠。本系统具有连接电路简单、组态灵活、通信可靠性高等特点,并已成功应用于物料筛选控制系统项目中。由于Modbus通信的开放性的特点,国外进口控制器串行通信大者支持该协议,因此本文所实现的采用Modbus协议的串行通信具有广泛的应用价值。

通信相关文章:通信原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭