1、核准通过,归档资料。未经允许,请勿外传!核准通过,归档资料。未经允许,请勿外传!目 录摘要: 31 引言 32 系统设计 32.1 系统的基本方案 .39JWKffwvG#tYM*Jg定义延时子程序:延时程序是由两曾循环程序构成的 BL 是外曾循环的次数 CX是内层循环的次数延迟时间长则脉冲频率小转速慢DELAY PROC NEAR ;DELAY1: MOV CX,0FFHMOV BL,10HDELAY2: LOOP DELAY2DEC BLJNZ DELAY1 RETDELAY ENDP2.8 软件程序流程图图 4 软件流程图2.9 系统的总体硬件原理图3 总结与致谢微机原理这门课程学完后我
2、有很大的收获,对汇编语言有了初步的了解。并且通过本实验让我对汇编语言产生很大的兴趣,让我掌握了汇编编程的总体思路,本实验利用微机控制步进电机的调速,在实验过程中遇到的问题告诉我可以通过改变 CX 的赋值来控制电们理论的编程要结合实际的电动机技术指标调试延迟时间和实验箱的电机的转动速度。CX 越小电动机的转动速度越大。也可以通过改变 BL 的值来改变单个开关的速度。我们把CX 称为总开关,BL 成为分开关。从而达到从 K0 到 K6 速度逐渐变快,而K7 控制电动机的反转。当 K7 闭合时 电动机反转。从这次实验中并让我进一步的学习到了 8255 的应用和掌握了 8255 的初始化和其编程。对我
3、们以后的工作和学习起到的积极的作用。这次设计同时督促我查了许多的资料,让我学到了很多的知识,附件部分汇编程序DATA SEGMENTCOM_ADD DW 00F3H ;控制口偏移量PA_ADD DW 00F0H ;PA 口偏移量PB_ADD DW 00F1H ;PB 口偏移量PC_ADD DW 00F2H ;PC 口偏移量BUF DB 0 ;定义一个字节数据(用来存入开关的状态)MES DB K0-K6 ARE SPEED CONTYOL,0AH,0DH;写入一些文字用来描述DB K6 IS THE HIGHEST SPEED ,0AH,0DH ;各个开关所代表的速度DB K0 IS THE
4、LOWEST SPEED,0AH,0DH ;K0 为最低速,K6 为最高速DB K7 IS THE DIRECTION CONTROL,0AH,0DH,$;K7 为方向键DATA ENDS;2.代码段代码CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX ;程序的初始化MOV DX,OFFSET MESMOV AH,09INT 21H ;显示各个开关的信息MOV DX,COM_ADDMOV AL,92H ;(92H=10010010B,为控制字)OUT DX,AL ; C 口做输出,A 口做输入;送 33H 到 A 口输出
5、给后面电机的正反转提供初只 调用 BIOS 功能的 INT16的 1 号功能,判断是否按下 如果有则返回 DOS 如果没有判断开关的状态。MOV BUF,33HOUT1: MOV AL,BUFMOV DX,PC_ADDOUT DX,AL ;间接寻址获得 AL 的值PUSH DXMOV AH,06hMOV D1,0ffhINT 21H ;检查是否有键按下 POP DXJE IN1 ;有键按下就停止,没有则转向 IN1 去执行MOV AH,4CHINT 21HIN1: MOV DX,PA_ADDIN AL,DX ;获得各个开关的状态 TEST AL,01HJNZ K0TEST AL,02HJNZ
6、K1TEST AL,04HJNZ K2TEST AL,08HJNZ K3TEST AL,10HJNZ K4TEST AL,20HJNZ K5TEST AL,40HJNZ K6 ;检查各个开关的状态,分别转向相应的程序 STOP: MOV DX,PA_ADDMOV AL,0FFHJMP OUT1 ;置停止信息并转向 OUT1;判断完状态则跳转到执行的程序 献给 BL 复制 实现岩石时间 控制转速 然后判断 K7 的状态是 1 还是 0 。K0: MOV BL,10HSAM: TEST AL,80H;继续判断 K7 是否为 0JZ ZX0 ;为 0 就转向 ZX0(循环右移程序)JMP NX0 ;
7、为 1 就转向 NX0(循环左移程序)K1: MOV BL,2FH ;BL 为延时子程序的内层循环计数器JMP SAMK2: MOV BL,4FHJMP SAMK3: MOV BL,6FHJMP SAMK4: MOV BL,8FHJMP SAMK5: MOV BL,0AFHJMP SAMK6: MOV BL,0CFHJMP SAMZX0: CALL DELAY ;调用延时子程序MOV AL,BUFROR AL,1MOV BUF,ALJMP OUT1 ;循环右移NX0: CALL DELAY;调用延时子程序MOV AL,BUFROL AL,1MOV BUF,ALJMP OUT1 ;循环左移;延时程序是由两曾循环程序构成的 BL 是外曾循环的次数 CX 是内层循环的次数严实时间长则脉冲频率小 转速慢DELAY PROC NEAR ;定义延时子程序MOV CX,0FFHDELAY2: LOOP DELAY2DEC BLJNZ STST: RETDELAY ENDPCODE ENDSEND START