深孔加工刀具保护系统的软件开发

2011-03-03 03:31袁海兵
湖北汽车工业学院学报 2011年2期
关键词:功能模块C语言按键

袁海兵

(湖北汽车工业学院 机械工程系,湖北 十堰 442002)

深孔加工刀具保护系统的软件开发

袁海兵

(湖北汽车工业学院 机械工程系,湖北 十堰 442002)

介绍了以PIC16F877单片机为控制器的深孔加工刀具保护系统软件的开发过程,采用CCS C语言进行开发,程序采用模块化设计,包括参数输入、LCD图形显示、EEPROM读写操作、数据采集等功能控制模块,给出了部分代码示例,对类似的嵌入式系统软件开发有参考意义。

深孔加工;刀具保护;PIC16F877单片机;软件开发

许多零件都存在深孔加工的问题,特别是细小深孔加工,加工时排屑困难,发热严重,刀具强度会降低,易于折断,折断的刀具残留在被加工零件中,导致被加工零件报废,严重影响加工质量,因此研制一种价格低廉、性能优良的深孔加工刀具保护系统就显得尤为重要,本文对一款深孔自动加工刀具过载保护系统[1],使用过程中出现的一些问题和用户要求,对系统进行改进,增加系统的稳定性,使界面更加人性化。

1 系统功能和组成

刀具保护系统能自动对深孔加工过程进行监控,在刀具主轴上安装有测力传感器,对刀具的轴向力进行监控,将检测值与设定值比较,当刀具轴向力超过设定值时,则自动停机,同时发出声光报警,系统能同时对4把刀具进行监控[1]。

刀具保护系统的控制计算机,采用美国Microchip公司生产PIC16F877单片机。PIC16F877具有8 kB FLASH ROM,256 B EEPROM,8路10 bit的A/D通道[2-3]。自带A/D功能模块,单片机可直接与传感器相连,减少了外围电路。片内256字节的EEPROM,用来保存传感器的标定数据和系统的各项设置参数。

采用图形点阵式液晶模块TM240×128作为显示器,数据显示直观,易于实现多层目录。采用3×4行列键盘作为输入设备。

系统硬件结构分为4个部分:

1)键盘输入模块:RB端口的RB1~RB7引脚组成3×4行列式键盘。

2)LCD显示模块:RD端口组成8位并行数据总线,RE端口的RE0~RE2组成控制总线。

3)采集模块:PIC16F877的RA端口的A/D通道RA0-RA3作为4路刀具轴向力采样通道。

4)电机控制和声光报警模块:采用RC端口控制。

系统组成和单片机的引脚分配如图1所示。

图1 深孔加工刀具过载保护系统组成

2 开发工具及软件结构

Microchip公司的单片机开发语言主要有 2种:一种是Microchip公司免费提供的汇编语言,特点是灵活,但开发周期长,代码不易阅读;一种是嵌入式C语言,常见的有HI-TECH C、CCS C、IAR C等,特点是易于掌握,有大量的函数库存支持。考虑到开发周期,本系统选用CCS C语言作为开发语言,CCS C语言中有大量的PIC单片机底层硬件操作函数和常用外部扩展的程序示例,带有实时操作系统RTOS,能并行运行多个任务,结合Microchip公司的Mplab IDE,方便进行程序调试和在线编程。

软件采用模块化结构设计,结构分为两部分:硬件驱动程序及应用主程序。硬件驱动子程序主要有参数输入功能模块、LCD图形显示功能模块、EEPROM读写功能模块、数据采集功能模块。主程序中调用驱动子程序,程序易于阅读和修改。

3 驱动模块的开发

3.1 参数输入功能模块

本系统采用3×4行列式键盘,分别为0~9数字按键和 “取消”、“确定”2个功能按键,采用PIC16F877单片机的RB端口中的引脚RB1~RB4构成行扫描控制线,引脚RB5~RB7构成列扫描控制线,结构如图2所示。

图2 行列键盘结构及引脚

键盘扫描子程序,对12个按键进行识别,执行相应的动作,需要对按键进行编码。数字按键0~9对应的编码依次为00H、01H、02H…09H,“取消”按键对应编码为0AH,“确认”按键编码为0BH,若无任何按键按下,为了和有效的按键编码区分开,定义一个无键按下时的返回码0ABH,在程序中通过对按键编码进行判断,从而执行不同的功能。采用软件延时的方法消除按键抖动。

在CCS C语言中包含有3×4键盘驱动程序KBD.C,在程序中采用函数kbd_init()对键盘进行初始化,由kbd_getc()可返回按键编码。

3.2 图形显示功能模块

系统中采用型号为TM240×128的图形液晶模块作为显示屏,其内置T6963C液晶控制器,具有8k显示缓冲区[4],要在液晶模块上显示汉字、字符和表格,需采用液晶控制器T6963C的控制指令,将需要显示的字符和图形以二进制的形式,写入液晶模块8k的显示缓冲区RAM中。

首先将液晶显示模块8k的显示缓冲区RAM划分为文本显示区(2kB)、图形显示区(4kB)、字符点阵CGRAM区(2kB),显示缓冲区分配如图3所示。在LCD上显示的文字数据写到文本显示缓冲区中,线条等图形数据写到图形显示缓冲区中,自定义的汉字符号点阵信息写到CGRAM区中。

图3 显示缓冲区分配

