基于protues步进电机仿真.
基于Proteus的步进电机控制系统仿真设计最终版 -精品
计算机控制技术课程设计报告《基于Proteus的步进电机控制系统仿真设计》专业及班级______ 09自动化(1)班_________ 姓名_____ 吴红田坤王林指导老师_______ 丁健______________完成时间_______ _ 2012-6-17__________________一、步进电机原理、控制技术及其特点 (3)(1)换相顺序的控制 (3)(2)步进电机的换向控制 (3)(3)步进电机的速度控制 (3)(4)步进电机的起停控制 (4)(5)步进电机的加减速控制 (4)(6)步进电机的换向控制 (4)二、元器件介绍 (5)(1)步进电机 (5)(2)89C51单片机 (7)(3)L297介绍 (7)(4)L298简介 (11)三、方案论证 (13)四、硬件设计 (14)(1)控制电路 (14)(2)驱动电路 (15)(3)显示模块 (16)(4)总体电路图 (16)五、软件设计 (17)(2)定时中断设计 (17)(3)外部中断设计 (17)六、源程序代码 (19)七、总结 (23)基于protues的步进电机控制系统设计摘要:步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
基于Proteus的步进电机控制系统仿真设计
proteus中四相步进电机连接方法
proteus中四相步进电机连接方法
在Proteus中,可以使用L298N电机驱动模块来连接四相步进电机。
以下是连接步骤:
1.将L298N电机驱动模块拖放到Proteus的工作区中。
2.连接电源和地线:
o将Vcc引脚连接到5V电源。
o将GND引脚连接到地线。
3.连接步进电机:
o将步进电机的四个线连接到L298N的OUT1、OUT2、OUT3、OUT4引脚上,具体连接顺序根据你所使用步
进电机的引脚排列而定。
4.连接控制信号:
o将步进电机的ENABLE引脚连接到L298N的ENA引脚上。
o将步进电机的控制信号(例如DIR和PUL)连接到L298N的相应引脚上。
DIR引脚用于控制步进电机的
旋转方向,PUL引脚用于控制步进电机的步进脉冲。
5.连接电源:
o将电源引脚(如B+和B-)连接到合适的电源供应器上,以提供足够的电流来驱动步进电机。
6.完成连接后,你可以通过在Proteus中模拟信号输入来测
试步进电机的运行情况。
需要注意的是,具体的连接方法可能因使用的步进电机和驱动模块而有所不同。
在进行实际连接时,请参考步进电机和L298N电机驱动模块的规格和数据手册,以确保正确连接并避免任何意外情况。
基于Proteus的步进电机控制系统仿真设计-精品
计算机控制技术课程设计报告《基于Proteus的步进电机控制系统仿真设计》专业及班级______ 09自动化(1)班_________ 姓名_____ 吴红田坤王林指导老师_______ 丁健______________完成时间_______ _ 2012-6-17__________________基于protues的步进电机控制系统设计摘要:步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。
步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。
一、步进电机原理、控制技术及其特点由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备….步进电机控制驱动器,典型步进电机控制系统的控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。
基于Proteus与单片机的步进电机控制设计
基于Proteus 与单片机的步进电机控制设计杨 宏,李国辉(西安邮电学院 陕西西安 710061)摘 要:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
采用AT 89C52单片机内部的定时器改变CP 脉冲的频率从而实现对步进电机的转速进行控制,实现了电机调速与正反转的功能,并使用EDA 软件P roteus 对设计进行了仿真,同时还设计了硬件电路。
结果表明,使用P roteus 仿真结果与硬件电路实验结果基本一致。
先采用P rot eus 仿真,再移植到相应的硬件电路,这种方式可以减小系统开发成本和周期,具有一定的推广价值。
关键词:步进电机;单片机;调速系统;Pr oteus中图分类号:T P27 文献标识码:A 文章编号:10042373X(2010)052104203Design of Control S ystem of Stepper Motor Based on Proteus and S ingle Chip MicrocomputerYANG Hong,LI Guohui(Xi c an Uni versit y of P ost and Telecommunicat i ons,Xi c an,710061,China)A bstra ct :Stepper motor is the open 2loop contr ol device changing the electrical pulse signal into angular displacement or linear displacement.The speed of stepper motor is controlled by turning the CP pulse frequency by the internal timer of AT 89C52single chip microcomputer,and its nor mal 2r everse funct ion is realized.The simulation is done by the P roteus soft 2ware of EDA,and the ha rdwar e circuit is also designed.T he r esults show that the simulation results by Proteus softwar e and the har dware exper imental results are basica lly consist ent.The simulation is used firstly by P roteus,and it is t ransplanted into the cor responding hardware cir cuit.This way can reduce system c s developing costs and cycle,and has a certain pr omoting value.Keywords :stepper motor ;single chip microcom puter;speed regulating system;Pr oteus收稿日期:2009210226基金项目:国家自然科学基金资助项目(40974078);陕西省自然科学基金资助(2007D15)0 引 言步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
基于proteus步进电机仿真及程序
proteus中的步进电机有两种,六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER),六线制的左右中间两根线接电源,任然剩下四根,但的顺序和四线制的不同,见下图。
注意a,b,c,d的顺序在实际情况中,单片机是不能直接拖动步进电机的,需用ULN2003这样的器件两个步进电机都是四相电机。
如果用四拍:那么P2输出的(顺时针)顺序就是:0x03,0x06,0x0c,0x09a 1 0 0 1b 1 1 0 0c 0 1 1 0d 0 0 1 1如果用八拍:那么P2输出的(顺时针)顺序就是:0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09a 1 1 0 0 0 0 0 1b 0 1 1 1 0 0 0 0c 0 0 0 1 1 1 0 0d 0 0 0 0 0 1 1 1给一个测试八拍的仿真程序:1.#include<reg52.h>2.3.main(){4.while(1){5.unsigned int i,j,k;6.for(k=0;k<255;k++){7.for(i=0;i<75;i++)8.for(j=0;j<255;j++);9.P2=0x01;10.for(i=0;i<75;i++)11.for(j=0;j<255;j++);12.P2=0x03;13. for(i=0;i<75;i++)14.for(j=0;j<255;j++);15.P2=0x02;16.17. for(i=0;i<75;i++)18.for(j=0;j<255;j++);19.P2=0x06;20.for(i=0;i<75;i++)21.for(j=0;j<255;j++);22.P2=0x04;23.for(i=0;i<75;i++)24.for(j=0;j<255;j++);25.P2=0x0c;26. for(i=0;i<75;i++)27.for(j=0;j<255;j++);28.P2=0x08;29.30. for(i=0;i<75;i++)31.for(j=0;j<255;j++);32.P2=0x09;33.34.35.}36. }37.}。
基于Protues的步进电机控制系统仿真设计
基于Protues的步进电机控制系统仿真设计.计算机控制技术课程设计报告《基于Protues的步进电机控制系统仿真设计》姓名:学号:专业: 自动化(1)班授课老师: 老师日期: 2013/6/20目录引言 ...................................................... 1 1设计电源 ................................................ 1 2.四项步进电机 (1)2.1步进电机 ................................................. 1 ..2.2步进电机的控制 (1)2.3步进电机的工作过程 ....................................... 1 3电路图设计 . (2)3.1AT89c52的概述 (2)3.2最小系统 (2)3.3复位电路 (2)3.4控制电路 (3)3.5电机驱动电路 ............................................. 3 4程序设计 (3)4.1 主程序框图 (3)4.2 步进电机速度控制程序框图 (4)4.3 控制开关输入程序框图 ................................... 5 5结束语 .................................................. 6 [参考文献] ................................................ 7 附录A 源程序 ............................................. 8 附录B ................................................... 10 ..引言通过控制AT89c52芯片,实现对四相步进电机的转动控制。
基于PROTEUS的单片机对步进电机运动控制仿真
Value Engineering 表2元件清单序号标号型号所在库名称序号标号型号所在库名称123456R1RP1C1C2C3U110k 4K733pf 33pf 10uF 74LS244Resistors Resistors Capacitors Capacitors Capacitors 74LS series7891011~1819U2U3U7X1K1-K8K974LS273L298AT89C5112MHZ方向速度按钮复位按钮74LS series Analog ICs Microprocessor ICsMiscellaneous Switches&RelaysSwitches&Relays 0引言步进电动机是一种将数字式电脉冲信号转换成机械角位移的机电信号,它的机械角位移与输入的数字脉冲信号有着严格的对应关系:即一个脉冲信号可以使步进电动机前进一步。
步进电动优点多,如可以直接实现数字控制,控制性能好,无摩擦,抗干扰能力强,误差不长期积累,具有自锁能力和保持转矩的能力。
在数控机床、医疗器械、仪器仪表、机器人等设备中得到了广泛的应用。
由于它是一种用脉冲控制的电机,利用单片机的四个8位可编程I/O 口很容易实现对步进电机的控制。
1四相步进电机的控制原理1.1控制要求:①能对转速和步数进行控制;②可实现电机的正反转控制。
1.2转速和步数的控制单四拍也叫一相励磁,特点是精度好,功耗小,但输出转矩小,振动较大。
步距角等于电机标称的步距角;双四拍也叫二相励磁,特点是输出转矩大,振动小,但功耗大。
步距角等于电机标称的步距角;除此之外还有一二相励磁,特点是分辨率高,运转平滑。
步距角为电机标称的1/2。
本文对双四拍进行介绍,步进电机的转速取决于输入的脉冲频率。
从图1可以看出,当改变输入脉冲的周期时,ABCD 四相绕组高低电平的宽度将发生变化。
这就导致通电和断电变化的速率发生变化,使电机转速发生变化。
步进电机及仿真
计算机控制技术课程设计报告《基于Protues的步进电机控制系统仿真设计》*名:***学号: **********专业:自动化(1)班授课老师:丁健老师日期: 2013/6/20目录引言 (1)1设计电源 (1)2.四项步进电机 (1)2.1步进电机 (1)2.2步进电机的控制 (1)2.3步进电机的工作过程 (1)3电路图设计 (2)3.1AT89c52的概述 (2)3.2最小系统 (2)3.3复位电路 (3)3.4控制电路 (3)3.5电机驱动电路 (3)4程序设计 (4)4.1 主程序框图 (4)4.2 步进电机速度控制程序框图 (4)4.3 控制开关输入程序框图 (6)5结束语 (6)[参考文献] ................................ 错误!未定义书签。
附录A 源程序. (8)附录B (10)引言通过控制AT89c52芯片,实现对四相步进电机的转动控制。
具体功能主要是控制电机正转、反转、加速与减速。
具体工作过程是:给作品通电后,步进电机按照预先设置的转速和转动方式转动。
调整正反转按钮,步进电机实现正反转切换;按下加速开关,步进电机转速加快;按下减速开关时,电机转速减慢。
实现设计具体用到的仪器:AT89C52芯片、开关单元、四项步进电机等。
实现设计具体电路单元有:单片机最小系统、步进电机连接电路、开关连接电路[1]。
1设计电源AT89C51单片机需要的电源是5v直流电源,我们所用的电是220V50H Z,这要需要交流电源220V 转换5V直流电源,利用变压器的原理220v进行降压,单片机控制系统以及外围芯片供电采用7805系列三端稳压器件,通过全波整流,然后进行滤波,然后进行滤波稳压,使用电容滤去交流,电路如图1.1所示。
图1.1 电源设计图2 四项步进电机2.1步进电机步进电机是一种将电脉冲转化为角位移的执行机构。
电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角[2]。
基于protues步进电机仿真
基于protues的步进电机仿真课程设计专业及班级_____ ____________________ _姓名______ _______________________ 学号___ _______________________________授课老师_______ __ __________ ___ _______完成时间____ ______________ __ ________基于proteus的步进电机仿真摘要步进电机是一种将电脉冲转变为角位移的执行机构,可通过控制脉冲数来控制角位移量。
步进电机广泛应用在生产实践的各个领域。
它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。
本设计利用proteus仿真软件进行电路仿真,系统通过设置六个按键分别控制步进电机的起止、方向、步进速度,使用1602液晶显示以上参数。
整个系统具有稳定性好,实用性强,操作界面友好等优点。
关键词:proteus仿真步进电机1602一、整体电路分析如下图,整个设计以STC89C51单片机为中心,由复位电路,时钟电路,电机驱动,步进电机,显示电路等组成,硬件模块如图1所示:图1 硬件模块图通过按键进行相应的参数设定,单片机接收到信号后经过判断驱动电机驱动模块,然后由驱动电路驱动步进电机运转,并用LCD显示设置的参数。
二、系统硬件电路选择与设计1、主控器的选择本次主控单元使用C51单片机对整个系统进行控制。
STC89C51RC包含512字节RAM 、32条I/O口线、3个16位定时/计数器、8输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信、I/O扩展或全双工UART)以及片内振荡器和时钟电路。
电路图如下:A B C DS 1S 2S 3S 4D 0D 7D 1D 2D 3D 4D 5D 6R S R WE X T A L 218X T A L 119A L E 30E A31P S E N 29R S T9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 1.01P 1.12P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D17P 3.6/W R 16P 3.5/T 115P 2.7/A 1528P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427U1AT89C51图2 单片机最小系统电路图2、步进电机选择步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
基于Proteus的步进电机控制系统仿真设计
基于Proteus的步进电机控制系统仿真设计
卢超
【期刊名称】《实验室研究与探索》
【年(卷),期】2010(029)006
【摘要】设计了一种步进电机控制系统,使用C51单片机控制4相步进电机,由单片机产生驱动脉冲信号,通过键盘设定步进电机的步进方向和步进速度,在液晶显示器上显示步进角度、步进方向和步进速度,并通过仿真软件Proteus对系统做了仿真和测试.整个系统采用模块化设计,结构简单可靠.
【总页数】4页(P54-57)
【作者】卢超
【作者单位】陕西理工学院物理系,陕西,汉中,723000
【正文语种】中文
【中图分类】TP391.9
【相关文献】
1.基于PROTEUS的时温控制系统仿真设计 [J], 章彩涛;黄振沛;吴陈燕
2.基于Proteus智能小车单片机控制系统仿真设计 [J], 王志刚
3.基于单片机的步进电机控制系统仿真设计 [J], 刘华勇;范月圆
4.基于单片机80C51+Proteus的步进电机控制的设计研究 [J], 梁建华
5.基于Proteus与LabVIEW的步进电机控制系统仿真设计 [J], 孙凯利;王海峰;崔宜梁;李蒙;孙中义
因版权原因,仅展示原文概要,查看原文内容请购买。
基于proteus的电机仿真
基于proteus的电机仿真1 引言步进电机在简单的开环工作方式下能够达到相当高的定位精度,且低速运行时又可输出很大的转矩,因此在运动控制中得到了广泛的应用[1]。
PC 机步进电机控制系统,应用于多个领域如数控机床、机器人、激光加工设备等各种仪器设备。
一个完整的PC 机步进电机控制系统,下位机与PC 机构成主从式控制结构:PC 机负责人机交互界面的管理,包括键盘和鼠标的管理、系统状态的显示、控制指令的发送等部分工作;下位机完成运动控制的所有细节,包括脉冲和方向信号的输出、自动升降速的处理等部分工作。
实际下位机开发过程复杂,主体包含硬件电路设计和控制程序设计两方面。
控制程序设计过程需要软件调试、硬件调试、系统调试 3 个过程。
软件调试一般比较容易进行,但如果要进行牵涉硬件的硬件调试或系统调试,包括元器件选用、PCB 板制作、元器件焊接、程序烧录环节,其中任一环节的疏漏都可能造成程序调试失真。
通过Proteus 中各虚拟仪器所构建硬件电路,调试所设计程序的控制效果,达到虚拟硬件调试、虚拟系统调试程序的目的,为PC 机步进电机系统开发提供有效的理论实践依据,避免因硬件电路设计过程错误引起的程序异常或硬件实验条件限制影响开发。
Proteus 是英国Labcenter 公司开发的电路分析与实物仿真软件实现了单片机仿真和SPICE 电路仿真相结合,具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘、LCD、虚拟仪器、示波器、逻辑分析仪系统仿真的功能;支持主流单片机系统的仿真功能;在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态;支持第三方的软件编译和调试环境,如Keil uVision2、MTLAB 等软件。
由于Proteus 软件本身的优良仿真特性,所设计程序能于Proteus 中完成仿真过程的同时,即基本证明了所设计程序的准确性,从而基本完成了系统开发中的控制程序设计部分,并为系统硬件电路设计提供指导意义。
基于Proteus的步进电机闭环控制仿真
本科毕业设计论文题目基于Proteus的步进电机闭环控制仿真毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于protues的步进电机仿真课程设计专业及班级_____ ____________________ _姓名______ _______________________ 学号___ _______________________________授课老师_______ __ __________ ___ _______完成时间____ ______________ __ ________基于proteus的步进电机仿真摘要步进电机是一种将电脉冲转变为角位移的执行机构,可通过控制脉冲数来控制角位移量。
步进电机广泛应用在生产实践的各个领域。
它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。
本设计利用proteus仿真软件进行电路仿真,系统通过设置六个按键分别控制步进电机的起止、方向、步进速度,使用1602液晶显示以上参数。
整个系统具有稳定性好,实用性强,操作界面友好等优点。
关键词:proteus仿真步进电机1602一、整体电路分析如下图,整个设计以STC89C51单片机为中心,由复位电路,时钟电路,电机驱动,步进电机,显示电路等组成,硬件模块如图1所示:图1 硬件模块图通过按键进行相应的参数设定,单片机接收到信号后经过判断驱动电机驱动模块,然后由驱动电路驱动步进电机运转,并用LCD显示设置的参数。
二、系统硬件电路选择与设计1、主控器的选择本次主控单元使用C51单片机对整个系统进行控制。
STC89C51RC包含512字节RAM 、32条I/O口线、3个16位定时/计数器、8输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信、I/O扩展或全双工UART)以及片内振荡器和时钟电路。
电路图如下:图2 单片机最小系统电路图2、步进电机选择步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
本设计使用的是四相三拍步进电机,连接图如下:图3 步进电机接线图3、驱动电路的选择L297、L298是步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。
芯片内的PWM 斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。
该集成电路采用了SGS 公司的模拟/数字兼容的I2L 技术,使用5V 的电源电压,全部信号的连接都与TFL/CMOS 或集电极开路的晶体管兼容。
图4 L297 L2984、键盘输入模块电路设计中,键盘采用非编码键盘系统中的独立式按键结构。
键盘工作方式采用定时扫描方式。
采用定时器TO定时,通过输出数据,识别按键的工作状态。
键盘主要用来提供人机接口,电路如图3所示,采用独立式按键电路。
按键功定义如下:当P1.5按下时,步进电机开始启动;当INTO按下时,步进电机停止;当P1.0按下时,步进电机开始加速;当P1.1按下时,步进电机开始减速;当P1.2按下时,步进电机开始正转;当P1.3按下时,步进电机开始反转。
连接图如下:图5按键接连接图5、显示电路的LCD显示模块是把LCD显示屏、背景光源、线路板和驱动集成电路等部件构造成1个整体作为1个独立部件使用,只留1个接口与外部通信。
显示模块通过这个接口接收显示的命令和数据,并按指令和数据的要求进行显示,外部电路通过这个接口读出显示模块的工作状态和显示数据。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每1个字符都有1个固定的代码。
用户对模块写入适当的控制命令,即可完成清屏、显示、地址设置等操作。
设计采用并行方式控制,LCD与单片机的通讯接口电路如图6所示。
图6 1602显示电路接线图四、系统软件设计软件流程图图7 系统流程图五、总结本次设计利用仿真软件Proteus及KeilC5l进行调试。
系统实现了可程序设定和显示步进角、步进方向和步进速度,支持用开关量单独控制步进电机的启动和停止、转向、转速。
通过此次课程设计,我不仅学会如何用单片机控制步进电动机,而且在查找资料的过程中也了解了许多课外知识,开拓了视野,使自己在专业知识方面和动手能力方面有了很大的提高,更让我学会了理论与实践的结合。
最后,感谢丁老师的悉心教导以及同学的帮助!六、附录(1)整体电路图(2)程序代码#include "lcd1602.h"#define uchar unsigned char#define uint unsigned int/************************************************************* **功能:延时1.64ms ****参数:无***************************************************************/ void delay1_64ms(void){uchar i;for(i = 0;i < 250;i++){_nop_();_nop_();_nop_();_nop_();}}/************************************************************* **功能:延时40us ****参数:无***************************************************************/ /*void delay40us(void){uchar i;for(i = 0;i < 20;i++){;}}*//************************************************************* **功能:判断LCD忙****参数:无***************************************************************/ unsigned char Lcd_Wait(void){while(1){DBPort=0xff;LcdEn=0;_nop_();LcdRs=0;_nop_();_nop_();LcdRw=1;_nop_();LcdEn=1;_nop_();_nop_();_nop_();_nop_();if((DBPort&0x80)==0){break;}LcdEn=0;}//delay40us();return DBPort;}/************************************************************** **功能:写LCD函数 ****参数:style为写命令/数据,0-命令,1-数据;input为写入的8位 ** ** 命令/数据 ****************************************************************/ void Lcd_Write(bit style,unsigned char input){LcdEn=0;_nop_();_nop_();LcdRs=style;_nop_();LcdRw=0;DBPort=input;_nop_();_nop_();LcdEn=1;_nop_();_nop_();LcdEn=0;_nop_();Lcd_Wait();}/**************************************************************** **功能:LCD清屏函数 ****参数:无 ******************************************************************/ void ClrScreen(void){Lcd_Write(Lcd_Command,Lcd_Clear_Screen);//delay1_64ms();}/**************************************************************** **功能:LCD归位函数 ****参数:无 ******************************************************************/ /*void Screen_home(void){Lcd_Write(Lcd_Command,Lcd_Home);//delay1_64ms();}*//*************************************************************** **功能:设置显示模式 ****参数: *****************************************************************/ void Lcd_SetDisplay(unsigned char DisplayMode){Lcd_Write(Lcd_Command,0x08|DisplayMode);}/*************************************************************** **功能:LCD移动设置 ****参数:取值如下 **************************************************************** void Lcd_Move(unsigned char MoveMode){Lcd_Write(Lcd_Command,0x10|MoveMode);}/**************************************************************** **功能:LCD输入设置 ****参数:取值如下 ******************************************************************/ void Lcd_SetInput(unsigned char InputMode){Lcd_Write(Lcd_Command,0x04|InputMode);}/**************************************************************** **功能:LCD初始化 ****参数:取值如下 ******************************************************************/ void Lcd_Init(void){delay1_64ms();Lcd_Write(Lcd_Command,0x38); //8位数据端口,2行显示,5*7点阵Lcd_Write(Lcd_Command,0x38);Lcd_Write(Lcd_Command,0x38);Lcd_SetDisplay(Lcd_Display_On); //开启显示, 无光标|Lcd_Cursor|Lcd_Flash//Lcd_Move(Lcd_CursorMove|Lcd_Left);Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move); //AC递增, 画面不动_To}/**************************************************************** **功能:显示位置设置 ****参数:x-行;y-列 ******************************************************************/ void GotoXY(unsigned char x,unsigned char y){if(y==0){Lcd_Write(Lcd_Command,0x80|x);}if(y==1){Lcd_Write(Lcd_Command,0x80|(x+0x40));}}/**************************************************************** **功能:LCD显示函数 ****参数:str-要显示的字符串指针 ******************************************************************/ void Print(unsigned char *str){while(*str!='\0'){Lcd_Write(Lcd_Data,*str);str++;}}void print_char(uchar a){if(a>=0&&a<=9)Lcd_Write(Lcd_Data,a+'0');else if(a>=0x0a &&a<= 0x0f)Lcd_Write(Lcd_Data,a+0x37);}。