步进电机控制模块_第1页
步进电机控制模块_第2页
步进电机控制模块_第3页
步进电机控制模块_第4页
步进电机控制模块_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、 微机接口课程设计 步进电机控制模块 姓名: 学号: 班级:计算机 指导老师:1、 要求: 实现步进电机的正反转和暂停功能,同时通过小键盘控制电机并在数码管上显示相应的标志 2、 硬件连线: 键盘的行信号Q_0Q3分别与开放的输入信号Q0Q3相连,键盘的列信号P_0P_3分别与输出信号P0P3相连;试验仪中部的地址输出端CS-1CS-4分别连接到8255模块下方的CS-1CS-4;8253的片选CS连接地址输出端CS1(300H),8253的A0、A1分别连地址总线A2、A3,8253的GATE0连+5V,8253的CLK0连74LS393分频输出的47K输出端,8253的OUT0连接到825

2、9的IRQ0;8259的片选CS-1连地址输出CS6(3A0),8259的INT1连接总线输入INTR,8259的模块的INT-A连总线的INTA,8259的SP/1连+5V;74LS393的片选CS2连接地址输出CS4(360),片选CS1连接地址输出CS3(340)按以上连线,则8255的A口、B口,C口和控制口的地址依次为200H、204H、208H和20CH;8253的T0、T1、T2及控制口的地址分别为300H、304H、308H和30CH;8259的奇地址和偶地址分别是3A8H,3A0H。3、 程序流程图: 主程序流程图: 主程序 主程序 初始化 扫描按键 有 YN AN B Y

3、N CY设置正转标志设置启停标志获取转速设置8253设置反转标志N获取转速设置8253Y中断程序流程图:暂停中断程序 Y正转 N向8259写命令字正方向前进一步反方向后退一步 YN 返回4、 代码: .486pPORT1 EQU 340H ;(cs1)数码管段码端口PORT2 EQU 360H ;(cs2)数码管位选端口,键盘矩阵的行列端口DATA SEGMENT AT 0 USE16 ORG 1000H FLAG DB ? BAIWEI DB ? SHIWEI DB ? GEWEI DB ? NUM DW ? STOPN DB ?DATA ENDSCODESEGMENT USE16ASSUM

4、EDS:DATA,CS:CODEORG1500H BEG:JMPSTARTSEVENCOD DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH ;前两行按键的键码 DB 0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;在此处添加后两行键的键码KEYVAL DB 0AH,0BH,0CH,1,2,3,4,5,6,7,8,9 ;12个按键的键值TEN DB 10RNUM DB 10001000BSTEP DB 0

5、START:CLI MOV EAX,60000000H MOV CR0,EAX ;装载DS MOV AX,DATA MOV DS,AX ;初始化8255 MOV AL,80H MOV DX,20CH OUT DX,AL MOV AL,80H MOV DX,20DH OUT DX,AL MOV AL,80H MOV DX,20EH OUT DX,AL ;A MOV AL,0FFH MOV DX,200H OUT DX,AL MOV AL,0FFH MOV DX,201H OUT DX,AL MOV AL,0FFH MOV DX,202H OUT DX,AL ;B MOV AL,0FFH MOV

6、DX,204H OUT DX,AL MOV AL,0FFH MOV DX,205H OUT DX,AL MOV AL,0FFH MOV DX,206H OUT DX,AL ;最右边8255 MOV AL,80H MOV DX,20FH OUT DX,AL ;初始化8259 ;初始化8259 ICW1,ICW2 MOV AL,00010011B MOV DX,3A0H OUT DX,AL MOV AL,70H MOV DX,3A8H OUT DX,AL MOV AL,00000001b;ICW4非自动中断 OUT DX,AL ;中断屏蔽字 MOV AL,11111110B MOV DX,3A8H

7、 OUT DX,AL; 设置中断向量 MOV AX,0 MOV ES,AX MOV BX,70H*4 MOV AX,OFFSET RUN MOV ES:BX,AX MOV AX,SEG RUN MOV ES:BX+2,AX MOV STOPN,-1AG1: LEA BX,SEVENCOD CALL INPUT CMP AL,0CH JZ ST1 CMP AL,0AH JZ ZZ CMP AL,0BH JZ FZ JMP AG1 ;开始停止键ST1: NEG STOPN CMP STOPN,1;判断是否需要启动设备 JNZ BQIDONG JMP S1BQIDONG:MOV DX,200H MO

