利用单片机at89c51控制步进电机毕业论文(论文)(编辑修改稿)内容摘要:

路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图 53 所示在其外接利用单片机 AT89C51 控制步进电机 罗汉友 第 6 页 共 20 页 晶体振荡器 (简称晶振 )或陶瓷谐振器就构成了内部振荡方式,片内高增益反向 放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。 图33 中外接晶体以及电容 C2和 C1 构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为 30P 左右,晶振频率选 12MHz。 为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使 CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要 RST 引脚上出现两个机器周期时间以上的高电平,要保证单片机可靠地复位,接个电容就是为了这个时间,即 可引起系统复位。 但如果 RST 引脚上持续为高电平,单片机就处于循环复位状态。 复位后系统将输入 /输出 (1/0)端口寄存器置为FFH,堆栈指针 SP 置为 07H, SBUF 内置为不定值,其余的寄存器全部清 0,内部 RAM 的状态不受复位的影响,在系统上电时 RAM 的内容是不定的。 复位操作有两种情况,即上电复位和手动 (开关 )复位。 本系统采用上电复位方式。 图 3 复位电路 第 2 章 步进电机概述 步进电机的基本介绍 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。 在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。 使得在速度、位置等 控制领域用步进电机来控制变的非常的简单。 利用单片机 AT89C51 控制步进电机 罗汉友 第 7 页 共 20 页 图 4 步进电机 虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机, 交流电机 在常规下使用。 它必须由双环形脉冲信号、 功率 驱动电路等组成控制系统方可使用。 因此用好步进电机 却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 步进电机的特点及种类 步进电机有几个显著特点: 步进电机可以直接接受数字信号,而无 需模 /数变换 ; 步进电机具有快速启 /停控制能力,可在瞬间实现启动和停止; 步进电机具有高精度的特点,步距角在 ~90 度之间; 定位准确; 步进电机在构造上有三种主要类型: 反应式步进电机 定子上有绕组、转子由软磁材料组成。 结构简单、成本低、步距角小,可达 176。 、但动态性能差、效率低、发热大,可靠性难保证。 永磁式步进电机 永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。 其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为 176。 或15176。 )。 混合式步 进电机 混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。 其特点是输出力矩大、动态性能好,步距角小,但结构复杂、成本相对较高。 选择什么种类的步进电机取决于我们设计电路的最终目的,如果是出于教学目的或者实验器材,我们可以选择成本较低的“永磁式步进电机”,但如果是产品开发这一类的用途,利用单片机 AT89C51 控制步进电机 罗汉友 第 8 页 共 20 页 我们则可以选择性能较高的“混合式步进电机”。 步进电机的选择 由于本系统是基于单片机的步进电机系统,实际上是设计步进电机的驱动电路,而设计步进电机 的驱动电路有一个必须遵循的原则:先选择步进电机后进行驱动电路设计。 所以在此先介绍步进电机的选择,而这个问题的又分为步进电机在理论上的选用以及理论联系实际对步进电机的选用。 步进电机作为本系统的主要组成部件,它的参数选取以及电机的性能指标直接影响到系统控制精度及运行可靠性。 步进电机和一般直流电机不同,它的性能指标与驱动电源及测试条件关系很大。 同样一个步进电机,当驱动电源或测试方法改变了,其性能会千差万别。 不同厂家制造的步进电机,只有在相同的控制电源以及测试条件下进行比较才有意义。 因此只有对步进电机的参数和特性 有比较深刻的了解,才会更好地选用和使用步进电机。 第 3 章 单片机编程软件概述 Keil 软件简介 Keil C51 是 美国 Keil Software 公司出品的 51 系列兼容 单片机 C 语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil 提供了包括 C 编译器 、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个 集成开发环境 ( uVision)将这些部分组合在一起。 运行 Keil软件需要 WIN9 NT、 WIN20xx、 WINXP 等操作系 统。 Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构,如图 所示,其中 uVision 与 Ishell 分别是 C51 for Windows和 for DOS 的集成开发环境 (IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。 开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。 然后分别由 C51 及 A51 编译器编译生成目标文件 (.OBJ)。 目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件 (.ABS)。 ABS 文件由 OH51 转换成标准的 Hex 文 件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 EPROM 中。 Keil 工程项目建立 Keil 是目前进行 51 单片机开发最常用的编译软件。 关于 Keil 的使用,有很多的资料介利用单片机 AT89C51 控制步进电机 罗汉友 第 9 页 共 20 页 绍,这里只介绍其整个编译过程,在最短时间内开始使用 Easy 51DP2 开发板。 对于 Keil更详细的介绍,可以参考一些专门书籍资料。 在 Keil 里,每一个完整的程序,都是以一个工程的形式建立的。 一个工程里可以有一个或多个 *.c 文件和 *.h 文件,但只可以有一个main()函数。 一般的做法是将包含 main()函数的 C 文件加入到工程中,其他文件以 include头文件的形式加到这个 C 文件里。 这样,在编译的时候,其他的文件会被自动的导入到工程里来。 C 语言程序代码 下面是此次设计电路所使用的 C 语言程序。 //数码管位 高位 低位 //五个按键控制步进电机:启动 /停止,正转,反转,加 1,减 1 //上电时电机停止,数码管上显示速度最小档 1,加减档位均能通过数码管显示出来,电机采用单双八拍方式 //电机转速一共 10 档,通过按键调节转速 //电机正转时最高位数码管显示 0,反转时显示 1 //蓝,粉,黄,橙 ( 1234) 分别对应 a b c d include define uchar unsigned char define uint unsigned int define led P0//数码管段选 define haha P2 sbit s1 = P1^0。 sbit s2 = P1^1。 sbit s3 = P1^2。 sbit s4 = P1^3。 sbit s5 = P1^4。 //按键定义 ,s1 启动 /停止, s2 正转, s3 反转, s4 加 1, s5 减 1 sbit wei3 = P2^3。 sbit wei2 = P2^2。 sbit wei1 = P2^1。 sbit wei0 = P2^0。 //数码管位选定义 sbit a = P2^7。 sbit b = P2^6。 sbit c = P2^5。 sbit d = P2^4。 //脉冲信号输入端定义 uchar code display[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。 //共阳数码管驱动信号 09,不。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。