《课程设计(论文)四相步进电机控制.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)四相步进电机控制.doc(26页珍藏版)》请在三一办公上搜索。
1、吉林化工学院课程设计说明书四相步进电机控制Four Phase Stepping Motor Control学生学号: 学生姓名: 专业班级: 电信0802 指导教师: 起止日期: 2011.03.282011.04.15 吉林化工学院Jilin Institute of Chemical Technolog课程设计任务书 一、设计题目:四相步进电机控制 二、设计目的 1掌握步进电机控制方法; 2掌握A/D转换原理; 3掌握ADC0809、L298、TLP521-4等应用; 4初步掌握用电路图软件绘制电路原理图方法。 三、设计任务及要求 (一)基本要求1熟悉A/D转换、数码管动态显示、步进电机
2、控制电路2熟悉并说明所用芯片功能 3熟悉构成电路的各元件功能 4画出四相步进电机控制电路图 5用硬件四相步进电机电路(用实验板焊接电路) 6技术指标:实现电机启、停、正转、反转、电压调速功能。. (二)发挥与创新1实时显示电机转速 2显示电机转动圈数四、设计时间及进度安排 设计时间共三周(11.03.28-11.04.15)具体安排如下表周安排设计内容设计时间第一周 查阅资料 元件测试、电路设计03.28-04.02第二周电路焊接、软件编程、系统设计 04.6-04.08第三周编写课程设计说明书 答辩 教师评定成绩04.11-04.15五、指导教师评语及学生成绩指导教师评语:年 月 日成绩指导
3、教师(签字):目 录课程设计任务书I目 录II第1章 课程设计的目的和意义11.1 课程设计的目的11.2 课程设计的意义1第2章 步进电机21.1 步进电机原理21.2 四相步进电机2第3章 元器件介绍43.1 STC89C5243.2 ADC080963.2.1 主要特性63.2.2 内部结构73.2.3 外部特性(引脚功能)73.2.4 ADC0809的工作过程83.3 74LS7493.4 74LS0293.5 光耦103.6 L298103.7 数码管11第4章 电路设计124.1 AD转换电路124.2 显示电路124.3 电机驱动134.4 流程图144.5结构框图14结 论15
4、参考文献16附录17附录1 源程序17附录2 电路图22 第1章 课程设计的目的和意义1.1 课程设计的目的课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。1、进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;2、培养学生实践动手能力及独立分析和解决工程实际问题的能力;3、培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。 1.2 课程设计的意义通过四相电机的学习,学生进一步理解了单
5、片机的相关基本知识,对于实验室的各种元器件有了更深入的了解,具备了在日常生活中识别相关元器件的能力,在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。在程序设计和电路板的焊接过程中我们合理的运用以前所学的数
6、字电子技术和电路知识,发挥了各学科相关知识的整合优势。在课程设计初学阶段,学生经常会犯粗心大意的错误,一块合格的电路板可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。第2章 步进电机2.1 步进电机原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使
7、得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮
8、助。2.2 四相步进电机四相步进电机采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1-1是该四相反应式步进电机工作原理示意图。图2-1四相步进电机步进示意图 开始时,开关sb接通电源,sa、sc、sd断开,b相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和c、d相绕组磁极产生错齿,2、5号齿就和d、a相绕组磁极产生错齿。当开关sc接通电源,sb、sa、sd断开时,由于c相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和c相绕组的磁极对齐。而0、3号齿和a、b相绕组产生错齿,2、5号齿就和a、d相绕组磁极产生错齿。依次类推,a
9、、b、c、d四相绕组轮流供电,则转子会沿着a、b、c、d方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图1-2.a、b、c所示:a.单四拍b.双四拍c八拍图2-2.步进电机工作时序波形图第3章 元器件介绍3.1 STC89C52主要特性: 与MCS-51 兼容 8K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz
10、-24Hz 三级程序存储器锁定 512内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图3-1 STC89C52引脚图管脚说明: P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
11、P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P
12、2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 VCC:接电源GND:接地P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6
13、 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX
14、,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
15、 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2 ADC0809ADC0809是M美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片 。3.2.
16、1 主要特性1)8路输入通道,8位AD转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 3.2.2 内部结构ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近式A/D转换器其内部结构和外部管脚图如图2-2所示: 图3-2 0809内部逻辑和外部管脚图3.2.3 外部特性(引脚功能)
17、ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三
18、态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 图3-3 ADC0809引脚图3.2.4 ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
19、转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转
20、换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。3.3 74LS7474LS74内含两个独立的D上升沿双d触发器,每个触发器有数据输入(D)、置位输入()复位输入()、时钟输入(CP)和数据输出(Q、/Q)。、的低电平使输出预置或清除,而与其它输入端的电平无关。当、均无效(高电平式)时,符合建立时间要求的D数据在CP上升沿作用下传送到输出端。74ls74功能表:
21、图3-4 74LS74芯片图3.4 74LS02 74ls02是四2输入或非门.作用是二个输入的或运算,运算后反相输出图3-5 74LS02引脚图3.5 光耦光耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦。光耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电光电的转换,从而起到输入、输出、隔离的作用。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。 光耦合器的主要优点是:信号单向传输,输入端与输出端完全实现了
22、电气隔离隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。光耦合器是70年代发展起来产新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离 、脉冲放大电路、数字仪表、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中。在单片开关电源中,利用线性光耦合器可构成光耦反馈电路,通过调节控制端电流来改变占空比,达到精密稳压目的。3.6 L298L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridg
23、e Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,此芯片可直接由单片机的IO端口来提供模拟时序信号, 但在本驱动电路中用L297 来提供时序信号,节省了单片机IO 端口的使用。L298N 之接脚如图9 所示,Pin1 和Pin15 可与电流侦测用电阻连 接来控制负载的电路; OUTl、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。图3-6 L298N引脚排布图3.7 数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(
24、多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 第4章 电路设计4.1
25、 AD转换电路 图4-1 AD转换电路复位电路用来使单片机复位,当开关按下时,单片机重新开始执行程序。74LS74是含有两个芯片的D触发器,由于外部给单片机提供的是12M晶振,故ALE输出的是2MHZ的脉冲,将两个D触发器串联,构成一个4 分频的器件,使2M分成500KHZ,符合ADC0809的频率要求,以便其能正常工作。AD的ALE和START由单片机WR和P27通过或非门控制,1有效;AD的OE由单片机RD和P27通过或非门控制,1有效。4.2 显示电路 图4-2 动态扫描显示电路通过STC89C52的P1口低四位连接到74LS74 4-7译码器.将数据已成段码形式, 通过数码管上显示出来
26、;再通过P1口高四位对位码的控制,使数码管扫描显示出值. 使用74LS247芯片作为BCD-7段译码驱动器,作为4只共阳极LED数码管的段驱动,使用P1.0-P1.3作BCD码输出,使用P1.4-P1.7作位控制,通过四只PNP三极管作LED的位控,LED静态驱动段电流应该为5mA才能达到足够的亮度,LED位数比较少时,也应保持这样一个平均电流水平,因为四只LED扫描时,每段驱动电流应该为20mA,LED的管压降为2V系统电压为5V,因此段限流电阻应该为510欧姆,位控制三极管使用C9012,为100倍以上,扫描时LED全亮时总电流为160mA。因此基极电流赢保持1.6mA以上。由此可以计算出
27、基极限流电阻应取2K欧姆。4.3 电机驱动 图4-3 步进电机驱动电路通过STC89C52对光耦的控制,间接控制L298N芯片驱动步进电机,利用八拍数据0X01,0X03,0X02,0X06,0X04,0X0C。0X08,0X09,使步进电机按拍正转。L298N需要12V电压,供步进电机使用,光耦在单片机和L298N之间相当于一个开关作用。4.4 流程图定时器0中断数据采集数码显示初始化定时器1中断开始按键正转停止反转图4-4 程序流程图4.5结构框图A/D转换电路停止正转STC89C52显示电路电机驱动电路反转MGND+5V图4-5 结构框图 结 论经过3周的专业设计,使我学到了很多知识,同
28、时也锻炼了我的动手能力。以前自己总是对动手操作这方面很忧心。可是经过了一周的焊接练习是我自己深深喜欢上了这一项活动。我们的团队共有四个人,每个人都很用心的完成各自的任务,尽管经过我们焊接的电路出了一些问题,可是在老师的耐心帮助下我们找到了问题存在的原因,我们同时也学到了更多关于数据采集方面的知识,使我们对这一次的电子设计有了更进一步的了解。知识是无穷的,只有我们不畏艰辛,坚信学无止境的念头,努力拼搏我们才能取得更优异的成绩。数据采集系统已经逐步的遍及于我们的中,比如说温度采集,水位采集,光电采集等。位我们的生活提供了很多方便。只有我们更努力的探索我们才能发现更多有益的事情来贡献给人们。在实习时
29、,开始自己有一些懒惰,把大的任务都交给了同学,但是渐渐地我发现依赖只能使我们更瘦小,所以我们要自己努力。当然也同时让我感觉到了不认真就会出错,我们要以精益求精的态度要求自己。三周的实习,让我感到很充实,我努力了,我付出了,我也得到了回报,因为我们组的实验成功了。感谢队友的合作,感谢老师的指导。参考文献1 兰吉昌等编著 单片机C51完全学习手册 化学工业出版社 ,2001,092 翟玉文等 电子设计与实践 中国电力出版社 ,2004,073 胡大可编著 基于8051的嵌入式开发指南 电子工业出版社,2002,10 4 张毅刚主编 单片机原理及应用 高等教育出版社 ,2001,12 附录附录1 源
30、程序#include#define uchar unsigned charsbit wr=P36;sbit rd=P37;sbit K1=P24;sbit K3=P25;sbit K4=P26;uchar k,t,t1,t2; uchar qian,bai,shi,ge;unsigned long int k0;void delay1(uchar i) uchar j; while(i-) for(j=0;j110;j+) ;void inti() TMOD=0x11; TH0=(65536-200)/256; TL0=(65536-200)%256; TH1=(65536-3000)/255
31、; TL1=(65536-3000)%255; ET0=1;ET1=1; EA=1; EX0=0; EX1=0; P1=0xff; P0=0xff; P2=0x7f; TR0=1;TR1=0; t=0; t1=0; t2=0; k=0;void ad() uchar j; wr=0; rd=1; for(j=0;j30;j+) ; wr=1; rd=0; if(t!=3) k=P0&0xff; k0=k*3000L/255; qian=k0/1000; bai=k0%1000/100; shi=k0%1000%100/10; ge=k0%1000%100%10;void keystart()
32、K1=1; if(K1=0) delay1(10); if(K1=0) while(K1=0) ; TR1=1; t=1; void keyend() K4=1; if(K4=0) delay1(10); if(K4=0) while(K4=0) ; TR1=0; t=3;k=0; P2=0xff; void keyfanz() K3=1; if(K3=0) delay1(10); if(K3=0) while(K3=0) ; t=2; void main() inti(); while(1) if(t) ad();keystart();keyfanz(); keyend(); void ti
33、me0() interrupt 3 TH1=(65536-3000-1270+k*6L)/256; TL1=(65536-3000-1270+k*6L)%256; switch(t) case 1:switch(t1) case 0:P2=0x71;break; case 1:P2=0x73;break; case 2:P2=0x72;break; case 3:P2=0x76;break; case 4:P2=0x74;break; case 5:P2=0x7c;break; case 6:P2=0x78;break; case 7:P2=0x79;break; break;case 2:
34、switch(t1) case 7:P2=0x71;break; case 6:P2=0x73;break; case 5:P2=0x72;break; case 4:P2=0x76;break; case 3:P2=0x74;break; case 2:P2=0x7c;break; case 1:P2=0x78;break; case 0:P2=0x79;break; break; t1+;if(t1=8) t1=0;if(k=0) P2=0x7f;void time1() interrupt 1 TH0=(65536-200)/256; TL0=(65536-200)%256; switch(t2) case 0:P1=ge&0x0f|0xe0;break; case 1:P1=shi&0x0f|0xd0;break; case 2:P1=bai&0x0f|0xb0;break; case 3:P1=qian&0x0f|0x70;break; t2+; if(t2=4) t2=0;附录2 电路图