燕山大学课程设计说明书课程名称单片机原理及应用题目步进电机控制学院(系)电气工程学院年级12级学号学生姓名指导教师教师职称燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:仪器科学与工程系学号学生姓名专业(班级)设计题目步进电机控制设计参数完成基于单片机的步进电机控制系统,能够有效地对步进电机转速、方向的控制。设计要求通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动芯片驱动步进电机;同时,用键盘来对电机的状态进行控制。工作量设计的内容满足课程设计的教学目的与要求,设计题目的难度和工作量适合学生的知识和能力状况,工作量饱满。工作计划查阅资料进行设计准备、设计硬件电路、编制程序,编制程序、验证设计、撰写任务书。参考资单片微型计算机接口技术及其应用张淑清国防工业出版社单片机原理及应用技术张淑清国防工业出版社单片机应用技术汇编指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。年月日摘要单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能微型计算机系统,在工业控制领域广泛应用。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。本设计是一个以AT89C51单片机为核心进行步进电机控制,通过按相应的按键改变步进电机的转速和方向,并将转速显示到数码管上。关键词:51单片机步进电机按键数码管目录绪论...........................................................................................................................1第1章基本原理.....................................................................................................21.1总体原理....................................................................................................21.2重点部分原理介绍....................................................................................21.2.151单片机的定时器/计数器..........................................................21.2.2数码管模块.....................................................................................3第2章系统的主要硬件电路的设计及介绍.........................................................42.1数码管模块................................................................................................42.2步进电机和驱动模块.................................................................................52.3按键模块....................................................................................................52.3整体电路....................................................................................................6第3章系统的软件设计.........................................................................................7第4章个人体会...................................................................................................12参考文献.................................................................................................................13燕山大学课程设计1绪论步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。燕山大学课程设计2第1章基本原理1.1总体原理51单片机具有CPU、RAM、I/O端口、定时器/计数器以及串行通讯等部件。利用其中的定时器、CPU、I/O端口等配置键盘以及显示器,驱动电路可以组成步进电机的驱动和控制电路。在本次设计中,利用定时器中断控制P1口输出电平,然后通过ULN2003模块驱动。同时通过P0口输出转速的数值(单位:转/分钟)。P2口的低三位用于位选,进而实现数码管的动态显示。通过三个按键分别实现加速,减速转动方向的反转。1.2重点部分原理介绍1.2.151单片机的定时器/计数器51单片机中的定时器和计数器其实是一个部件,根据应用不同选用定时或者计数功能。计数器记录外界发生的事件,定时器是由单片机内部提供一个非常稳定的计数源进行定时的。定时器计数脉冲的时间间隔与晶振有关,它是由单片机的晶振经过12分频后获得的一个脉冲源。TMOD(工作方式控制寄存器)用于控制定时器/计数器的工作模式及工作方式,其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。表1TMOD寄存器示意图D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0TCON(定时器/计数器的控制寄存器)用于设置定时器的启动和停止,显示燕山大学课程设计3终端请求标志位以及中断的触发方式。其中TR0/1用于启动定时器;TF1/0,IT1/0属于中断请求标志;IT1/0用于设置触发方式。控制寄存器如表2所示:表2TCON寄存器示意图D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0确定定时/计数器初值上,介绍工作方式1,它的最大值为65536。若取晶振频率为12MHZ,则最大定时时间为65.536ms。1.2.2数码管模块本设计用的是八段共阴极数码管,它显示的数字及其对应的代码如下表所示:表3数码管显示数字及其所对应的代码显示数字1234程序输入数06H5BH4FH66H显示数字5678程序输入数6DH7DH07H7FH显示数字90AB程序输入数6FH3FH77H7CH显示数字CDEF程序输入数39H5EH79H71H燕山大学课程设计4第2章系统的主要硬件电路的设计及介绍2.1数码管模块通过连接到P2口的38译码器选定一定的位,再用P0口输出显示的数码。图1数码管接线示意图通过一定的计算方法计算出步进电机的转速,并显示到数码管上。燕山大学课程设计52.2步进电机和驱动模块本设计选用的是五线四相步进电机,若采用四拍的话,步距角为15度。步进电机的公共端接VCC,其余四根线分别与驱动模块的输出引脚相连。步进电机的驱动模块选用的是ULN2003芯片,用于放大功率,其输出引脚与步进电机连接,输入引脚与单片机的P1口连接。具体如图所示:图2ULN2003连接示意图2.3按键模块本设计选用3个独立按键。它们分别连接到P3口的2,3和4引脚上,另一端接地,它们分别实现步进电机加速,减速和反转。用于实现步进电机加速,减速和反转。燕山大学课程设计6图3按键连接示意图2.3整体电路综上部分,画出整体部分的电路图:图4整体电路燕山大学课程设计7第3章系统的软件设计经过上述分析,写出控制系统的程序。它实现的基本功能是通过调节3个按键控制步进电机的转速和转向,并将它们显示到数码管上。其中数码管上的负号表示逆时针方向。具体程序如下所示。#includereg52.hsbitspeed_down=P3^2;//减速sbitspeed_up=P3^3;//加速sbitdirection=P3^4;//改变方向intCount=0,A=1;inti;inttable[2][4]={{0x01,0x02,0x04,0x08},{0x08,0x04,0x02,0x01}};inttable1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管编码intA1,A2,A3;intb=11;//每次运行需要中断次数voiddelay(intj);voidkeyscan();voiddisplay();voidTime0_Init(){TMOD=0x10;TH1=(65536-10000)/256;燕山大学课程设计8TL1=(65536-10000)%256;IE=0x88;TR1=1;}voidTime0_Int()interrupt3{TH1=(65536-1000)/256;TL1=(65536-1000)%256;Count++;if(Count==b){Count=0;P1=table[A][i];i++;if(i==4)i=0;}//长度加1}voidmain(){Time0_Init();while(1){keyscan();display();}}voiddelay(intj){intm,n;燕山大学课程设计9n=120*j;for(m=0;mn;m++);}voidkeyscan(){if(speed_up==0){delay(10);if(speed_up==0){while(speed_up==0);b=b-1;if(b==4)b=11;}}//加速if(speed_down==0){delay(10);if(speed_down==0){while(speed_down==0);b=b+1;if(b==17)b=11;}}//减速燕山大学课程设计10if(direction==0){delay(10);if(direction==0){while(direction==0);A=!A;}}}voiddisplay(){A1=(2500/b)/100;A2=((2500/b)%100)/10;A3=(2500/b)%10;if(A==1)