微机原理接口技术综合实验 步进电机
微机实验报告 步进电机正反转及调速设计
微机原理与接口设计实验报告步进电机正反转及调速设计专业:机械设计制造及其自动化班级:10090112小组成员:周先军 10901239张赓 10901240胡一国 08901312组别: B5摘要:本系统是基于STM8系列单片机的步进电机转速转向控制器。
该系统采用STM8S103F3P6单片机作为主控制器,运用L298全桥驱动器驱动步进电机,通过摇杆、按键控制电机转速,并且通过1602液晶显示器显示当前转速。
该系统中使用的四相步进电机,具有控制精度高,转动扭矩大等特点,实际生产中有广泛的运用。
系统中除了传统按键控制外,还增加遥控控制,单片机通过AD读取摇杆控制信号,实时控制电机转速。
整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。
关键词:四相步进电机 STM8单片机控制 L298驱动电路正反转摇杆控制一、系统方案1.1控制系统方案方案一:采用8086系列单片机。
8086是Inter系列的16位微处理器,数据处理能力强。
但是8086系列的CPU指令数据需要放置在内存中,需要依赖外部非易失存储器和RAM才可以工作,外部电路复杂。
方案二:采用STM8系列单片机。
STM8是意法半导体生产的8位单片机,哈弗结构。
拥有8K字节Flash,1K字节RAM,1K EEPROM,内部集成5路10位ADC,高级控制定时器可带死区控制PWM 、以及SPI 、I2C等接口。
整体性能优越,价格便宜,周边电路简单。
综上对比,选择方案二。
1.2驱动电路方案方案一:采用ULN2003达林顿管阵列控制电机。
ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成,工作电压高,工作电流大,灌电流可达500mA。
但系统采用通用四线四相步进电机,需要两路同时灌、输电流,该驱动设计只能满足5线步进电机的驱动,不符合要求。
方案二;采用L298集成全桥驱动芯片。
L298内部含有4通道逻辑驱动电路,是一种二相和四相电机专业驱动器,内含有两个H桥的高电压大电流双全桥式驱动器,接受标准的TTL逻辑电平信号,可驱动46V、2A以下的电机。
微机原理与接口实验报告_步进机_汇编
汇编及接口技术课程设计步进电机控制系统班 级: 090614学 号:姓 名:时 间:2011—12—28成绩:目录(一)设计目的(二)设计内容(三)硬件线路设计(四)硬件测试(五)程序清单(六)调试过程(七)总结正文内容一、设计目的1. 了解微机控制的竞赛抢答器的基本原理。
2. 进一步熟练8255、(8254)的使用。
二、设计内容编程控制步进电机,使其能够正常运转,要求:1.开关K8控制电机的启动与停止:当K8向上拨时,电机启动,否则电机停止;2.开关K1~7控制电机的转速:K1向上拨时,得到最低转速,…… K7向上拨时,得到最高转速。
3.电机反转。
三、硬件线路设计1、硬件电路设计提示:1)8255的端口A(PA0-PA7)和开关K1-K8相连。
2)8255的端口B(PB0-PB7)通过驱动连接到LED的a~h各段。
3)8255的端口C(如PC7、PC6)分别和发光二极管L2(绿)、L1(红)连接。
4) 8255的端口C(如PC5、PC4)分别和KL1、KL2相连。
2、编程提示:首先初始化8255,然后判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;否则启动下一次抢答,使绿色发光二极管亮,当8255的输入口PB有不为0的数据时,则使绿色发光二极管灭并使红色发光二极管点亮。
并判断先拨动开关的组号,在LED上显示出其组号。
注意:IOY2的地址比IOY0的多40H。
比如IOY0的地址为0D800H,则IOY2的首地址为0D840H。
3、实验连线8255模块的WR、RD连到ISA总线接口模块的IOWR、IORD,8255选通信号CE连到ISA总线接口模块的IOY0。
8255模块的数据线AD7~AD0、地址线A7~A0分别连到ISA总线接口模块的LAD0~LAD7,LA0~LA7。
步进电机的HA—PC0,HB—PC1,HC—PC2,HD—PC3。
四、硬件测试运行该代码以检测硬件,或直接使用机器自带的程序进行测试!MY_DATA SEGMENTA8255 DW 0C400HB8255 DW 0C401HC8255 DW 0C402HD8255 DW 0C403HSHUN DB 06H,03H,09H,0CH ;顺时针旋转MY_DATA ENDsMY_CODE SEGMENTMY_PROC PROC FARASSUME CS:MY_CODE, DS:MY_DATA START: MOV AX,MY_DA TAMOV DS,AXMOV DX,D8255MOV AL,80HOUT DX,ALMOV BL,33HNEW: MOV DX,C8255IN AL,DXTEST AL,80HJNZ NEXTMOV DX,A8255MOV AL,00H ;停止步进电机OUT DX,ALJMP NEWNEXT: MOV DX,A8255AGAIN: MOV AL,BLOUT DX,ALCALL DELAYROL BL,1JMP NEWEXIT: MOV AX,4C00HINT 21HMY_PROC ENDPDELAY PROC NEAR ;延时程序PUSH CXMOV BP,300HD1: MOV CX,-1D2: LOOP D2DEC BPJNZ D1POP CXRETDELAY ENDpMY_CODE ENDSEND START五、程序清单:P55b equ 201h ;8255B口输出P55C equ 202h ;8255C口输入P55CTRL equ 203h ;8255控制口DATA SEGMENTBUF db 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV DX,P55CTRLMOV AL,99HOUT DX,AL ;8255C输入,B输出MOV BUF,11HOUT1:MOV AL,BUFMOV DX,P55bOUT DX,ALJE IN1 ;有无键按下IN1:MOV DX,P55CIN AL,DX ;读开关状态TEST AL,01HJNZ K0TEST AL,02HJNZ K1TEST AL,04HJNZ K2TEST AL,08HJNZ K3TEST AL,10HJNZ K4TEST AL,20HJNZ K5TEST AL,40HJNZ K6STOP:MOV DX,P55b MOV AL,0FFHJMP OUT1K0:MOV BL,10HTEST AL,80H ;K7是否为JZ ZX0JMP NX0K1:MOV BL,18HJMP SAMK2:MOV BL,20HJMP SAMK3:MOV BL,40HJMP SAMK4:MOV BL,80HJMP SAMK5:MOV BL,0C0HJMP SAMK6:MOV BL,0FFHJMP SAMCALL DELAYMOV AL,BUF ROR AL,1 ;循环右移MOV BUF,ALJMP OUT1NX0:CALL DELAYMOV AL,BUFROL AL,1 ;循环左移MOV BUF,ALJMP OUT1 DELAY PROC NEAR DELAY1:MOV CX,0100H DELAY2:LOOP DELAY2 DEC BLJNZ DELAY1RETDELAY ENDP CODE ENDSEND START六、调试过程首先根据连线提示进行硬件的连接。
微机原理 步进电机共10页文档
华北科技学院计算机系综合性实验实验报《微机原理与接口技术A》课程综合性实验报告图1P55A EQU 288H ;8255 A PORT OUTPUT P55C EQU 28AH ;8255 C PORT INPUTP55CTL EQU 28BH ;8255 COUTRL PORT stack segment stackstack endsDATA SEGMENTBUF DB 0START: MOV AX,CSMOV DS,AXMOV AX,DATAMOV DS,AXMOV DX,OFFSET MESMOV AH,09INT 21HMOV DX,P55CTLMOV AL,8BHOUT DX,AL ;8255 C INPUT, A OUTPUTMOV BUF,33HOUT1: MOV AL,BUFMOV DX,P55AOUT DX,ALpush dxMOV AH,06hmov dl,0ffhINT 21H ;ANY KEY PRESSEDpop dxJE IN1MOV AH,4CHINT 21HIN1: MOV DX,P55CIN AL,DX ;INPUT SWITCH VALUETEST AL,01HJNZ K0TEST AL,02HJNZ K1TEST AL,04HJNZ K2TEST AL,08HJNZ K3TEST AL,10HJNZ K4TEST AL,20HJNZ K5TEST AL,40HJNZ K6STOP: MOV DX,P55AMOV AL,0FFHJMP OUT1K0: MOV BL,10HSAM: TEST AL,80H步进电机原理及使用说明步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
微机原理与接口技术实验报告
微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。
实验一,微机原理。
在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。
通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。
同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。
实验二,接口技术。
在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。
我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。
实验三,实验综合。
在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。
通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。
总结。
通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。
微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。
希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。
以上就是本次实验的实验报告,希望对大家有所帮助。
感谢大家的阅读!。
步进电机控制接口实验
实验一 步进电机控制接口实验一、实验目的通过步进电机控制实验, 学习并行接口电路及其控制程序的设计原理与方法。
二、实验内容基本实验 控制四相步进电机以双八拍方式运行, 自己设置按键来控制电机的启停。
三、实验要求利用MFID 实验平台和步进电机驱动模块板进行硬件连接, 利用MF2KI 集成开发环境进行步进电机软件控制程序的设计、调试, 直到使步进电机正常运行。
四、实验原理1. 步进电机驱动模块板电路原理如图2.1.2所示。
模块板上包括接口的对象永磁式四相步进电机和驱动电路达林顿管TIP, 保护电路74LS373, 相序指示灯以及开关SW1和SW2等。
2.步进电机接口设计原理与方法的详细阐述, 参考计算机接口技术相关参考书。
图2.1.2 步进电机驱动模块电路原理框图五、实验步骤 步骤一: 硬件连接跳线设置: 模块电源L 区 JP8跳接。
单线连法如右图:A 相B 相C 相D 相OE#74LS373开关PA0 PA2 PA4 PA6 PC4 PC0 PC1按键开关T 区SW1 SW2排线接法如右图:步骤二: 将平台的电源开关拔到“内”的位置上。
在配套集成环境下进行硬件检测,来达到初始化芯片的目的。
步骤三: (演示实验步骤)打开集成环境在“演示实验”菜单下点开“基本接口实验”。
在“基本接口实验”中的“并行接口实验”中选择“步进电机”实验进行演示。
步骤四: (学生实验步骤)打开集成环境在“文件”菜单下学生可以选择新建自己的C++/ASM文件或者集成环境自带的C++/ASM参考程序进行调试、运行。
步骤五: 观看实验现象得出结论。
△步进电机接口控制流程图①△步进电机接口控制主程序:NAMA BUJINDIANJIDATA SEGMENTPSTA DB 05H,15H,14H,54H,50H,51H,41H,45H ;DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:CODEORG 100HBEGIN: MOV DX,303H ;初始化8255AMOV AL, 10000001B ;命令控制字OUT DX,AL ;送命令MOV AL,00001001B ;置PC4=1关闭74LS373OUT DX,ALL: MOV DX,302HIN AL,DXAND AL,00000010 ;查SW2按下?未按下, 等待 JNZ L ;按下后继续执行MOV DX,303H ;置PC4=0, 打开74LS37MOV AL,08HOUT DX,ALRELOAD: MOV SI,OFFSET PSTA ;设置相序表指针MOV CX,8 ;设8拍循环次数LOP: MOV DX,302HIN AL,DXAND AL,00000001 ;查SW1按下?未按下, 等待 JZ QUIT ;已按下, 退出MOV AL,[SI] ;未按下, 送相序代码到PA口 MOV DX,300HOUT DX,ALMOV DI,0AFHMOV BX,0FFFFH ;延时DELAY: DEC BXJNZ DELAYDEC DIJNZ DELAYINC SI ;相序表指针+1DEC CX ;循环次数-1JNZ LOP ;未到8次, 继续JMP RELOAD ;已到8次, 重新赋值QUIT: MOV DX,303H ;置PC4=1, 关闭74LS373MOV AL,09OUT DX,ALMOV AH,4CH ;程序退出, 带返回码结束INT 21HCODE ENDSEND START七、心得体会上机实验操作是一个把理论用于实践的很好机会。
步进电机实验微机原理
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电信专业:自动化班级:电自1301学号:201382062学生姓名:宁博成绩:2015年12月26 日题目:步进电机1. 设计要求利用实验台上的开关K7控制步进电机的转向,利用电位器控制步进电机的转速。
具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作,相序之间的时间决定着步进电机的转速,而间隔时间由延时程序中的CX寄存器的初值决定。
2.利用D8255A的PB7做输入控制转向,与K7连接。
其中K7做步进电机的转向控制,用ADC0809实现AD转换,利用电位器控制转速,程序运行时通过K7和电位器对步进电机实施动态控制;3.利用8253做秒脉冲发生器,产生约2秒的周期性方波信号。
其中CNT0做分频器:将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(0.5HZ);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。
方法如下:在ISR中,对D8255A的PB口进行一次输入操作,并根据输入的数据:1)对D7(与K7对应)位的数据为步进电机的转向控制;2)ADC0809读入的数据为步进电机的转速控制。
2 .设计分析及系统方案设计1.使用“寄存器间接寻址”的方式输出相序信号:将步进电机的相序数据定义在数据段当中,使用SI查表(间接寻址)获取相序数据。
其中查表顺序决定着电机转动方向;2.对8253进行编程,使OUT1输出2秒周期的脉冲方波信号。
为了便于调试,建议使用逻辑笔监测OUT1的输出;3.编制与中断相关的程序。
包括中断屏蔽字的设定、中断向量表的创建以及开中断的操作。
上述这些操作都应当加到程序的初始化中;4.编写中断服务程序ISR。
微机原理及接口技术课程设计(步进电机)
微机原理及接口技术课程设报告题目步进电机转速实时控制学院电子信息工程学院专业学生姓名学号年级级指导教师职称二O一四年六月目录一、课程设计目的 (3)二、方案设计 (3)三、硬件系统的基本原理 (3)1、系统硬件子系统构成 (3)2、步进电机控制原理接线图 (4)3、工作原理 (5)四、软件框图及设计思想 (6)1、设计思想 (6)2、程序框图 (7)五、软件清单 (8)六、心得体会 (11)七、主要参考资料 (13)题目:步进电机转速实时控制一、课程设计目的:1、掌握四相步进电机接口电路的原理;2、理解步进电机正、反转工作原理和转速控制原理。
二、方案设计:本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V,电机的励磁线圈顺序已经在实验指导书中给定。
以8255A 作为并行输出接口,通过查询步进电机的励磁线圈顺序表以及计算出步进电机的相序表,编写出适当的程序来调节步进电机的正反转以及转速问题。
同时利用程序对步进电机事实与数码管同步的相应运转状态,从而使得整个步进电机控制系统得以准确实现。
三、硬件系统的基本原理:1、系统硬件子系统的构成:本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如下图及下表所示:2、步进电机控制原理:4 - -3 - - -2 - - -1 - - -3、工作原理:4相步进电机示意图见下左图,转子由一个永久磁铁构成,定子分别由4组绕组构成电气连接示意图电机定子和转子示意图当S1连通电源后,定子磁场将产生一个靠近转子为N极,远离转子为S极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地S1、S4的送电次序,就能控制转子旋转的方向。
例如:若送电的顺序为S1闭合断开S2闭合断开S3闭合断开S4闭合断开,周而复始的循环,在定子和转子共同作用下,电机就瞬时针旋转:若送电的顺序为S4闭合断开S3闭合断开S2闭合断开S1闭合断开,周而复始的循环,则电机就逆时针旋转,原理同理。
步进电机微机实验报告
步进电机微机实验报告步进电机微机实验报告引言:步进电机是一种特殊的电动机,它可以根据输入的电脉冲信号精确地控制转动角度和速度。
在本次实验中,我们使用了微机控制步进电机的转动,通过编写程序和控制电路,实现了步进电机的正转、反转和定位功能。
本报告将详细介绍实验的目的、原理、实验过程和结果,并对实验中遇到的问题进行分析和解决。
一、实验目的本次实验的目的是通过微机控制步进电机的转动,掌握步进电机的工作原理和控制方法。
具体目标包括:1. 理解步进电机的工作原理和结构特点;2. 掌握步进电机的控制方式和驱动电路设计;3. 通过编写程序实现步进电机的正转、反转和定位功能;4. 分析实验中可能遇到的问题,并提出解决方案。
二、实验原理步进电机是一种将电脉冲信号转化为机械转动的电动机。
它由定子、转子和驱动电路组成。
定子上有多个绕组,每个绕组上有若干个磁极。
转子上有多个磁极,与定子的磁极相对应。
通过改变绕组的通电顺序,可以使转子按一定的步距转动。
步进电机有两种常见的控制方式:全步进和半步进。
全步进模式下,每个步进脉冲使电机转动一个步距角度;半步进模式下,每个步进脉冲使电机转动半个步距角度。
在实验中,我们将使用全步进模式进行控制。
三、实验过程1. 设计驱动电路:根据步进电机的额定电流和电压,设计合适的驱动电路。
选择合适的功率晶体管和电流限制电阻,确保电机能够正常工作。
2. 连接电路:按照驱动电路的设计连接步进电机和微机。
注意接线的正确性和稳定性。
3. 编写控制程序:使用合适的编程语言编写步进电机的控制程序。
程序需要实现电机的正转、反转和定位功能。
4. 调试程序:通过调试程序,确保电机能够按照预期的方式工作。
可以通过改变电脉冲的频率和脉冲数来调整电机的转速和转动角度。
5. 实验结果记录:记录电机的转动角度、转速和实际运行情况。
分析实验结果,验证实验的准确性和可行性。
四、实验结果与分析经过实验,我们成功实现了步进电机的正转、反转和定位功能。
步进电机微机实验报告
一、实验目的1. 熟悉步进电机的工作原理和特性。
2. 掌握通过微机控制步进电机的基本方法。
3. 了解步进电机在微机控制下的应用。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是步进角固定,控制精度高,响应速度快。
步进电机的工作原理是:当给步进电机输入一定频率的脉冲信号时,电机就会以一定的步进角进行旋转。
步进电机的控制方式主要有以下几种:1. 单相控制:将步进电机绕组分为A、B、C、D四相,每相依次通电,实现电机的旋转。
2. 双相控制:将步进电机绕组分为A、B两相,通过改变A、B两相的通电顺序,实现电机的旋转。
3. 四相控制:将步进电机绕组分为A、B、C、D四相,通过改变A、B、C、D四相的通电顺序,实现电机的旋转。
三、实验设备1. 微机:一台2. 步进电机驱动器:一台3. 步进电机:一台4. 编程软件:例如Keil、IAR等5. 连接线:若干四、实验内容1. 步进电机基本特性测试(1)观察步进电机在不同脉冲频率下的转动情况。
(2)观察步进电机在不同脉冲数下的转动角度。
2. 步进电机单相控制(1)编写程序,实现步进电机单相控制。
(2)测试步进电机单相控制下的转动情况。
3. 步进电机双相控制(1)编写程序,实现步进电机双相控制。
(2)测试步进电机双相控制下的转动情况。
4. 步进电机四相控制(1)编写程序,实现步进电机四相控制。
(2)测试步进电机四相控制下的转动情况。
5. 步进电机转速控制(1)编写程序,实现步进电机转速控制。
(2)测试步进电机在不同转速下的转动情况。
6. 步进电机转向控制(1)编写程序,实现步进电机转向控制。
(2)测试步进电机正转和反转的情况。
五、实验步骤1. 连接步进电机驱动器和步进电机。
2. 在微机上编写程序,实现步进电机的基本控制。
3. 编写程序,实现步进电机单相、双相、四相控制。
4. 编写程序,实现步进电机转速和转向控制。
5. 运行程序,观察步进电机的转动情况。
微机原理接口技术综合实验 步进电机
INT 21HANY KEY PRESSED
POPDX *****控制信息出栈****
JE IN1***判断开关K0~K7是否被按下,是则跳转**
MOV AH,4CH
INT 21H***返回DOS****
IN1:MOV DX,P55a
IN AL,DX****从端口A读输入值****
JMP SAM
K6:MOV BL,0FFH
JMP SAM
第二部分:
DELAY PROC NEAR
DELAY1: MOV CX,0FFFFH;05A4H
DELAY2: LOOP DELAY2
DEC BL
JNZ DELAY1
RET
DELAY ENDP
代码解释:对应于按键K0~K6寄存器BL都有不同的值。根据BX值的不同通过指令DEC BX和指令JNZ DELAY1可以得到不同长度的延时,由不同长度的延时可以得到不同频率的输入脉冲,从而可以控制电机的转速。
实验说明
1、按图1连接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。8255 CS接288H~28FH。PA0~PA3接BA~BD;PC0~PC7接K0~K7。
2、编程:
当K0~K6中某一开关为“1”(向上拨)时步进电机启动。K7向上打电机正转,向下打电机反转。
JNZ K6
STOP:MOV DX,P55c****程序第一次执行结束****
MOV AL,0FFH
JMP OUT1*****循环跳转*****
K0:MOV BL,10H
SAM:TEST AL,80H
JZ ZX0****检测K7是否被按下,否跳转到ZXO**
JMP NX0*****K7=1被按下跳转到NXO*****
微型计算机原理步进电机实验
微型计算机原理步进电机实验一、实验目的掌握步进电机的基本工作原理和控制方法,理解步进电机与微型计算机的接口原理。
二、实验器材1.电脑2.步进电机3.驱动器电路板4.接口电缆5.实验面包板6.杜邦线7.电源三、实验步骤1.搭建电路连接:将步进电机与驱动器电路板连接,然后将驱动器电路板与微型计算机的接口电缆连接。
2.编写控制程序:使用任何一种编程语言,编写通过微型计算机控制步进电机的程序。
3.载入程序:将编写好的控制程序载入微型计算机。
4.运行程序:执行控制程序,观察步进电机的运动情况。
四、实验内容1.观察步进电机是否正常运转。
2.改变控制程序中的参数,例如步进角度和转速,观察步进电机的运动情况。
3.尝试通过控制程序改变步进电机的运动方向。
4.尝试同时控制多个步进电机。
五、实验原理步进电机是一种能够按照指令进行旋转的电机。
它可以精确控制转动角度和转速,适用于需要精确定位的应用场景。
步进电机的控制通常使用驱动器来实现。
驱动器接受来自微型计算机的指令,然后根据指令来控制步进电机的转动。
步进电机的控制方法有多种,常见的有脉冲信号控制方法和磁场控制方法。
脉冲信号控制方法是通过给步进电机的控制端口发送不同的脉冲信号来实现转动控制;磁场控制方法是通过改变电磁铁的磁场来使步进电机转动。
在本实验中,我们使用脉冲信号控制方法来控制步进电机。
步进电机的转动是按照一定的角度来进行的,这个角度叫做步角。
步进电机通常有两种类型:单圈步进电机和多圈步进电机,它们的步角不同。
每接收到一个脉冲信号,步进电机就会转动一定的步角。
驱动器电路板通常有多个控制端口,用来接收控制信号。
控制信号可以是高电平或低电平的脉冲信号,通过给这些控制端口发送不同的脉冲信号,就可以控制步进电机的转动方向和转动步数。
六、实验问题与解答1.为什么要使用驱动器来控制步进电机?答:步进电机的控制需要精确的脉冲信号来实现转动控制,而微型计算机无法直接提供这种精确的信号。
微机步进电机实验报告
一、实验目的1. 了解步进电机的工作原理,掌握其控制方式和调速方法。
2. 学习使用微机对步进电机进行控制,提高微机应用能力。
3. 培养实验操作和数据分析能力。
二、实验设备及器件1. 微机一台2. 步进电机驱动器一台3. 步进电机一台4. 电源一个5. 连接导线若干三、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,具有定位精度高、响应速度快、控制简单等优点。
步进电机的工作原理是利用电机的磁极与定子磁极之间的磁力相互作用,通过控制脉冲信号的输入,使电机产生相应的角位移。
步进电机的控制方式主要有以下几种:1. 单拍控制:每输入一个脉冲信号,电机转动一个步距角。
2. 双拍控制:每输入两个脉冲信号,电机转动一个步距角。
3. 四拍控制:每输入四个脉冲信号,电机转动一个步距角。
步进电机的调速方法主要有以下几种:1. 脉冲频率调速:通过改变脉冲信号的频率,实现电机转速的调节。
2. 脉冲宽度调速:通过改变脉冲信号的宽度,实现电机转速的调节。
3. 脉冲分配调速:通过改变脉冲信号的分配方式,实现电机转速的调节。
四、实验步骤1. 将步进电机驱动器连接到微机,确保连接正确。
2. 将步进电机连接到驱动器,确保连接牢固。
3. 将电源连接到驱动器,确保电源电压符合要求。
4. 编写程序,实现步进电机的控制功能。
5. 调试程序,观察步进电机的转动情况。
6. 分析实验结果,总结实验经验。
五、实验程序以下是一个简单的步进电机控制程序,实现单拍控制方式:```c#include <reg51.h>#define STEP_PIN P2 // 定义步进电机控制端口void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 123; j++);}void main() {while (1) {STEP_PIN = 0x01; // 输入第一个脉冲信号delay(100); // 延时STEP_PIN = 0x00; // 清除脉冲信号delay(100); // 延时}}```六、实验结果与分析1. 在实验过程中,通过改变脉冲信号的频率,实现了步进电机的调速。
微机原理及接口技术课程设计(步进电机)
三、硬件系统的基本原理:
1、系统硬件子系统的构成:
本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如下图及下表所示:
1
2
3
4
5
6
7
8
5
+
+
+
+
+
+
+
+
4
-
-
3
-
-
-
2
-
-
-
1
-
-
-பைடு நூலகம்
2、步进电机控制原理:
接线图:
B4区8255的PC0、PC1、PC2、PC3分别接E1区步进电机的A、B、C、D;
DEC BX
DECDX
JZ M1
LOOPA5
JMPM2
M2:MOV BX,OFFSET TAB
MOVAX,0007H
微机原理步进电机控制
微机原理步进电机控制微机原理步进电机控制实验报告实验步进电机控制⼀、实验内容l、⽤8255的PA0,PA3输出脉冲信号,驱动步进电机转动,通过键盘设定来控制步进电机正转、反转、停⽌。
2、实验预备知识,步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,⽤微电脑控制步进电机最适合。
⼆、实验步骤1、在系统处于命令提⽰符“P.”态下,按SCAL键。
2、按图6,9连好实验线路图,8255的PA0,PA3依次连到HA-HD插孔。
3、运⾏实验程序。
在系统处于命令提⽰符“P.”态下,输⼊1630,按EXEC键,显⽰BJ?,按“1”键正转;按“2”键反转;按“3”停⽌。
4、观察步进电机转动情况。
三、实验原理图, 实验接线图:四(实验程序清单CODE SEGMENT ;BJ.ASM ASSUME CS: CODE IOCONPT EQU 0FF2BH IOBPT EQU 0FF29H IOAPT EQU 0FF28HPA EQU 0FF20H ;字位⼝PB EQU 0FF21H ;字形⼝PC EQU 0FF22H ;键⼊⼝ORG 1630HSTART: JMP START0 BUF DB ?,?,?,?,?,? KZ DB ?ltime db ?lkey db ?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F1HSTART0: CALL BUF1 ;写显⽰缓冲区初值MOV AL,88H ;MOV DX,IOCONPTOUT DX,AL ;写命令字redikey: call dispkey ;调⽤显⽰键扫cmp KZ,01h ;是1键正转JZ ZZcmp KZ,02h ;是2键反转JZ STXJMP REDIKEY ;继续读键JMP ST ;转停⽌ STX:ZZ: CALL BUFZ ;显⽰正转值ZZ1: MOV DX,IOAPT ;PA⼝MOV AL,03H ;MOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.B两相CALL DELPZ ;延时,读键MOV AL,06HMOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.d两相CALL DELPZ MOV AL,0CHMOV DX,IOAPTOUT DX,AL ;驱动步进电机,C.D两相CALL DELPZ MOV AL,09H ;驱动步进电机,B.C两相MOV DX,IOAPT OUT DX,ALCALL DELPZMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,09HMOV DX,IOAPTOUT DX,AL;------------------------- FZ: CALL BUFF ;反转⼊⼝FZ1: MOV DX,IOAPTMOV AL,0CHOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV DX,IOAPTMOV AL,03HOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,00HOUT DX,ALST1: call dispkey cmp KZ,01hJZ ZZMONcmp KZ,02hJZ FZMONJMP ST1delpZ: mov cx,02h con1: push cx CALL dispkey pop cxcmp KZ,02hJZ FZMONcmp KZ,03hJZ STMONloop con1RETdelpF: mov cx,02h con2: push cx CALL dispkey pop cxcmp KZ,01hJZ ZZMONcmp KZ,03hJZ STMONloop con2RETZZMON: POP CXJMP ZZFZMON: POP CXJMP FZSTMON: POP CXJMP ST;-------------------------dispkey: call disp ;键盘显⽰⼦程序,见前注释call key mov ah,al ;newkeymov bl,ltime ;ltimemov dx,PA ;0ff21hout dx,alcmp ah,bhmov bh,ah ;bh=new keymov ah,bl ;al=timejz disk4mov bl,88hmov ah,88hdisk4: dec ahcmp ah,82hjz disk6cmp ah,0ehjz disk6cmp ah,00hjz disk5mov ah,20hdec bljmp disk7disk5: mov ah,0fhdisk6: mov bl,ahmov ah,bhdisk7: mov ltime,blmov lkey,bhmov KZ,bhmov al,ahretkey: mov al,0ffh ;键扫⼦程序mov dx,PB out dx,almov bl,00hmov ah,0fehmov cx,08hkey1: mov al,ahmov dx,PAmov ah,alnopnopnopnopnopnopmov dx,PCin al,dxnot alnopnopand al,0fhjnz key2inc blloop key1jmp nkeykey2: test al,01h je key3 mov al,00hjmp key6key3: test al,02h je key4 mov al,08hjmp key6key4: test al,04h je key5 mov al,10hjmp key6key5: test al,08hje nkeymov al,18hkey6: add al,blcmp al,10hjnc fkeymov bl,almov al,[bx+si]retnkey: mov al,20h fkey: retdata2: db 07h,04h,08h,05h,09h,06h,0ah,0bh DB 01h,00h,02h,0fh,03h,0eh,0ch,0dh DISP: MOV AL,0FFH ;显⽰⼦程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20HMOV BX,OFFSET BUF DIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,0a0HLOOP $POP CXCMP CL,0FEHJZ LX1INC BXROR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,0BH ;写”BJ----” MOV BUF+1,019HMOV BUF+4,17HMOV BUF+5,17HRETBUFZ: MOV BUF,0BH ;写”BJ---F” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,0FHRETBUFF: MOV BUF,0BH ;写”BJ---r” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,18HRETBUFS: MOV BUF,0BH ;写”BJ---S” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,05HRETCODE ENDSEND START五、实验总结1、通过实验进⼀步了解8086的使⽤,学习汇编语⾔编程⽅法及调试技巧。
微机原理与接口技术课程设计报告
摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
步进电机控制系统以8088作为控制的核心元件,利用8255的A口控制步进电机,C口连接K0-K7,以选取不同档的移动速度,同时获取控制转动方向(即正转和反转).本课程设计报告通过步进电机的基本介绍、系统的软硬件设计(包括最小系统介绍、接口电路设计、延时程序设计、步进电机的驱动程序设计等几个主要模块)、完整的汇编语言程序等,我们完成了对步进电机系统的设计,并完成了相应的任务,如正转、反转、正向加速、反向加速等,使我们进一步掌握了汇编语言,也使我们能很好的把书本上的知识与实践相结合,大大提高了我们的动手能力关键字:步进电机;8086CPU;8255可编程I/O接口芯片;汇编语言目录摘要 (1)1.1步进电机转动控制的设计要求与设计方案1.2步进电机转动控制的要求与功能 (3)1.3总体设计方案 (3)一、步进电机转动控制设计的硬件设计二、 2.1步进电机转动控制的硬件框图 (4)2.2 步进电机驱动原理 (4)三、步进电机转动控制软件设计3.1 主程序流程图 (6)3.2 8255初始化 (7)四、步进电机硬/软件的调试4.1 硬件调试 (8)4.2 软件调试 (8)4.3 调试过程 (8)五、设计总结 (9)附录一 (10)一、步进电机控制的设计要求与设计方案1.1步进电机转动控制的要求与功能使用汇编语言外加K0-K7等一系列的开关实现对步行电机转速与方向的控制(实现两个以上功能)1.启动与停止控制:用户拨动某一指定键后可以实现电机的启动与停止的控制2.方向的控制:用户将某一指定键拨向上可以实现电机的正转,拨向下实现电机的反转3.速度的控制:用户将另一指定键拨向上可以实现电机的加速转动,拨向下实现电机的减速转动4.综合控制:用户一起拨动上述的按键后可以实现电机的加速正转,减速反转等操作;1.2总体设计方案选用TN88\86实验箱与微机,通过在实验箱构造硬件电路,主要是利用8255A 芯片单元模块、步进电机单元模块。
大连理工微机原理实验步进电机报告
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电信学院专业:电子信息工程班级:学号:学生姓名:成绩:2015 年月日题目:步进电机控制系统设计1 设计要求利用实验台上的电位器,实现步进电机的转速、转向控制。
具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间由延时程序中的CX寄存器的值决定。
2.利用电位器做输入,将电位器与ADC0809的IN0口相连,通过ADC0809将读取到的电压值转化为8位二进制值,根据这个8位二进制值的不同来实现对步进电机的转速、转向控制3.利用8254做秒脉冲发生器,产生约10Hz方波信号。
其中CNT0做分频器:将1MHz信号分频为100Hz;CNT1做秒脉冲输出(10Hz);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。
方法如下:在ISR中,读取ADC0809转换得到的8位二进制值,并根据此值做如下处理:1)当转换值为00h~7fh时,逆时针旋转,00h时转速最大;2)当转换值为81h~0ffh时,顺时针旋转,0ffh时转速最大;3)当转换值为80h时,停止旋转。
2 设计分析及系统方案设计整个设计是在使用8255输出相序控制步进电机转动的基础上,利用中断实时调整输出相序的时间间隔以及顺序,起到控制步进电机转速和转向的效果。
程序的结构类型属于循环结构。
基础程序部分:该部分是利用8255 A口循环输出8个相序,在循环体中条用子程序delay控制时间间隔,延迟量由CX值决定。
中断程序部分:先安装中断向量,由于386EXCPU的8259初始化的程序已经固化在系统的ROM BIOS中,所以只要把中断类型码35H对应的内存位置上装上中断服务程序的段地址和偏移地址。
步进电机实验微机原理
步进电机实验微机原理步进电机是一种特殊类型的电动机,可以将输入的电信号转化为机械运动。
它具有先进的控制技术和广泛的应用领域,特别是在微机控制系统中。
本文将介绍步进电机的原理和在微机控制系统中的实验。
步进电机的原理是利用电磁场的磁力作用产生力矩,从而使电机转动。
步进电机是依靠控制电机驱动器对电机的每一个步进角度进行控制,从而实现精确的定位和运动控制。
步进电机通常由一个转子和一个定子组成。
转子是由一系列的磁极组成,而定子则是由一对电磁线圈组成,称为相。
根据电磁线圈的激励方式,步进电机可以分为单相和双相两种。
通过对不同相的激励,可以实现电机转动和定位控制。
在微机控制系统中,步进电机通常与微控制器或PLC(可编程逻辑控制器)等设备相结合,通过输出脉冲信号来控制电机的运动。
为了实现步进电机的精确定位和运动控制,需要将运动要求转化为脉冲信号,并通过控制器将脉冲信号发送给电机驱动器。
电机驱动器接收到脉冲信号后,根据脉冲信号的频率和方向来控制电机转动的角度和速度。
步进电机实验可以通过搭建简单的电路和编程控制来实现。
首先,需要选购适当的步进电机、电机驱动器和微控制器等设备。
然后,将步进电机和电机驱动器连接起来,确保电路正确连接,并通过编程控制器来控制电机的运动。
在步进电机实验中,可以进行一些常见的实验项目,如定向旋转、正反转、加减速运动等。
为了能够准确控制电机的运动,需要设置合适的脉冲频率和方向。
脉冲频率决定了电机的转速,而脉冲方向决定了电机的转动方向。
通过不同的脉冲频率和方向组合,可以实现各种精确的运动控制。
除了基本的实验项目,还可以根据实际需求进行更复杂的步进电机实验。
例如,可以将步进电机与传感器相结合,实现闭环控制。
通过读取传感器的反馈信号,可以实现电机的位置闭环控制,从而实现更高精度的运动控制。
此外,还可以通过与其他设备的联动控制,实现更复杂的自动化系统。
步进电机实验微机原理实验旨在通过搭建实际电路和编程控制来了解步进电机的工作原理和应用。
微机步进电机实验报告
微机步进电机实验报告微机步进电机实验报告引言:微机步进电机是一种常见的电动机,其特点是精准的定位和控制能力。
本实验旨在通过对微机步进电机的实际操作和观察,了解其工作原理和应用。
一、实验目的本实验的主要目的是:1. 了解微机步进电机的基本工作原理;2. 学习使用微机控制器对步进电机进行控制;3. 掌握步进电机的定位和旋转控制技术。
二、实验器材和原理1. 实验器材:- 微机步进电机;- 微机控制器;- 电源;- 连接线。
2. 实验原理:微机步进电机是一种定位精度高、控制简单的电动机。
它通过控制电流的方式,使电机按一定步进角度旋转。
步进电机的转子由若干个磁极组成,通过逐个激励磁极,可以实现转子的精确定位和旋转。
三、实验步骤1. 连接电路:将微机步进电机与微机控制器连接,并接通电源。
2. 编写控制程序:使用编程软件编写控制程序,设定步进电机的旋转角度和速度。
3. 运行程序:将编写好的程序下载到微机控制器中,并运行程序,观察步进电机的运动。
四、实验结果与分析在实验中,我们成功地控制了微机步进电机的旋转。
通过调整程序中的参数,我们可以控制步进电机的旋转角度和速度。
实验结果表明,微机步进电机具有较高的定位精度和控制能力。
五、实验总结通过本次实验,我们深入了解了微机步进电机的工作原理和控制技术。
步进电机作为一种常见的电动机,广泛应用于各种自动化设备中。
掌握步进电机的原理和控制方法,对于我们今后的工程实践具有重要意义。
六、实验心得本次实验让我对微机步进电机有了更深入的认识。
通过亲自操作和观察,我对步进电机的工作原理和控制方法有了更直观的理解。
同时,实验过程中也遇到了一些问题,但通过自己的努力和与同学的讨论,最终取得了良好的实验结果。
七、改进方向在今后的实验中,我们可以进一步探索微机步进电机的应用领域,尝试更复杂的控制方法和算法,提高步进电机的运动精度和效率。
同时,我们也应加强对电机控制技术的学习,为今后的工程实践做好准备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;*******************************;
DATA SEGMENT*****数据段定义开始*****
P55AEQU 288H ;8255APORTINPUT
P55CEQU 28AH ;8255CPORTOUTPUT
P55CTL EQU 28BH ;8255 COUTRL PORT
OUT DX,AL
MOV BUF,33H;***************************************
代码解释:最终目的是完成OUTDX,AL操作,即把控制字90H送到8255的控制口所在地址“0C800h-0280h+28BH”里。
2)、考虑到人机互动,这里还要在程序运行最开始输出一些提示信息,我这里用到的是DOS中断中INT 21的09号功能,关键代码如下:
图1
步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。
如图2所示:本实验使用的步进电机用直流+5V电压,每相电流为0.16A,电机线圈由四相组成:
即:φ1(BA)
φ2(BB)
φ3(BC)
φ4(BD)
驱动方式为二相激磁方式,各线圈通电顺序如下表。
MOV BUF,33H******控制信息初始化******
OUT1:MOV AL,BUF****控制信息为00110011****
MOV DX,P55C ***从C端口读出控制信息****
OUT DX,AL
PUSHDX ****控制信息入栈****
MOV AH,06H ****调用INT21控制台I/O输入**
JZ ZX0;判断K7是否为0,如果为0则跳转到ZX0处,电机顺时针转动
JMP NX0;如果不为0则跳转到NX0处,电机逆时针旋转。
K1:MOV BX,18H
JMP SAM
K2:MOV BX,20H
JMP SAM
K3:MOV BX,40H
JMP SAM
K4:MOV BX,80H
JMP SAM
K5:MOV BX,0C0H
DATA ENDS*****数据段定义结束*****
CODE SEGMENT*****代码段定义开始*****
ASSUME CS:CODE,DS:DATA*****数据段主体开始*****
START:MOV AX,CS
MOV DS,AX*****DS=CS*****
MOV AX,DATA
MOV DS,AX*****DS=DATA*****
K1:MOV BL,18H
JMP SAM
K2:MOV BL,20H
JMP SAM
K3: MOV BL,40H
JMP SAM
K4:MOV BL,80H
JMP SAM
K5:MOV BL,0C0H
JMP SAM
K6:MOV BL,0FFH
JMP SAM
ZX0: CALL DELAY
MOV AL,BUF****控制信息00110011****
1)、8255的方式控制字如下图所示:
由上图可知:8255方式控制字为10010000B=90H
知道了8255的控制字之后就可以给8255初始化了,初始化的关键代码如下
MOV DX,P55CTL;***************************************
MOV AL,90H;8255初始化:A口输入,C口输出。
JMP SAM
K6:MOV BL,0FFH
JMP SAM
第二部分:
DELAY PROC NEAR
DELAY1: MOV CX,0FFFFH;05A4H
DELAY2: LOOP DELAY2
DEC BL
JNZ DELAY1
RET
DELAY ENDP
代码解释:对应于按键K0~K6寄存器BL都有不同的值。根据BX值的不同通过指令DEC BX和指令JNZ DELAY1可以得到不同长度的延时,由不同长度的延时可以得到不同频率的输入脉冲,从而可以控制电机的转速。
6)、电机旋转方向控制的关键代码如下:
ZX0:CALL DELAY
MOV AL,BUF;AL=0011 0011
ROR AL,1;AL=1001 1001;循环右移,正转
MOV BUF,AL;BUF=1001 1001
JMP OUT1
NX0:CALL DELAY
MOV AL,BUF;AL=0011 0011
DELAY1: MOV CX,OFFFFH;05A4H
DELAY2: LOOP DELAY2
DEC BL
JNZ DELAY1
RET
DELAY ENDP*****延时子程序结束******
CODE ENDS*****代码段定义结束*****
END START*****主体程序结束*****
2、程序关键代码解释:
JNZ K6
STOP:MOV DX,P55c****程序第一次执行结束****
MOV AL,0FFH
JMP OUT1*****循环跳转*****
K0:MOV BL,10H
SAM:TEST AL,80H
JZ ZX0****检测K7是否被按下,否跳转到ZXO**
JMP NX0*****K7=1被按下跳转到NXO*****
MOV DX,OFFSET MES;************************
MOV AH,09;在屏幕上显示提示信息
INT 21H;************************
代码解释:把首地址为MES的字符串显示在屏幕上。
3)、有显示就要有输入,这里的输入用DOS调用里的INT21的06号功能,关键代码如下:
微机控制步进电机调速系统
一、实验目的
1、了解计算机控制步进电机原理
2、掌握步进电机正转反转设置方法。
3、掌握步进电机调速工作原理及程序控制原理。
二、设备与环境
TPC-2003A
微机。
Vc++编译器。
三、实验内容
硬件接线图参考实验指导书。
软件编程在TPC-2003A自带的VC++编译环境下使用。
在通用VC++下编程,需要拷贝相关的库文件。
ROL AL,1;AL=0011 0110;循环左移,反转
MOV BUF,AL;BUF=0011 0110
JMP OUT1
代码解释:根据K7键是否按下,程序分别跳转到ZX0和NX0,然后对AL分别进行循环左移和循环右移,通过把循环移动后AL的状态输出到8255的A口来实现电机的正转或反转。
教 师 评 价
ROR AL,1***控制信息右移电机正转***
MOV BUF,AL****控制信息10011001****
JMP OUT1
NX0:CALL DELAY
MOV AL,BUF
ROL AL,1***控制信息左移电机反转***
MOV BUF,AL
JMP OUT1
DELAY PROC NEAR*****延时子程序开始******
MOVAH,06h;调用INT 21的键盘输入功能**
MOXDL,0FFH
INT 21H;****ANY KEY PRESSED*******
代码解释:这里的指令:MOXDL,0FFH 表示此功能为输入,即开关K0~K7的输入。
4)、接下来程序要根据K0~K7的开关状态来进行相应的跳转动作,这里对开关状态判断指令比较关键,现列出其关键的代码段如下:
BUF DB 0
MES DB 'K0-K6 ARE SPEED CONTYOL',0AH,0DH
DB 'K6 IS THE LOWEST SPEED ',0AH,0DH
DB 'K0 IS THE HIGHEST SPEED',0AH,0DH
DB 'K7 IS THE DIRECTION CONTROL',0AH,0DH,'$'
****检测输入值来自那一个端口****
TEST AL,01H
JNZ K0****根据检测结果跳转*****
TEST AL,02H
JNZ K1
TEST AL,04H
JNZ K2
TEST AL,08H
JNZ K3
TEST AL,10H
JNZ K4
TEST AL,20H
JNZ K5
TEST AL,40H
用汇编语言编写控制程序需注明原理。
四、实验结果及分析
按原理图连接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。8255 CS接288H~28FH。PC0~PC3接BA~BD;PA口接逻辑电平开关。
编程:当K0~K6中某一开关为“1”(向上拨)时步进电机启动。K7向上拨电机正转,向下拨电机反转。
JNZ K6;根据输入跳转
代码解释:首先指令IN AL,DX将开关的状态读入到AL中然后用TEST指令将AL中的内容与另一个数相与,判断相与之后的结果是否为0 如果不为零则发生相应的跳转(JNZ)去执行跳转之后的指令。
5)、跳转之后的指令的关键代码如下:
第一部分:
K0:MOV BX,01F01H
SAM:TEST AL,80H;AL与80H相与,用于判断K7是否为0
MOVDL,0FFH
INT 21HANY KEY PRESSED
POPDX *****控制信息出栈****
JE IN1***判断开关K0~K7是否被按下,是则跳转**
MOV AH,4CH
INT 21H***返回DOS****