《智能仪表论文基于单片机的电机控制.doc》由会员分享,可在线阅读,更多相关《智能仪表论文基于单片机的电机控制.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流智能仪表论文基于单片机的电机控制.精品文档.内蒙古科技大学智能仪表综合训练设计说明书题 目:基于单片机的电机控制学生姓名: 学 号:专 业:测控技术与仪器班 级:指导教师: 中文摘要步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的控制系统。本设计采用AT89S51单片机实现对步进电机的控制。通过单片机的I/O来实现对步进电机的控制,用uln200
2、3来驱动步进电机,并且使用了发光二极管LED来显示步进电机的转速,在单片机的P1口使用四个LED来作为控制的标志。用独立连接式非编码键盘来对电机的状态进行控制。关键词:步进电机,单片机,AT89S51,发光二极管目 录第1章 前言 1.1什么是步进电机51.2步进电机的基本特性61.3步进电机的静态指标及术语6第2章 总体方案设计2.1步进电机原理及控制技术6 2.1.1步进电机原理简述7 2.1.2步进电机控制技术简述72.2总体设计方框图9第3章 硬件设计3.1主要仪器93.2主要芯片说明9 3.2.1 28BYJ-48四相步进电机9 3.2.2 ULN2003 9 3.2.3 STC89
3、C52RC 11 3.2.4 MT03641BR八位共阳数码管143.3 电路说明15 3.3.1控制电路16 3.3.2驱动电路16 3.3.3 显示说明17第4章 软件设计4.1上位机主程序流程图184.2下位机程序流程图194.2.1电机运行子程序流程图20第5章 总结21参考文献附录A硬件原理图附录B:上位机程序附录C:下位机程序第一章 前言步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的
4、控制系统。控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计。实现了步进电机运行。 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制
5、系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。1.1什么是步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电
6、机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给用户在产品选型、使用中造成许多麻烦。签于上述情况,我们决定以广泛的感应子式步进电机为例。叙述其基本工作原理。望能对广大用户在选型、使用、及整机改进时有所帮助。 1.2步进电机的基本特性步进电机有如下特点: (1)步进电机的角位移与输入脉冲数严格成
7、正比,因此当它转一转后,没有累计误差,具有良好的跟随性。 (2)由步进电机与驱动电路组成的开环数控系统,既非常方便、廉价,也非常可靠。同时,它也可以有角度反馈环节组成高性能的闭环数控系统。 (3)步进电机的动态响应快,易于启停、正反转及变速。 (4)速度可在相当宽的范围内平滑调节,低速下仍能保证获得很大的转矩,因此一般可以不用减速器而直接驱动负载。 (5)步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。 (6)步进电机自身的噪声和振动比较大,带惯性负载的能力强。 1.3步进电机的静态指标及术语相数:产生不同队N、S磁场的激磁线圈对数,常用m表示。 拍数:完成一个磁场周期性
8、变化所需脉冲用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即ABBCCDDAAB,四相八拍运行方式即AABBBCCCDDDAA。 步距角:对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿角运行拍数),以常规二、四相,转子齿角为50齿角电机为例。四相运行时步距角为=360度/(50*4)=1.8度,八拍运行时步距角为=360度/(50*8)=0.9度。 定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。 静转矩:电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积的标准,与驱
9、动电压及驱动电源等无关。虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热及机械噪音。第二章 总体设计方案2.1 步进电机原理及控制技术2.1.1步进电机原理简述由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备-步进电机控制驱动器,典型步进电机控制系统:控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各
10、项输入端,以驱动步进电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。另一类是用硬件构成的环形分配器,通常称硬环形分配器。功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的。2.1.2步进电机控制技术简述步进电机的基本控制包括转向控制和速度控制两个方面。从结构上看,步进电机分为四相相单四拍、四相双四拍和四相八拍3种,其基本原理如下:(1)步进电机换相顺序的控制通电换相这一过程称为脉冲分配。例如,四相步进电机在单四拍的工作方式下,其各相通电顺序为ABCDA,通电控制脉冲必须严格按照这一顺序分别控制A、B、C相的通
11、断。四相双四拍的通电顺序为ABBCCDDAAB,四相八拍的通电顺序为AABBBCCCDDDAA。本实验则是单四拍,所以我们需要知道步进电机时序表和时序图步进电机的时序表和时序图分别如下图所示单四拍控制表步序控制位工作状态控制模型DCBA11110A0E21101B0D31011C0B40111D07单四拍时序图(2)步进电机的换向控制如果给定工作方式正序换相通电,步进电机正转。若步进电机的励磁方式为四相单四拍,即ABCDA,。如果按反序通电换相,即ADCBA,则电机就反转。其他方式情况类似。(3)步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的
12、间隔越短,步进电机就转得越快。调整送给步进电机的脉冲频率,就可以对步进电机进行调试。(4)步进电机的起停控制步进电机由于其电气特性,运转时会有步进感。为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动(5)步进电机的加减速控制在步进电机控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步现象。所有步进电机在启动时,必须有加速过程
13、,在停止时波形有减速过程。理想的加速曲线一般为指数曲线,步进电机整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。在一个实际的控制系统中,要根据负载的情况来选择步进电机。步进电机能响应而不失步的最高步进频率称为“启动频率”,于此类似“停止频率”是指系统控制信号突然关断,步进电机不冲过目标位置的最高步进频率。电机的启动频率、停止频率和输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。2.2总体设计方框图(图1)系统方框图第
14、三章 硬件设计3.1 主要仪器1、STC89C52RC单片机芯片 一片2、ULN2003驱动芯片 一片3、MT03641BR八位共阳数码管芯片 一片4、28BYJ-48电机 一个5、按键 四个3.2主要芯片说明3.2.1 28BYJ-48四相步进电机主要技术参数相数:四相电压:5VDC电流:92mA电阻:130步距角:5.625空载牵出频率:800pps 空载牵入频率:500pps 28BYJ-48图减速比:1/64牵入转矩:78.4mN.m接线指示:A(橙)、B(黄)、C(蓝)、D(灰)、E(红,中点接+5V)3.3.2 ULN2003ULN2003是大电流驱动阵列,多用于单片机、智能仪表、
15、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。 该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。 ULN2003芯片引脚图引脚1:CPU脉冲输入端,端口对应一个信号输出端。引脚2:CPU
16、脉冲输入端。 引脚3:CPU脉冲输入端。 引脚4:CPU脉冲输入端。 引脚5:CPU脉冲输入端。 引脚6:CPU脉冲输入端。 引脚7:CPU脉冲输入端。 引脚8:接地。 引脚9:该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。 引脚10:脉冲信号输出端,对应7脚信号输入端。 引脚11:脉冲信号输出端,对应6脚信号输入端。 引脚12:脉冲信号输出端,对应5脚信号输入端。 引脚13:脉冲信号输出端,对应4脚信号输入端。 引脚14:脉冲信号输出端,对应3脚信号输入端。 引
17、脚15:脉冲信号输出端,对应2脚信号输入端。 引脚16:脉冲信号输出端,对应1脚信号输入端。ULN2003的输出端可达500mA/50V. 输出端的二极管学名续流二极管,英文freewheel diode。如果ULN2003的达林顿管输入端输入低电平使其截止,其驱动的元件是感性元件,则电流不能突变,此时会产生一个高压;如果没有二极管,达林顿管会被击穿,所以这个二极管主要起保护作用。 由于ULN2003是集电极开路输出,为了让这个二极管起到续流作用,必须将COM引脚(pin9)接在负载的供电电源上,只有这样才能够形成续流回路。ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可
18、达350mA,9脚可以悬空。3.2.3 STC89C52RCSTC89C52RC单片机是新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12 时钟/机器周期和 6 时钟/机器周期可以任意选择。主要特性如下: 1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意选择,指令代码完全兼容传统 8051. 2. 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机) 3. 工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工 作频率可达 48MHz 4. 用户应用程序空间为 8K 字节 5. 片上集成
19、 512 字节 RAM STC89C52RC芯片引脚图 6. 通用 I/O 口(32 个)复位后为: , P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2 11. 外部中断 4 路,下降沿中断或低电平触发电路,
20、Power Down 模式可由外部中断低电平触发中断方式唤醒 12. 通用异步串行口(UART),还可用定时器软件实现多个 UART 13. 工作温度范围:-40+85(工业级)/075(商业级) 14. PDIP 封装 STC89C52RC 单片机的工作模式掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗 2mA 正常工作模式:典型功耗 4mA7mA 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备 STC89C52RC 引脚功能说明VCC(40 引脚):电源电压 VS S(20 引脚):接地 P0 端口(P0.0P0.7 P0.7
21、,3932 引脚):P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动8个TTL 负载,对端口 P0 写入 每个引脚能驱动写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供低 8 位 地址和 8 位数据的复用总线 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM 在线编程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。 P1 端口(P1.0P1.7,18 引脚):P1 口是一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个
22、TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(I)。此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2和定时器/计数器 2 的触发输入(P1.1/T2EX) 。P2 端口(P2.0P2.7,2128 引脚):P2 口是一个带内部上拉电阻的 8 位双 向 I/O 端口。P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL 输入。 对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用
23、时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(I) 。在访问外部程序存储器和 16 位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存储器(如 执行“MOVX R1”指令)时,P2 口引脚上的内容(就是专用寄存器(SFR)区 中的 P2 寄存器的内容) ,在整个访问期间不会改变。在对 Flash ROM 编程和程序校验期间, P2也接收高位地址和一些控制信号。P3 端口(P3.0P3.7,1017 引脚) :P3 是一个带内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式
24、)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一 个电流(I) 。 在对 Flash ROM 编程或程序校验时,P3 还接收一些控制信号。P3 口除作为一般 I/O 口外,还有其他一些复用功能。RST(9 引脚):复位输入。当输入连续两个机器周期以上高电平时为有效, 用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能无效。DISRTO 默认状态下,
25、复位高电平有效。 ALE/ ROG (30 引脚) 地址锁存控制信号 : (ALE) 是访问外部程序存储器时, 锁存低 8 位地址的输出脉冲。在 Flash 编程时,此引脚( ROG)也用作编程输入 脉冲。 在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部 定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲 将会跳过。如果需要,通过将地址位 8EH 的 SFR 的第 0 位置“1” ,ALE 操作将无效。这 一位置“1” ,ALE 仅在执行 MOVX 或 MOV 指令时有效。否则,ALE 将被微弱拉 高。这个 ALE 使能标志位(地址位 8EH 的
26、 SFR 的第 0 位)的设置对微控制器处于 外部执行模式下无效。PSEN(29 引脚):PSEN是外部程序存储器选通信号。当 STC89C52RC 从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而访问外部数据存储器时,PSEN将不被激活。EA/VPP (31 引脚):访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令, EA必须接 GND。注意加密方式 1 时, EA将内部锁 定位 RESET。为了执行内部程序指令, EA应该接 VCC。在 Flash 编程期间,EA也 接收 12 伏 VPP 电压。 XTAL1(19 引脚) :振
27、荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18 引脚) :振荡器反相放大器的输入端。3.2.4 MT03641BR八位共阳数码管、主要参数工作电压:2V工作电流:510mA、数码管显示原理数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控
28、制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。 数码管内部结构字符 dp g f e d c b a段码 0 1 1 0 0 0 0 0 00xc0 1 1 1 1 1 1 0 0 10xf9 2 1 0 1 0 0 1 0 00
29、xa4 3 1 0 1 1 0 0 0 00xb0 4 1 0 0 1 1 0 0 10x99 5 1 0 0 1 0 0 1 00x92 6 1 0 0 0 0 0 1 00x82 7 1 1 1 1 1 0 0 00xf8 8 1 0 0 0 0 0 0 00x80 9 1 0 0 1 0 0 0 00x90COM根据表中所给的段码,只需要送入相应的数码管即可 3.3电路说明本设计的硬件电路只要包括控制电路、驱动电路、显示电路三大部分。控制电路只要由按键和串行组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作时间和步数。驱动电路主要是对单片机输出的脉冲进行功率放大,
30、从而驱动电机转动。3.3.1控制电路根据系统的控制要求,控制输入部分设置了时间控制,步数控制,启动控制三部分。时间控制按键与P1.4口连接,步数控制按键与P1.5口连接,启动控制按键与P1.6口连接。单片机与单片机之间则通过P3.0和P3.1进行串行通讯。如下图所示3.3.2驱动电路通过ULN2803构成比较多的驱动电路,电路图下图所示。通过单片机的P1.0P1.3输出脉冲到ULN2803的1B4B口,经信号放大后从1C4C口分别输出到电机的A、B、C、D相。3.3.3显示电路在该步进电机的控制器中,电机可以设定时间和步数,这里设计了电机转速和电机的时间的显示电路。在显示电路中,主要是利用了单
31、片机的P0口。采用四个共阳数码管作显示。第一个和第二个数码管显示时间的设定,第三个和第四个显示步数。第四章软件设计通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成3个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。4.1上位机主程序流程图主程序中要完成的工作主要有
32、系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式。若初始化P1=0xff、时间和步数初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,时间值显示“00”,步数值显示“00”外部中断设计 外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加
33、1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。程序流程图如下图所示。4.2下位机程序流程图首先调用初始化子函数,然后判断子程序参数的值,然后调用电机运转子程序。4.2.1电机运行子程序流程图给电机赋初值,对电机的时间,步数都进行现实的设定。当上位机传给下位机信号时,下位机就开始进行一系列的判断,让步进电机进行运转。第五章 总结本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。对本次设计,有以下结论: (1)采用单片机为控制核心,利用其强大的功能,把键
34、盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。而且整个系统所包含的技术几乎包括了现本科学校控制专业所要求的知识,有利于实践教学取得最大效果。 (2)键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。 (3)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。设计心得和体会:从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。在这次设计过程中培养了我们的团队协作
35、精神,便于我们走到工作岗位后能很快适应工作环境。我知道自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。由于个人的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。本论文的研究和探讨还远远不够,我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。参考文献【1】张家生. 电机原理与拖动基础【M】. 北京:北京邮电大学出版社,2006. 【2】马淑华,王凤文
36、,张美金. 单片机原理与接口技术【M】.北京:北京邮电大学出版社,2007. 【3】顾德英,张健,马淑华.计算机控制技术【M】. 北京:北京邮电大学出版社,2006. 【4】华成英,童诗白. 模拟电子技术基础【M】. 北京:高等教育出版社,2008 【5】张靖武,周灵彬. 单片机系统的PROTEUS设计与仿真【M】. 北京:电子工业出版社,2007【6】周航慈著.单片机应用程序设计基础.北京:电子工业出版社,1997年7月【7】朱承高.电工及电子技术手册【M】.北京:高等教育出版社,1990【8】阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989【9】廖常初.现场总线概述【J】
37、.电工技术,1999.6【10】李广弟编著.单片机应用程序设计基础.北京:北京航空航天大学出版社,1994年6月【11】王迎旭.单片机原理及及应用.北京:机械工业出版社【12】张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社【13】郭天祥.新概念51单片机C语言教程.北京:电子工业出版社【14】蔡明文 冯先成编著.单片机课程设计.北京:华中科技大学出版社【15】王晓明.电动机的单片机控制.北京航空航天大学出版社 【16】张毅刚.刘杰.MCS-51单片机原理及应用.哈尔滨:哈尔冰工业大学出版社,2008附录A附录B上位机程序:#include #include#define uc
38、har unsigned char#define uint unsigned intuchar code led_tab16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/LED控制字uchar showbuf4=0x3f,0x3f,0x3f,0x3f;/uchar serial_buf=0,time=0,step=0;sbit dt=P10;显示芯片的接口sbit clk=P11;显示芯片的接口sbit key1=P14;键盘定义sbit key2=P15;sbit key3
39、=P16;sbit key4=P17;void delay(uint j)延时函数uint i=j+1;for(;j0;j-)for(;i0;i-);void write_led_bit(uchar bitvalue)按字符串加减位数1clk=0;dt=0;if(bitvalue=1)dt=1;delay(2);clk=1;返回初值void write_led_byte(uchar bytevalue)按字节加减位数(8位)char i,temp;for(i=7;i=0;i-)temp=bytevaluei;为了让它工作的位数转成一位temp=temp&0x01;与运算,末位是几就传几writ
40、e_led_bit(temp);调用上边的函数void show()uchar i;for(i=0;i4;i+)write_led_byte(showbufi);void init()TMOD=0x22;SCON=0x58;PCON=0x00;ES=1;ET0=1;PS=1;TH0=0;TL0=0;TR0=0;TH1=0xFD;TL1=0xFD;TR1=1;EA=1; P1=0xff;可以去掉void main()init(); show();while(1) if(key1=0) delay(8);去抖动延时 if(key1=0) time+; if(time=21) time=0; sho
41、wbuf0=led_tabtime/10;取整(十位) showbuf1=led_tabtime%10;取余(个位) show(); key1=1; while(key1=0); if(key2=0) delay(8); if(key2=0) step+; if(step=21) step=0; showbuf2=led_tabstep/10; showbuf3=led_tabstep%10; show(); key2=1; while(key2=0);if(key3=0)delay(8); if(key3=0) SBUF=time;等候时间按键释放 while(TI=0); (/|seria
42、l_buf=0 可去掉) TI=0;不发送数据 serial_buf=0;/串行恢复初值 SBUF=step;/等候步数按键释放 while(TI=0); (/|serial_buf=0 可去掉) TI=0; serial_buf=0;/串行恢复初值 while(key3=0);void timer0() interrupt 1show();定时器0,/用的是定时方式一16位void serial_r() interrupt 4串行通讯if(RI)RI=0;serial_buf=SBUF;附录C下位机程序:#include #define uchar unsigned char#define uint unsigned intuchar showbuf4=0x3f,0x3f,0x3f,0x3f;/显示控制字uchar addr=0,time=0,step=0,run=0;/定义时