描述

随着触摸屏的应用和产量的增加,价格下降。因而有可能使用触摸屏作为单片机控制设备的键盘和显示装置,提高单片机控制设备的档次。触摸屏与PLC联合使用时,触摸屏的主要功能是:

①显示PLC输入,输出端13或辅助继电器的开关状态。

②用触摸按键强制PLC输入,输出端口或辅助继电器的开/关。

③显示PLC中定时器、计数器和数据寄存器的内容。

④用触摸屏键盘把设定数据送入PLC的数据寄存器中。

可规纳成触摸屏与PLC问对应地址的数据位、字的读和写。因此可以利用MOD—BUS通信协议来实现触摸屏与单片机的通信和控制,或触摸屏与多台单片机通信,构成一个集散控制系统。

1 触摸屏与单片机的硬件联接

采用MT500触摸屏与AT89C52单片机一对一通信。把触摸屏的PLC232 9针插座与带有RS232接口的AT89C52单片机相连接。如图1所示。注意:通信电缆DB9是2-2、3—3、5-5。

这种接法的电缆也可用于与PC机通信或做通信摸拟。作PC机通信时在连接PC机端的DB9短接4—6、7—8。由于AT89C52单片机无RS232接口,因此需要扩展一片MAx232,把RXD、T×D的TTL电平转换成RS232电平。

图1 触摸屏与单片机通信联接方法

2 建立触摸屏与单片机的内部存储器地址对应关系

打开触摸屏组态软件,从[编辑]下拉菜单中选[系统参数],弹出如图2所示参数设置对话框。触摸屏的系统参数中PLc类型设置成MODBUS RTU,通信参数设置必需与单片机通信参数设置一致。通信口类型设置成RS232,数据位设置成8位,1个停止位,波特率9600,校验位设置与单片机编程一致,PLC站号是单片机定义的站地址一样,站号需从1开始。参数设置完成,按确定键。

图2参数设置对话框

这时触摸屏的可操地址范围如表1所示。

表1 触摸屏在设置成MODBUS RTU摸式时可操作地址范围

Ox1—Ox9999、1×1—1x9999用于位操作的存储器,3xl一3x9999、4xl一4x9999用于字操作的存储器。lxl一1x9999作为输入节点(只读)位操作的存储器,用作触摸屏上的位状态指示灯。Oxl~oX9999可读可写,可作位状态指示灯、按键、触发控制摸位等。3xl-3x9999作为输入数据存储器,可作触摸屏中的数值显示元件和多状态指示灯等。4xl一4x9999可读可写,可作触摸屏中的数值输入元件和多状态设定元件等。其地址采用十进制数表示。OxO、lx0、3xO、4x0不可使用,否则编译时会出错。

在单片机中可自由定义分配与触摸屏相对应的寄存器地址。

如假设P2、P3口为输入口,P0、P1为输出口。为了便于单片机编程,可以把P2、P3口的引脚状态映射到20H、21H,与触摸屏lxl一1x16相对应。把P0、P1输出口数据存到寄存器22H、23H,与触摸屏0xl一0x16相对应。24H一28H作为位操作存储区,与触摸屏0x16-1x56相对应。把30H-3F:H设置成8个数据显示寄存器,与触摸屏3xl-3x8相对应。把40H一4FH设置成8个数据设置寄存器,与触摸屏4x1-4x8相对应。这样可列出触摸屏与单片机通信地址对应表,位地址如表2所示。字地址如表3所示。

表2摸屏与单片机通信位地址对应表

表3摸屏与单片机通信字地址对应表

3 触摸屏组态软件编辑

打开触摸屏组态软件,先按上述方法设置[系统参数],光标移到[窗口/元件选择列表框],单击鼠标右键,新建一个窗口,按要求填写对话框。按确定键,出现一个编辑窗,下面以设置一个位状态显示元件(指示灯)和一个数值显示元件(数据显示窗)为例,说明触摸屏编辑的地址与单片机内的地址建立相互联系的方法。现以要显示单片机中位20H(24H.0)的状态和显示40H、41H的数值为例。把鼠标点击元件工具箱中的元件图或从菜单[元件]的选项中拖出一个位状态指示元件。并弹出位状态显示元件属性对话框。

