毕业设计(论文)基于单片机的步进电机控制_第1页
毕业设计(论文)基于单片机的步进电机控制_第2页
毕业设计(论文)基于单片机的步进电机控制_第3页
毕业设计(论文)基于单片机的步进电机控制_第4页
毕业设计(论文)基于单片机的步进电机控制_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、 班级:自控0601 学号:200640383北京化工大学毕业设计题目 基于单片机的步进电机控制 专 业 学 生 指导教师 2010年 6月 10日诚信声明本人声明:我所呈交的本科毕业设计论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。 申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名: 日期: 年 月 日毕业设计(论文)任务书设计(论文)题目: 基于单

2、片机的步进电机控制 学院: 信息科学与技术 专业: 自动化 班级: 0601班 学号200640383学生: 戴博文 指导教师(含职称): 祝海江( 副教授) 专业负责人: 李大字 1设计(论文)的主要任务及目标(1)完成5000汉字的与设计内容有关的外文资料的翻译(2)查阅5篇以上的相关外文文献,查阅大量中文参考文献,写出1000字以上的文献综述(3)学习单片机控制步进电机基本原理,了解硬件电路的设计和调试方法(4)掌握keil c软件的编程与应用,并结合硬件调试。2设计(论文)的基本要求和内容基本要求:(1)中期考核时,提交1000字以上的文献综述和2000字的阶段总结(2)提交外文原文及

3、中文翻译。(3)完成毕业论文,提交打印件二份,电子版一份。(4)提交毕业环节工作笔记。内容:(1)掌握基于单片机控制步进电机的基本原理。(2)掌握keil c的编程技巧,电路设计方法。(3)编程实现对步进电机正反转和转速控制。3主要参考文献1.张俊谟,单片机中级教程原理与应用,2006,102.张毅刚,彭喜源,谭晓昀mcs一51单片机应用设计m黑龙江,哈尔滨工业大学出版社,19973.戴佳.戴卫恒,51单片机c语言应用程序设计实例精讲 20074.胡汉才, 单片机原理及其接口技术 20045.谭浩强, c语言程序设计 19996.王晓明,电动机的单片机控制m。北京:北京航空航天大学出版社,20

4、027.王鉴光, 电机控制系统 机械工业出版社8.王宗培 步进电动机及其控制系统 19869.陈理壁 步进电机及其应用 198910.李华 mcs-51系列单片机应用接口技术 1993 4进度安排设计(论文)各阶段名称起 止 日 期1查阅文献,学习单片机控制步进电机的基本原理3月上旬3月中旬2学习keil c的编程技巧,设计实现电路3月中旬4月中旬3设计方案,设计文件整理4月中旬4月下旬4编程调试4月下旬5月中旬5毕业论文写作5月中旬5月下旬摘 要本文介绍了单片机控制步进电机的系统。在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。步进电机是机电控制中一种常用的执行机构,

5、其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。本系统的硬件组成主要有:51系列单片机、l298n驱动电路等。同时对系统设计中所用到的一些软件都进行了介绍。本系统用51系列单片机和l298n电机驱动芯片并加入了键盘来控制步进电机实现转向、转速等。系统中使用的是混合式二相步进电机,相应的驱动和控制电路对于其整体性能起着非常重要的作用。经系统调试,能够很好的控制步进电机的正反转、加减速,从而达到预期目的。整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。关键词:51系列单片机;l298n驱动电路;正反转abstractthis paper, w

6、e introduces a stepper motor system which controlled by scm. in the electrical era today, motor has been playing a very important role in the modernization of production and life. stepper motor is a common used implementing agency in motor control. the principle is by switching the coil current and

7、the order in its each phase to make a step-by-step rotary motor. the hardware of the system including: 51 series scm, l298n driving circuit, etc. at the same time some of the software that used in system designing are introduced. the system used 51 scm and l298n motor drive chip and joined the keybo

8、ard to control the stepper motor to achieve the direction and speed of rotation, etc. a two-phase hybrid stepping motor is used in the system. the corresponding drive and control circuit plays a very important role to its overall performance. though system testing, it can be very convenient to contr

9、ol the stepper motor, such as acceleration , deceleration, so as to achieve the desired objectives. the whole system is simple in structure with characteristics of high reliability, low cost and practicality which has a higher universal characteristic and the promotional and applied value.keywords:

