




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 课程名称 计算机控制技术 题目名称 步进电机角度控制(1) 学生学院 自动化学院 专业班级 学 号 学生姓名 指导教师 2012年 11 月 30日一、目的1. 巩固和加深对计算机控制技术课程内容的认识和理解,提高应用水平。2. 熟悉键盘控制和七段数码管的使用。3. 掌握步进电机的步数控制和测试方法。二、 课程设计内容1.将电位器采集到的模拟信号经ABC0809处理后的数字信号0-255,转换为4码管显示的0-360。程序:STACK SEGMENT DW 256 DUP(?)STACK ENDSDATA SEGMENT DIG DB 00H,00H,00H,00H SWP DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX AAA0:MOV DX,06C0H;电位器信号采集 OUT DX,AL CALL DALLY IN AL,DX CALL ZHUAN;0-255转换为0-360,保存到DIG CALL XIANSHI;数码显示程序 JMP AAA0 DALLY:PUSH CX PUSH AX MOV CX,0010H DL0:MOV AX,0080H DL1:DEC AX JNZ DL1 LOOP DL0 POP AX POP CX RET;采集信号得到AL*360/255,在保存到DIGZHUAN:PUSH DX PUSH CX PUSH BX MOV AH,00H MOV DX,0000H MOV BX,360 MUL BX MOV BX,255 DIV BX LEA SI,DIG ADD SI,3 MOV BL,10 MOV CX,3 LPZH:DIV BL MOV SI,AH MOV AH,00H DEC SI LOOP LPZH POP BX POP CX POP DX RET ;根据DIG进行显示XIANSHI:PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,0606H MOV AL,80H OUT DX,AL MOV CX,4 MOV AL,0EFH XIAN0:LEA DI,SWP MOV DX,0602H OUT DX,AL MOV BL,SI MOV BH,00H ADD DI,BX PUSH AX MOV AL,DI MOV DX,0600H OUT DX,AL CALL DALLY POP AX ROL AL,1 INC SI LOOP XIAN0 POP DX POP CX POP BX POP AX RET CODE ENDSEND START2.实现步进电机角度控制:(1)定义键盘按键:3各功能建:设置SET、清零CLR、开始START;(2)显示器上三位显示每次行走的角度;(3)通过键盘的按键,设置步进电机行走的最大角度值:按SET键后,使用键盘设置最大角度,再按一次START置入,按CLR清零返回原处;(4)转动电位器启动步进电机跟随转动,到位后停止;电位器回原位步进电机也回原位。程序:STACK SEGMENT DW 256 DUP(?)STACK ENDSDATA SEGMENT VALUE DW 0000H;SET的角度值360或者720 TWO DW 0001H;SET的是360时候为1,720时候为2 DNOW DW 0000H;当前电位器读数 DOLD DW 0000H;过去电位器读数 VBX DW 0FFFFH;当前步进电机停下来的拍值位置 PAI DW 0000H;已走过的拍数 DIG DB 00H,00H,00H,00H;保存的四位阿拉伯数字如360DIG为00H,03H,06H,00H TAB DB 10H,20H,40H,80H;步进电机的正转步进表 SWP DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H;数码显示表 DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV BX,0000H;BX为按下SET为0100H,START为0001H,CLEAR为0010的标志位BEGIN:CALL DUSHU;读取模拟信号 MOV DX,0010H;当按下的是CLR,把读取的模拟信号AL为0的判断 AND DX,BX CMP DX,0010H JNE YAODU MOV AL,00HYAODU:CALL ZHUAN CALL XIANSHI CMP BL,01H;有没按下START,步进电机要不要动 JNZ NEXT0 CALL ACTION;电机动的程序NEXT0:MOV DX,0606H;判断是否由按键 MOV AL,81H OUT DX,AL MOV DX,0602H MOV AL,0FH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,03H CMP AL,03H JNZ INK1 JMP BEGIN INK1:CALL DALLY2;去抖动 MOV DX,0602H MOV AL,0FH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,03H CMP AL,03H JNZ INK2 JMP BEGIN INK2:MOV DX,0602H;有按键按下,判断是哪个按键 MOV AL,0EFH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,01H CMP AL,01H JNZ KEYSET MOV DX,0604H IN AL,DX AND AL,02H CMP AL,02H JNZ KEY30 MOV DX,0602H MOV AL,0DFH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,01H CMP AL,01H JNZ KEYCLR MOV DX,0604H IN AL,DX AND AL,02H CMP AL,02H JNZ KEY90 MOV DX,0602H MOV AL,0BFH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,01H CMP AL,01H JNZ KEY180 MOV DX,0604H IN AL,DX AND AL,02H CMP AL,02H JNZ KEYSTA MOV DX,0602H MOV AL,7FH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,01H CMP AL,01H JNZ KEY360 MOV DX,0604H IN AL,DX AND AL,02H CMP AL,02H JNZ KEY720 JMP STTK KEYSET:MOV BX,0100H;有按键按下是,每个按键的操作 JMP STTKKEY30:CMP BH,01H JNZ KEY301 MOV VALUE,30 MOV TWO,1KEY301:JMP STTKKEYCLR:CALL CLRWORK;调用清零,往回走程序 MOV VALUE,0 MOV BX,0010H JMP STTKKEY90:CMP BH,01H JNZ KEY901 MOV VALUE,90 MOV TWO,1KEY901:JMP STTKKEY180:CMP BH,01H JNZ KEY1801 MOV VALUE,180 MOV TWO,1KEY1801:JMP STTKKEYSTA:MOV BX,0001H JMP STTKKEY360:CMP BH,01H JNZ KEY3601 MOV VALUE,360 MOV TWO,1KEY3601:JMP STTKKEY720:CMP BH,01H JNZ KEY7201 MOV VALUE,720 MOV TWO,2KEY7201:JMP STTK JMP STTK DUSHU:PUSH DX;读取电位器值 MOV DX,06C0H OUT DX,AL CALL DALLY2 IN AL,DX POP DX RETCLRWORK:PUSH DX;按下CLR要往回走多少步的程序 PUSH CX PUSH BX PUSH AX MOV CX,PAI CMP CX,0000H JE DONOT MOV AX,CX MOV BX,TWO MUL BX MOV CX,AX CALL FANZO MOV PAI,0 MOV DOLD,0 DONOT:POP AX POP BX POP CX POP DX RET STTK:CALL DALLY2;按键释放程序 MOV DX,0606H MOV AL,81H OUT DX,AL MOV DX,0602H MOV AL,0FFH OUT DX,AL MOV DX,0604H IN AL,DX AND AL,03H CMP AL,03H JNZ STTK JMP BEGIN DALLY1:PUSH CX PUSH AX MOV CX,0100H DAL10:MOV AX,0800H DAL11:DEC AX JNZ DAL11 LOOP DAL10 POP AX POP CX RET DALLY2:PUSH CX PUSH AX MOV CX,0001H DAL20:MOV AX,00FFH DAL21:DEC AX JNZ DAL21 LOOP DAL20 POP AX POP CX RET;电位器值转换为0-360程序ZHUAN:PUSH DX PUSH CX PUSH BX MOV AH,00H MOV DX,0000H MOV BX,360 MUL BX MOV BX,255 DIV BX MOV DNOW,AX MOV BX,TWO MUL BX LEA SI,DIG ADD SI,3 MOV BL,10 MOV CX,3 LPZH:DIV BL MOV SI,AH MOV AH,00H DEC SI LOOP LPZH POP BX POP CX POP DX RET XIANSHI:PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,0606H MOV AL,80H OUT DX,AL MOV CX,4 MOV AL,0EFH XIAN0:LEA DI,SWP MOV DX,0602H OUT DX,AL MOV BL,SI MOV BH,00H ADD DI,BX PUSH AX MOV AL,DI MOV DX,0600H OUT DX,AL CALL DALLY2 POP AX ROL AL,1 INC SI LOOP XIAN0 POP DX POP CX POP BX POP AX RET;按下START键步进电机动作程序ACTION:PUSH DX PUSH CX PUSH BX PUSH AX MOV BX,DOLD;当电机第一次启动时候,把他的当前拍值VBX变为第一拍的值 CMP BX,0000H JNE NCHANGE MOV BX,OFFSET TAB MOV VBX,BXNCHANGE:MOV AX,DNOW;计算走到电位器现在这个位置要走多少拍 MOV DX,0000H MOV BX,10 MUL BX MOV BX,75 DIV BX CMP AX,PAI; 走到电位器现在这个位置要走多少拍和已走拍的值比较 JBE XIAOYU MOV BX,PAI;小于正走 MOV PAI,AX SUB AX,BX MOV BX,TWO MUL BX MOV CX,AX MOV AX,DNOW MOV DOLD,AX CALL ZHENGZO JMP ENDACXIAOYU:CMP AX,PAI JE ENDAC; 走到电位器现在这个位置要走多少拍和已走拍的值相等结束 MOV BX,PAI;大于返走 MOV PAI,AX SUB BX,AX MOV AX,BX MOV BX,TWO MUL BX MOV CX,AX MOV AX,DNOW MOV DOLD,AX CALL FANZO ENDAC:POP AX POP BX POP CX POP DX RET ;正走程序ZHENGZO:PUSH DX PUSH BX PUSH AX MOV DX,0606H MOV AL,80H OUT DX,AL MOV BX,VBX INC BX MOV DX,OFFSET TAB ADD DX,4 CMP BX,DX JNE LP1 MOV BX,OFFSET TAB LP1:MOV AL,BX MOV DX,0604H OUT DX,AL CALL DLIMS MOV VBX,BX INC BX MOV DX,OFFSET TAB ADD DX,4 CMP BX,DX JNE LP2 MOV BX,OFFSET TAB LP2: DEC CX CMP CX,0000H JE ENDZHENG JMP LP1ENDZHENG: POP AX POP BX POP DX RET ;返走程序 FANZO:PUSH DX PUSH BX PUSH AX MOV DX,0606H MOV AL,80H OUT DX,AL MOV BX,VBX DEC BX MOV DX,OF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论