液晶控制器T6963C内部自带有字符点阵库CGROM,含有大小写英文字母、数字、常见标点符号、日文片假名等点阵数据,共128个字符,每个字符有对应的编码,应用时可直接调用字符的编码,但T6963C自带字符为8×8图形点阵,字形较小,作为控制仪表界面不易辩认,并且T6963C内部没有汉字的图形点阵库,因此软件的开发过程中,自定义16×16宋体汉字点阵,利用网络共享软件“Hzdotreader.exe”,将LCD图形界面显示所需的汉字如“刀具”、“上限值”等汉字生成相应的16×16图形点阵,以二进制数据的方式存储在CGRAM中,每个汉字占32字节空间,对于容量为2 kB的CGRAM最多可存放64(2048/32)个汉字,能够满足软件图形界面的要求,考虑到日常习惯,数字0~9采用8×16的点阵,即2位数字宽度与1个汉字的宽度相同,每个数字在CGRAM中占用16字节,数字和汉字统一编码。

为在图形LCD模块上显示刀具保护的相关数据,完成图形界面,定义以下基本函数glcd_init(mode),glcd_line(x1,y1,x2,y2),glcd_rect(x1,y1, x2,y2,fill),glcd_circle(x,y,radius),glcd_text(x, y,textptr),其中函数glcd_init对LCD的图形模式和文本模式进行切换,函数 glcd_line、glcd_rec、glcd_circle分别完成直线、矩形、圆弧的绘制,函数glcd_text在指定位置上显示文本信息。

3.3 EEPROM读写功能模块

系统中需保存设定参数,如轴向力传感器的标定数值、轴向力上限值。PIC16F877单片机具有256 B EEPROM,将设定参数保存在EEPROM中,在设备通电运行时,将EEPROM中保存的设定参数值读入到PIC16F877片内RAM中。

在软件开发中,采用CCS C语言内置函数write_eeprom(address,value)和read_eeprom(address)完成EEPROM的读写操作。对指定EEPROM存储单元的读写代码如下:

3.4 数据采集功能模块

刀具主轴上安装有测力传感器,对刀具轴向力进行在线监控,传感器输出0~5V的电压信号,采用PIC16F877单片机的RA端口的10位A/D通道转换,转换精度可达0.1%,满足系统的精度要求。

CCSC语言中有AD操作的内置函数,分别为set_adc_channel()和read_adc(),读取指定通道的A/D转换数值。在刀具轴向力数据采样过程中,为消除数值波动,采用平均滤波的方法,即采样16次,采用平均值作为有效数值,代码如下所示:

4 主程序流程和界面

图4 程序流程图

图5 刀具监控主界面

在驱动子程序的基础上,开发主程序。主程序主要由两部分组成:参数设置和实时监控,程序流程如图4所示。在程序扫描过程中,“取消”按键按下,则进入系统主界面,对系统各项参数进行设置,包括刀具轴向力上限值、轴向力传感器标定等;没有按键按下,系统自动进入刀具监控,通过与刀具轴向力上限值比较,超过上限值时则自动停止加工。

刀具监控主界面如图5所示,系统能同时显示4路通道的监控数据,主要有刀具的实时轴向力大小和上限值等,为方便操作者观察,采用进度条按比例显示,当刀具轴向力超过上限值时,进度条会明暗交替闪烁。

5 结束语

以上介绍了深孔加工刀具保护系统软件的开发过程,以PIC16F877单片机为控制器,采用CCS C语言进行开发,程序采用模块化设计,包括键盘控制、LCD图形显示、EEPROM读写控制、数据采集等功能控制模块,给出了各个模块CCSC语言的操作函数和部分代码示例,相比原有的刀具监控系统,系统更加稳定,界面友好,对类似的嵌入式系统软件开发有参考意义。

[1]邱新桥,孙海明,田玉冬,等.深孔自动加工刀具过载保护系统的研制 [J].湖北汽车工业学院学报,2002,16(1):5-9.

[2]李学海.PIC单片机实用教程—提高篇 [M].2版.北京:北京航空航天大学出版社,2007.

[3]王有绪.PIC系列单片机接口技术及应用系统设计[M].北京:北京航空航天大学出版社,2000.

[4]北京精电蓬远显示技术有限公司.内藏T6963C控制驱动器图形液晶显示模块使用手册[K].2001.

Software Development of Tool Bit Protection System for Deep Hole Processing

Yuan Haibing
(Dept.of Mechanical Engineering,Hubei Automotive Industries Institute,Shiyan 442002,China)

The software development process of tool bit protection system for the deep hole processing with MCU PIC16F877 as the controller is introduced.The language of CCS C is used for the development and the program is based on modular design including parameter input,LCD graphic display,EEPROM read/write operation,data collection and other function control modules.The parts of the code examples are provided.This study is of reference significance for the development of the similar embedded system software.

deep hole processing;tool bit protection;MCU PIC16F877;software development

TP273

A

1008-5483(2011)02-0039-04

2011-03-20

袁海兵(1977-),男,湖北红安人,硕士,主要从事测试与控制技术研究。

猜你喜欢
功能模块C语言按键
基于有限状态机的按键检测程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
基于ASP.NET标准的采购管理系统研究
一种多方向导光按键结构设计
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
功能模块的设计与应用研究
论子函数在C语言数据格式输出中的应用