10、51 scm, l298n driving circuit, positive and reversal rotation目 录摘 要vabstractvi目 录vii前 言1第1章 单片机控制步进电机系统简介2第1.1节 单片机系统概述2第1.2节 at89c51功能概述21.2.1 引脚功能说明31.2.2 时钟振荡器5第1.3节 步进电机概述6第2章 常用软件基础知识7第2.1节 keil编译器软件简介72.1.1 使用keil软件建立一个工程72.1.2 使用debug进行调试11第2.2节avr_fighter软件介绍132.2.1程序烧写过程14第3章 系统概述及设计16第3.1节

11、 整体结构16第3.2节 系统作用16第3.3节 系统应用16第4章 硬件设计18第4.1节 硬件设计原则18第4.2节 mcu最小系统电路设计184.2.1 复位电路设计194.2.2 时钟电路设计194.2.3 上拉电阻的作用20第4.3节 l298n驱动电路设计204.3.1 l298n芯片简介214.3.2 max-232电路设计224.3.3 max-232 芯片简介22第4.4节 键盘的电路设计224.4.1 键盘的特性234.4.2 按键的确认234.4.3 键盘的工作方式23第5章 软件设计25第5.1节 程序模块255.1.1 换向数列255.1.2 延时模块27结论28致谢

12、31参考文献32附录a 程序源码34附录b 系统电路图42附录c 实物图43前 言在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。无论是在工农业生产还是在日常生活中的家用电器,都大量地使用着各种各样的电动机。因此对电动机的控制变得越来越重要了。电动机的控制技术的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、微机应用技术的最新发展成就。正是这些技术的进步使电动机控制技术化。步进电机是机电控制中一种常用的执行机构,其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速

13、。通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的,现在比较常用的步进电机包括反应式步进电机(vr)、永磁式步进电机(pm),混合式步进电机(hb)和单相式步进电机等。步进电机的一些基本参数:电机固有步距角:它表示控制系统每发一个步进脉冲信号,电机所转动的角度。步进电机的相数:是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。对步进电机控制主要在于驱动电路的搭建,最早人们利用三极管搭建放大电路,但

14、缺乏灵活性,往往是只能针对某一款步进电机,后来慢慢发展出现了通用步进电机的驱动芯片,其中常用的是l298和l297,两者可以搭配使用,也可以只用l298,本次设计只使用l298。这次设计需要实现驱动电路的硬件搭建,程序的编写,实现步进电机正反转和加减速控制。第1章 单片机控制步进电机系统简介第1.1节 单片机系统概述随着材料科学、工艺技术、计算机技术的发展与进步,电路系统向着集成度极高的方向发展。cpu的生产制造技术,也朝着综合性、技术性、实用性发展。如cpu的运算位数从4位、8位 到32位机的发展,运算速度从8 mhz、32 mhz到1.6 ghz。可以说是日新月异的发展着。其中单片机在控制

15、系统中的应用是越来越普遍了。单片机控制系统是以单片机(cpu)为核心部件,扩展一些外部接口和设备,组成单片机工业控制机,主要用于工业过程控制。要进行单片机系统设计首先必须具有一定的硬件基础知识;其次,需要具有一定的软件设计能力,能够根据系统的要求,灵活地设计出所需要的程序;第三,具有综合运用知识的能力。最后,还必须掌握生产过程的工艺性能及被测参数的测量方法,以及被控对象的动、静态特性,有时甚至要求给出被控对象的数学模型。第1.2节 at89c51功能概述at89c51是美国atmel公司生产的低电压,高性能cmos 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器perom和12

16、8bytes的随机存取数据存储器,器件采用公司的高密度,非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,功能强大。此单片机可为您提供许多高性价比的应用场合。at89c51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,内置一个精密比较器,片内振荡器及时钟电路,同时at89c51可降至0hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止cpu的工作,但允许ram,定时计数器,串行通信及中断系统继续工作。掉电方式保存ram中的内容

17、,但振荡器停止工作,并禁止其它所有部件工作直到下一个硬件复位。1.2.1 引脚功能说明mcs-51是标准的40脚双列直插式集成电路芯片,引脚排列请参见图1.1:图1.1 at89c51的引脚图vcc:电源电压; gnd:地;p0口:p0口是一组8位漏极开路型双向i/o口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个ttl逻辑门电路,对端口写1可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接受指令字节,而在程序效验时,输出指令字节,效验时,要求外接上拉电阻。p