在读取地址栏[设备类型]中选0x,[设备地址]写入17,见表2,0x17对应20H,选择适当的图形、标签、大小和位置。按确定键。对话框消失,在编辑窗口出现一个位状态显示元件L1。一旦建立了正确的通信关系,则这个位状态显示元件的不同显示状态反应了单片机中位20H状态的变化。

把鼠标点击元件工具箱中的元件图或从菜单[元件]的选项中拖出一个数值显示元件。并弹出数值显示元件属性对话框。如图3所示。

图3数值显示元件一性对话框

在读取地址栏[设备类型]中选叙,[设备地址]写入1,见表3,3xl对应40H(高位),41H(低位),选择适当的图形、标签、大小和位置。按确定键,对话框消失。

在编辑窗口出现一个数值显示元件,一旦建立了正确的通信关系,则这个数值显示元件显示单片机中位40H(高位),41H(低位)的数值。

4 MODBUS RTU(远程终端设备)通信协议简介

触摸屏与单片机通信是主从通信方式,触摸屏是主机,单片机是从机。触摸屏根据画面编辑的控件,不断发送位、字的读或写的指令。单片机不断应答指令。

本文介绍MODBUS RTU通信格式,字符帧由8个数据位,1个起始位,1个停止位,1个奇偶校验位(当不采用校验位时,则设置2个停止位)。发送或接收每个字节,必需经过一次CRC出错校验运算。运算方法详见参考文献。

一个指令帧由从机地址、功能码、数据域和CRC校验码组成。数据域由读、写位或字数据的十六位首地址(高位在前,低位在后)、十六位操作数(高位在前,低位在后)、最后为十六位CRC校验码(低位在前,高位在后)。发送或接收前后必需有大于3.5MS的延时,以示一个指令帧的开始或结束。地址码和功能码均为一个字节。

下面举例说明用MODBUS RTU通信协议的通信格式:

1)读触摸屏指定首地址0x17对应单片机中首地址20H的一个字(十六位)的位状态。

触摸屏发送通信格式:

单片机应答通信格式:

触摸屏位地址0x17对应单片机首地址24H.0,回送24H.

0~20H.7,25H.0-25H.7,十六位状态。

2)读触摸屏指定首地址4xl对应单片机中首地址40H的一个字(40H。41H)的数值。

触摸屏发送通信格式:

单片机应答通信格式:

3)将触摸屏指定地址位0x18对应单片机中21H(24H.1)位置1或清零。

触摸屏发送通信格式:

单片机应答通信格式:

表中置位命令0FF00H为置1,0000H为清零。

4)将触摸屏指定首地址4x2对应单片机中首地址42H的一个字42H,43H写入一个设定值oal64H。

触摸屏发送通信格式:

单片机应答通信格式:

用类似的方法,根据项目要求,选择控件和编辑控件属性。

建立触摸屏与单片机的地址联系,按照MODBUS协议编写单片机与触摸屏的通信程序。则可实现用触摸屏显示单片机中位状态变化,设定数值或显示数值。

打开APP精彩内容

点击阅读全文

