基于C8051F060的手持控制器设计

2012-07-04 09:43李树军金益韩
制造业自动化 2012年15期
关键词:PC机液晶显示屏

杨 凯,李树军,金益韩,郭 鼓

(西北工业大学 机电学院,西安 710072)

0 引言

三坐标移动测试装置是一种可以使测量探头在三维空间内任意移动,并能够精确定位的机械装置,在工业及科研实验方面应用广泛。三坐标移动测试装置的控制系统由“PC机+运动控制卡+驱动器+伺服电机”组成,使用时控制台通常置于室内等距离测试现场较远的地方,如果在测试现场对装置进行控制,则需要通过手持控制器来完成。

1 总体方案设计

本文所述的手持控制器是在具体应用背景下完成,其设计要求为:能够在距离室内控制台100m的实验现场工作;能够进行移动测试装置的运动控制,包括X、Y、Z三轴正负方向选择、点动或连续运动模式选择、点动模式下0.01至10.0五种步距的选择以及连续运动时的启动停止操作;能够实时显示移动测试装置X、Y、Z三轴的位置坐标、正负方向及当前运动模式等信息。

图1 手持控制器原理图

根据设计要求,该手持控制器由电源模块、通信模块、按键输入模块及显示模块四部分组成,其原理图如图1所示。电源模块完成单片机及液晶显示屏的供电;通信模块进行单片机与PC机的数据传输;按键输入模块实现单片机对用户控制操作的响应;显示模块保证装置实时状态信息的显示。

2 硬件设计

2.1 主控制芯片选型

本控制器选用美国Silicon Laboratories 公司的C8051F060单片机作为主控芯片。该型号单片机上集成有与高速流水线结构的8051兼容的CIP-51内核,速度可达25MIPS;提供64个I/O数据端口;5个通用的16位定时/计数器;2个支持全双工异步方式,并支持多处理器通信的串行接口。芯片性能完全符合本系统的要求。

2.2 显示模块设计

移动测试装置各轴运动状态通过显示模块实时反馈给用户,手持控制器显示模块由单片机I/O端口连接LCM1601A单行16位液晶显示模块实现。该液晶显示模块内部采用KS0066作为主控制芯片,供电电压为DC5V,外接10K可调电阻调节对比度,RS、R/W、E控制端口与单片机3个I/O端口连接,8位数据端口与单片机8个I/O端口连接,实现实时位置信息的显示。其连接电路如图2所示。

2.3 通信模块设计

串行通信具有数据线少、实现方便等优点,常用的串行总线包括RS232、RS422/485、USB等。其中,RS232总线的有效距离为15m,RS422总线的有效距离可达1200m,USB的有效距离仅有5m,而该手持控制器要求的通信距离至少为100m,所以采用RS422总线进行通信。由于PC机集成有RS232串行接口,因此采用RS422/RS232转换器进行接口转换,从而实现远距离的串行通信。

图2 液晶显示屏控制电路

C8051F060内部集成有通用串行接口UART0,手持控制器工作时,通过UART0接收和发送数据。由于UART0采用的是TTL信号,因此采用接口芯片MAX3488完成TTL信号和RS422使用的差分信号之间的转换。MAX3488芯片支持全双工通信,最高传输速率可达250kbps,采用DC3.3V供电,其应用电路如图3所示。MAX3488输出的差分信号经RS422/RS232转换器UT-503转换成RS232信号,由PC机接收。经测试,该方法有效实现了手持控制器与PC机的远距离通信。

2.4 按键输入模块设计

按键输入模块需要满足使用者对移动测试装置三个轴共36种运动情况的控制。手持控制器设计有13个按键,这些按键组成矩阵式键盘,使用动态扫描的方式进行识别,提高了单片机I/O端口的使用效率。由于动态扫描速度较快,单片机会对一次按键按下执行多次重复响应,设计中采用了软件判断和延时,消除了按键机械抖动,确保了CPU对按键的一次闭合仅作一次处理。

图3 串行模块电路图

2.5 电源模块设计

手持控制器中需要用到DC5V和DC3.3V分别为液晶显示模块和单片机、MAX3488芯片及指示灯供电。设计时,利用RS232串口的1、2号针脚引入DC24V,通过DC-DC模块电源WRB2405CS-3W实现DC24V向DC5V的转换,如图4(a)所示,再通过三段线性稳压器AZ1117-3.3进行DC5V向DC3.3V的转换,如图4(b)所示,可满足手持控制器内部所有的供电需求。

图4 手持控制器供电电路

3 软件设计

3.1 软件流程

手持控制器的软件部分包括主程序以及按键扫描、液晶屏显示和串口通信等子程序。单片机的编程通过IDE软件开发环境,使用C语言完成。手持控制器程序与PC机程序之间定义了控制信息的字符协议,如表1所示,其中点动模式下分五种不同的步距。