18、1口:p1口是一个带有内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动 (吸收或输出电流)4个ttl逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流。flash编程和程序效验期间,p1接收低8位地址。p2口:p2口是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动 (吸收或输出电流)4个ttl逻辑们电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流。在访问外部程序存储器或16位

19、地址的外部数据存储器(例如执行movxdptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行movxri)时,p2口线上的内容(也即特殊功能寄存器(sfr)区中r2寄存器的内容),在整个访问期间不改变。flash编程或效验时,p2亦接收高位地址和其它控制信号。p3口:p3口是一个带有内部上拉电阻的8位双向i/o口,p3的输出缓冲级可驱动 (吸收或输出电流)4个ttl逻辑们电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流。p3口除了作为一般的i/o口线外,更重要的用途是他

20、的第二个功能,如下表所示:表1 p3口at89c2051特殊功能端口引脚功能特性p3.0rxd(串行口输入)p3.1txd(并行口输入)p3.2int0(外部中断0)p3.3int1(外部中断1)p3.4t0(定时计数外部输入0)p3.5t1(定时计数外部输入0)p3.6(外部数据存储器写选通)p3.7(外部数据存储器读选通)p3口还接收一些用于flash闪速存储器编程和程序效验的控制信号。rst:复位输入。其引脚一旦变成两个机器周期以上的高电平,所有的i/o口都将复位到1状态,当振荡器正在工作时,持续两个机器周期以上高电平便可完成复位,每个机器周期为12个振荡时钟周期。ea/vpp:外部访问

21、允许,欲使cpu仅访问外部程序存储器(0000hffffh),ea端必须保持低电平接地,需注意的是:如果加密位lb1被编程,复位是内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。xtal1:振荡器反相放大器的及内部时钟发生器的输入端。xtal2:振荡器反相放大器输出端1.2.2 时钟振荡器at89c51中有一个用于构成内部振荡器的高增益反向放大器,引脚xtal1和 xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈器件的片外石英晶体

22、或陶瓷谐振器一起构成自激振荡器,振荡电路参见图2.2。外接石英晶体或陶瓷振荡器及电容 c1,c2接在放大器的反馈回路中构成并联振荡电路。对外接电容 c1,c2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振得难易程度及温度稳定性,如果使用石英晶体,推荐电容使用30pf10pf,而如使用陶瓷振荡器建议选择40pf10pf。 图 1.2 时钟振荡电路第1.3节 步进电机概述步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过

23、一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机有几个显著特点:1、 步进电机可以直接接受数字信号,而无需模/数变换;2、步进电机具有快速启/停控制能力,可在瞬间实现启动和停止;3、步进电机具有高精度的特点,步距角在0.3690度之间;4、定位准确;现在比较常用的步进电机包括反应式步进电机(vr)、永磁式步进电机(pm)、混合式步进电机(hb)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5

24、度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。感应子式步进电机某种程度上可以看作是低速同步电机。一个四相电机可以作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不能如此。第2章 常用软件基础知识第2.1节 keil编译器软件

25、简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍keil c51开发系统各部分功能和使用。图2.1 c51工具包整体结构图keil c51单

26、片机软件开发系统的整体结构c51工具包的整体结构,如图3.1所示,其中uvision与ishell分别是c51 for windows和for dos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用ide 本身或其它编辑器编辑c 或汇编源文件。然后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可

27、以直接写入程序存贮器如eprom 中。2.1.1 使用keil软件建立一个工程keil是目前进行51单片机开发最常用的编译软件。关于keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用easy 51dp-2开发板。对于keil更详细的介绍,可以参考一些专门书籍资料。在keil里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的c文件加入到工程中,其他文件以#include头文件的形式加到这个c文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里

28、来。打开keil软件后,出现(图2.2)所示界面。当然,如果keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。图2.2 keil软件主界面首先点击project-new project(project-open project为打开一个已经存在的工程),如图2.3所示。图2.3 keil软件打开新工程界面点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图2.4所示)界面。在此界面上选择电路板上所用的单片机型号:atmel at89s51(或者是at89s52,视开发板上具体型号而定),单击“确定”。图2.4 选择电路板上所用的单片机型号设置完成后,软

