微型计算机控制技术课程设计步进电机_第1页
微型计算机控制技术课程设计步进电机_第2页
微型计算机控制技术课程设计步进电机_第3页
微型计算机控制技术课程设计步进电机_第4页
微型计算机控制技术课程设计步进电机_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计课程名称微型计算机控制技术 题目名称 步进电机角度控制(2) 学生学院 一 _自动化_ 专业班级学 号学生姓名指导教师李传芳2013 年 06 月 28 H一、软件设计流程图如下图所示:二、心得与体会这次的课程设计主要针对键盘及可编程接口芯片8255A的编程,在上机调试过程中山于 自己的疏忽及算法的不完善导致了程序不能实现预期的功能,经过一遍乂一遍的检查和思考, 终于完成了这次课程设计的任务。虽然上机调试的经历是痛苦的,但是期间的细节错误给了我们应有的教训,使我们在以后的 学习及工作中尽量避免,对于汇编语言的编程也有了进一步的了解加深了对步进电机的理解 和使用技巧,设计中,需要对步进电

2、机进行角度控制,即需要对步进电机的角度进行计算分 析,以得到所需的步数。总之,这次课程设计锻炼了我解决问题的能力,激发了我的思考,相信通过这次课程设 计对我以后对微机的继续学习及以后的工作会有很大的帮助。360AB72F移显示:1.2源程序:;键盘扫描KEYABC:CALL TIMEMOV DX,0604H IN AL,DXAND AL,60HCMP AL,60H 0000JNZ KEYJMP STTKEY: MOV AL,0FEH PCO=OMOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,20HJNZ KEY_FCALL KEYAJMPSTT

