基于单片机控制的数控XY工作台系统设计毕业设计.docx
- 文档编号:17551711
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:119
- 大小:1.27MB
基于单片机控制的数控XY工作台系统设计毕业设计.docx
《基于单片机控制的数控XY工作台系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的数控XY工作台系统设计毕业设计.docx(119页珍藏版)》请在冰点文库上搜索。
基于单片机控制的数控XY工作台系统设计毕业设计
基于单片机控制的数控X-Y工作台系统设计毕业设计
前言
本次毕业设计的选题为基于单片机控制的数控X-Y工作台系统设计——插补部分。
X-Y数控工作台是许多机电一体化设备的基本部件,通常由导轨座、滑动模块、工作平台、滚珠丝杠螺母副,以及步进电机的部件构成。
控制系统可选用标准的工业控制计算机,也可设计专用的微机控制系统。
本设计用AT89C52组成专用单片机控制系统,从键盘输入G代码后,能通过直线插补和圆弧插补,完成平面轮廓加工。
通过正确的运用大学四年学到的知识完成本次毕业设计,可以更好的掌握有关机电一体化系统的设计过程和单片机的编程思想。
通过该设计使自身具有一定的系统化编程思想和能力,能够独立完成项目的设计。
研究技术路线:
1.单片机输入/输出端口;2.单片机的中断系统;3.单片机的定时/计数器;4.C语言顺序与选择结构程序设计;5.C语言循环结构程序设计;6.C语言数据类型运算符、数组、函数、指针的运用与设计;7.C语言程序设计编译预处理;8.在PROTEUS中进行系统的调试与仿真。
1X-Y数控工作台设计简介
1.1X-Y数控工作台总体方案分析
总体方案图如图1-1所示:
图1-1X-Y数控工作台总体方案图
X-Y数控工作台是实现平面X、Y坐标运动的典型关键部件,能够分别沿X向和Y向移动。
本次设计的X-Y数控工作台选用的是微机控制系统(AT89C52单片机),在基于AT89C52单片机的原理上设计了一个小型的微机控制系统,运用C51编程将控制信号送到执行器件(X和Y向步进电动机),通过机械传动机构(齿轮减速和丝杆传动),带动机械执行机构(工作台)做X向和Y向的运动;实现四象限单坐标快速定位,双坐标直线、圆弧插补等功能;最终选择通过Proteus与Keil联机对设计的电路以及程序进行仿真、
1.2仿真开发环境Proteus简介
ProteusISIS是美国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilμVision2等软件。
④具有强大的原理图绘制功能[1]。
1.3程序开发环境KeilμVision2简介
μVision2是一个标准的Windows应用程序,支持长文件名操作,其界面类似于MSVisualC++,可以再Windows95/98/2000/XP平台上运行,功能十分强大。
它支持所有的KEIL8051工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。
采用KeilC51开发8051单片机应用程序一般需要以下步骤:
①在μVision2集成开发环境中创建一个新项目文件(Project),并为该项目选定合适的单片机CPU器件。
②利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。
一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。
③通过μVision2的各种选项,配置51编译器、A51宏编译器、BL51连接定位器以及Debug调试器的功能。
④利用μVision2的构造(Build)工功能对项目中的源程序文件进行编译连接,生成绝对目标代码和可选的HEX文件。
如果出现编译连接错误则返回第2步,修改源程序中的错误后重新构造整个项目。
⑤将没有错误的绝对目标代码装入μVision2调试器进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的EPROM中[2]。
2X-Y数控工作台机械部件功能分析
2.1步进电动机的工作原理
步进电动机又叫脉冲电动机,它是一种将电脉冲信号转换为角位移的机电式数模(D/A)转换器。
在开环数字程序控制系统中,输出控制部分常采用步进电动机作为驱动元件。
步进电动机控制线路接受微机发来的指令脉冲,控制步进电动机作相应地转动,从而是步进电动机驱动数控系统的工作台。
很明显,指令脉冲的总数就决定了数控系统的工作台的总移动量,指令脉冲的频率就决定了移动的速度[3]。
步进电动机的工作就是步进转动。
在一般的步进电动机工作中,其电源都是采用单极性的直流电源。
要使步进电动机转动,就必须对步进电动机定子的各项绕组以适当的时序进行通电。
图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给出了三种工作方式下四相步进电动机的波形图,从图中我们可以清晰的看到四相八拍步进电动机的通电相序为:
A→AB→B→BC→C→CD→D→DA→A→AB→B→…。
图2-2四相步进电动机三种工作方式下的工作波形图
3X-Y数控工作台硬件电路分析
3.1控制系统微控制器AT89C52
3.1.1AT89C52单片机的主要工作特性
•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级程序锁定位;
•工作电源的电压为(5±0.2)V;
•振荡器最高频率为24MHz;
•编程频率3~24MHz,编程电流1mA,编程电压Vpp为5V或12V。
•P1.0口的T2为定时器/计数器,P1.1口的T2EX为具有捕捉/重装操作的定时器/计数器[4]。
3.1.2AT89C52单片机的内部结构
AT89C52单片机的内部结构如图3-1所示。
可分为四大部分:
内核CPU部分、存储器部分、I/O接口部分和特殊功能部分(如定时器/计数器、外中断控制模块等)。
(1)AT89C52单片机的CPU
AT89C52单片机的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-1AT89C52单片机原理结构图
图3-2PSW各位的状态标志
表3-1PSW各位的定义
状态标志
定义
含义
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(0000H~1FFFH)的Flash程序存储器ROM和256字节(00H~FFH)的数据存储器RAM,根据需要可外扩到最大64KB的程序存储器和64KB的数据存储器,因此AT89C52的存储器结构可分为4部分:
片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器(见图3-3)。
本次设计选用最小系统设计单片机,即不扩展,AT89C52的存储器结构较为简单:
只有单片机自身提供的8KBFlash程序存储器ROM和256字节数据存储器RAM。
使用时,引脚
要提高电平(5V),这时,复位后CPU从片内ROM区的0000H单元开始读取指令代码,一直运行到1FFFH单元。
如图1.6所示,虚线框内左侧为片内自带的数据存储器RAM,此256字节单元(00H~FFH)的低128字节(00H~7FH)单元为用户使用去,高128字节(80H~FFH)单元为特殊功能寄存器SFR区。
片内寄存器的00H~7FH区又划分成3块:
00H~1FH块是工作寄存器所用;20H~2FH块石有位寻址功能的单元区;30H~7FH是普通RAM区。
工作寄存器又分为4组,在当前的运行程序中只有某一组是被激活的,谁被激活由程序状态寄存器PSW的RS1、RS0两位决定,如表3-2所列。
如表3-3所列出了特殊功能寄存器SFR的名称、符号和地址。
在程序设计中,可直接用寄存器名作为寄存器的符号地址使用。
图3-4片内数据寄存器的结构
表3-2工作寄存器激活地址表
组号
RS1(PSW.4)
RS1(PSW.3)
R0
R1
R2
R3
R4
R5
R6
R7
0
0
0
00H
01H
02H
03H
04H
05H
06H
07H
1
0
1
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
2
1
0
10H
11H
12H
13H
14H
15H
16H
17H
3
1
1
18H
19H
1AH
1BH
1CH
1DH
1EH
1FH
表3-3特殊功能寄存器SFR
特殊功能寄存器
功能名称
物理地址
可否位寻址
B
寄存器B
F0H
可以
A(ACC)
累加器
E0H
可以
PSW
程序状态寄存器(标志寄存器)
D0H
可以
IP
中断优先级控制寄存器
B8H
可以
P3
P3口锁存器
B0H
可以
IE
中断允许控制寄存器
A8H
可以
P2
P2口锁存器
A0H
可以
SBUF
串行数据缓冲器
99H
不可以
SCON
串行接口控制寄存器
98H
可以
P1
P1口锁存器
90H
可以
TH1
T1计数器高8位寄存器
8DH
不可以
TH0
T0计数器高8位寄存器
8CH
不可以
TL1
T1计数器低8位寄存器
8BH
不可以
TL0
T0计数器低8位寄存器
8AH
不可以
TMOD
定时器/计数方式控制寄存器
89H
不可以
TCON
定时器控制寄存器
88H
可以
PCON
电源控制寄存器
87H
不可以
DPH
数据指针高8位
83H
不可以
DPL
数据指针低8位
82H
不可以
SP
堆栈指针寄存器
81H
不可以
P0
P0口锁存器
80H
可以
(3)AT89C52单片机的I/O接口
AT89C52单片机内部集成了4个可编程的并行I/O接口(P0~P3),每个接口电路都有锁存器和驱动器,输入接口电路具有三态门控制。
P0~P3口同RAM统一编址,可以当作特殊功能寄存器SFR来寻址。
AT89C52单片机可以利用其I/O接口直接与外围电路相连,使用时,P0~P3口在开机或复位时均呈高电平。
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控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
表3-5方式控制寄存器TMOD
T/C1
T/C0
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/
M1
M0
GATE
C/
M1
M0
表3-6特殊功能寄存器标志位的功能
特殊功能寄存器
标志位
定义和功能
计数寄存器
TH1
T1计数器高8位寄存器
TH0
T0计数器高8位寄存器
TL1
T1计数器低8位寄存器
TL0
T0计数器低8位寄存器
控制寄存器TCON
TF1
T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0
TR1
T/C1的启动和停止位,由软件控制。
置1时启动T/C1;清0时停止T/C1。
TF0
T/C0的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0
TR0
T/C0的启动和停止位,由软件控制。
置1时启动T/C1;清0时停止T/C1。
方式控制寄存器TMOD
GATE
当GATE位置1时,T/C0受到双重控制;只有
为高电平且TR0位置1时T/C0才开始工作;当GATE位清0时,T/C0仅受到TR0的控制。
C/
当该位置1时工作在计数器方式,清0时工作在定时器方式
M1&M0
用来选择操作模式(见表1.7)
表3.7操作模式
M1M0
操作模式
计数器配置
00
模式0
13位计数器
01
模式1
16位计数器
10
模式2
自动重装载的8位计数器
11
模式3
T0分为两个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中断允许控制寄存器IE
D7
D6
D5
D4
D3
D2
D1
D0
EA
ET2
ES
ET1
EX1
ET0
EX0
表3-9中断优先级控制寄存器IP
D7
D6
D5
D4
D3
D2
D1
D0
—
—
PT2
PS
PT1
PX1
PT0
PX0
表3-10中断控制专用寄存器标志位的功能
特殊功能寄存器
标志位
定义和功能
控制寄存器TCON
IE1
外部中断请求标志位。
当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是下降沿触发还是电平触发中断请求。
中断允许控制寄存器IE
EA
中断总控制位。
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中断。
中断优先级控制寄存器IP
PT2
T2中的优先级控制位,PT2=1,设定定时器T2为高优先级中断;PT2=0为低优先级中断。
PS
串行口中断优先级控制位。
PS=1设定串行口为高优先级中断;PS=0为低优先级中断
PT1
T1中断优先级控制位。
PT1=1设定定时器T1为高优先级中断;PT1=0为低优先级中断
PX1
外部中断1优先级控制位。
PX1=1设定定时器外部中断1为高优先级中断;PX1=0为低优先级中断。
PT0
T0中断优先级控制位。
PT0=1设定定时器T0为高优先级中断;PT0=0为低优先级中断。
PX0
外部中断0优先级控制位。
PX0=1设定定时器外部中断0为高优先级中断;PX0=0为低优先级中断。
表3-11中断服务程序的入口地址
符号
名称
中断引起原因
C51对应中断源的编号
INT0
外部中断0
P3.2引脚的低电平
0
INT1
外部中断1
P3.3引脚的低电平
1
T0
定时器0中断
定时器/计数器0计数回零溢出
2
T1
定时器1中断
定时器/计数器1计数回零溢出
3
TI/RI
串行口中断
串行通信完成一帧发送或接收引起中断
4
INT2
定时器2中断
定时器/计数器2计数回零溢出
5
3.1.3AT89C52单片机的各引脚功能
AT89C52单片机的引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 数控 XY 工作台 系统 设计 毕业设计