1、基于单片机控制的数控XY工作台系统设计毕业设计基于单片机控制的数控X-Y工作台系统设计毕业设计前言本次毕业设计的选题为基于单片机控制的数控X-Y工作台系统设计插补部分。X-Y数控工作台是许多机电一体化设备的基本部件,通常由导轨座、滑动模块、工作平台、滚珠丝杠螺母副,以及步进电机的部件构成。控制系统可选用标准的工业控制计算机,也可设计专用的微机控制系统。本设计用AT89C52组成专用单片机控制系统,从键盘输入G代码后,能通过直线插补和圆弧插补,完成平面轮廓加工。通过正确的运用大学四年学到的知识完成本次毕业设计,可以更好的掌握有关机电一体化系统的设计过程和单片机的编程思想。通过该设计使自身具有一定
2、的系统化编程思想和能力,能够独立完成项目的设计。研究技术路线:1.单片机输入/输出端口;2.单片机的中断系统;3.单片机的定时/计数器;4.C语言顺序与选择结构程序设计;5.C语言循环结构程序设计;6.C语言数据类型运算符、数组、函数、指针的运用与设计;7.C语言程序设计编译预处理;8.在PROTEUS中进行系统的调试与仿真。1 X-Y数控工作台设计简介1.1X-Y数控工作台总体方案分析总体方案图如图1-1所示:图1-1 X-Y数控工作台总体方案图X-Y数控工作台是实现平面X、Y坐标运动的典型关键部件,能够分别沿X向和Y向移动。本次设计的X-Y数控工作台选用的是微机控制系统(AT89C52单片
3、机),在基于AT89C52单片机的原理上设计了一个小型的微机控制系统,运用C51编程将控制信号送到执行器件(X和Y向步进电动机),通过机械传动机构(齿轮减速和丝杆传动),带动机械执行机构(工作台)做X向和Y向的运动;实现四象限单坐标快速定位,双坐标直线、圆弧插补等功能;最终选择通过Proteus与Keil联机对设计的电路以及程序进行仿真、1.2仿真开发环境Proteus简介Proteus ISIS是美国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: 实现了单片机仿真和SPICE电路仿真相
4、结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilVision2等软件。
5、具有强大的原理图绘制功能1。1.3程序开发环境KeilVision2简介Vision2是一个标准的Windows应用程序,支持长文件名操作,其界面类似于MS Visual C+,可以再Windows95/98/2000/XP平台上运行,功能十分强大。它支持所有的KEIL8051工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。采用Keil C51开发8051单片机应用程序一般需要以下步骤: 在Vision2集成开发环境中创建一个新项目文件(Project),并为该项目选定合适的单片机CPU器件。 利用Vision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加
6、到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 通过Vision2的各种选项,配置51编译器、A51宏编译器、BL51连接定位器以及Debug调试器的功能。 利用Vision2的构造(Build)工功能对项目中的源程序文件进行编译连接,生成绝对目标代码和可选的HEX文件。如果出现编译连接错误则返回第2步,修改源程序中的错误后重新构造整个项目。 将没有错误的绝对目标代码装入Vision2调试器进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的EPROM中2。2 X-Y数控工作台机械部件功能分析2.1步进电动机的工作原理步进电动机又叫脉冲电动机,它是一种
7、将电脉冲信号转换为角位移的机电式数模(D/A)转换器。在开环数字程序控制系统中,输出控制部分常采用步进电动机作为驱动元件。步进电动机控制线路接受微机发来的指令脉冲,控制步进电动机作相应地转动,从而是步进电动机驱动数控系统的工作台。很明显,指令脉冲的总数就决定了数控系统的工作台的总移动量,指令脉冲的频率就决定了移动的速度3。步进电动机的工作就是步进转动。在一般的步进电动机工作中,其电源都是采用单极性的直流电源。要使步进电动机转动,就必须对步进电动机定子的各项绕组以适当的时序进行通电。图2-1 四相步进电机步进示意图图2-1为四相步进电动机步进示意图。开始时,开关SB接通电源,SA、SC、SD断开
8、,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步进电动机的工作方式步进电动机可工作于单相通电方式,也可工作于双相通电方式和单相、双相交叉通电方式。选用不同的工作方式,可使步进电动机具有不同的工作性能,如减小步距、提高定位精度
9、和工作稳定性等。本系统选用的步进电动机是四相八拍工作方式,四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。图2-2给出了三种工作方式下四相步进电动机的波形图,从图中我们可以清晰的看到四相八拍步进电动机的通电相序为:AABBBCCCDDDAAABB。图2-2 四相步进电动机三种工作方式下的工作波形图3X-Y数控工作台硬件电路分析3.1控制系统微控制器AT89C523.1.1AT89C52单片机的主要工作特性 8031C
10、PU(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
11、V。 P1.0口的T2为定时器/计数器,P1.1口的T2EX为具有捕捉/重装操作的定时器/计数器4。3.1.2AT89C52单片机的内部结构AT89C52单片机的内部结构如图3-1所示。可分为四大部分:内核CPU部分、存储器部分、I/O接口部分和特殊功能部分(如定时器/计数器、外中断控制模块等)。(1)AT89C52单片机的CPUAT89C52单片机的CPU是8位字长,主要包括运算器和控制器两部分。运算器的功能是进行算术逻辑运算、位处理操作和数据的传送,主要包括:算术/逻辑运算单元(ALU)运算器的核心部件,用来完成基本的算术运算、逻辑运算和位处理操作。AT89C52具有极强的“位”处理功能,
12、可以进行加、减、乘、除、与、或、非、异或、左移、右移、半字节交换、BCD码运算、位处理、位检测等运算和操作;暂存器TMP1和TMP2作为ALU的两个输入,暂时存放参加运算的数据;累加器ACC是一个8位寄存器;寄存器B,执行乘法或除法指令前,寄存器B用来存放乘数或除数,ALU的另外一个输入来自于ACC,乘法或除法指令执行完成后,寄存器B用来存放乘积的高8位或除法的余数;执行非乘法或除法指令时,寄存器B可以作为一般用途的寄存器使用;程序状态字寄存器PSW是一个8位的标志寄存器,用来存放当前指令执行后的有关状态,为以后指令的执行提供状态依据,因此一些指令的执行结果会影响PSW的相关状态标志;PSW中
13、各位的状态通常在指令执行过程中自动生成,同时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工作寄存器组
14、选择位工作寄存器组选择位。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中控制器是控制读取指令,识
15、别指令并根据指令的性质协调、控制单片机个组成部件有序工作的重要部件,是CPU乃至整个单片机的中枢神经。控制器由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、定时及控制逻辑电路等组成。控制器的主要功能是控制指令的读入、译码和执行,并对指令的执行过程进行定时和逻辑控制。根据不同的指令协调单片机各个单元有序工作。图3-3 存储器空间分布图(2)AT89C52单片机的存储器AT89C52单片机芯片内配置有8KB(0000H1FFFH)的Flash程序存储器ROM和256字节(00HFFH)的数据存储器RAM,根据需要可外扩到最大64KB的程序存储器和64KB的数据存储
16、器,因此AT89C52的存储器结构可分为4部分:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器(见图3-3)。本次设计选用最小系统设计单片机,即不扩展,AT89C52的存储器结构较为简单:只有单片机自身提供的8KB Flash程序存储器ROM和256字节数据存储器RAM。使用时,引脚要提高电平(5V),这时,复位后CPU从片内ROM区的0000H单元开始读取指令代码,一直运行到1FFFH单元。如图1.6所示,虚线框内左侧为片内自带的数据存储器RAM,此256字节单元(00HFFH)的低128字节(00H7FH)单元为用户使用去,高128字节(80HFFH)单元为特殊功能寄存器S
17、FR区。片内寄存器的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) R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H101
18、08H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH表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位寄存器
19、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接口直
20、接与外围电路相连,使用时,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口功能的自动识别。无
21、论是P0、P2口的总线复用功能,还是P3口的第二功能复用,单片机会自动选择,不需要指令选择。两种读端口的方式。包括端口锁存器的“读改写”操作和读引脚的操作。在单片机中,有些指令是读端口锁存器的,如一些逻辑运算指令、置位/复位指令、条件转移指令以及将I/O口作为目的地址的操作指令;有些指令是读引脚的,如以I/O口作为源操作数的指令。I/O口的驱动特性。P0口每一个I/O口可驱动8个LSTTL输入,而P1、P2、P3口每一个I/O口可驱动4个LSTTL输入。(4)AT89C52单片机的特殊功能部分AT89C52单片机内部集成有定时器/计数器、串行通信控制器、外部中断控制器等特殊功能部件,从而使AT
22、89C52单片机具有定时/计数功能、全双工串行通信功能、实现对外部事件实时响应的中断处理功能。以下将重点介绍定时器/计数器以及外部中断控制器等特殊功能部件,因为本设计中,会重复多次使用到这些特殊功能部件。AT89C52单片机内部设有两个16位的可编程定时器/计数器,即定时器/计数器0和定时器/计数器1,以及一个可编程定时器/计数器2;控制寄存器TCON见表3-4,方式控制寄存器TMOD表3-5,其相应标志位的功能及编程时的使用方法见表3-6、3-7。表3-4 控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0表3-5 方式控制寄存器TMODT/C
23、1T/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。方式控
24、制寄存器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
25、或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做了分析,在此不做重复介绍;中断允许控
26、制寄存器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响应中断并转向
27、该中断服务程序执行时,由硬件内部自动将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中
28、断控制位,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为高优先级中断;PT
29、2=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.3AT89C52单片机的各引脚功能AT89C52单片机的引
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1