29、件会提示“是否将8051上电初始化程序添加入工程?”如图2.5所示,这个一般选择“否”。(关于startup.a51的相关内容可查阅相应资料)图2.5 是否将8051上电初始化程序添加入工程这样,就建立了一个空的51工程。接下来的事,就是在这个工程里面加入自己的程序代码。点击,或者file-new,便建立了一个空的文本框。现在,就可以开始在里面输入你的代码了。保存时注意:如果是用c语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm。到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。下一步就是将写完的

30、程序添加到工程里面,如图2.6所示,在左边project workspace里的source group 1上右击,选择add files to group source group 1。在打开的对话框中,选择刚存的文件路径和对应的扩展名。这样,程序就添加进了这个工程。图2.6 添加文件到工程中下一步,就开始编译刚输入进去的代码。点击工具栏中的按钮。接着,keil会打出下面的提示:build target target 1assembling led.asm.linking.program size: data=8.0 xdata=0 code=100first - 0 error(s), 0

31、 warning(s).其中“first - 0 error(s), 0 warning(s).”说明现在的工程编译通过,0个错误和0个警告。建立工程的时候,默认是不生成hex文件的,得在编译做如下设置:单击,或者在project workspace里target 1上右击,选择“options for target target 1”。出现如图2.7所示对话框,选择“output”按图示,将箭头所指的多选框勾上,点“确定”。现在再点击重新编译,系统提示:“creating hex file from first.”。便会在工程所在文件夹里生成hex文件。图2.7 生成hex文件2.1.2 使

32、用debug进行调试keil有很强大的调试功能,可以显示c程序的反汇编代码、可以计算代码运行的时间、可以显示程序中某一变量的值能用好这个调试工具对编写单片机程序会有很大的帮助。同样的,在这里,只对debug进行简单应用介绍,更详细的使用方法可以参看相关书籍资料。图2.8 调试前设置窗口首先,单击,弹出如图2.8所示对话框,在target页面上设置对应的晶振频率。其他不用作修改。设置完成后,单击,进入调试界面(如图2.9所示)。图2.9 keil调试界面点击中对应的工具按钮则可以开始调试。另外,“view”下的三个工具在调试中会经常用到如.图2.10所示,“disassembly window”

33、显示c文件的反汇编程序;“watch & call stack window”可以显示程序中某一变量的值;“memory window”可以显示内存中某一地址的值。图2.10 三个常用的调试工具第2.2节avr_fighter软件介绍这个软件在网上流传很广,因为其使用简单。被很多单片机爱好者采用。此软件使用时还需要一个单片机下载线来把程序下载到单片机里,需安装usbasp驱动。图2.11 软件主界面2.2.1程序烧写过程先从网站上下载到avr_fighter的软件包,解压后,打开其中“软件”文件夹,运行其中的avr_fighter.exe,出现如下界面(如图2.12所示)。在选择初选择使用的单

34、片机型号。图2.12 选单片机类型接下来插好下载线,接通开发板电源。在左上角的芯片型号选择列表框中选择对应的芯片型号,单击检测器件,如果软件提示检测到器件,则硬件电路没有问题,接下来就开始往单片机里烧写程序了,单击“装flash”出现所示对话框。将文件类型设为hex,选择路径,找到keil编译生成的hex文件如图2.13所示。之后,再点下“打开”,这样,程序就烧写完成了,之后点击“编程”即可。图2.13 打开文件第3章 系统概述及设计第3.1节 整体结构此控制系统的硬件主要组成:51系列单片机、l298n、键盘等。整体结构如图3.1所示本系统总体设计思路是:由键盘发出电平信号,单片机接受并转换

35、成控制信号发送给l298n。l298n主要作用连接步进电机从而驱动步进电机。在系统中按键的作用是控制整个系统的。直流电压源键盘步进电机l298n控制信号at89s51直流电压源图3.1 系统总体框图第3.2节 系统作用本控制系统主要作用是通过单片机来控制步进电机旋转,想要实现这一功能必须要对单片机软件部分和硬件设计有很多的了解,软件部分主要是通过c语言编译而硬件部分是由单片机、l298n、键盘等。完成硬件和软件的设计就能够实现并控制步进电机旋转。第3.3节 系统应用基于单片机实现步进电机控制也是目前重要的一种手段,步进电机本身就是离散型自动化执行元件,所以它特别适合采用单片机及嵌入式系统控制。

