《微机控制步进电机调速系统发热论述.doc》由会员分享,可在线阅读,更多相关《微机控制步进电机调速系统发热论述.doc(11页珍藏版)》请在三一文库上搜索。
1、微机控制步进电机调速系统发热论述 作者: 日期:2 个人收集整理 勿做商业用途华北科技学院计算机系综合性实验实 验 报 告 课程名称 微机原理 实验学期 2008 至 2009 学年 第 二 学期学生所在系部 机电工程系 年级 06级 专业班级 机械设计制造及其自动化1班 学生姓名 xxxxxx 学号 xxxxxxxx 任课教师 XXXX老师 实验成绩 计算机系制实验报告须知1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等.3、 教师应该填写的内容包括:实验成绩、教师评价等。
2、4、 教师根据本课程的综合性实验指导单中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师.任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。5、 未尽事宜,请参考该课程的实验大纲和教学大纲。微机原理课程综合性实验报告开课实验室:接口实验室 2009年5月15日实验题目微机控制步进电机调速系统一、实验目的1、了解计算机控制步进电机原理2、掌握步进电机正反转设置方法3、掌握步进电机调速工作原理及程序控制原理二、设备与环境1、TPC2003系统及配套软件环境2、微机三、实验原理及原
3、理图1、按图(44)连接好电路,利用8255输出脉冲序列,开关K0K6控制步进电机转速,K7控制步进电机转向.8255 CS 接288H-28FH。PA0 PA3接BA BD;PC0 PC7 接K0 K7. 2、编程:当 K0 K6中某一开关为“1”(向上拨)是步进电机启动。K7 向上打电机正 转,向下打电机反转.要求:有程序流程图,程序有适当注释。四、实验内容及过程开始8255初始化,A输出,C输入BUF=33HBUF内容从8255A口输出有键盘有无键按下无读开关状态返回DOSYK0=1?YNK1=1?YNK2=1?NYK3=1?N置延迟时间YK4=1?NK7=1?NYYK5=1?YN延时K
4、6=1?延时N控制信息循环右移一位置停止信息控制信息循环左移一位 本实验使用的步进电机用直流5V 电压,每相电流为0.16A,电机线圈由四相组成。 由电动机的转动原理可知:循环的向1-2,23,34,41通电,或置入高电平,可使电机正转,反之可使电机反转。试验部分代码及分析:;定义变量:将288H赋予P55A,将28ACH; 赋予P55C,将28BH赋予P55CTL(288H,; 28AH,28BH 分别为A,C,控制端口; 的地址;地址)P55A EQU 288H ;8255 A口输出P55C EQU 28AH ;8255 C 口输入P55CTL EQU 28BH ;8255控制口MES D
5、B K0-K6 ARE SPEED CONTYOL,0AH,0DH DB K6 IS THE LOWEST SPEED ,0AH,0DHh DB 'K0 IS THE HIGHEST SPEED,0AH,0DH DB 'K7 IS THE DIRECTION CONTROL,0AH,0DH,'$ ;在屏幕上输出一段符号,提示程序处于执行状态,同时使界面友好. START: MOV AX,CS MOV DS,AX MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES MOV AH,09 INT 21H ;调用09号DOS功能,显示字符串 MOV
6、DX,P55CTL MOV AL,8BH OUT DX,AL ;完成8255A初始化, B口C口输入, A 口输出 MOV BUF,33H ;BUF初始化为00110011BOUT1: MOV AL,BUF MOV DX,P55A;OUT1为循环的关键:1,将BUF; 值置入AL寄存器并输出.; 2,检测是否有按键仍被按下,; 若无,则返回DOS OUT DX,AL MOV AH,1 INT 16H ;有无键按下 JE IN1 MOV AH,4CH INT 21HIN1: MOV DX,P55C IN AL,DX ;读开关状态;从P55C 读入按键状态,检测是否k0; 被按下,有则跳到 k0
7、标识处; 同理,其他会分别跳到 K1,K2,; K3,K4,K5,K6 标志处 TEST AL,01H ; JNZ K0 TEST AL,02H JNZ K1 TEST AL,04H JNZ K2 STOP: MOV DX,P55A MOV AL,0FFH JMP OUT1K0: MOV BL,10H JMP SAM ;设置BL值,跳转到SAM;检测K7键是否按下,如果按; 下,则跳ZX0正转,若否,则; 跳NX0反转。SAM: TEST AL,80H JZ ZX0 JMP NX0 ZX0: CALL DELAY MOV AL,BUF ROR AL,1 ;AL值循环右移一位 MOV BUF,A
8、L JMP OUT1NX0: CALL DELAY MOV AL,BUF ROL AL,1 ;AL值循环左移一位 MOV BUF,AL JMP OUT1 DELAY PROC NEAR;定义循环函数DELAY:; 每次循环计数FFFFH次; 循环结束,检测BL是否为0; 若否,再次计数FFFFH次; 直到BL为0时,返回主函数DELAY1: MOV CX,0FFFFH DELAY2: LOOP DELAY2 DEC BL JNZ DELAY1 RETDELAY ENDP五、实验结果及分析 实验需要进行硬件接口检测:得到I/O的基地址为C800H,需要修改I/O 基地址为C800H。实验运行时D
9、OS界面如下: 结果分析:1 让电机转动的关键在于8255A 一直在循环的输出值BUF,由于8255A 每次产生的都是8位二进制数,而电动机的转动只需要4位,所以BUF的初始值应为33H,即00110011B,是每次移位都能够产生与4位效果相同的输出,从而驱动电动机的转动。2 步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。本程序中实际是靠调节每一次循环的时间,及循环延时来实现的3. 整个程序的延时由两部分组成 :A, DELAY 函数的延时作用,计数器为CX 寄存器,数值范围00FFFFH ,0代
10、表没有延时,数值越大,周期越长。B, 整个程序的延时作用,计数器为 BL ,在IN1处跳转的同时已经设定为不同的数值,计数器BL 调用 DELAY 函数 实现一个更大的计数周期,从而使系统的输出变得更慢. 4. 试验中发现,在电路正常的情况下,运行程序电机没有明显反应或只是剧烈颤动,这时考虑延迟时间即CX值是否足够大,然后考虑是否可以改寄存器BL是否可以改为BX,即将8为改为16位,适当调整BX的值,使电机以较慢速度转动,发现电机转动.5. K7键 按下不一定是诗电机正转,也有可能是反转,这时只需在标签SAM处修改语句即可6. 不同系统的时钟频率不同,同一系统的不同机器的时钟频率也不同,因此同一个程序在不同机器上的通过情况也不尽相同,这说明汇编语言是一种与硬件相关的程序语言.7. 实验中当有多个按键同时有效时,如K0、K6同时上拨,会发现电机按K0速度运转,即K6此时无效,这是由程序决定的,因为按键扫描是按K0K6顺序进行的,所以这些键的优先级是不同的,K0优先级最高,K6优先级最低.教 师 评 价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:年 月 日第 8 页