《十字工作台控制系统设计——毕业设计论文.doc》由会员分享,可在线阅读,更多相关《十字工作台控制系统设计——毕业设计论文.doc(59页珍藏版)》请在三一办公上搜索。
1、 毕业设计论文题 目:十字工作台控制系统设计学 号:姓 名:班 级:专 业:机械设计制造及其自动化指导教师:学 院:机械工程学院摘 要介绍了十字工作台控制系统的设计。以51单片机为基础设计出能够实现对十字工作台的手摇脉冲发生器操作,点动操作,直线插补,在线示教,位置和速度实时显示,输入点掉电记忆等功能。该控制系统硬件电路主要由STC89C52RC单片机,晶振电路、复位电路、蜂鸣器、键盘、12864液晶、步进电机等组成。本次设计完成了软件的设计,PCB板的设计,以及电路的连接。经最终联机调试,基本达到了所需设计要求。关键词:单片机;步进电机;矩阵键盘;液晶显示AbstractThis artic
2、le introduces the Design of Control System for Cross Worktable,aiming to achieve Manual Pulse Generator and inching operation,line interpolation,on-line teaching,the real-time display of position and speed,remember the state and parameter when lose of power supply at enter point,based on 51 Single C
3、hip.The hard-ware electric circuit Of system is composed of STC89C52RC SCP,Crystal Oscillator Circuit,Reset Circuit, buzzer, keyboard,12864 LCD and magnetic stepper motor.This design accomplish software and PCB design, electrical connection,which meets the requirement of design according to the ulti
4、mate on-line debug. Key words: 51 Single Chip; stepper motor ; keyboard ; LCD 目 录摘 要IAbstractII目 录III第 1 章 绪论1第 2 章 控制系统总体设计方案32.1 技术指标及特点32.2十字工作台控制系统设计方案与论证32.3解决的主要问题6第 3 章 控制系统硬件电路设计73.1 单片机最小系统电路73.2 端口分配83.3 矩阵按键电路设计83.4 液晶电路103.5 步进电机驱动模块电路设计103.6 行程开关电路113.7 手摇脉冲发生器电路123.9 蜂鸣器电路12第 4 章 系统的软件
5、设计与分析134.1 主程序134.2 4*4矩形按键扫描程序154.3液晶驱动及初始化程序184.4手摇状态脉冲发射控制子程序204.5 EEPROM掉电保护程序214.6蜂鸣器程序234.7 中断服务程序23第 5 章 制作调试与结果分析255.1调试255.2结果分析25总 结28参考文献29谢 辞31附 件32附录1 原理图33附录2 PCB图34附录3 实物图35附录4控制面板布线与效果图36附录5元器件清单37附录6控制系统使用说明书38附录7源代码40 第 1 章 绪论随着科学技术的发展,机械加工的方法和手段逐渐丰富多样起来各种先进技术被人们引入机械加工行业,形成各种新兴学科。机
6、电一体化就是其中一门比较在核心的学科。机电一体化是以电子技术,特别是微电子技术为基础、多种新兴技术与机械技术交叉、融合而形成的综合性高科技技术,是机械和电子的有机结合产物。其目的是不断提高劳动生产率,减轻人们的体力劳动,甚至代替部分脑力劳动。机械一体化的机械加工较传统机械加工有很大的优越性。数控机床就是这一学科的典型代表。而本设计所涉及的十字工作台对于数控机床加工能够实现高速、精密、复合、智能和绿色起着决定性的作用。自从美国发明家约翰帕森斯发明数控机床,随着电子信息技术的发展,世界机床业已经进入了以数字化制造技术为核心的机电一体化时代,其中数控机床就是这一时代的最具代表的产品。它为国民经济各个
7、部门提供装备和手段,具有无限放大的经济和社会效应。数控机床是机械制造行业的主要装备,而机械制造业是整个工业和国民经济的基石,因此数控机床的拥有量及其技术水平的高低,代表了当前数控技术的性能、水平和发展方向,已经成为衡量一个国家机械制造水平的重要标志(目前,在我国金属切削机床的数控化率还不到20%,总数控比率仅为2%左右;而美国等工业化国家的数控化率已经达到80%以上,总数控比率平均水平为25%)。欧、美、日等工业化国家已先后完成了数控机床的产业化进程,而我国数控业起步于20世纪80年代,现在仍处于发展阶段。数控机床以其精度高、效率高、能适应小批量多品种复杂零件的加工等优点。概括起来,采用数控机
8、床加工有以下几方面的特点:1.柔性强。数控机床上改变加工零件时,只需要重新编制程序,输入新的程序后就能实现对新零件的加工;而不需要改变机械部分和控制部分的硬件,且生产过程是自动完成的。2.精度高,质量稳定。数控机床是按数字形式给出的指令加工的,一般情况下,工作过程中不需要人工干预,这就消除了操作者人为产生的误差。3.生产效率高。数控机床主轴的转速和进给量的变化范围比普通机床大,因此数控机床每一道工序都可选用最有利的切削用量。由于数控机床结构刚性好,因此允许进行大切削用量的强力切削,这就提高了数控机床的切削效率,节省了机动时间。数控机床的移动部件空行程时运动速度快,工件装夹时间短,刀具可自动更换
9、,辅助时间比一般机床大为减少。在加工中心机床上加工时,一台机床实现了多道工序的连续加工,生产效率的提高更为显著。4.能实现复杂的运动。普通机床难以实现或无法实现轨迹为三次以上的曲线或曲面的运动,而数控机床则可实现几乎是任意轨迹的运动和加工任何形状的空间曲面,适应于复杂异形零件的加工。5.良好的经济效益。数控机床虽然设备昂贵,加工时分摊到每个零件上的设备折旧费较高。但在单件、小批量生产的情况下,使用数控机床加工可节省画线工时,减少调整、加工和检验时间,节省直接生产费用。数控机床加工零件一般不需制作专用夹具,节省了工艺装备费用。加工精度稳定,减少了废品率,使生产成本进一步下降。此外,数控机床可实现
10、一机多用,节省厂房面积和建厂投资。因此使用数控机床可获得良好的经济效益。6.有利于生产管理的现代化。数控机床使用数字信息与标准代码处理、传递信息,特别是在数控机床上使用计算机控制,为计算机辅助设计、制造及管理一体化奠定了基础。高速、精密、复合、智能和绿色是数控机床发展的总趋势。近年来,在实用化和产业化等方面取得可喜的成就。主要表现在:1.机床复合技术进一步发展。随着数控机床技术的进步,复合加工技术日趋完善,包括铣-车复合、车-镗-钻-齿轮加工等复合,车磨复合,成形复合加工、特种复合加工等。复合加工的精度和效率大大提高。2.数控机床的智能化技术有新的突破,在数控系统的性能上得到较多体现。3.机器
11、人使柔性化组合效率更高。机器人与主机的柔性化组合得到广泛应用,使得柔性线更加灵活、功能进一步扩展、柔性线进一步缩短、效率更高。4.精密化加工技术取得最新发展。数控金属切削机床的加工精度已由原来的丝级提升到现在的微米级,有些品种已达到0.05m左右。超精密数控机床的微细切削和磨削加工,精度可稳定达到0.05m左右,形状精度可达0.01m左右。5.功能部件的性能不断提高。功能部件不断向高速度、高精度、大功率和智能化发展。并取得了较为成熟的应用。第 2 章 控制系统总体设计方案2.1 技术指标及特点本系统选用8位单片机STC89C51作为主控芯片,原理图如图2.1.1所示。它是一个低电压、高性能的C
12、MOS 8位微处理器,与工业标准的MCS-51指令集和输出管脚相兼容。同时由于将多功能8位CPU和EEPROM组合在单个芯片中,不需扩展程序存储器和数据存储器,进一步简化了电路。设计一个十字工作台控制系统,以AT89C52RC单片机作为控制核心,实现对数控系统中十字工作台的控制系统设计。控制系统的最主要功能是对十字工作台进行控制,此外还需实现以下功能:1)能够实现工作台的点动控制;(步进电机控制)2)手摇脉冲发生器控制操作;(两个档位可选,速度倍率*1、*10、*100)3)能够实现给定终点的工作台直线插补,加工精度为0.01mm;4)具有在线示教功能;5)工作台位置和速度的实时显示(1286
13、4显示);6)工作台尺寸为80*60、工件要求为不超过30*20;7)能够存储数据方便掉电后,重启记忆。2.2十字工作台控制系统设计方案与论证2.2.1 设计方案的选择十字工作台控制系统的总体设计方案,根据要实现的功能特点,本次设计主要用到以下模块:中断服务、电机驱动、手摇脉冲发生器、矩阵键盘、EEPROM掉电保护、液晶显示系统工作状态功能,硬件上采用STC89C52RC、12864液晶显示器、4*4矩阵键盘、晶振11.0592MHZ、行程开关、步进电机、手摇脉冲发生器、蜂鸣器等。本系统选用了STC89C52RC单片机,此设计是利用单片机对步进电机运行、停止控制。用12864液晶实现当前坐标、
14、运行速度、系统状态等的显示,采用按键扫描方式获取键值,并经相应处理程序对获取的键值进行必要处理,实现对两个轴的电机,四种工作状态和相应启动方式的控制。STC89C52RC单片机是STC推出的新一代高速/低功耗/超强抗干扰的单片机。指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。系统要求具有丰富语言提示的液晶屏显示画面,经多方对比参考,最终确定使用12864带有中文字库的液晶显示器。经查阅大量的相关资料及使用说明书,其可显示汉字及图形,内置8192个中文汉字(16*16点阵)、128个字符(8*16点阵)及64*256点阵显示RAM(GDRAM)。完全满足本
15、系统的设计和使用需要。利用这些资源完成的十字工作台具有以下功能:1.液晶屏显示功能:显示工作台的工作方式、工作台所处位置、输入数据显示、存储数据显示、运行时运行速度显示以及必要的提示语的显示等等;2.4*4矩阵按键式键盘操作面板,具有机床所需运行状态选择及确认、输入数据、点动运行、查询数据、运行确认等功能;3.实时更新机床当前所处位置,利用中断刷新、触发中断定时发射驱动步进电机运动所需脉冲、手摇脉冲发生器触发外部中断驱动电机等;4.具有坐标值记忆功能,单片机内EEPROM能实时保存当前工作台的位置和必要的点存储后下次可继续用;5.当键盘按下以及工作台移动停止时利用蜂鸣器发声给予操作者一定提示。
16、由于步进电动机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,转动精度较高,所以一直被认为是最理想的数控机床执行元件,因此本设计选择了步进电机做为工作台的动力源。步进电机如图2.1所示。图2.1 步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机
17、转动的速度和加速度,从而达到调速的目的。 综上所述,根据设备具体使用情况,本设计选择86BYG250-65混合式步进电动机作为十字工作台的驱动。该电机的运行速度、方向控制是通过发送脉冲的频率和方向脉冲电平的高低来控制的。本方案是采用单片机控制来实现电动机对十字工作台的控制系统设计,其电路简单、人机界面友好、功能齐全、集成度好、智能化程度高。2.2.2 设计方案的论证实现过程中采用中断服务、电机驱动、手摇脉冲发生器、矩阵键盘、EEPROM掉电保护、液晶显示系统工作状态功能,硬件上采用STC89C52RC、12864液晶显示器、4*4矩阵键盘、晶振11.0592MHZ、行程开关、步进电机、手摇脉冲
18、发生器、蜂鸣器等。本次设计使用STC89C52RC 单片机完成此次设计,工作频率范围为040MHz,工作电压3.3V5.5V,有512字节的RAM和8K字节的用户应用程序空间,有32个可编程I/O口,2通道8位定时/计数器,2通道16位定时/计数器。STC89C52RC 是一种带4K 字节FLASH 存储器的低电压、高性能CMOS 8位微处理器。STC89C52RC 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。此款单片机与MCS-51 兼容,含有32个可编程I/O 线,两个16 位定时/计数器,5个中断源,可编程串行通道,为实现上述功能提供了大量硬件。在本系统中使用到的芯片都是符
19、合设计要求的,而且使用的芯片都是实用且经济。像STC89C52RC 本身就具EEPROM,这些都符合设计需求,省去了很多麻烦。还有LED液晶显示器,体积小、微功耗、显示内容丰富超薄轻巧等优点,在很多场合得到运用。在校期间学习了VB、C语言等编程语言,同时也学习了基于STC89C52RC的单片机编程方法和技巧,现已能独立进行编程、调试等相关工作。在参考了各种相关书籍及网上的一些资料后,做好了电路图。经过仿真,达到了预期结果,说明该设计方案是合理且可行的。如图2.2 所示为数控系统中整体效果图。图2.2 十字工作台整体效果图采用水平式机架机构和单片机控制系统,可提高生产效率, 加工质量稳定、精度高
20、, 操作维护方便。2.3解决的主要问题1. 硬件部分:设计硬件电路并对硬件电路进行排版。硬件电路主要包括,单片机芯片插座、单片机最小系统、蜂鸣器电路、4*4矩阵按键、液晶插座、步进电机驱动器插座、行程开关插座、手摇脉冲发生器插座等。2)确认并购买各硬件电路模块所需元器件。3)焊接硬件电路并检测硬件电路的连接情况。2软件部分:1)系统需要1个状态切换键,11个数据输入键以及4个功能键,所以设计4*4矩阵按键,如有实际需要可用4*5矩阵按键;2)系统设计液晶屏上能显示工作台的工作方式、工作台所处位置、输入数据显示、存储数据显示、运行时运行速度显示以及必要的提示语的显示,液晶显示是一个重要模块。3)
21、电机的定位精度是本设计的以个重要环节,设计的好坏完全取决于电机移动的精度。4)在系统上电后,液晶显示上显示上次掉电后工作台的位置和查询状态可查询储存的点,这需要软件部分有断电保护功能,本文考虑使用单片机自带的EEPROM进行断电保护。5)设计四种工作模式,即手摇脉冲发生器方式、点动方式、输入方式和查询方式,这需要三种电机驱动方式即外部中断触发、点动触发和插补方式。6)实时显示当前工作台位置及速度。第 3 章 控制系统硬件电路设计根据上述分析的设计方案,本系统主要设计和使用了矩阵按键电路模块蜂鸣器报警电路模块数码管显示电路模块、电机驱动电路模块以及电气控制线路模块。下面就这五个模块的设计分别论述
22、。3.1 单片机最小系统电路STC89C52RC单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、I/O接口、EEPROM、看门狗等模块。STC89C52RC单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上是一个片上系统。考虑到本次设计上电复位后单片机需从内部开始执行程序,因此将EA管脚外部上拉到Vcc。其最小系统主要包括复位电路、振荡电路以及存储器选择模式(EA脚的高低电平选择)。如图3.1所示为单片机最小系统电路。图3.1 单片机最小系统3.2 端口分配为合理利用单片机的端口资源,并且兼顾程序设计的便利,将系统的输出
23、和输入端口作如表3.1 所示硬件说明。 表3.1 STC89C52主要管脚功能单片机端口外围接口电路硬件模块P0.0-P0.3行程开关电路模块P0.4-P0.7控制步进电机电路模块P1.0-P1.74*4矩阵按键电路模块P2.0-P2.3,P2.512864液晶电路模块P3.0-P3.5,P3.7手摇脉冲发生器电路模块P3.6蜂鸣器电路模块3.3 矩阵按键电路设计按键是最常用的单片机输入设备,操作人员可以通过按键输入数据或命令,实现简单的人机交互。本系统采用4*4矩阵按键,电路如图3.2 所示。图中的四条行线和四条列线可分别接入P1.0P1.3和P1.4P1.7的端口,该端口各位都上拉一个1k
24、的电阻。图3.2 矩阵按键电路4*4矩形按键在控制面板的效果图,详见附录4 控制面板布线与效果图,如表3.2 所示,本系统设置了16个按键,采用按键扫描方式处理,其功能如下:表3.2 按键功能表123X456Y789取消状态切换0.确定说明:1键在输入状态时为输入数据1;2键在点动状态时为X轴正向,在查询状态时为查询本组上一个数据;3键在输入状态时为输入数据3;4键在点动状态时为Y轴正向,在查询状态时为查询上一组数据;5键在输入状态时为输入数据5;6键在点动状态时为Y轴负向,在查询状态时为查询下一组数据;7键在输入状态时为输入数据7;8键在点动状态时为X轴负向,在查询状态时为查询本组下一个数据
25、;9键在输入状态时为输入数据9;0键在输入状态时为输入数据0;X键在切换状态时为切换到手摇状态,在查询状态时清零选中点;Y键在切换状态时为切换到点动状态,在查询状态时更新选中点数据;取消键在切换状态时为切换到输入状态,在查询状态时运行选中点;确定键在切换状态时为切换到查询状态,在查询状态时运行选中点所在组的所有点。3.4 液晶电路FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有简体中文字库的点阵图形液晶显示模块;其显示分辨率128*64,内置8192个16*16点汉字,和128个16*8点ASCII字符集,利用该模块灵活的接口方式和简单、方便的操作指令
26、,可构成全中文人际交互图形界面。为了节省硬件接口资源本设计选用串行接口方式进行数据交互,它与单片机的接口如图3.3 所示。图3.3 FYD12864-0402B液晶接口电路图3.5 步进电机驱动模块电路设计本系统采用两个分别移动工作台X轴和Y轴的86BYG250-65两相混合式步进电机,配套使用的步进电机驱动器是由美国SHAPHON公司与北京斯达特机电科技发展有限公司联合推出的SH-2H057。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,当步进电机驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向移动一个固定的角度。可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的
27、。其接线方式如图3.4所示:图3.4 步进电机及驱动器电路接线方法SH-2H057的使用方法是:通过拨位开关设定细分数为32,设定电机的相电流为3A。控制系统提供给驱动器的信号主要有以下两路:步进脉冲信号CP,驱动器每接收一个脉冲信号CP,就驱动步进电机转一步距角,CP的频率和步进电机的转速成正比,CP的脉冲个数决定了定子步进电机旋转的角度,这样控制系统通过脉冲信号就可以达到电机调速和定位的目的;方向电平信号DIR,此信号决定电机的旋转方向。此信号为高电平时电机为顺时针旋转,为低电平时电机反转。驱动器与单片机引脚的接线方式为P0.4和P0.5口分别接控制X轴驱动器的脉冲和方向,P0.6和P0.
28、7口分别接控制Y轴驱动器的脉冲和方向。3.6 行程开关电路如图3.5所示,本系统采用4个行程开关分别分别控制X轴Y轴的最大和最小位移。图3.5 行程开关接线图当工作台运动时触碰到行程开关的位置,工作台就会停止运行,此时说明工作台将要超出工作范围。3.7 手摇脉冲发生器电路如图3.6 所示,本系统采用手摇脉冲发生器以达到手轮控制工作台位移的方式。图3.6手摇脉冲发生器接线图本系统所采用的手摇脉冲发生器,共有两个档位供选择分别为X轴和Y轴,另外还有三种倍率供实际使用时选择。3.9 蜂鸣器电路如图3.7 所示的蜂鸣器电路。图3.7 蜂鸣器接线图1)总体原理:不同的音符,实质就是不同频率的声音。通过单
29、片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器发出。2)单片机产生不同频率脉冲信号的原理:要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O 反相,然后重复计时此半周期的时间再对I/O 反相,就可以在I/O 脚上得到此频率的脉冲。利用89C51的内部定时器使其工作在计数器模式MODE1 下,改变计数值TH0 及TL0 以产生不同频率。第 4 章 系统的软件设计与分析4.1 主程序十字工作台控制系统的程序流程图如图4.1 所示。该控制器软件的设计采用模块化架构,其软件部分主要包括主程序、
30、按键扫描子程序、x轴脉冲发射子程序、y轴脉冲发射子程序、手摇状态脉冲发射控制子程序、更新EEPROM数据子程序、将数值数据转换成字符数据的子程序、处理运行插补的子程序、液晶显示子程序、中断服务程序以及EEPROM 掉电保护子程序等。当接通电源后,芯片开始工作,内部程序先是初始化,并输出显示上一次断电后X轴及Y轴的坐标及此时系统所处状态。然后系统不断的扫描键盘,判断是否有按键按下,若有按键按下则去键值。所取键值为3,程序将转入手摇子程序进行相应的处理;所取键值为7,程序将转入点动子程序进行相应的处理;所取键值为11,程序将转入输入子程序进行相应的处理;所取键值为15,程序将转入查询子程序进行相应
31、的处理。若键值不为3、7、11、15中的任何一个或进入相应子程序后从该子程序中退出,程序将回到主程序的循环扫描按键阶段。图4.1 主程序流程图鉴于本次设计所用到的状态相对较多,为了便于明确直观表达各状态之间的状态转换关系图4.2给出了系统状态转移关系。图4.2状态转移关系图具体的程序为:void main()TMOD=0x11;TH0=(65536-1000)/256 ;TL0=(65536-1000)%256;TH1=(65536-timer)/256; TL1=(65536-timer)%256;EA=1; ET0=1;TR0=1; ET1=1; IT0=1; PT1=1;xjiyi=xz
32、uobiao=Byte_Read(0x2000)*256+Byte_Read(0x2001);yjiyi=yzuobiao=Byte_Read(0x2002)*256+Byte_Read(0x2003);for(i=0;i4;i+) for(j=0;j10;j+) xeepromij=Byte_Read(0x2000+eepromzui+eepromgej)*256+Byte_Read(0x2001+eepromzui+eepromgej); yeepromij=Byte_Read(0x2100+eepromzui+eepromgej)*256+Byte_Read(0x2101+eepromz
33、ui+eepromgej); lcdinit();while(1) if(key=3)&(zhuangtai=0) zhuangtai=1; if(key=7)&(zhuangtai=0) zhuangtai=2;if(key=11)&(zhuangtai=0) zhuangtai=3;if(key=11)&(zhuangtai=0) zhuangtai=4; 4.2 4*4矩形按键扫描程序矩形键盘扫描子程序流程图如图4.3 所示。键盘扫描子程序用于完成按键的判断、按键的去抖动以及按键的键值处理、存储,其中调用了键盘处理子程序,按键的键值分别在定时器0中断程序和主程序程序中处理。图4.3 矩形
34、键盘扫描程序流程图由于本次设计所需运行状态相对较多(分别为手摇状态,点动状态,输入状态,查询状态)故所需按键数量也要相应增多,但是考虑到要尽可能节省硬件资源的使用,因此本次设计采用了一键多用的键盘复合使用的方式具体用法如下所述:本设计单独设置了S12键为状态切换键,当运行需要从一种运行状态切换到另一种运行状态时(如由手摇状态切换到输入状态),需先按下状态切换键S12然后再按下所设定的相应状态的按键(如按下输入状态所对应的S11键)系统就会转入所对应状态的工作方式。状态切换键的主要功能是将状态进行复位,无论当前在何种状态下工作,状态切换键被按下都会停止运行。状态切换键被按下后,操作人员就要根据需
35、要按下所需状态键。本设计设置S3、S7、S11和S15分别为手摇状态、点动状态、输入状态和查询状态。下面分别讲述在不同工作状态下按键的功能。手摇状态:当系统处于手摇状态,除状态切换键S12以外其他按键被按下都不会有任何作用,在此状态下需要用手摇脉冲发生器来对工作台进行控制。点动状态:当系统处于点动状态,按住S1、S9、S4或S6不放十字工作台将会沿X正、X负、Y正或Y负方向运动直至按键被松开,如果状态切换键S12被按下就会跳出点动状态。除以上5键以外其他按键被按下都不会有任何作用。输入状态:在输入状态下,用户先要选择所要输入数据所对应的轴,如需输入数据到X轴则需按下S3键,输入数据到Y轴则按下
36、S7键。选择好了输入轴后可输入数据到所选轴。输入数据中根据数值排列0、1、2、3、4、5、6、7、8、9分别对应S13键、S0键、S1键、S2键、S4键、S5键、S6键、S8键、S9键、S10键。当所需数据输入完毕,经确认无误后按下S15键工作台将开始运行直到到达所输入的位置,同样状态切换键S12被按下也会跳出输入状态。查询状态:查询状态下,首先需要选择以前存储过的点。本系统设置了四组,每组10个点(共40点)供用户使用。S1和S9分别为选择点时的上一点和下一点的选择键,而S4和S9分别为上一组和下一组点的选择键。当用户选择好相应的点后S3、S7、S11、S15分别可以对选择好的点进行清零、更
37、改、运行、运行当前指定点所在组从第一点运行到当前点的操作。更改键被按下用户需要根据提示选择更改轴S3和S7分别对应X轴和Y轴,同输入状态时数值所对应按键一样的排列,用户可输入所需数据。数据更改好后按下S15进行确认。注意:查询状态下所有的点都是储存在单片机片内EEPROM中的,掉电后不会丢失数据。按键扫描及其处理的具体程序如下:unsigned char code key_code=0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;bit flag;unsigned char keyc
38、heck()unsigned char scan1,scan2,keycode,j,keys;P1=0xf0; scan1=P1;if(scan1&0xf0)!=0xf0)if(flag=0) flag=1;if(flag=1) P1=0x0f; /线反转法的核心scan2=P1; keycode=scan1|scan2; /组合成键编码for(j=0;j=15;j+)if(keycode= key_codej) /查表得键值keys=j; flag=0; else P1=0xff; flag=0; keys=16;return keys;4.3液晶驱动及初始化程序本系统所采用的液晶是FYD1
39、2864-0402B液晶。本液晶有两种工作方式,分别为并行接口工作方式和串行接口工作方式。并行接口工作方式优点是数据传送速率较快,但是所需硬件接口较多(20个);串行接口工作方式虽然数据传送速率相对较慢,但是节省单片机I/O口(11个)。综合考虑本设计需求最终决定采用串行接口的方式连接液晶和单片机。串行接口工作方式所用引脚说明如表4.1所示:表4.1 液晶串行模式引脚说明引脚号名称电平功能说明1Vss0V电源负极2VDD+5V电源正极3V0-对比度调节4CSH/L片选端,高电平有效5SIDH/L串行数据输入端6CLKH/L穿行同步时钟15PSBH/LPSB=H,并行模式;PSB=L,串行模式1
40、7/RESETH/L复位端,低电平有效19A+5V背光电源正极20K0V背光电源负极串行接口时序图如图4.4所示图4.4 串行接口时序图具体程序为:sbit CS=P20;/片选 高电平有效 单片LCD使用时可固定高电平sbit SID=P21;/数据sbit SCLK=P22;/时钟sbit PSB=P23;/低电平时表示用串口驱动,可固定低电平void write(bit start, unsigned char ddata) /写指令或数据 unsigned char start_data,Hdata,Ldata; if(start=0) start_data=0xf8; /写指令 el
41、se start_data=0xfa; /写数据 Hdata=ddata&0xf0; /取高四位 Ldata=(ddata4)&0xf0; /取低四位 sendbyte(start_data); /发送起始信号 delaynms(5); /延时是必须的 sendbyte(Hdata); /发送高四位 delaynms(1); /延时是必须的 sendbyte(Ldata); /发送低四位 delaynms(1); /延时是必须的void sendbyte(unsigned char bbyte) /发送一个字节 unsigned char i; for(i=0;i8;i+) SID=bbyte
42、&0x80; /取出最高位 SCLK=1; SCLK=0; bbyte=1; /左移 void delaynms(unsigned int di) /延时 unsigned int da,db; for(da=0;dadi;da+) for(db=0;db10;db+);void lcdinit(void)/初始化LCD delaynms(10); /启动等待,等LCM讲入工作状态 PSB=0; ; /串口驱动模式 CS=1; write(0,0x30); /8 位介面,基本指令集 write(0,0x0c); /显示打开,光标关,反白关 write(0,0x01); /清屏,将DDRAM的地
43、址计数器归零 4.4手摇状态脉冲发射控制子程序本系统需要有手摇脉冲发生器对工作台进行相应的工作方式。手摇脉冲发生器是通过其内置的编码器将转角信号转换成脉冲序列信号。为达到控制系统对其鉴相和脉冲计数的要求,手摇脉冲发生器一般会有以差分信号形式输出的A、B两相(A,B两相相位始终相差90)。当脉冲发生器被转动时会产生脉冲,并且脉冲序列的频率与摇动的角速度成正比。控制系统结合控制面板上的“倍率”档,以摇动产生的脉冲数和倍率的乘积作为总的脉冲数输出到“坐标”档所对应的步进电机中。本设计使用单片机的INT0引脚与脉冲发生器的的A相信号相连,并设置该信号的每一个下降沿触发INT0中断,进入INT0中断后,
44、做的第一件事就是判断B相的电平。如果此时B相为高电平则说明B相超前A相90此时给相应轴的方向信号为正转,反之则给相应轴的方向信号为反转。之后根据控制面板上所选择的“倍率”和“坐标轴”向相应电机发射脉冲。图4.5 所示为其流程图。图4.5 手摇脉冲发生器流程图具体程序为:void shouyao() uchar i;if(dangwei=1) for(i=0;ibl;i+) xmaichong();else if(dangwei=2) for(i=0;ibl;i+) ymaichong();4.5 EEPROM掉电保护程序本次设计需要存储一些数据,这些数据在系统掉电后重新启动依然能供用户参考。需
45、要掉电存储的数据包括X,Y的当前坐标,以及查询状态下被用户存储过的数据。经查阅资料,STC89C52RC单片机内部提供了掉电记忆的EEPROM供用户存储需要的数据。该型号单片机内部含有4K字节的EEPROM分为8个扇区,起始扇区首地址为2000h结束扇区末尾地址为2FFFh。表4.2所示为EEPROM详细地址表。表4.2 STC89C52RC单片机内部EEPROM详细地址表第一扇区第二扇区第三扇区第四扇区每个扇区512个字节,建议同一次修改的数据放在同一个扇区,不是同一次修改的放在不同扇区起始结束起始结束起始结束起始结束2000h21FFh2200h23FFh2400h25FFh2600h27FFh第五扇区第六扇区第七扇区第八扇区起始结束起始结束起始结束起始结束2800h29FFh2A00h2BFFh2C00h2DFFh2E00h2FFFh本次设计所需存储数据包括工作台当前位置,以及可供用户存储4组每组10个点的空间,每个点所占用的存储空间为4字节。EEPROM存储空间分配如下:第一扇区中的地址为2000h2003h用于存储工作台当前位置的X、Y坐标值;第二扇区中的地址为2200h2212h用于存储第一组用户存储数据的10个点;第三扇区中的地址为2