36、单片机有更大的灵活性,更易实现复杂的控制策略。随着微处理器技术的飞速发展,单片机的性价比越来越高,利用单片机实现步进电机控制将形成趋势。第4章 硬件设计第4.1节 硬件设计原则本系统设计一共有两部分组成,分别有mcu最小系统设计、l298n驱动电路设计。通过这两部分的结合来控制和显示步进电机的旋转,系统设计中有一些部分要注意,首先要了解单片机的工作原理,在l298n驱动电路设计中要在驱动步进电机的同时还要保护好l298n。驱动部分是要将输入进来的控制信号转化为步进电机工作时各线端电压(工作电压为5v)。以下部分是对电路的主要组成部分进行介绍讲解。第4.2节 mcu最小系统电路设计51单片机的最

37、小系统也叫mcu最小系统,也就是能让单片机正常工作的最少配置,可以看出,在一个最小系统中,仅仅有一片单片机+时钟电路+复位电路+上拉电阻+isp编程接口。有了下面这么多电路,一个单片机系统就有了大脑和五脏,也就是有了生命,但还少五官和四肢,换句话说,他还不可以和外界沟通。如图4. 1所示。图4.1 单片机最小系统4.2.1 复位电路设计复位电路总体分为:上电复位、按键复位两种。上电复位主要是一个是在系统加电的时候,能够使单片机正常复位,并开始从0000h处开始执行程序,而按键复位主要是在调试过程中,需要有一个复位按键,能够方便的在运行时实现复位。这个复位电路的原理很简单,就是利用rc电路的充电

38、时间,使得rst端能够保持在高电平一段时间。一般取经验值r=10k,c=10uf,rs=200。rst在高电平复位,低电平时正常工作10f电容和10k电阻组成一个rc延时电路,为单片机提供上电复位,加入10f电容目的是不会让两边电压发生突变。200的电阻是使电容c19的放电电流不至于太大。本系统就是采用此种复位方式,其电路图如图4.2所示。图4.2 复位电路4.2.2 时钟电路设计在这个最小系统中,采用的是最常用的内部时钟方式,一般情况下,单片机选用的是12mhz晶振(在此频率上,t1可以很容易的产生9600的波特率供串口使用)。再由两只瓷片电容构成并联谐振电路,接在放大器的反馈回路中。事实上

39、对外接电容并没有严格的要求,典型值选用20pf-30pf的电容。本电路中使用1个30 pf的电容,它的主要作用是为单片机提供工作时钟。如图4.3所示。图4.3 时钟电路4.2.3 上拉电阻的作用p0口没有上拉电阻,故作为普通io口用的时候,须加上拉电阻。p2口内部存在上拉电阻,但因为其用作矩阵键盘,为了得到较高的可靠性,故将其也再加上外部上拉。一般上拉电阻取值为1k-10k。阻值越小,能提供的上拉能力也越强,但功耗也会随之上升。第4.3节 l298n驱动电路设计这部分电路作用是驱动步进电机的,电路中用到了8个续流二极管(肖特基二极管),它们的作用是给电机提供回流通路,同时也起到一个保护l298

40、n的安全。c2c3和c3c4的作用是滤波,c4c3采用电解电容,c5c2用一般电容。如图4.4所示。图4.4 l298n驱动电路4.3.1 l298n芯片简介l298n是sgs公司的产品,比较常见的是15脚multiwatt封装的l298n,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。 l298n芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50v,可以直接通过电源来调节输出电压;可以直接用单片机的io口提供信号;而且电路简单,使用比较方便,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个h桥的高电压大电流双全桥式

41、驱动器,接收标准ttl逻辑电平信号,可驱动46v、2a以下的电机。l298n采用由达林顿管组成的h型pwm电路。pwm电路由四个大功率晶体管组成h桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控脉冲的占空比,精确调整电动机转速。这种电路由于管子工作只在饱合和截止状态下,效率非常高。h型电路使实现转速和方向的控制的简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的pwn调整技术。l298n是双h桥高电压大电流集成电路。每个h桥的下侧桥臂晶体管发射极连在一起,其输出脚(sensea和senseb)用来连接电流检测电阻。vss接逻辑控制

