实验三数控系统综合实验

上传人:沈*** 文档编号:95299073 上传时间:2022-05-24 格式:DOC 页数:9 大小:66.36KB
收藏 版权申诉 举报 下载
实验三数控系统综合实验_第1页
第1页 / 共9页
实验三数控系统综合实验_第2页
第2页 / 共9页
实验三数控系统综合实验_第3页
第3页 / 共9页
资源描述:

《实验三数控系统综合实验》由会员分享,可在线阅读,更多相关《实验三数控系统综合实验(9页珍藏版)》请在装配图网上搜索。

1、 实验三数控系统综合实验一、实验目的掌握数控机床微机控制系统的结构原理,熟悉单片微机数控系统的外部扩展及步进电机的控制。二、实验内容和要求1设计数控系统接口框图2参考相应程序控制数控工作台。修改、调试程序改变数控工作台工作状态。三、实验主要仪器设备和材料:1AMC51单片机综合开发装置一台1 IBMPC微机一台2 XY数控工作台,连接线若干四、 实验结果: 1.数控系统接口框图: 2.程序设计流程图:3.源程序:全部程序见附录补充部分:KEYB_1: SETB XW ;X,Y轴都正向运动CLR XPSETB YWCLR YPMOV STATE,#5RETKEYB_2: CLR XW ;Y轴反向

2、运动SETB YWSETB YPMOV STATE,#4RETKEYB_3: SETB XW ;X轴正向,Y轴反向运动CLR XPSETB YWSETB YPMOV STATE,#7RETKEYB_4: SETB XW ;X轴反向运动SETB XPCLR YWMOV STATE,#2RETKEYB_6: SETB XW ;X轴正向运动CLR XPCLR YWMOV STATE,#1RETKEYB_7: SETB XW ;X,Y轴都反向运动SETB XPSETB YWSETB YP MOV STATE,#6RETKEYB_8: CLR XW ;Y轴正向运动SETB YWCLR YPMOV STA

3、TE,#3RETKEYB_9: SETB XW ;X轴反向,Y轴正向运动SETB XPSETB YWCLR YPMOV STATE,#8RET五、附录DISP0 EQU 39H ;显示缓冲区0DISP1 EQU 3AH ;显示缓冲区1DISP2 EQU 3BH ;显示缓冲区2TCER EQU 40H ;2ms计数单元TCER1 EQU 41H ;100ms计数单元XSTAT EQU 52H ;X状态字YSTAT EQU 53H ;Y状态字SM_OUT EQU 55H ;输出状态SM_OUTX EQU 65H ;输出状态SM_OUTY EQU 75H ;输出状态SPEED EQU 56H ;速度

4、档次SDATA EQU 57H ;速度值STEPH EQU 58H ;步数高位STEPL EQU 59H ;步数低位MODE EQU 60H ;模式状态STEPX EQU 61H ;步数值缓冲区STATE EQU 62H ;运动方向状态DIRLOP EQU 63H ;显示循环次数区XP EQU 02H ;X轴方向位YP EQU 03H ;Y轴方向位XW EQU 04H ;X轴工作YW EQU 05H ;Y轴工作RUN EQU 06H ;运行控制位ORG 0000HSTART: AJMP MAINORG 000BH ;定时器0中断AJMP TINT0 ;驱动脉冲控制ORG 001BH ;定时器1

5、中断AJMP TINT1 ;定时显示控制ORG 0030H ;程序初始化MAIN: MOV R0,#39H MAIN_0: MOV R0,#0INC R0CJNE R0,#41H,MAIN_0 MOV XSTAT,#0MOV YSTAT,#0MOV SM_OUT,#0MOV SM_OUTX,#0MOV SM_OUTY,#0MOV SDATA,#0MOV STEPH,#0MOV STEPL,#0MOV SPEED,#0MOV MODE,#0MOV TCER1,#0MOV STATE,#0CLR XWCLR YWCLR RUNCLR P2.6 ;关闭扩展端口CLR P3.6MOV TMOD,#11

6、H ;设定两个计数器的工作方式MOV IE,#10011010B ;设置中断MOV SCON,#0 ;设置串口工作方式(显示)MOV IP,#02H ;设置T0为中断优先MOV TH0,#0FCH ;让T0定时2msMOV TL0,#18HMOV TH1,#0ECH ;让T0定时100msMOV TL1,#78HSETB TR0 ;启动两个计数器SETB TR1MAIN_1: ACALL KEY ;调用键盘子程序 NOPNOP SJMP MAIN_1TINT1:MOV TH1,#0ECH ;定时中断1程序,定时显示MOV TL1,#78HPUSH ACCPUSH PSWACALLTRANSAC