3、KKEY_F: TEST AL,040HJNZ KEY_0CALL KEYFJMPSTTK KEY_0:MOV AL,0FDH PC 1=0MOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,20HJNZ KEY_2CALL KEYOJMPSTTK KEY_2:TEST AL,040HJNZ KEY_6CALL KEYFJMP STTKKEY_6:MOV AL,0FBHMOV DX,0604H;PC6 PC5=0110 汩描PCO 口;检测PC5;检测PC6 口;扫描卩(21 口,;检测PC5;检测PC6 口;否则是按键2;PC2=0任务1连接数码

4、管显示电路和键盘电路,实现如下表所示的按键控制,并能够左STACK SEGMENT STACKDB 64 DUP(?)STACK ENDSDATA SEGMENTORG 0030HVARI DB 0FCH,0FCH,0FCH,0FCHVAR5 DB OF7H,OFBH,OFDH,OFEHVAR2DB0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,OFCHVAR3 DBOOH,OOH,OOH,OOH,OOH,OOH,OOH,OOHVAR4DBOOH,OOH,OOH,OOH,OOH,OOH,OOH,OOHTABLEI DB0FCH,60H,0DAH,0F2H,66H,0B6H

5、,0BEH,0E0H,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,88H;8255初始化MOV DX,0606HOUT DX,ALSTT:MOV AL,60HMOV DX,0604HOUT DX,ALNEXT: MOV DX,0604HIN AL, DXAND AL,60HCMP AL,60HJNZ KEYABCCALL DISPJMP STTOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,

6、20H ;检测戸。5JNZ KEY_7CALL KEY6JMPSTTKKEY_7:TEST AL,040H ;检测卩。6 口JNZ KEY_3CALL KEY7JMPSTTKKEY_3:MOV AL,0F7H PC3=0MOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,20HJNZ KEY_BCALL KEY3;检测PC5JMPSTTKKEY_B:TEST AL,040HJNZ KEY_111CALL KEYB;检测PC6 口RETKEY0:CMP BH,00HJZ KEY1_1 KEYO_1:CALL LPiMOV AL,0FCHMOV SI,

7、ALMOV AL,OOHMOV DI,AL CALL DISP RETKEY2:CMP BH,00HJZ KEYF_1 KEY2_1:CALL LPIMOV AL,0DHMOV SI,ALMOV AL,02HMOV DI,ALCALL DISPRETKEY6:CMP BH,00HJZ KEY7_1KEY6_1:CALL LPIMOV AL,0BEHMOV SI,ALMOV AL,06HMOV DI,ALCALL DISPRETKEY_111:JMPSTTK;数字XIANSHIKEYA:CMP BH,00HJZ KEYA_1KEYA_1: CALL LP1MOV AL,0EEHMOV SI,AL

8、MOV AL,0AHMOV DI,ALCALL DISPRETKEYF: CMP BH,00HJZ KEYE_1KEYF_1:CALL LP1MOV AL,8EHMOV SI,ALMOV AL,0FHMOV DI,AL CALL DISPKEY7:CMP BH,00HJZ KEYA_1KEY7_1:CALL LPIMOV AL,0E0HMOV SI,ALMOV AL,07HMOV DI,ALCALL DISPRETKEY3:CMP BH,OOH JZ KEY8_1 KEY3_1:CALL LP1MOV AL,0F2HMOV SI,ALMOV AL,03HMOV DI,AL CALL DISP

9、RETKEYB:CMP BH,00H JZ KEYB_1KEYB_1:CALL LP1MOV AL,3EHMOV SI,ALMOV AL,0BHMOV DI,AL CALL DISP RETLP1:MOV SLOFFSET VARIPUSH AXMOV AL,SI+2MOV SI+3,ALMOV ALJSI+1MOV SI+2,ALMOV AL,SIMOV SI+1,ALPOP AXMOV SI,ALRET;显示DISP:PUSH DXPUSH CXMOV SI,OFFSET VARIMOV DX,0604HMOV ALJllllllOBOUT DX,ALMOV DX,0602HMOV AL,

10、SI+3OUT DX,ALDEC SICALL TIMEMOV DX.0604HMOV ALJlllllOlBOUT DX,ALMOV DX,0602HMOV AL,SI+3OUT DX,ALDEC SICALL TIMEMOV DX,0604HMOV ALJllllOllBOUT DX,ALMOV DX,0602HMOV AL,SI+3OUT DX,ALDEC SICALL TIMEMOV DX,0604HMOV ALJlllOlllBOUT DX,ALMOV DX,0602HMOV AL,SI+3OUT DX,ALDEC SICALL TIMEPOP AXPOP DXRET;延时TIME:

11、PUSH AXPUSH CXMOV CX,0006HTIME1: MOV AX,0100HTIME2: DEC AXJNZ TIME2LOOP TIME1POP CXPOP AXRET;放键测试STTK:CALL DISPMOV AL,OOHMOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXAND AL,60HCMP AL,60HJNZ STTKJMP STTCODE ENDSEND STARTVAR2 DB 0FCH,0FCH,0FCH,0FCHVAR5 DB OOH,OOH,OOH,OOH,OOH,OOH TABL DB0FCH,60H,0DH,0F2H,6

12、6H,0B6H,0BEH,0E0H ,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH TAB_C DW OOHORGOIOOHVAR3 DB 64 DUP(?)ORG 0200HVAR4 DW 64 DUP(?)COUNT DB OOHTABLE DB08H,l 8H,10H,30H,20H,60H,40H,48HD_COUNT DB OOHD_TIMES DB OOHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA任务2实现:定义键盘按键:5个为数字键:0、1、3、5、9 ;3个功能键:设置SET、清零CLR、 开始START;按键

13、分布如下表所示:0365SET4STARTCLR2.2源程序:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTSTART: MOV AX,DATAMOV DS,AXPUSH DXMOV AL,88H;8255初始化MOV DX,0606HOUT DX,ALMOV BX.0000HMOV COUNT,OOHMOV D_COUNT,OOHMOV D_TIMES,00HSTT:MOV AL,00HMOV DX,0604HOUT DX,ALNEXT: MOV DX,0604HIN AL, DXAND AL.60HCMP AL,60HJNZ K

14、EYABCCALL DISPJMP STTPOP DXVARI DB OF7H.OFBH,OFDH,OFEH;键盘扫描KEYABC:PUSH DXCALL TIMEMOV DX,0604HIN AL,DXAND AL,60HCMP AL,60H ;PC6 PC5 =01100000JNZ KEY_5JMP STTPOP DXKEY_5: MOV AL,0FEH ;扫描PCO 口MOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,20H ;检测卩。5JNZ KEY_CLRCALL KEY5;否则是按键5JMPSTTKKEY_CLR: TEST AL,

15、40H ;检测PC6 口JNZ KEY_6CALL KEYCLRJMPSTTKKEY_6:MOV AL,0FDHMOV DX,0604HOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,20H ;检测PC5JNZ KEY.STARTCALL KEY6JMPSTTKKEY_START:TEST AL40HJNZ KEY_3CALL KEYSTART JMPSTTKKEY_3:MOV AL,0FBHMOV DX,0604H OUT DX,AL MOV DX,0604H;检测PC6 口IN AL.DXTEST AL,20HJNZ KEY_4CALL KEY3JMPSTTKKE

16、Y_4:TEST AL.40HJNZ KEY_0CALL KEY4JMPSTTKKEY_0:MOV AL.0F7HMOV DX.0604HOUT DX,ALMOV DX.0604HIN AL.DXTEST AL,20HJNZ KEY_SETCALL KEY0JMPSTTKKEY_SET:TEST AL,40HJNZ KEY_111CALL KEYSETKEY_111:JMP STTKKEY0:CALL LP1MOV AL,00HMOV DI,ALMOV AL,0FCHMOV SI,AL CALL DISP RETKEY3: CALL LP1MOV AL,03HMOV DI,ALMOV AL,0

17、F2HMOV SI,AL CALL DISP RET;检测PC5;检测PC6 口;检测PC5;检测PC6 口KEY4: CALL LP1MOV AL,04HMOV DI,ALMOV AL,66HMOV SI,AL CALL DISPRETKEY5: CALL LP1MOV AL,05HMOV DI,ALMOV AL,0B6HMOV SI,AL CALL DISP RETKEY6: CALL LPiMOV AL,06HMOV DI,ALMOV AL,0BEHMOV SI,AL CALL DISP RETKEYSTART: CMP COUNT,OOHJZ STA1MOV AL,COUNTCBWPU

18、SH AXMOV SLOFFSET VAR4MOV DI,OFFSET TABLEMOV DL,00HSTA4:MOV BX,SIMOV AX,SI+2MOV DH,0FHDIV DHMOV DH,04HMUL DHINC SIINC SIINC SIINC SIPUSH AXSTA5: POP AXMOV CX,AXPUSH AXSTA2: PUSH DXMOV AL,DIMOV DX,0600HOUT DX,ALPOP DXINC DIINC DLCALL DISP1CALL DALLY 1CMP DL,08HJNZ STA3MOV DL,00HMOV DI,OFFSET TABLEST

19、A3: LOOP STA2CALL DISP1DEC BXJNZ STA5INC D_COUNTMOV AL,COUNTPOP AXCALL DISP1DEC COUNTJNZ STA4POP AXCALL DISP1DEC COUNTJNZ STA4POP AXMOV COUNT,ALMOV D_COUNT,OOHMOV TAB_C,DIMOV CL,DLSTA1: RETKEYSET: LEA SI,VAR2LEA DI,VAR3MOV AL,COUNTCBWADD DI,AXADD DI,AXADD DI,AXADD DI,AXMOV CX,0004HSET1:MOV AL,SIMOV

20、DI,ALINC DIINC SILOOP SET 1LEA SI,VAR5MOV DX,0000HMOV DLOFFSET VAR4MOV AL,COUNTCBWADD DI,AXADD DI,AXADD DI,AXADD DI,AXMOV AL,SIMOV DI,ALMOV AL,SI+1MOV BL,64HMULBLADD DX,AXMOV AL,SI+2MOV CL,0AHMULBLADD DX,AXMOV BL,SI+3CBWADD AX,DXMOV DI+2,AXMOV CX,0004HLEA SI,VAR2LEA DI,VAR5SET2: MOV SI,0FCHMOV DI,OO

21、HINC SIINC DILOOPSET2CALL DISPINC COUNTRETKEYCLR: CMP COUNT,OOHJZ CLR1MOV DI,TAB_CMOV SLOFFSET VAR4MOV DL,CLTEST DL,DLJNZ CLR6MOV DL,08HMOV DLOFFSET TABLEMOV AL,07HCBWADD DI,AXCLR6: DEC DIDEC DLCLR4: MOV BX,SIMOV AX,SI+2MOV DH,0FHDIV DHMOV DH,04HMUL DHINC SIINC SIINC SIINC SIPUSH AXCLR5: POP AXMOV C

22、X,AXPUSH AXCLR2: PUSH DXMOV AL,DIMOV DX,0600HOUT DX,ALPOP DXDEC DIDEC DLCALL DALLYTEST DL,DLJNZ CLR3MOV DL,08HMOV DLOFFSET TABLEMOV AL,07HCBWADD DI,AXCLR3: LOOP CLR2DEC BXJNZ CLR5MOV AL,COUNT POP AXDEC COUNTJNZ CLR4MOV COUNT,OOHCLR1: MOV CX.0004HLEA SI,VAR3 LEA DI,VAR4CLR7: MOV SI,0FCH MOV DI,OOH IN

23、C SIINC DILOOP CLR7CALL CLRR CALL DISP RETCALL TIME INC SIINC DIMOV CX,0003HDIR1: MOV AL,SIMOV DX,0604HOUT DX,ALMOV AL,DIMOV DX,0602HOUT DX,AL CALL TIME INC SIINC DILOOP DIR1POP DIPOP SIPOP DXPOP CXPOP BXPOP AXRETLP1:MOV CX,0003H LEA SI,VAR2 LEA DI,VAR5LP2: MOV AL,SI+1 MOV SI,AL MOV AL,DI+1 MOV DI,AL INC DIINC SI LOOP LP2 RETDISP: LEASLVARlLEA DI,VAR2MOV CX,0004HDIR: MOV AL,SIMOV DX,0604H OUT DX,ALMO

温馨提示

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

评论

0/150

提交评论