42、的电源。vs为电机驱动电源。in1-in4输入引脚为标准ttl 逻辑电平信号,用来控制h桥的开与关即实现电机的正反转,ena、enb引脚则为使能控制端,用来输入pwm信号实现电机调速。管脚图如(图4.5)。图4.5 l298n管脚图4.3.2 max-232电路设计因为mcs-51单片机输入、输出电平为ttl电平,而pc机配置的是rs-232c标准接口,二者的电气规范不同,所以要加电平转换电路。给出了采用max-232芯片的pc机和单片机串行通信接口电路,与pc机相连采用9芯标准插座。 图4.6 max232电路4.3.3 max-232 芯片简介max232芯片是美信公司专门为电脑的rs-2

43、32标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分(如图4.6):第一部分是电荷泵电路。由1、2、3、4、5、6脚构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r0in)、12脚(r0out)、11脚(t0in)、14脚(t0out)为第一数据通道。8脚(r1in)、9脚(r1out)、10脚(t1in)、7脚(t1out)为第二数据通道。ttl/cmos数据从t0in、t1in输入转换成rs-232数据从t0out、t1out送到电脑dp9

44、插头;dp9插头的rs-232数据从r0in、r1in输入转换成ttl/cmos数据后从r0out、r1out输出。第三部分是供电。15脚gnd、16脚vcc(+5v)。第4.4节 键盘的电路设计键盘是单片机十分重要的输入设备,是实现人机对话的纽带。键盘是由一组规则排列的按键组成,一个按键实际上就是一个开关元件,即键盘是一组规则排列的开关。根据按键结构、原理的不同,主要分两类:一类是触点式开关按键,如机械开关等;另一类是无触点开关案件,如磁感应按键等。前者造价低,后者寿命长。目前,单片机应用系统中最常见的触点式开关按键。本系统中运用的正是这种开关按键。4.4.1 键盘的特性键盘是由一组按键开关

45、组成的。通常,按键所用的开关为机械弹性开关,这种开关一般为常开型。平时(按键不按下时),按键的触点是断开状态,按键被按下时,他们才闭合。由于机械触点的弹性作用,一个按键开关从开始按上至接触稳定要经过一定的弹跳时间,即在这段时间里连续产生了多个脉冲,在断开时也不会一下子断开,存在同样的问题,按键开关在闭合及断开的瞬间,均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5ms10ms,而按键的稳定闭合期的长短则是由操作人员的按键动作决定的,一般为十分之几秒的时间。此种抖动在对步进电机的控制时会产生一定的影响,为消除这种抖动,在软件设计时会设计一个去抖动模块来加以解决。4.4.2 按键

46、的确认按键的确认就是判别按键是否闭合,反映在电压上就是和按键相连的引脚呈现出高电平或低电平。如果高电平表示断开,那么低电平则表示闭合,所以通过检测电平的高低状态,便可以确认按键是否按下。本次设计中,在键盘的部分采用四个按键,分别控制步进电机的转动方向、加速、减速。4.4.3 键盘的工作方式键盘的工作方式有3种,即程序控制扫描、定时扫描和中断扫描方式。1、程序控制扫描方式程序控制扫描方式是指单片机在空闲时,才调用键盘扫描程序,并反复的扫描键盘,直到用户从键盘上输入命令或数据,而在执行键入命令或处理键入数据过程中,cpu将不再影响键入要求,直到cpu重新扫描键盘为止。具体过程如下:(1)判别有无按

47、键按下;(2)键扫描取得闭合键的行、列值;(3)用计算法得到键值;(4)判断闭合键是否释放,如果没有释放则等待;如果闭合键释放,将闭合键的键号保存,并转去执行闭合键的功能;(5)返回;2、定时扫描方式定时扫描方式就是每隔一定时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间的定时,当定时时间到就产生定时器溢出中断,cpu响应中断后对键盘进行扫描,并在有键按下时识别出该键执行响应的键功能程序。3、中断扫描方式键盘工作在程序控制扫描方式时,当无键按下时,cpu要不间断的扫描键盘直到有按键按下为止。如果cpu要处理的事情很多,这种工作方式就不能适应。定时扫描方式只要定时时间到,cpu就去扫描键