7、ALL DISPPOP PSWPOP ACC RETIKEY: MOV P2,#0FFH ;检测有否键按下NOPNOPJNB P2.0,K1JNB P2.1,K2JNB P2.2,K3JNB P2.3,K4JNB P2.4,K5JNB P2.5,K6GOKBACK:RETK6GO:LJMP K6K1:ACALL DL10MS ;K1键功能JB P2.0,KBACKJ1:JNB P2.0,J1MOV A,MODE ;在模式3时步数加1CJNE A,#2,K11MOV STEPX,#1LJMP ADD1K11:SETB RUN ;启动运行控制位CJNE A,#0,KEYB_1GO ;模式2时跳入键

8、功能1LJMP KEYB_6 ;模式1时跳入键功能6KEYB_1GO:LJMP KEYB_1K2:ACALL DL10MS ;K2键功能JB P2.1,KBACKJ2:JNB P2.1,J2MOV A,MODE ;模式3时步数加10CJNE A,#2,K21MOV STEPX,#10LJMP ADD1K21:SETB RUNCJNE A,#0,KEYB_7GO ;模式2时跳入键功能7LJMP KEYB_4 ;模式1时跳入键功能4KEYB_7GO:LJMP KEYB_7K3:ACALL DL10MS ;K3键功能JB P2.2,KBACKJ3:JNB P2.2,J3MOV A,MODE ;模式3

9、时步数加100CJNE A,#2,K31MOV STEPX,#100LJMP ADD1K31:SETB RUNCJNE A,#0,KEYB_3 ;模式2时跳入键功能3LJMP KEYB_8 ;模式1时跳入键功能8K4:ACALLDL10MS ;K4键功能JB P2.3,KBACKJ4:JNB P2.3,J4MOV A,MODE ;模式3时步数加1000CJNE A,#2,K41LJMP ADD2K41:SETB RUNCJNE A,#0,KEYB_9GO ;模式2时跳入键功能9LJMP KEYB_2 ;模式1时跳入键功能2KEYB_9GO:LJMP KEYB_9K5:ACALL DL10MS

10、;K5键功能JB P2.4,KBACKJ5:JNB P2.4,J5MOV STATE,#0 ;运动状态清零CLR RUN ;控制位清0MOV A,MODE ;改变控制模式ADD A,#1CJNE A,#2,K52 ;模式3时步数清零MOV STEPL,#0MOV STEPH,#0MOV STEPX,#0K52:CJNE A,#3,K51MOV A,#0K51:MOV MODE,A ;清空输出状态CLR XWCLR YWMOV SM_OUT,#0MOV SM_OUTX,#0MOV SM_OUTY,#0RETK6:ACALL DL10MS ;K6键功能JB P2.5,KBACK1J6:JNB P2

11、.5,J6MOV A,SPEED ;改变转速ADD A,#1CJNE A,#5,K61MOV A,#0K61:MOV SPEED,AMOV DPTR,#TABSP ;查找转速定时控制值MOVC A,A+DPTRMOV SDATA,AKBACK1:RETKEYB_1: SETB XW ;X,Y轴都正向运动CLR XPSETB YWCLR YPMOV STATE,#5RETKEYB_2: CLR XW ;Y轴反向运动SETB YWSETB YPMOV STATE,#4RETKEYB_3: SETB XW ;X轴正向,Y轴反向运动CLR XPSETB YWSETB YPMOV STATE,#7RET

12、KEYB_4: SETB XW ;X轴反向运动SETB XPCLR YWMOV STATE,#2RETKEYB_6: SETB XW ;X轴正向运动CLR XPCLR YWMOV STATE,#1RETKEYB_7: SETB XW ;X,Y轴都反向运动SETB XPSETB YWSETB YP MOV STATE,#6RETKEYB_8: CLR XW ;Y轴正向运动SETB YWCLR YPMOV STATE,#3RETKEYB_9: SETB XW ;X轴反向,Y轴正向运动SETB XPSETB YWCLR YPMOV STATE,#8RETADD1:MOV A,STEPL ;步数加法程

13、序1(双字节)CLRCADD A,STEPXMOV STEPL,AMOV A,STEPHADDC A,#0MOV STEPH,ARETADD2:MOV A,STEPL ;步数加法程序2(双字节) CLR CADD A,#232MOV STEPL,AMOV A,STEPHADDC A,#3MOV STEPH,ARETDELAY: MOV 70H,#0FFH ;键盘防抖动延时子程序DELAY1: DJNZ 70H,DELAY1RETDL10MS: MOV 71H,#14H ;20ms延时程序DL10MS1: ACALL DELAYDJNZ 71H,DL10MS1RETTINT0: MOV TH0,