按下电源开关按钮,主程序开始执行,各寄存器、I/O端口以及串行通信口将被初始化,液晶显示屏显示欢迎界面。初始化完成后,按键扫描子程序开始扫描X、Y、Z三个键是否被按下,如果按下则表示该轴被选中,单片机将发送请求该轴位置的指令给PC机,同时等待接收并存储接收到的信息,完成后再将该轴轴代号及位置信息输出到液晶显示屏显示。

表1 手持控制器与PC机的控制字符协议

如果某一个轴当前位置需要调整,用户可通过按键选择运动方向,继而选择点动或者连续运动方式。当选择点动方式运行时,有0.01mm、0.05mm、0.1mm、1.0mm、10.0mm五种步距可供选择,如选择X轴正向点动0.01mm,单片机即发送相应的命令给PC机,PC机接收后即调用相关运动程序驱动X轴正向移动0.01mm,同时将X轴最新的位置信息反馈给手持控制器,单片机接收到位置信息后再通过液晶显示屏显示,实现了位置信息的即时更新。当选择连续方式运行时,单片机发送相应的命令给上位软件即可控制该轴连续运动,期间手持控制器每隔50ms请求该轴位置,接收到位置信息后通过液晶显示屏显示,实现位置的即时更新。连续运动过程中,程序不断扫描停止按键是否被按下,若停止键按下,即发送停止命令给PC机控制该轴停止运动,程序返回主程序,进行扫描X、Y、Z按键步骤,不断循环。软件流程图如图5所示。

3.2 串口模块程序设计

手持控制器的串口通信模块完成单片机和PC机之间的双向通信,单片机向PC机发送运动控制指令,同时接收由PC机发送的实时位置等信息。手持控制器使用单片机自带的串行口UART0,通过串行控制寄存器SCON0和串行数据缓冲器SBUF0来实现UART0的控制和访问。读操作时,CPU通过判断接收标志位RI0的值判断一个字符是否接受完成,继而循环访问SBUF0中暂存的各字符信息,存入指定数组中,直至接收完成。写操作时,CPU直接通过循环将单个字符信息逐一写入缓冲器SBUF0中,单片机自动将信息通过串口发出。

图5 软件流程图

PC机的串口通信通过VC++6.0中的Microsoft Communications Control(version6.0)控件实现,该控件可以直接设置串口相关的属性,如串口号、波特率、校验位、数据位、停止位等。MSComm控件加入到工程后,会自动获得一个MSComm通信类CMSComm,在MSCOMMDlg的主框架中,通过m_Comm.SetPortOpen(TRUE)函数打开串口,m_Comm.GetCommEvent()函数接收手持控制器发送的对各个轴的控制信息,m_Comm.SetOutput()函数反馈给手持控制器各轴的实时位置信息,最后通过 m_Comm.SetPortOpen(FALSE)关闭串口。

3.3 液晶屏显示程序设计

LCM1601A液晶显示屏有11个引脚和单片机I/O端口连接,通过LCD_RS、LCD_RW、LCD_E三个标志位控制液晶显示屏使能、指令或数据操作、读或写操作,这三个标志位通过LCD_command()函数设置,从而实现显示屏模式设置。数据操作时,通过LCD_data()函数操作DB0-DB7八位数据端,最终实现液晶显示屏显示实时位置信息。

4 结束语

应用C8051F060单片机设计了对三维移动测试装置进行远距离控制的手持控制器,该控制器通过RS422串口与PC机通信,实现对三个运动轴在正负方向上以点动或连续的36种运动情况进行控制,同时能够通过液晶显示屏显示各轴实时位置信息。经试制和试验,该手持控制器完全满足用户需求,具有一定的通用性和实用推广性。手持控制器实物图如图6所示。

图6 手持控制器实物图

[1] 潘琢金.C8051F060/1/2/3/4/5/6/7混合信号ISP FLASH微控制器数据手册[M].深圳: 新华龙电子有限公司, 2004.

[2] 张培仁, 孙力.基于C语言C8051F系列微控制器原理与应用[M].北京: 清华大学出版社, 2007.

[3] 谭浩强.C程序设计(第二版)[M].北京: 清华大学出版社,1999.

[4] 沈孝芹, 张蔚波, 于复生, 陈继文, 魏志国.三自由度机械手手持盒的研制[J].仪器仪表学报, 2008, 29(4): 545-546.

[5] 姜恒, 李树军, 徐永新.基于C8051F060的高速凸轮测试系统设计[J].制造业自动化, 2011, 8(下): 37-43.

[6] 安永如, 黎海文, 吴一辉, 宣明.基于C8051F060的微型生化分析仪高速数据采集系统[J].光电子技术, 2007, 27(3):166-173.

猜你喜欢
PC机液晶显示屏
一块布就是一个显示屏?
不可压液晶方程组的Serrin解
一种USB接口字符液晶控制器设计
2018年智能手表显示屏出货量同比增长42%
苍蝇迷恋显示屏
LG申请欧盟商标 或布局MicroLED显示屏
废旧液晶六屏显示改造项目的设计与实现
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
基于单片机与PC机的电气量采集系统设计