触摸屏程序怎么写( 二 )


【触摸屏程序怎么写】eView触摸屏本身支持Modbus通讯协议,如果单片机也支持Modbus协议,就可以进行通信了 。触摸屏与单片机之间采用的RS-232C兼容接口直接连接,传输速率设置为9600kb/s 。
图1为该系统的电路图 。将PIC16F877单片机RC6、RC7口设置为异步串行通信模式,经过MAX232芯片将TTL电平转换为RS232电平,再与eView触摸屏PLC[RS-232]接口相连,即完成了硬件连接 。
eView触摸屏PLC[RS-232]接口的管脚2为TXD,管脚3为RXD 。2 Modbus通信协议介绍 Modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称Master),其它设备作为从机(称Slaver),主机不需编号,从机必须编号 。
协议定义了主机查询及从机应答的信息帧格式 。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机 。
若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码 。当主机收到这一信息时,会重新发送请求信息 。
校验方式分为LCR(传送数据为ACSII时)校验或CRC(传送数据为二进制时)校验,这里采用CRC校验方式 。信息传输为异步方式,并以字节为单位 。
主从站之间通讯的字格式如表1所示 。表1 通讯的字格式 字格式(串行数据) 10位二进制 起始位 1位 数据位 8位 奇偶校验位 无 停止位 1位 Modbus协议可支持ASCII码或二进制格式的数据传输 。
ACSII码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式 。各个区允许发送的字节均为16进制的0~9,A~F 。
二进制信息帧标准结构为: 初始结构 ≥4字节的时间 地址码 1字节 功能码 1字节 数据区 N字节 错误校验 16位CRC码 结束结构 ≥4字节的时间 二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止时间 。发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息 。
网络上的设备连续监测网络上的信息,包括静止时间 。3 单片机与触摸屏地址的对应关系 eView触摸屏只支持Bit和Word地址类型,而实际的单片机或其它控制器还有Byte、Double Word等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换 。
触摸屏画面元件读取地址的设备类型有LW、0x、1x、3x、4x、RWI、RW等选项 。其中,LW表示该元件读取的是触摸屏内部的地址,如其它元件的地址;0x表示读取的是控制器的输出信号;1x表示读取的控制器的输入信号;3x和4x指控制器的寄存器地址类型,其中4x是可读可写的,3x是只读的;RWI、RW都是触摸屏的内部地址,起辅助作用 。
使用这些读取地址的设备类型,触摸屏即可显示或设定控制器寄存器或I/O口的数值 。以“数值输入”元件为例,通过“小键盘”输入数据即可设置单片机寄存器或I/O口的数值 。
如果启动了“触发地址”,那么当被触控时,输入的数据就被存放到了指定的单片机地址中 。4 通信程序的开发 触摸屏与单片机的通信程序采用PIC单片机C语言编写 。
编译工具选择Hitech公司的PICC编译器 。程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块 。
主程序流程图如图2所示 。PIC16F877单片机USART功能模块带有一个八位的波特率发生器BRG,BRG支持USART的同步和异步工作方式 。