14、#0FCH ;定时中断0程序MOV TL0,#18HPUSH ACC PUSH PSWPUSH 01HCLR P2.6 ;扩展端口选通(输出低电平)CLR P3.6 ;74LS273需脉冲上升悬选通INC TCERMOV A,TCERCJNE A,SDATA,TINT0R ;转速控制MOV TCER,#0JNB RUN,TINT0R ;判断控制位是否为1MOV A,STEPL ;判断步数寄存器内容是否为1JNZ TNT MOV A,STEPHJZ TINT0RTNT:DJNZ STEPL,MOTO ;步数寄存器内容减1并跳入电机驱动 MOV A,STEPHJZ MOTOMOV STEPL,#0

15、FFHDJNZ STEPH,TNT ;检查步数寄存器高字节是否为0MOTO:JNB XW,TINT_1 ;判断进入步进电机驱动程序 ACALL XPD ;进入X轴驱动程序TINT_1: JNB YW,TINT0R ACALL YPD ;进入Y轴驱动程序TINT0R: MOV P1,SM_OUT ;输出驱动波形,并退出中断 MOV P0,SM_OUTNOPNOPNOPNOPNOPSETB P2.6 ;扩展端口选通(输出高电平) POP 01H POP PSW POP ACC RETIXPD: MOV R1,#XSTAT ;读出X轴状态MOV C,XP ;读出X轴方向AJMP PPDXYPD: M

16、OV R1,#YSTAT ;读出Y轴状态MOV C,YP ;读出Y轴方向SJMP PPDY PPDX: JC PPD2X CJNE R1,#03H,PPD3X ;检查是否超步MOV R1,#0AJMP PPD3XPPD2X: CJNE R1,#00H,PPD4X MOV A,R1MOV R1,#02H MOV DPTR,#SM_TABX ;查表得驱动波形值MOVC A,A+DPTRMOV SM_OUTX,AADD A,SM_OUTYMOV SM_OUT,ARET PPD4X: MOV A,R1 ;反转驱动程序 DEC R1 MOV DPTR,#SM_TABX MOVC A,A+DPTRMOV

17、SM_OUTX,AADD A,SM_OUTYMOV SM_OUT,A RETPPD3X: MOV A,R1 ;正转驱动程序 INC R1MOV DPTR,#SM_TABX MOVC A,A+DPTRMOV SM_OUTX,AADD A,SM_OUTYMOV SM_OUT,ARETPPDY: JC PPD2Y CJNE R1,#03H,PPD3Y MOV R1,#0AJMP PPD3YPPD2Y:CJNE R1,#00H,PPD4YMOV A,R1 MOV R1,#02H MOV DPTR,#SM_TABY MOVC A,A+DPTRMOV SM_OUTY,AADD A,SM_OUTXMOV S

18、M_OUT,ARETPPD4Y: MOV A,R1 DEC R1 MOV DPTR,#SM_TABY MOVC A,A+DPTRMOV SM_OUTY,AADD A,SM_OUTXMOV SM_OUT,ARETPPD3Y: MOV A,R1INC R1 MOV DPTR,#SM_TABY MOVC A,A+DPTRMOV SM_OUTY,AADD A,SM_OUTXMOV SM_OUT,ARETTRANS:MOV R5,#16 ;二转十(BCD)码进制转换程序(双字节)MOV R6,STEPH ;步数寄存器高位存入R6MOV R7,STEPL ;步数寄存器低位存入R7CLR A ;清空步数显示

19、缓冲器MOV DISP0,AMOV DISP1,AMOV DISP2,ALOOP:CLR C ;把步数寄存器的高位移到CMOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,DISP2 ;步数缓冲寄存器低位加C并乘2ADDC A,DISP2DA A ;模拟十进制加法MOV DISP2,AMOV A,DISP1ADDC A,DISP1DA AMOV DISP1,AMOV A,DISP0ADDC A,DISP0DA AMOV DISP0,ADJNZ R5,LOOP ;重复运行16次MOV A,DISP1 ;显示拆字ANL A,#0F0HSWAP AMOV

20、3CH,A ;3CH到3FH是显示缓冲区MOV A,DISP1ANL A,#0FHMOV 3DH,AMOV A,DISP2ANL A,#0F0HSWAP AMOV 3EH,AMOV A,DISP2ANL A,#0FHMOV 3FH,ARETDISP:MOV DIRLOP,#4 ;串行显示程序(4位数码管)MOV R0,#3CH ;3CH到3FH是显示缓冲区DL0:MOV A,R0MOV DPTR,#TAB ;查得相应的七段代码MOVC A,A+DPTRMOV SBUF,A ;串行发送DL1:JNB TI,DL1CLR TIINC R0DJNZ DIRLOP,DL0RETSM_TABX: DB 01H,02H,04HSM_TABY: DB 08H,10H,20HTABSP: DB 250,50,10,2,1TAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H ;共阴代码表DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CHDB 7AH,9EH,8EHEND

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!