触摸屏与单片机通讯C语言程序,讲述如何实现单片机与触摸屏的通信相关推荐

  1. 触摸屏与单片机通讯c语言程序设计,讲述如何实现单片机与触摸屏的通信

    随着触摸屏的应用和产量的增加,价格下降.因而有可能使用触摸屏作为单片机控制设备的键盘和显示装置,提高单片机控制设备的档次.触摸屏与PLC联合使用时,触摸屏的主要功能是: ①显示PLC输入,输出端13或 ...

  2. 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信.串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口. 51单片机的串口引脚为P3.0引脚与P3.1引脚 ...

  3. 51单片机温度控制C语言程序详解,基于单片机的温度控制系统设计(附程序清单及原理图).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp电子设计 基于单片机的温度控制系统设计(附程序清单及 ...

  4. 单片机光敏电阻c语言程序怎么写,STC12C5A60S2 单片机,光敏电阻,步进电机,制作寻光器,始终指向光源...

    光纤传感专业的我转行做了嵌入式软件,可是心系光学专业啊.下班回来发现个 stc 的 51 单片机最小系统,是我之前做的,好久没碰了.正好手边有两个光敏电阻,结合着步进电机,琢磨着做一个寻光器玩玩,让箭 ...

  5. 单片机 spwm c语言程序,基于STC系列单片机的SPWM波形实现

    摘要:文章在比较了多种生成SPWM波的技术基础上,给出了利用等效面积法来产生SPWM波形的工作原理,详细介绍了由单片机STCl2C5410AD的可编程计数器阵列PCA实现SPWM控制软件的编写过程,并 ...

  6. 89c51c语言程序,89C51单片机计算器C语言程序.doc

    89C51单片机计算器C语言程序 89C51单片机[计算器]C语言程序 89C51单片机[计算器]C语言程序2010-12-15 16:54/*89C51单片机[计算器]C语言程序*/ /*P2位选P ...

  7. 触摸屏与单片机通讯c语言程序设计,触摸屏与单片机的通信实现

    随着触摸屏的应用和产量的增加,价格下降.因而有可能使用触摸屏作为单片机控制设备的键盘和显示装置,提高单片机控制设备的档次.触摸屏与PLC联合使用时,触摸屏的主要功能是: ①显示PLC输入,输出端13或 ...

  8. 51单片机c语言程序执行顺序,51单片机程序执行流程详细分析

    这里是一个循环,根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去.很显然这是一个循环,那么RO的值是多少呢,在以 ...

  9. 单片机流水灯全亮c语言程序,终极流水灯单片机C语言程序.doc

    终极流水灯单片机C语言程序 #include #include #define uint unsigned int sbit beep=P2^3; void ji_ou(); void sx(); v ...

  10. 单片机红外线c语言,自己写的51单片机的红外线遥控接收程序(C语言)

    自己写的51单片机的红外线遥控接收程序(C语言) (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 //51单片机做的红外遥控实验(C ...

最新文章

  1. alexnet训练多久收敛_如何将深度学习训练速度提升一百倍?PAISoar 来了
  2. mysql不存在就批量新增_mysql批量插入,存在则修改,不存在则插入
  3. 【填坑】博客搬家造成的博客重复问题
  4. Topcoder Asia Programming Competition
  5. 线上线下同步开启安全盛宴 BCS 2020将于8月7日正式开幕
  6. linux 查看网络流量
  7. html登录注册页面验证代码,登录注册页面验证码问题
  8. 【更新于2019】SCI EI 索引最新查询方法(已验证有效)
  9. 终于,连字节、腾讯都烧不起钱了
  10. poj 1129 Channel Allocation——四色定理
  11. 工业机器人介绍及机器人学概述
  12. mysql中ceil的函数语法_MySQL ceil()函数
  13. word图文混排复制到TinyMCE图片不显示
  14. 如何自己设计一个扫码登录
  15. QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法
  16. Hyperf权限管理组件hyperf-permission发布
  17. Android大型实战:《亲信,优雅的从入门到进阶》-刘桂林-专题视频课程
  18. mysql高级查询练习题_MySQL高级查询习题
  19. 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯
  20. 字节跳动P0级事故:实习生删除GB以下所有模型,差点没上头条......

热门文章

  1. 提升效率!技术宅、学生党必备!大学四年使用的几十个高效工具都在这里了
  2. php卡盟主站_《卡盟源码秒卡购》运营级别卡盟系统源码支持API站对接站[带有SUP+商户+支持秒搭建主站]...
  3. JZOJ5946. 【NOIP2018模拟11.02】时空幻境(braid)
  4. Python:第六次全国人口普查数据分析及可视化(pandas、matplotlib)
  5. 家用智能门锁常见的开锁方式,主要有哪些?
  6. [安全防护]诺顿产品之Symantec Endpoint Protection
  7. ssh1—xshell免密登录
  8. 【Web文件上传下载】各种类型文件对应的content-type
  9. jsp九大内置对象的使用详解
  10. ICMPV6协议及NDP协议