8、V AL,0C6H OUT DX,AL CLI JMP AG1 ;设置默认值100S1: MOV DX,204H;正常运转 MOV AL,0FFH OUT DX,AL MOV AL,1 XLAT MOV DX,204H OUT DX,AL MOV AL,0 XLAT MOV DX,201H OUT DX,AL MOV AL,0 XLAT MOV DX,205H OUT DX,AL STI JMP AG1 ;正转ZZ: MOV DX,200H MOV AL,88H OUT DX,ALA1: CALL INPUT CMP AL,0AH JZ A1 CMP AL,0BH JZ FZ MOV SHIW

9、EI,AL XLAT MOV DX,201H OUT DX,AL CALL INPUT MOV GEWEI,AL XLAT MOV DX,205H OUT DX,AL MOV FLAG,0;设置正反转标志位 JMP EXIT ;反转FZ: MOV DX,200H;反转 MOV AL,83H OUT DX,ALA2: CALL INPUT CMP AL,0AH JZ ZZ CMP AL,0BH JZ A2 MOV SHIWEI,AL XLAT MOV DX,201H OUT DX,AL CALL INPUT MOV GEWEI,AL XLAT MOV DX,205H OUT DX,AL MOV

10、FLAG,1 ;计算数值 EXIT: MOV BL,SHIWEI ADD AL,BL MUL TEN MOV BL,GEWEI ADD AL,BL MOV AH,0 MOV NUM,AX;输入的值放在num中 MOV DX,0 MOV AX,58750 DIV NUM MOV NUM,AX;转换为计数初值 MOV AL,00110110B;8254方式3BCD码MOV DX,30CHOUT DX,ALMOV DX,300HMOV AX,NUMOUT DX,ALMOV AL,AHOUT DX,ALJMP AG1;通过行扫描法,将键值存储到al中 INPUT PROC PUSH DX PUSH B

11、X PUSH SI PUSH DI WT: MOV AL,00H ;00H为不显示任何信息时对应的七段代码 MOV DX,PORT1 OUT DX,AL MOV AL,00000000B MOV DX,PORT2 OUT DX,AL ;使数码管全灭,并使3根列线输出全0 NOP NOP MOV DX,PORT2 IN AL,DX ;(粗扫描)若无键按下转至WT执行,否则顺序执行 AND AL,0FH CMP AL,0FH JZ WT CALL DELAY MOV DX,PORT2 ;再次确认是否有键按下 IN AL,DX AND AL,0FH CMP AL,0FH JZ WT MOV CX,3

12、 ;(细扫描)开始对每一列进行逐列扫描 MOV BL,0FEH NEXT: MOV AL,BL;在横线上添加一条语句 MOV DX,PORT2 OUT DX,AL NOP NOP INAL,DX AND AL,0FH CMP AL,0FH JNZ KEY ROL BL,1 ;在横线上添加一条语句 LOOP NEXT JMP WT ;按键过早释放,可能导致无法识别KEY: SHL BL,4 ;8088/8086指令集中该指令格式错误! OR AL,BL ;字节键码信息存入AL,高4位为列信息低4位为行信息 LEA SI,KEYCOD LEA DI,KEYVAL MOV CX,12NEXT1: C

13、MP AL,SI JZ FIND INC SI INC DI LOOP NEXT1 JMP WT ;本程序不支持多个按键同时按下FIND: MOV AL,DI ;AL中内容为所按键的键面值 PUSH AX MOV AL,00000000B MOV DX,PORT2 OUTDX,AL ;使数码管全灭,并使3根列线输出全0 NOP NOP NEXT2: MOV DX,PORT2 IN AL,DX ;(粗扫描)若无键按下转至WT执行,否则顺序执行 AND AL,0FH CMP AL,0FH JNZ NEXT2 POP AX CALL DELAY POP DI POP SI POP BX POP DX

14、 RET INPUT ENDP ;中断服务程序 RUN PROC FAR PUSH AX PUSH DX CMP FLAG,0 JZ ZHZ ROL RNUM,1 MOV AL,RNUM MOV DX,203H OUT DX,AL SUB STEP,1 JMP END1 ZHZ: ROR RNUM,1 MOV AL,RNUM MOV DX,203H OUT DX,AL ADD STEP,1END1: MOV CL,STEP CMP STEP,0 JGE W1 NEG CL MOV AL,05H MOV DX,20AH OUT DX,AL JMP W2W1: MOV AL,0AH MOV DX,20AH OUT DX,ALW2: CMP CL,99 JB END2 MOV STEP,0 END2: MOV AL,CL MOV AH,00H DIV TEN XLAT MOV DX,202H OUT DX,AL XCHG AH,AL XLAT MOV DX,206H OUT DX,AL MOV AL,20H MOV DX,3A0H OUT DX,AL POP DX POP AX IRET RUN ENDP DELAY PROC MOV CX,2

温馨提示

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

评论

0/150

提交评论