直流电动机控制课程设计总结报告.doc_第1页
直流电动机控制课程设计总结报告.doc_第2页
直流电动机控制课程设计总结报告.doc_第3页
直流电动机控制课程设计总结报告.doc_第4页
直流电动机控制课程设计总结报告.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及应用B 课程设计任务书20102011学年 第 2学期第 19 周 19 周 题目直流电机控制内容及要求内容:设计一直流电机控制系统,实现对电机的正转,反转和速度控制要求:1、用proteus画出原理图;2、用c语言或汇编编写 程序; 3、实现对电机的正转,反转和速度控制进度安排1、方案论证 0.5天2、分析、设计、调试、运行 4天3、检查、整理、写设计报告、小结 0.5天学生姓名:5组(组长:25盛夏;组员:23彭亚彬,24阮水盛,26陶志鹏) 指导时间2011年6月27日至2011年7月1日指导地点:F 楼 613室任务下达2011年6月 27日任务完成2011 年7 月 1日考核方式1.评阅 2.答辩 3. 实际操作 4.其它指导教师郭 亮系(部)主任注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。2、 课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。目录摘要3Abstract4一、概述5二、直流电机硬件电路设计及描述62.1直流电机的结构62.2直流电机的工作原理62.3电磁关系72.4直流电机主要技术参数72.5直流电机的类型82.6直流电机的特点8三、直流电机硬件电路设计及描述83.1 总体方案设计83.1.1 设计思路83.1.2设计原理图103.2设计原理及其实现方法103.2.1速度调节的实现103.2.2 转向的控制11四、流程图12五、.程序代码(C语言)13六、程序代码(汇编语言)18七、收获、体会和建议24附录251. 本设计所需要芯片以及作用252.主要参考文献26摘要随着自动控制技术与计算机科学技术的快速发展,制造业领域已大量采用计算机技术进行自动控制,这使制造业各个领域的成果,效率和质量得到大幅度提高。各种微机控制系统在基本构造上是类同的,主要由微机控制器,被控对象与接口电路(输入,输出及驱动接口电路)组成。根据被控对象的不同,微机控制系统又分为闭环控制系统(反馈控制输出信号的大小)与开环控制系统,学好“微机原理与接口技术”是掌握微机控制系统原理与技术的基础;而“微机原理与接口技术课程设计”是巩固,深化,掌握本门课程知识不可缺少的重要环节。 通过本次课程设计加深对微机原理与接口技术的理解和掌握。在设计程序的过程中,广泛的查阅相关资料,如各类中断的作用和调用方式,屏幕显示等等,通过实践来加深对理论知识的理解,同时将自己对这门技术的理解应用在电动机控制的设计当中,理论与实践相互融合、相互促进,提高自己的理论水平和实践能力。关键词:微机原理;计算机控制技术;电动机控制;仿真AbstractAlong with the automatic control technology and computer science technology rapid development, manufacturing field has adopt a large number of computer technology in automatic control, this makes the manufacturing various areas of the results, efficiency and quality have been greatly improved. All kinds of microcomputer control system in the basic structure is similar, mainly on by microcomputer controller, was charged with the object and the interface circuit (input, output and driving interface circuit) composition. According to the controlled object is different, the microcomputer control system and divided into closed loop control system (feedback control the size of the output signal) and the open loop control system, the learning of principle of the computer and interface technology is a master of the microcomputer control system principle and technology foundation; And principle of the computer and interface technology course design is consolidated, deepening, master this course knowledge indispensable important segment.Through this course design deepen our understanding of the microcomputer principle and connection technology understanding and mastery. In the design process, in the process of extensive reading of related materials, such as all kinds of interrupt the function and calls, screen, and so on, way through practice to deepen our understanding of the theory of knowledge, and understanding for these techniques used in motor control the understanding of the theory and practice of design, integration, promote each other, improve their theoretical level and the practice ability.Keywords: Microcomputer principle; Computer control technology; Motor control; The simulation直流电机控制一、概述直流电机就是将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。为了推广直流电机在化工领域的使用,由于直流电机的功能已得到很大提 高,因此更为人性化的设计势必在操作和显示方面。直流电机直流电动机调速控 制一般采用模拟法,对电动机的简单控制应用比较多。简单控制是指对电动机进 行启动,制动,正反转控制和顺序控制。这类控制容易实现,并可通单片机,直 流电机驱动芯片和开关元件来实现,所以本课题采用此法。同时考虑到以前的直 流电机只能通过数码管来进行简单地显示转速,且不能清楚的了解其转向,而 LCD 液晶显示器可以弥补这一点,并且还添加一些更为人性化的提示,这是以 前的数码管所不能代替的,这必将是一个新的趋势。直流电机的主要功能非常广泛,例如:军事 和宇航方面的雷达天线,火炮瞄准,惯性导航,卫星姿态,飞船光电池对太阳得 跟踪等控制;工业方面的各种加工中心,专用加工设备,数控机床,工业机器人,塑料机械,印刷机械,绕线机,纺织机械,工业缝纫机,泵和压缩机等设备的控制;计算机外围设备和办公设备中的各种磁盘驱动器,各种光盘驱动器,绘图仪,扫描仪,打印机,传真机,复印机等设备的控制;音像设备和家用电器中的录音机,录像机,数码相机,洗衣机,冰箱,电扇等的控制。二、直流电机硬件电路设计及描述2.1直流电机的结构直流电机由定子和转子两部分组成。在定子上装有磁极(电磁式直流电机磁极由绕在定子上的磁绕提供),其转子由硅钢片叠压而成,转子外圆有槽,槽内嵌有电枢绕组,绕组通过换向器和电刷引出。NSNSEE2.2直流电机的工作原理直流电机电路模型,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的受方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。NSNSUU机械负载比较器反电动势电磁转矩(拖动转矩)交流电流直流电流2.3电磁关系2.4直流电机主要技术参数直流电机的主要额定值有:额定功率Pn:在额定电流和电压下,电机的负载能力。额定电压Ue:长期运行的最高电压。 额定电流Ie:长期运行的最大电流。额定转速n:单位时间内的电机转动快慢。以r/min为单位。 励磁电流If:施加到电极线圈上的电流。2.5直流电机的类型直流电机可按其结构、工作原理和用途等进行分类,其中根据直流电机的用途可分为以下几种:直流发电机(将机械能转化为直流电能)、直流电动机(将直流电能转化为机械能)、直流测速发电机(将机械信号转换为电信号)、直流伺服电动机(将控制信号转换为机械信号)。下面以直流电动机作为研究对象。2.6直流电机的特点通过电刷间的电流与导体电流的性质不同;通过电刷电流为直流电流,导体电流为交变电流;电枢电势与电流反方向,称为反电势。电磁转矩的方向与电机的转向相同,为驱动转矩。作为电动机运行:在直流电机的两电刷端上加上直流电压,电枢旋转,拖动生产机械旋转,输出机械能;作为发动机运行:用原动机拖动直流电机的电枢,电刷端引出直流电动势,作为直流电源,输出电能。三、直流电机硬件电路设计及描述3.1 总体方案设计3.1.1 设计思路1).通过键盘改变脉冲的占空比从而达到改变转速使得电机转速从高到低,从低到高2).通过改变pwm的极性从而改变电机的转向,实现正反转3).能够通过数码显示管显示电机的转速和电机的转向4).通过启动键唯一启动电机,从而达到防止电机误启动的目的5).能够通过键盘快速达到电机预先设定的速度和转向备注:由于没有传感器,所以本课程设计中没有设计测速模块,所显示的速度为理论速度,并非电机的实际转速3.1.2设计原理图3.2设计原理及其实现方法3.2.1速度调节的实现通过控制L298的使能端“允许”或者“禁止”,通过改变a(脉冲宽度)的值,从而达到控制PWM脉冲宽度调节电机转速的目的3.2.2 转向的控制通过L298中的H桥,从AT89C51中的P1_6和P1_7输出控制信号控制BJT的基极电压,控制L298中H桥的BJT通断,从而达到控制电机转向的目的附:A. L298的原理图B.本设计所需要芯片以及作用AT89C51:单片机L298:控制电机驱动和转向 74L408:四与门芯片8255A:用于扩展51端口,作显示用2803:显示缓冲用MAX239:串口通讯芯片四、流程图启动 N YP1_5=1,P1_4=1停止P1_5=0 Y 加速 Na=a+n, P1_4=0 Ya150 Na=150 Y a=a-n, P1_4=0减速 Y P1_6=0,P1_7=1, P1_4=1 Or P1_6=1,P1_7=0, P1_4=1a10 N N反转/正传 Y a=10 N进入预先设定的值预设速度 Y N电机停转五、.程序代码(C语言)#include#include#include#include#include#define PA XBYTE0x1FFF /A口地址;#define PB XBYTE0x3FFF /B口地址 ;#define PC XBYTE0x5FFF /C口地址;#define CON XBYTE0x7FFF /*控制字地 */ ;uchar key=0; /定义key为全局变量uint a=100;uchar n=5; /单次增加的步长,用于输出脉冲占空比控制uint k1=0,mn=10; /设置mn为转向标志位uchar bai,shi,ge;uint seg_code11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0xff; /09的七段显示代码;/*THE MAIN PROCESS*/void main()CON=0x80;P1_5=0; /使电机停转 ;TMOD=0x15; /定时器1工作在模式1 TH1=0xFF; /定时器1的溢出中断时间为50ms;TL1=0xb0;ET1=1;TR1=1; while(1) key=GetKey();/*case 1case 9是预先设定的速度,方便电机直接调节到该速度,避免通过 + 键调节*/ switch(key) case 1: a=10;break; case 2: a=25; break; case 3: a=40; break; case 4: a=55; break; case 5: a=70; break; case 6: a=90; break; case 7: a=110;break; case 8: a=130;break; case 9: a=150;break; case +: P1_4=0;control();break; /电机加速 case -: control(); break; /-代表减速 case =: P1_7=0; P1_6=1; mn=0;control(); break; /电机顺时针转 case c: P1_7=1; P1_6=0; mn=1;control() ; break;/逆时针转 case /: control(); /键按下时,电机开始转动 default: break;/不影响电机运行 /*THE END OF MAIN PROCESS*/*THE INTERRUPTION FUNCTION*/void time()interrupt 3 /中断号为3,即是定时器1溢出中断 /此处是计时50ms中断一次 TR1=0;/此函数用于显示速度 k1+=TL0;display(a/100,a%100/10,a%10,mn); /*if(count=51) sprintf(s,%04d,k1%1000);/注意sprintf的用法; /确保有四位输出 count=1; k1=0; display(a,bai,shi,ge);*/ TH1=0x3c; TL1=0xb0; TH0=0x00; TL0=0x00; TR1=1;/* THE INTERRUPTION FUNCTION */*THE GETKEY FUNCTION WHICH WAS USED TO GET THE INFORMATION FROM THE KEY */ /*行信号从P1口的低四位读进,列信号从P2口的高四位读进*/uchar GetKey() P1_0=0; P1_1=1; P1_2=1; P1_3=1;P2_0=1;P2_1=1;P2_2=1; P2_3=1;_nop_();_nop_(); / 适当的延时以便消除抖动if(!P2_0)return 7; if(!P2_1)return 8; if(!P2_2)return 9; if(!P2_3)return /; P1_0=1; P1_1=0; P1_2=1; P1_3=1;_nop_();_nop_();if(!P2_0)return 4; if(!P2_1)return 5; if(!P2_2)return 6; if(!P2_3)P1_4=0;return *; P1_0=1; P1_1=1; P1_2=0; P1_3=1;_nop_();_nop_();if(!P2_0)return 1; if(!P2_1)return 2; if(!P2_2)return 3; if(!P2_3)return -;P1_0=1; P1_1=1; P1_2=1; P1_3=0;_nop_();_nop_();if(!P2_0)return c; if(!P2_1)P1_4=0;return 0; / P1_4和P1_5脚通过一个“与”门用来防止误启动 if(!P2_2)return =; if(!P2_3)return +;return 0;/*延时程序*/*THE DELAY FUNCTION*/void delay(uint i) uint j,k;for(;i0;i-)for(j=10;j0;j-)for(k=10;k0;k-);/*THE DISPLAY FUNCTION*/void display(uchar bai,uchar shi,uchar ge ,uint mn) PB=0x08; /0000 1000 PA=seg_codege; delay(2); PB=0x04;/0000 0100 PA=seg_codeshi; delay(2); PB=0x02;/0000 0010 PA=seg_codebai; delay(2); PB=0x01;/0000 0001 PA=seg_codemn;delay(2); /注意这儿的延时越短越好,应为处理终端的时间越短,对电机 / 的实时性显示就越好; /*THE CONTROL FUNCTION*/* 由于参数 a 是一个全局变量,代表着脉冲的占空比,每次调用函数时;必须注意参数 a 值;*/ /* 如果按键为 -,+(加速减速)以及c,=(正转反转)时,不需跳出循环,按其他键时,需要跳出循环,必须需要重新设置占空比*/* P1_4和P1_5脚通过一个“与”门用来防止误启动 */void control() EA=1; while(1) if(a=150) a=150; /设置了 a 的最大值,限定了电机的最高速度 if(a=10) a=10; / 设置了 a 的最小值,限定了电机的最高速度 P1_5=1; / 与P1_4信号形成控制L298的控制信号达到控制转速的目的 delay(a); / 调用延时,形成脉宽的调节 P1_5=0; /电机逐渐停转 ; delay(160-a);/*以下的程序改变 a 的值达到改变脉冲宽度的目的*/ key=GetKey(); if(key=-) / 减速 a=a-n; else if(key=+) a=a+n; / 加速 else if(key=) / 如果按下=键,则电机顺时针转; P1_6=1; P1_7=0; mn=0; else if(key=c) /反转 P1_7=1; P1_6=0;P1_4=1;mn=1; else if(key=*|key=0) /如果按下停止键*或者0; P1_5=0;P1_4=1; /ENA=0(P1_5=0)电机停转; break; else if(key!=0)/如果没有按键按下,则继续在此while循环中运行 switch(key) case 1: a=10; break; case 2: a=25; break; case 3: a=40; break; case 4: a=55; break; case 5: a=70; break; case 6: a=90; break; case 7: a=110; break; case 8: a=130; break; case 9: a=150; break; default : break ; EA=1; 附: motor_ctr.h FILEtypedef unsigned char uchar;typedef unsigned int uint ;extern uchar GetKey();extern void delay(uint i);extern void control();void display(uchar bai,uchar shi,uchar ge ,uint mn);六、程序代码(汇编语言)ORG 0000H SJMP DISPLAY ORG 0003H LJMP BUTTON ; 外部0中断入口地址 ORG 000BH LJMP DINGSHI ; 定时中断T0入口地址 RS EQU P3.0 RW EQU P3.1 E EQU P3.4 ORG 0030H ; 此次直流电机的设计以LCD字符夜晶的 ; 显示程序为主程序DISPLAY: SETB EA ; 打开中断总开关 SETB EX0 ; 打开外部中断0开关 SETB IT0 ; 打开外部中断0下降沿触发 MOV TMOD,#01H ; 设置定时工作方式 MOV TL0,#0FFH ; 设置定时初值 MOV TH0,#0FFH SETB ET0 ; 打开定时中断T0开关 CLR P0.5 CLR P0.6 CLR P0.7 SETB TR0 ; 定时器T0开始定时 MOV DPTR,#TAB ; 夜晶显示的字符首地址 MOV R0,#00H ; 脉宽的初值 MOV R1,#16 ; SET SPEED PLEASE的字符个数 MOV R3,#00H MOV R4,#00H LP9: LCALL CHUSHI LP2: ACALL BUSY MOV A,#00H MOVC A,A+DPTR MOV P1,A ACALL DATAS INC DPTR DJNZ R1,LP2 LP3: CJNE R3,#00H,LP4 CJNE R4,#00H,LP4 SJMP LP3 LP4: MOV R7,#00H ; 中断的标志 MOV R5,#09H ; CURRENT : 的字符个数 ACALL BUSY MOV P1,#0C0H ACALL ENABLE MOV DPTR,#MMTAB ACALL BUSY LP5: MOV A,#00H MOVC A,A+DPTR MOV P1,A INC DPTR ACALL DATAS ACALL BUSY DJNZ R5,LP5 MOV DPTR,#STAB MOV A,R2 MOV P1,A ACALL DATAS ACALL BUSY MOV A,R3 ; 显示速度的十位 MOVC A,A+DPTR MOV P1,A ACALL DATAS ACALL BUSY MOV A,R4 ; 显示速度的个位 MOVC A,A+DPTR MOV P1,A ACALL DATAS ; 使夜晶始终显示当前电机的速度 LP8: CJNE R7,#00H,LP7 ; 速度不变时等待 LJMP LP8 ; 速度变时重新读入速度 LP7: SJMP LP4 CHUSHI: ; 使夜晶显示的一些初始设置 ACALL BUSY MOV P1,#00000001B ; 清屏并光标复位 ACALL ENABLE ACALL BUSY MOV P1,#00111000B ; 设置显示模式:8位2行5x7点阵 ACALL ENABLE ACALL BUSY MOV P1,#00001111B ; 显示器开、光标开、光标允许闪烁 ACALL ENABLE ACALL BUSY MOV P1,#00000110B ; 文字不动,光标自动右移 ACALL ENABLE ACALL BUSY MOV P1,#80H ; 写入显示起始地址 ACALL ENABLE RET ENABLE: ; 写入控制命令的子程序 SETB E CLR RS CLR RW CLR E RET DATAS: ; 写入数据子程序 SETB E SETB RS CLR RW CLR E RET BUSY: ; 准备写入数据 CLR E MOV P1,#0FFH CLR RS SETB RW SETB E JB P1.7,BUSY RET ORG 2000HDINGSHI: ; 定时中断服务程序 CPL P0.7 JNB P0.7,Z1 ; 周期一定 MOV A,#0FFH SUBB A,R0 MOV TH0,A SETB TR0 RETI Z1: MOV TH0,R0 ; 脉宽 SETB TR0 RETI BUTTON: ; 从控制键盘中读取操作命令 PUSH ACC CLR EX0 CLR EA INC R7 ; MOV A,#0FFH MOV P2,A MOV A,P2 JNB ACC.0,AA0 JNB ACC.1,KK0 JNB ACC.2,ZZ JNB ACC.3,FF JNB ACC.4,WW0 AJMP QQ AA0: CJNE R0,#0FFH, AA1 ; 加速操作 AJMP QQ AA1: MOV A,R0 ADD A,#5 MOV R0,A AJMP QQ KK0: CJNE R0,#00,MM ; 减速操作 AJMP QQ MM: MOV A,R0 SUBB A,#5 MOV R0,A AJMP QQ QQ: MOV A,R0 MOV B,#5 DIV AB MOV B,#10 DIV AB MOV R3,A MOV R4,B SETB EX0 LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY SETB EA POP ACC RETI ZZ: SETB P0.5 ; 正转操作 CLR P0.6 MOV R2,#2BH ; 正转标志 + LCALL DELAY LCALL DELAY LCALL DELAY SETB EX0 SETB EA POP ACC RETI FF: CLR P0.5 ; 反转操作 SETB P0.6 MOV R2,#2DH ; 反转标志 - LCALL DELAY LCALL DELAY LCALL DELAY SETB EX0 SETB EA POP ACC RETI WW0: CLR P0.5 ; 停止操作 CLR P0.6 LCALL DELAY LCALL DELAY LCALL DELAY SETB EX0 SETB EA POP ACC RETI DELAY: ; 延时子程序 MOV R5,#0E0H MM0: MOV R6,#30H MM1: DJNZ R6,MM1 DJNZ R5,MM0 RET TAB: DB 53H,45H,54H,20H DB 53H,50H,45H,45H ; SET SPEED PLEASE 代码 DB 44H,20H,50H,4CH DB 45H,41H,53H,45H STAB: DB 30H,31H,32H,33H DB 34H,35H,36H,37H ; 0,1,2,3,4,5,6,7 代码 DB 38H,39H,41H,42H ; 8,9,A,B,C,D,E,F DB 43H,44H,45H,46H MMTAB: DB 43H,4FH,52H,52H DB 45H,4EH,54H,20H ; CURRENT : 代码 DB 3AH END七、收获、体会和建议这次课程设计是一次非常好的锻炼机会,历时一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的不怎么牢固,看到了自己的实践经验更是比较缺乏,理论联系实际的能力还急需提高。课程设计是培养学我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训

温馨提示

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

评论

0/150

提交评论