48、盘,工作效率有了一定的提高。由此可见,这两种方式常使cpu处于空扫描的状态,而中断扫描方式下,cpu可以一直处理自己的工作,直到有键闭合时发出中断申请,cpu响应中断,执行响应的中断服务,才对键进行处理,从而提高了cpu的工作效率。本设计键盘使用的是简单的程序控制扫描方式。第5章 软件设计第5.1节 程序模块整个系统软件分为两个部分:正反转,加减速两个部分。通过调用延时子程序改变延时时间来实现对步进电机的控制。系统采用模块化编程,将各部分功能分别实现。系统总体流程图如图5.1所示。开始初始化while 1p3.2 正转p3.3 反转p3.4和p3.5口控制加减速正转 反转 加速 减速配置、控制

49、步进电机运行图5.1 系统总体流程图5.1.1 换向数列换向数列决定了电机4线的接收信号,1或0之间的变化决定了l298n输出的电流高低,,输出数列中数值根据不同工作方式参照(表5-1)(表5-2)。下面仅以四拍工作方式为例。正转数组:1100,1001,0011,0110code unsigned char runz4=0x0c,0x09,0x03,0x06; /两相四线四拍工作方式反转数组:0110,0011,1001,1100code unsigned char runf4=0x06,0x03,0x09,0x0c; /两相四线四拍工作方式表5-1 半步时序表时序a+b-a-b+10001

50、20011300104011050100611007100081001表5-2 整步时序表时序a+b-a-b+11001200113011041100根据时序图和实物图可以更加直观了解电机各接线在同一时间的电位情况(如图5.2,图5.3)图5.2 两相四线实物图图5.3 输出数组时序图5.1.2 延时模块在为p1端口赋值后,需要使这个状态维持一段时间再改变,同时,通过改变延时程序的延迟时间长短继而改变步进电机转速。程序代码如下:void delay(i)/延时函数for(j=0;ji;j+)for(k=0;k250;k+);图5.4 按键在闭合和断开时,触点会存在抖动现象 一般按键有20ms时

51、间,其中经常消除前面的按键抖动,抖动时间在5ms左右,我们可以在第一次检测到有键按下后延时10毫秒,在重新检测,如果确实有按键的话即可继续执行。最后,加入松手检测while(!key=0),如果需要把后面的抖动也消除的话可以在松手检测后延时10ms再松手检测一遍,经过上述的处理,按键抖动对信号的影响就被消除了,(图5.4)中右面的硬件消抖在希望节省cpu或其他情况时也有采用,而且更加稳定。结论随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。计算机通过软件来控制步进电机,更好地挖掘出电动机的潜力。因此,用计算机控制步进电机已经成为了一种必然的趋势,也符合数字化

52、的时代趋势。本文构建了一个步进电机控制系统,系统的硬件组成主要有:51系列单片机、l298n驱动电路。该系统在分析目前步进电机特点基础上,确定步进电机功能要求。针对步进电机的功能要求,提出了控制系统的详细方案。在步进电机控制系统中,选用了51单片机作为控制工具,并对单片机控制系统的管脚进行了分配,并给出了原理图。并对步进电机转速控制进行了设计。达到了转速的控制的要求,确定了键盘控制。论文设计符合步进电机控制系统的标准要求。经系统调试,可以实现步进电机的以下功能:正反转、加减速。本系统控制灵活,简单方便,制作成本低。同时也有不足的地方:比如说转速控制的精度还不算十分精确,另外还应该加入转速的显示

53、。致谢经过一学期的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,想要完成这个设计是难以想象的。在这里要感谢我的导师祝海江老师。祝老师平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料,设计草案的确定和修改,到中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。我的设计中有很多错误,但是祝老师仍然细心地纠正论文中的错误。除了敬佩祝老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。然后还要感谢大学四年来所有的老师,为我们打下微电子方面的专业知识的

54、基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。最后感谢信息学院和我的母校北京化工大学四年来对我的大力栽培。参考文献1 王庆东,刘杰辉,陈亦仁,等,单片机在步进电机驱动控制中的应用j煤矿机械,2006,27(6):92942 丁伟雄,杨定安,宋晓光步进电机的控制原理及其单片机控制实现j煤矿机械,2005,26(6):1291313 张劲,利用at89s52单片机控制步进电机j, 福建电脑, 2008,24(12):175-185.4 毛玉蓉, 翁惠辉, 刘钢, 一种基于单片微机的步进电机控制系统j. 电气传动, 2003,33(6):32-43.5 王庆东, 刘杰辉, 陈亦仁, 马

温馨提示

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

评论

0/150

提交评论