基于单片机控制的数控X-Y工作台系统设计毕业设计 .doc_第1页
基于单片机控制的数控X-Y工作台系统设计毕业设计 .doc_第2页
基于单片机控制的数控X-Y工作台系统设计毕业设计 .doc_第3页
基于单片机控制的数控X-Y工作台系统设计毕业设计 .doc_第4页
基于单片机控制的数控X-Y工作台系统设计毕业设计 .doc_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机控制的数控X-Y工作台系统设计毕业设计目 录摘 要IABSTRACTII前言11X-Y数控工作台设计简介21.1X-Y数控工作台总体方案分析21.2仿真开发环境Proteus简介21.3程序开发环境KeilVision2简介22X-Y数控工作台机械部件功能分析42.1步进电动机的工作原理42.2步进电动机的工作方式43X-Y数控工作台硬件电路分析63.1控制系统微控制器AT89C5263.1.1AT89C52单片机的主要工作特性63.1.2AT89C52单片机的内部结构63.1.3AT89C52单片机的各引脚功能153.2可编程并行接口芯片8255A163.2.18255A的内部结构163.2.28255A的引脚功能173.2.38255A的工作方式183.2.48255A控制字194基于PROTEUS仿真电路分析214.1X-Y数控工作台控制系统仿真电路图214.2X-Y数控工作台控制系统硬件资源及其分配214.3电路模块图分析224.3.1X-Y向步进电机控制电路分析224.3.2四行四列矩阵式键盘控制电路分析234.3.3X-Y数控工作台显示电路分析244.4程序在仿真电路图中实现的功能255X-Y数控工作台总程序软件设计265.1程序总流程分析265.2Main 函数功能解释265.3逐点比较法的插补原理275.4逐点比较法插补的优点275.5插补总流程分析276X-Y数控工作台快速进给软件设计286.1快速进给程序分析287X-Y数控工作台直线插补软件设计307.1逐点比较法的直线插补的数学原理307.1.1逐点比较法的直线查补的偏差判别机制307.1.2直线插补中的终点判别机制317.1.3直线插补计算过程317.1.4直线插补中的进给判别机制317.2直线插补程序分析328X-Y数控工作台圆弧插补软件设计348.1逐点比较法的圆弧插补的数学原理348.1.1逐点比较法的圆弧查补的偏差判别机制348.1.2圆弧插补中的终点判别机制358.1.3圆弧插补计算过程358.1.44个象限的圆弧插补358.2顺圆插补程序分析378.3逆圆插补程序分析399X-Y数控工作台代码处理软件设计419.1代码处理程序分析4110X-Y数控工作台象限判别软件设计4310.1象限判断总程序分析4310.2G0与G1情况象限判断程序分析4310.3G2情况象限判断程序分析4510.4G3情况象限判断程序分析4511中断程序设计方法4711.1定时器中断程序解释4711.2外部中断程序解释47结论与展望48参考文献49附录A 总程序:50附录B 文献翻译原文75附录C 文献翻译译文83谢 辞90前言本次毕业设计的选题为基于单片机控制的数控X-Y工作台系统设计插补部分。X-Y数控工作台是许多机电一体化设备的基本部件,通常由导轨座、滑动模块、工作平台、滚珠丝杠螺母副,以及步进电机的部件构成。控制系统可选用标准的工业控制计算机,也可设计专用的微机控制系统。本设计用AT89C52组成专用单片机控制系统,从键盘输入G代码后,能通过直线插补和圆弧插补,完成平面轮廓加工。通过正确的运用大学四年学到的知识完成本次毕业设计,可以更好的掌握有关机电一体化系统的设计过程和单片机的编程思想。通过该设计使自身具有一定的系统化编程思想和能力,能够独立完成项目的设计。研究技术路线:1.单片机输入/输出端口;2.单片机的中断系统;3.单片机的定时/计数器;4.C语言顺序与选择结构程序设计;5.C语言循环结构程序设计;6.C语言数据类型运算符、数组、函数、指针的运用与设计;7.C语言程序设计编译预处理;8.在PROTEUS中进行系统的调试与仿真。1 X-Y数控工作台设计简介1.1 X-Y数控工作台总体方案分析总体方案图如图1-1所示:微控制器(MCU)I/O接口电路放大电路执行器件机械传动机 构机械执行机 构图1-1 X-Y数控工作台总体方案图X-Y数控工作台是实现平面X、Y坐标运动的典型关键部件,能够分别沿X向和Y向移动。本次设计的X-Y数控工作台选用的是微机控制系统(AT89C52单片机),在基于AT89C52单片机的原理上设计了一个小型的微机控制系统,运用C51编程将控制信号送到执行器件(X和Y向步进电动机),通过机械传动机构(齿轮减速和丝杆传动),带动机械执行机构(工作台)做X向和Y向的运动;实现四象限单坐标快速定位,双坐标直线、圆弧插补等功能;最终选择通过Proteus与Keil联机对设计的电路以及程序进行仿真、1.2 仿真开发环境Proteus简介Proteus ISIS是美国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: 实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilVision2等软件。 具有强大的原理图绘制功能1 李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社M,2009,第90页.。1.3 程序开发环境KeilVision2简介Vision2是一个标准的Windows应用程序,支持长文件名操作,其界面类似于MS Visual C+,可以再Windows95/98/2000/XP平台上运行,功能十分强大。它支持所有的KEIL8051工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。采用Keil C51开发8051单片机应用程序一般需要以下步骤: 在Vision2集成开发环境中创建一个新项目文件(Project),并为该项目选定合适的单片机CPU器件。 利用Vision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 通过Vision2的各种选项,配置51编译器、A51宏编译器、BL51连接定位器以及Debug调试器的功能。 利用Vision2的构造(Build)工功能对项目中的源程序文件进行编译连接,生成绝对目标代码和可选的HEX文件。如果出现编译连接错误则返回第2步,修改源程序中的错误后重新构造整个项目。 将没有错误的绝对目标代码装入Vision2调试器进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的EPROM中2 周润景,张丽娜,刘映群.PROTEUS入门使用教程M.北京:机械工业出版社,2007,第82页.。2 X-Y数控工作台机械部件功能分析2.1 步进电动机的工作原理步进电动机又叫脉冲电动机,它是一种将电脉冲信号转换为角位移的机电式数模(D/A)转换器。在开环数字程序控制系统中,输出控制部分常采用步进电动机作为驱动元件。步进电动机控制线路接受微机发来的指令脉冲,控制步进电动机作相应地转动,从而是步进电动机驱动数控系统的工作台。很明显,指令脉冲的总数就决定了数控系统的工作台的总移动量,指令脉冲的频率就决定了移动的速度3 尹志强.机电一体化系统设计课程设计指导书M.北京:机械工业出版社,2007,第58页.。步进电动机的工作就是步进转动。在一般的步进电动机工作中,其电源都是采用单极性的直流电源。要使步进电动机转动,就必须对步进电动机定子的各项绕组以适当的时序进行通电。图2-1 四相步进电机步进示意图图2-1为四相步进电动机步进示意图。开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。2.2 步进电动机的工作方式步进电动机可工作于单相通电方式,也可工作于双相通电方式和单相、双相交叉通电方式。选用不同的工作方式,可使步进电动机具有不同的工作性能,如减小步距、提高定位精度和工作稳定性等。本系统选用的步进电动机是四相八拍工作方式,四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。图2-2给出了三种工作方式下四相步进电动机的波形图,从图中我们可以清晰的看到四相八拍步进电动机的通电相序为:AABBBCCCDDDAAABB。图2-2 四相步进电动机三种工作方式下的工作波形图3 X-Y数控工作台硬件电路分析3.1 控制系统微控制器AT89C523.1.1 AT89C52单片机的主要工作特性 8031CPU(8051的内核); 8KB的快速擦写Flash存储器,用于程序存储器,可擦写次数为1000次; 256字节的RAM,其中高128字节地址被特殊功能寄存器SFR占用; 32跟可编程I/O端口:P0、P1、P2、P3; 2个可编程16位定时器:P3口的第二功能; 具有6个中断源、5个中断矢量、二级优先权的中断系统; 1个数据指针DPTR; 1个可编程的全双工串行通信:P3口的第二功能; 具有“空闲”和“掉电”两种低功耗工作方式; 可编程的3级程序锁定位; 工作电源的电压为(50.2)V; 振荡器最高频率为24 MHz; 编程频率324 MHz,编程电流1 mA,编程电压Vpp为5 V或12 V。 P1.0口的T2为定时器/计数器,P1.1口的T2EX为具有捕捉/重装操作的定时器/计数器4 丁明亮,唐前辉.51单片机应用设计与仿真:基于Keil C与ProteusM.北京:北京航空航天大学出版社,2009,第2页.。3.1.2 AT89C52单片机的内部结构AT89C52单片机的内部结构如图3-1所示。可分为四大部分:内核CPU部分、存储器部分、I/O接口部分和特殊功能部分(如定时器/计数器、外中断控制模块等)。(1)AT89C52单片机的CPUAT89C52单片机的CPU是8位字长,主要包括运算器和控制器两部分。运算器的功能是进行算术逻辑运算、位处理操作和数据的传送,主要包括:算术/逻辑运算单元(ALU)运算器的核心部件,用来完成基本的算术运算、逻辑运算和位处理操作。AT89C52具有极强的“位”处理功能,可以进行加、减、乘、除、与、或、非、异或、左移、右移、半字节交换、BCD码运算、位处理、位检测等运算和操作;暂存器TMP1和TMP2作为ALU的两个输入,暂时存放参加运算的数据;累加器ACC是一个8位寄存器;寄存器B,执行乘法或除法指令前,寄存器B用来存放乘数或除数,ALU的另外一个输入来自于ACC,乘法或除法指令执行完成后,寄存器B用来存放乘积的高8位或除法的余数;执行非乘法或除法指令时,寄存器B可以作为一般用途的寄存器使用;程序状态字寄存器PSW是一个8位的标志寄存器,用来存放当前指令执行后的有关状态,为以后指令的执行提供状态依据,因此一些指令的执行结果会影响PSW的相关状态标志;PSW中各位的状态通常在指令执行过程中自动生成,同时AT89C52单片机的PSW是可编程的,通常程序可以改变PSW中各位的状态标志。程序状态字PSW各位的状态标志定义如图3-2和表3-1所示;图3-1 AT89C52单片机原理结构图图3-2 PSW各位的状态标志表3-1 PSW各位的定义状态标志定义含义CY高位进位标志若当前执行指令的运算结果产生进位或借位,该标志被置成CY=1;否则CY=0。AC辅助进位标志位又称为半字节进位标志位,在执行加减指令时,如果低半字节向高半字节产生进位或借位,则AC=1,否则AC=0。F0用户标志位用户标识位。有用户根据需要进行置位、清零或检测。RS1、RS0工作寄存器组选择位工作寄存器组选择位。00时为工作寄存器0组,01时为工作寄存器1组,10时为工作寄存器2组,11时为工作寄存器3组OV溢出标志位所谓溢出是指运算结果数值的绝对值超过了允许表示的最大值,执行运算指令时,如果运算结果超出了目的寄存器A所能够表示的符号数的范围(-128+127),硬件自动置位溢出标志位,即OV=1;否则OV=0。-保留位保留位,无意义。P奇偶校验标志位奇偶效验标志位。用来指示累加其中内容的奇偶性,该位始终跟踪指示累加器中1的个数,硬件自动置1或清0.若逻辑运算后累加其中1的个数为偶数,则P=0;否则P=1.常用于效验串行通信中数据传送是否正确。CPU中控制器是控制读取指令,识别指令并根据指令的性质协调、控制单片机个组成部件有序工作的重要部件,是CPU乃至整个单片机的中枢神经。控制器由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、定时及控制逻辑电路等组成。控制器的主要功能是控制指令的读入、译码和执行,并对指令的执行过程进行定时和逻辑控制。根据不同的指令协调单片机各个单元有序工作。图3-3 存储器空间分布图(2)AT89C52单片机的存储器AT89C52单片机芯片内配置有8KB(0000H1FFFH)的Flash程序存储器ROM和256字节(00HFFH)的数据存储器RAM,根据需要可外扩到最大64KB的程序存储器和64KB的数据存储器,因此AT89C52的存储器结构可分为4部分:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器(见图3-3)。本次设计选用最小系统设计单片机,即不扩展,AT89C52的存储器结构较为简单:只有单片机自身提供的8KB Flash程序存储器ROM和256字节数据存储器RAM。使用时,引脚要提高电平(5V),这时,复位后CPU从片内ROM区的0000H单元开始读取指令代码,一直运行到1FFFH单元。如图1.6所示,虚线框内左侧为片内自带的数据存储器RAM,此256字节单元(00HFFH)的低128字节(00H7FH)单元为用户使用去,高128字节(80HFFH)单元为特殊功能寄存器SFR区。片内寄存器的00H7FH区又划分成3块:00H1FH块是工作寄存器所用;20H2FH块石有位寻址功能的单元区;30H7FH是普通RAM区。工作寄存器又分为4组,在当前的运行程序中只有某一组是被激活的,谁被激活由程序状态寄存器PSW的RS1、RS0两位决定,如表3-2所列。如表3-3所列出了特殊功能寄存器SFR的名称、符号和地址。在程序设计中,可直接用寄存器名作为寄存器的符号地址使用。图3-4 片内数据寄存器的结构表3-2 工作寄存器激活地址表组 号RS1 (PSW.4) RS1 (PSW.3) R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH表3-3 特殊功能寄存器SFR特殊功能寄存器功能名称物理地址可否位寻址B寄存器BF0H可以A(ACC)累加器E0H可以PSW程序状态寄存器(标志寄存器)D0H可以IP中断优先级控制寄存器B8H可以P3P3口锁存器B0H可以IE中断允许控制寄存器A8H可以P2P2口锁存器A0H可以SBUF串行数据缓冲器99H不可以SCON串行接口控制寄存器98H可以P1P1口锁存器90H可以TH1T1计数器高8位寄存器8DH不可以TH0T0计数器高8位寄存器8CH不可以TL1T1计数器低8位寄存器8BH不可以TL0T0计数器低8位寄存器8AH不可以TMOD定时器/计数方式控制寄存器89H不可以TCON定时器控制寄存器88H可以PCON电源控制寄存器87H不可以DPH数据指针高8位83H不可以DPL数据指针低8位82H不可以SP堆栈指针寄存器81H不可以P0P0口锁存器80H可以(3)AT89C52单片机的I/O接口AT89C52单片机内部集成了4个可编程的并行I/O接口(P0P3),每个接口电路都有锁存器和驱动器,输入接口电路具有三态门控制。P0P3口同RAM统一编址,可以当作特殊功能寄存器SFR来寻址。AT89C52单片机可以利用其I/O接口直接与外围电路相连,使用时,P0P3口在开机或复位时均呈高电平。AT89C52单片机的并行I/O接口有以下应用特性:P0、P1、P2、P3作为通用I/O口使用时,输入操作是读引脚状态;输出操作是对口的锁存器的写入操作,锁存器的状态立即反映到引脚上。P1、P2、P3口作为输出口时,由于电路内部带上拉电阻,因此无需外接上拉电阻,而P0口由于内部无上啦电阻,因此使用它时,必须外接上拉电阻。P0、P1、P2、P3作为通用的输入口时,必须使电路中的锁存器写入高电平“1”,使场效应管(FET)VF1截止,以避免锁存器输出为“0”时场效应管VF1导通使引脚状态始终被钳位在“0”状态。I/O口功能的自动识别。无论是P0、P2口的总线复用功能,还是P3口的第二功能复用,单片机会自动选择,不需要指令选择。两种读端口的方式。包括端口锁存器的“读改写”操作和读引脚的操作。在单片机中,有些指令是读端口锁存器的,如一些逻辑运算指令、置位/复位指令、条件转移指令以及将I/O口作为目的地址的操作指令;有些指令是读引脚的,如以I/O口作为源操作数的指令。I/O口的驱动特性。P0口每一个I/O口可驱动8个LSTTL输入,而P1、P2、P3口每一个I/O口可驱动4个LSTTL输入。(4)AT89C52单片机的特殊功能部分AT89C52单片机内部集成有定时器/计数器、串行通信控制器、外部中断控制器等特殊功能部件,从而使AT89C52单片机具有定时/计数功能、全双工串行通信功能、实现对外部事件实时响应的中断处理功能。以下将重点介绍定时器/计数器以及外部中断控制器等特殊功能部件,因为本设计中,会重复多次使用到这些特殊功能部件。AT89C52单片机内部设有两个16位的可编程定时器/计数器,即定时器/计数器0和定时器/计数器1,以及一个可编程定时器/计数器2;控制寄存器TCON见表3-4,方式控制寄存器TMOD表3-5,其相应标志位的功能及编程时的使用方法见表3-6、3-7。表3-4 控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0表3-5 方式控制寄存器TMODT/C1T/C0D7D6D5D4D3D2D1D0GATEC/M1M0GATEC/M1M0表3-6 特殊功能寄存器标志位的功能特殊功能寄存器标志位定义和功能计数寄存器TH1T1计数器高8位寄存器TH0T0计数器高8位寄存器TL1T1计数器低8位寄存器TL0T0计数器低8位寄存器控制寄存器 TCONTF1T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0TR1T/C1的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。TF0T/C0的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0TR0T/C0的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。方式控制寄存器TMODGATE当GATE位置1时,T/C0受到双重控制;只有为高电平且TR0位置1时T/C0才开始工作;当GATE位清0时,T/C0仅受到TR0的控制。C/当该位置1时工作在计数器方式,清0时工作在定时器方式M1&M0用来选择操作模式(见表1.7)表3.7 操作模式M1 M0操作模式计数器配置0 0模式013位计数器0 1模式116位计数器1 0模式2自动重装载的8位计数器1 1模式3T0分为两个8位计数器,T1停止计数AT89C52有6个固定的可屏蔽中断源,它们分别是两个外部中断(P3.2)和(P3.3),三个片内定时器/计数器溢出中断TF0、TF1和TF2,一个片内串行口中断TI或RI。6个中断源有两个中断优先级,可形成中断嵌套,并在程序存储器中各有固定的中断入口地址。6个中断源的符号、名称及产生的条件如下:外部中断0,由P3.2端口线引入,低电平或下降沿引起。:外部中断1,由P3.3端口线引入,低电平或下降沿引起。T0:定时器/计数器0中断,由T0计满回零引起。T1:定时器/计数器1中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接受后引起中断。T2:定时器/计数器2中断,由T2计满回零引起。下面将对本次设计中使用到的中断控制其专用寄存器进行分析,由于上述已对定时器/计数器0、1控制寄存器TCON做了分析,在此不做重复介绍;中断允许控制寄存器IE见表3-8,中断优先级控制寄存器IP见表3-9,其相应标志位的功能及编程时的使用方法见表3-10;表3-11为中断服务程序的入口地址。表3-8 中断允许控制寄存器IED7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0表3-9 中断优先级控制寄存器IPD7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX0表3-10 中断控制专用寄存器标志位的功能特殊功能寄存器标志位定义和功能控制寄存器 TCONIE1外部中断请求标志位。当CPU检测到INT1低电平或下降沿且IT1=1时,由内部硬件置位IE1标志位(IE1=1),向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部自动将IE1清0。TR0外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT0=1时,由内部硬件置位IE0标志位(IE0=1),向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部自动将IE0清0。IT1用软件置位/复位IT1来选择外部中断INT1是下降沿触发还是电平触发中断请求。IT0用软件置位/复位IT0来选择外部中断INT0是下降沿触发还是电平触发中断请求。中断允许控制寄存器IEEA中断总控制位。EA=1,CPU开中断,它是CPU是否响应中断的前提;EA=0,无论哪个中断源有请求,CPU都不予以响应。ET2定时器/计数器T2中断控制位,ET2=1,允许T2计数溢出中断;ET2=0,禁止T2中断。ES串行口中断控制位,ES=1,允许串行口发送/接受中断;ES=0,禁止串行口中断。ET1定时器/计数器T1中断控制位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。EX1外部中断1控制位,EX1=1,允许中断;EX1=0,禁止外部中断1中断。ET0定时器/计数器T0中断控制位,ET0=1,允许T0计数溢出中断;ET0=0,禁止T0中断。EX0外部中断0控制位,EX0=1,允许中断;EX0=0,禁止外部中断0中断。中断优先级控制寄存器IPPT2T2中的优先级控制位,PT2=1,设定定时器T2为高优先级中断;PT2=0为低优先级中断。PS串行口中断优先级控制位。PS=1设定串行口为高优先级中断;PS=0为低优先级中断PT1T1中断优先级控制位。PT1=1设定定时器T1为高优先级中断;PT1=0为低优先级中断PX1外部中断1优先级控制位。PX1=1设定定时器外部中断1为高优先级中断;PX1=0为低优先级中断。PT0T0中断优先级控制位。PT0=1设定定时器T0为高优先级中断;PT0=0为低优先级中断。PX0外部中断0优先级控制位。PX0=1设定定时器外部中断0为高优先级中断;PX0=0为低优先级中断。表3-11 中断服务程序的入口地址符号名称中断引起原因C51对应中断源的编号INT0外部中断0P3.2引脚的低电平0INT1外部中断1P3.3引脚的低电平1T0定时器0中断定时器/计数器0计数回零溢出2T1定时器1中断定时器/计数器1计数回零溢出3TI/RI串行口中断串行通信完成一帧发送或接收引起中断4INT2定时器2中断定时器/计数器2计数回零溢出53.1.3 AT89C52单片机的各引脚功能AT89C52单片机的引脚图如图3-5所示,由于上述分析中以对I/O进行的系统性的介绍,下面只对其第二功能做具体的补充,详细见表3-12。图3-5 PDIP封装形式的AT89C52单片机引脚排列VCC:电源电压GND:接地RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/ :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲。:程序储存允许输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次信号。/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000HFFFFH),端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存端状态。如端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。本次设计因为接高电平。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。表3-12 AT89C52单片机P0口和P3口引脚的第二功能口线第二功能信号名称P1.0T2定时器/计数器2的外部计数输入或时钟输出P1.1T2EX定时器/计数器2的捕捉/重载触发信号和方向控制P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0请求信号输入P3.3外部中断1请求信号输入P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6外部RAM写选通P3.7外部RAM读选通3.2 可编程并行接口芯片8255A8255A有24条I/O线,分为A、B、C共3个端口来使用;8条数据线,用于数据和控制命令传送;两条地址线,读/写时用于选择片内的控制寄存器或A、B、C口对应的3个端口寄存器PA、PB、PC;读/写信号控制线各一根;还有复位信号,片选信号、电源等引脚。8255A的24条I/O线可编程分为两组,有3种工作方式,其中,方式0是最为简单和常用的一种,该方式下端口A、B、C仅作简单的出入/输出使用。8255A的工作方式有其片内的控制寄存器选择。3.2.1 8255A的内部结构8255A内部由PA、PB、PC这3个8位可编程双向I/O口,A组控制器和B组控制器,数据缓冲器及读/写控制逻辑4部分电路组成,其结构如图3-65 梁景凯,盖玉先.机电一体化技术与系统M.北京:机械工业出版社,2006,第108页.所示。PA、PB、PC口:PA、PB、PC口均为8位I/O数据口,但结构上略有差别。A口由一个8位数据输出缓冲/锁存器和一个8位数据输入缓冲/锁存器组成,B口和C口各由一个8位数据输出缓冲/锁存器和一个8位数据输入缓冲器(无输入数据缓冲器,故B口不能在模式2下工作)组成。A组控制器和B组控制器:A、B组控制器对应的控制字寄存器接受CPU送来的控制字,用于决定8255A的工作方式。A组控制器控制A口和C口上半部(PC4PC7),B组控制器控制B口和C口下半部(PC0PC3)。数据总线缓冲器:这是一个8位双向三态驱动器,用于8255A和单片机的数据总线相连,以实现8255A与单片机的数据发送。读/写控制逻辑:接收CPU送来的读/写信号和选口地址,用于控制对8255A的读/写。图3-6 8255A逻辑结构图3.2.2 8255A的引脚功能8255A有40条引脚,采用双列直插式封装,见图3.7。图3-7 8255A引脚图 数据总线(8条):D0D7,用于传送CPU和8255A间的数据、命令和状态字。 控制总线(6条): RESRT:复位线,高电平有效。 :片选线,低电平有效。若为高电平,则8255A不被选中;若为低电平,则8255A选中。 为读命令线,为写命令线,皆为低电平有效。若为低电平(必为高电平),则所选8255A处于读状态;若为低电平(必为高电平),则所选8255A处于写状态。 A0、A1:地址输入线,用于选中PA、PB、PC口和控制寄存器中哪一个工作。上述控制线的功能如表3-12所列。表3-12 8255A控制线功能A1A0功能00010读端口A数据01010读端口B数据10010读端口C数据00100写数据到端口A01100写数据到端口B10100写数据到端口C11100写命令到控制寄存器1数据总线呈高阻状态11010非法条件110数据总线呈高阻状态 并行I/O总线(24条):这些总线用于和外设相连,共分3组。 PA7PA0:双向I/O总线。PA7为最高位,用于传送I/O数据,可以设定为输入或输出方式,也可设定为输入/输出双向方式。 PB7PB0:双向I/O总线。PB7为最高位,用于传送I/O数据,可以设定为输入或输出方式。 PC7PC0:双向数据/控制总线。PC7为最高位,用于传送I/O数据或控制/状态信息,可以设定为输入或输出方式,也可设定为控制/状态方式。 电源线(2条):Vcc为+5V电源线,GND为地线。3.2.3 8255A的工作方式8255A有3种工作方式:方式0、方式1、方式2。方式0:基本输入/输出方式。这种方式中3个端口被设置成输入或输出口,但不能既作输入又作输出。PC口分成两部分:上半口(PC4PC7)、下半口(PC0PC3),两部分可分别设置传动方向。各端口均可用于无条件数据传送,也可通过人为指定PC口的某些位作为PA口、PB口的状态信号,进行查询方式传送。方式1:选通输入/输出方式。这种方式下PA口、PB口通过编程设定为输入口或输出口,而PC口则分成两部分,分别用作PA口和PB口的控制和同步信号,以便于8255A和CPU之间传送信息和中断请求。这种联络信号时由8155A内部规定的,不是由使用者指定的。PC口的高4位服务于A口,称A组。PC口的低4位服务于B口,称B组。方式2:双向总线方式。只有PA口可工作于此方式,这时PA口既可输入又可输出,PC口的PC3PC7用作输入/输出的同步控制信号。此时,PB口可以工作于方式0,但不能工作于方式1。3.2.4 8255A控制字8255A方式控制字如图3-8,分为两种类型控制字:方式控制字如图3.3和C口置位/复位控制字如图3-8。方式控制字图3-8 方式选择控制字格式C口置位/复位控制字图3-9C口控制字格式4 基于PROTEUS仿真电路分析4.1 X-Y数控工作台控制系统仿真电路图图4-1 X-Y数控工作台控制系统仿真电路图4.2 X-Y数控工作台控制系统硬件资源及其分配X-Y数控工作台控制系统硬件资源主要包括有:AT89C52单片机、锁存器74LS373、可编程控制器8255A、8位8段共阴数码管、四行四列矩阵键盘、限位/急停按钮、晶振电路、复位电路、以及六线制的四相八拍工作制的X和Y向步进电动机各一个。控制系统硬件资源的分配如表4-1所列。表4-1 X-Y数控工作台控制系统硬件资源分配硬件芯片端口(引脚)用途(功能)AT89C528位P0口地址总线:输出电平信号到74LS373送到8255A的A0和A1口,控制8255A的工作方式数据总线:扩展可编程控制器8255A,完成AT89C52单片机与8255A的数据输入和输出XTAL1连接晶振电路XTAL2连接晶振电路RST复位电路接线口ALE地址锁存允许,与74LS373的LE口连接,ALE为高电平时,74LS373送数,低电平时,锁存。P1.0P1.3四行四列矩阵式键盘行扫描输入输出线P1.0P1.3四行四列矩阵式键盘列扫描输入输出线8255AP2.7连接8255A片选端P3.2限位信号输入口,低地平时请求外部中断0P3.6可编程控制器8255A写选通信号端口P3.7可编程控制器8255A读选通信号端口D0D7连接AT89C52的P0口,负责数据的输入与输出PA口连接8位8端数码管的段驱动端口PB口连接8位8端数码管的位选端口PC0PC3向X向步进电动机输入脉冲数和脉冲相序PC4PC7向Y向步进电动机输入脉冲数和脉冲相序4.3 电路模块图分析4.3.1 X-Y向步进电机控制电路分析图4-2 X/Y向步进电机控制电路模拟图图4-2为X/Y向步进电机控制电路模拟图,从图从我们可以看到仿真选用的是6线制的四相八拍步进电机,通过8255A的PC0PC3口分别向X向步进电机输入脉冲信号,PC4PC7则分别向Y向步进电机输入脉冲信号。四相八拍步进电机的正转相序是AABBBCCCDDDA,反转相序是DADCDCBCBBAA;表4-2将给出X向步进电动机正转时PC口各引脚输出电平与X向电机相位关系;表4-4将给出Y向步进电动机正转时PC口各引脚输出电平与Y向电机相位关系;而反转时,控制的方式只需把从上往下循环改为从下往上循环即可。表4-2 X向步进电动机正转时PC口各引脚输出电平与Y向电机相位关系X向步进电机相位可编程控制器8255A的PC口各引脚的电平PC口输出的16进制数PC0PC1PC2PC3PC4PC5PC6PC7A100000000x01AB110000000x03B010000000x02BC011000000x06C001000000x04CD001100000x0cD000100000x08DA100100000x09表4-3 Y向步进电动机正转时PC口各引脚输出电平与Y向电机相位关系Y向步进电机相位可编程控制器8255A的PC口各引脚的电平PC口输出的16进制数PC0PC1PC2PC3PC4PC5PC6PC7A000010000x10AB000011000x30B000001000x20BC000001100x60C000000100x40CD000000110xc0D000000010x80DA000010010x904.3.2 四行四列矩阵式键盘控制电路分析图4-3为四行四列矩阵式键盘控制电路原理图,原理图的设计上,在键盘的行扫描线上设置了上拉电阻,P1.001.3为键盘控制电路的行扫描口,P1.41.7为键盘控制电路的列扫描口。键盘上设有了09共10个数字键、X坐标键、Y左边键、G代码按键、数字符号负号键、ENTER(确认)键以及START(开始)按键。通过这些按键能我们能直接向AT89C52单片机输入指令、X坐标和Y坐标。图4-3 键盘硬件电路接线图4.3.3 X-Y数控工作台显示电路分析图4-4 X-Y数控工作台仿真显示电路数控X-Y工作台显示电路使用的是8位8段共阴极数码管如图4-4所示,引脚A、B、C、D、E、F、G和DP是数码管的段驱动信号输入端口,从图上看出,设计时连接的是8255A的PA口;引脚1、2、3、4、5、6、7和8分别是数码管的位选择信号输入端口,设计时连接的是8255A的PB口。改显示电路能及时的显示键盘电路输入的指令,如G代码、X坐标和Y坐标。4.4 程序在仿真电路图中实现的功能本次的设计任务是要实现具有单坐标定位、两坐标直线插补和圆弧插补的基本功能。通过下面章节的设计分析,您将能看到我在程序上是如何完成代码处理、直线插补和圆弧插补等软件功能。本设计将涵盖数控X-Y工作台的所有功能程序,在同组成员完成的基本人机界面上,对输入的指令进行代码处理,根据相应的(G00、G01、G02和G03)指令以及输入的X与Y坐标量,步进电机实行相应的工作方式,与之相对应的实现了不同的插补功能,从而完成平面轮廓加工。最终我们可以通过步进电机的走刀路线就能检验出程序是否能实现相应的功能。5 X-Y数控工作台总程序软件设计5.1 程序总流程分析NNNNYYNYYY开始程序初始化显示循环程序键盘扫描程序是否有键被按下?G00服务程序输入代码是否为G00?G01服务程序输入代码是否为G01?G02服务程序输入代码是否为G02?G03服务程序输入代码是否为G03?图5-1 总程序流程图总程序流程图见图5-1。在MAIN( ) 函数中对程序进行初始化处理,通过first( ) 函数对八位七段LED数码管进行数始化处理,完成初始化后,程序在stop函数中循环等待中断,定时器1可以将程序带入显示循环程序(即函数led( ) ),显示循环程序运行一次后即开始运行键盘程序(即函数keyboard( ) ),当检测到按下为start键时,开始进行输入指令分析程序(即函数panduan( ) ),通过分析程序按情况进入相应的查补程序。5.2 Main 函数功能解释Main函数完成了对程序的初始化,包括打开CPU总中断、打开定时/计数器T0中断、打开定时/计数器T1中断、打开外部INT1中断、定时/计数器工作方式选择为定时器方式一、将定时器T0/T1的计时初值分别写入各自的计时初

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论