毕业设计基于AT89C51单片机的步进电机控制及驱动电路设计_第1页
毕业设计基于AT89C51单片机的步进电机控制及驱动电路设计_第2页
毕业设计基于AT89C51单片机的步进电机控制及驱动电路设计_第3页
毕业设计基于AT89C51单片机的步进电机控制及驱动电路设计_第4页
毕业设计基于AT89C51单片机的步进电机控制及驱动电路设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、基于at89c51单片机的步进电机控制及驱动电路设计 引 言国内控制器的研究起步较晚,运动控制技术为一门多学科交叉的技术,是一个以自动控制理论和现代控制理论为基础,包括许多不同学科的技术领域。如电机技术、电力电子技术、微电子技术、传感器技术、控制理论和微计算机技术等,运动控制技术是这些技术的有机结合体。总体上来说,国内研究取得很大的进步,但无论从控制器还是从控制软件上来看,与国外相比还是具有一定差距。 传统上由纯电路设计的步进电机控制和驱动电路一般较复杂,成本又高,而且一旦成型就难于修改,可移植性差,难以适应一些智能化要求较高的场合。单片机的普及与应用,为步进电机的应用开辟了广阔的前景,使得以

2、往用硬件电路构成的庞大复杂的控制器得以用软件实现,将会避免复杂电路的设设计,既降低了硬件成本又提高了控制的灵活性、可靠性及多功能性。本文主要介绍了步进电机的基本原理及at89c51单片机的性能特点。设计主要研究了一种基于at89c51单片机和uln2003驱动芯片的步进电机控制及驱动电路系统。该系统可分为:控制模块、驱动模块、显示模块、人机交互模块四大部分。其中采用at89c51单片机作为控制模块的核心,利用单片机编程实现了对步进电机启动停止、正转反转、加速减速等功能的基本控制。驱动模块由芯片uln2003a驱动步进电机工作;显示部分由七段led共阴数码管组成;人机互换部分由相应的按键实现相应

3、的功能。通过实际测试表明本设计系统的性能优于传统步进电机控制器,具有结构简单、可靠性高、实用性强、人机接口简单方便、性价比高等特点。目 录1设计原理及方案41.1 设计原理41.2 设计方案41.2.1 方案一51.2.2 方案二61.2.3 方案比较及选择72 设计实现82.1 主要元器件介绍82.1.1 四相六线步进电机的介绍82.1.2 at89c51单片机芯片介绍102.1.3 uln2003芯片介绍102.1.4 led七段数码管介绍112.2 步进电机控制及驱动系统电路设计实现112.2.1 硬件设计112.2.2 软件设计163 电路调试163.1 软件的仿真163.2 硬件电路

4、的调试174 数据分析及总结184.1 测试数据及说明184.2 总结19参考文献20附录211设计原理及方案1.1 设计原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机、交流电机在常规下使用。步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。

5、因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。1.2 设计方案设计要求:设计步进电机控制器硬件电路图,并使用相应的软件实现硬件和软件的仿真、调试。实现功能如下:(1)控制步进电机实现正转和反转;(2)控制步进电机转速;(3)设计步进电机的脉冲放大电路,能驱动相电压位12v、相电流位为0.4a的步进电机工作;(4)实现对步进电机圈数的预置;(5)同步显示步进电机所转圈数及速度。 根据步进电机的特点,步进电机的控制及驱动电路系统的设计可以有不同的方案。系统可以划分为:控制模块、驱动模块、显示模块、人机交互模块及电源电路五大部分,如图1步进电机控制驱动系统图所示。为实现各

6、模块的功能,分别对两种不同的设计方案分别进行论证及比较,最终确定一个最优方案。控制模块人机交互模块驱动模块显示模块电源步进电机图1 步进电机控制驱动系统图1.2.1 方案一方案一:基于fpga的步进电机控制器及驱动的电路设计。整个系统分为五个部分组成:fpga系统中央控制器、驱动电路及步进电机、光电编码器、键盘输入液晶显示部分、以及电源电路组成,如图2所示。此方案是用基于fpga的系统中央控制器产生的pwm环形脉冲信号经过驱动电路的信号分配以及功率放大传送给步进电机实现对步进电机的角位置或直线位移控制。键盘用于设定给定转速、位置。采用光电编码器对步进电机的转速、位置进行采样检测实现闭环控制。以

7、上过程中的多个变量、参数可以在液晶显示屏上得到直观地反映。键盘输入及液晶显示部分fpga系统中央控制器光电编码器驱动电路及步进电机电源电路给定转速、位置转速位置显示读取采样结果给定pwm方波信号检测转速、位置 图2 基于fpga的步进电机控制器及驱动系统图(1)控制器模块采用fpga为系统的控制器,fpga可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。 fpga采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。通过输入模块将参数输入给fpga,fpga通过程序设计控制步进电机运动,但是由于本设计对数据处理的时间

8、要求不高,fpga的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。(2)驱动模块电路结构设计需要脉冲信号、信号分配、功率放大三部分组成。控制模块产生一个脉冲序列和方向控制信号,使用脉冲分配器将脉冲序列分解形成四相正反相序,然后经功率放大驱动步进电机。使用多个功率放大器件驱动电机,通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电

9、路的制作也比较复杂,参数选择困难,且需要多级放大,同时又要考虑功率的放大。(3)显示模块采用液晶显示器。液晶显示器不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本显示等功能,并具有功耗小、体积小、质量轻等优点。但设计仅需显示步进电机的转速和所转圈数,该方案虽然显示直观,但能实现更多的显示的特点不能很好的发挥,并且器件昂贵。 (4)人机交互模块采用4乘4矩阵键盘,查询工作方式。该方案程序复杂,但在同样多的i/o口线条件下,行列式键盘能带更多的按键,查询工作方式也不用另接门电路。软件虽然较难但电路较简单。1.2.2 方案二方案二:基于at89c

10、51单片机的步进电机控制及驱动电路设计。整个系统可分为:at89c51单片机系统控制器、驱动电路、数码管显示、按键输入模块及电源电路五大部分,如图2.9所示。本设计方案采用at89c51单片机作为控制模块的核心,利用软件编程使单片机输出脉冲序列和方向控制信号,以此实现对步进电机启动停止、正反转、加减速的控制。驱动电路部分由芯片uln2003a和必要的外围电路组成,单片机产生的信号经驱动电路使其功率放大,达到电机所需的驱动电压和电流由此驱动步进电机工作。由七段led共阴数码管实现步进电机预置圈数和所转圈数的同步显示。用相应的按键实现预置圈数设置和清零的功能。at89c51单片机系统控制器按键输入

11、电源电路驱动电路数码管显示预置数控制清零脉冲序列方向控制信号步进电机功率放大信号同步显示圈数及转速图3 基于at89c51单片机的步进电机控制及驱动系统图(1)控制模块采用at89c51单片机作为系统控制的核心。利用单片机编程产生步进电机所需脉冲序列和方向控制信号。单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低,且可对其进行扩展,附带显示设备,键盘输入等设备,使用方便。还可通过软件编程实现对步进电机的位置、速度预设及显示。步进电机位置和速度实际上跟单片机产生脉冲的个数和脉冲频率是一一对应关系,而方向由导电顺序决定。并且,

12、由于单片机芯片引脚少,软硬件连接简便灵活,硬件容易实现。(2)驱动模块直接采用uln2003芯片进行功率放大。它的内部结构是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。uln2003的输出端允许通过ic电流200ma,饱和压降vce约1v左右,耐压bvceo约为36v。输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(ssr)等外接控制器件,也可直接驱动步进电机。uln2003芯片自身功耗小、 驱动能力强、可靠稳定、体积小、使用方便、价格不高、50v/0.5a以下的电路均可使用。(3)显示模块采用led七

13、段共阴数码管进行动态显示。at89c51单片机输出的脉冲序列经过上拉电阻驱动数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、显示信息清晰、器件价格低廉,但占用单片机i/o口较多。(4)人机交互模块采用独立式按键。总共设置了15个按键,其中四个按键分别执行对步进电机的启动/停止、正转/反转、加速、减速四种控制功能。四个按键不可同时按下,当其中一个按下时控制电机的某一种状态。按键09完成预置步进电机所转圈数的功能,剩余一个按键实现清零的功能。采用独立式按键,中断工作方式。该方案原理易懂,程序简单,但占用口线较多,软件较容易,硬件电路较繁琐。1.2.3 方案比较及选择方案比较:(1)控制

14、模块:方案一:是以fpga为系统的控制器。本设计对数据处理的时间要求不高,fpga的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案二:采用at89c51单片机作为系统控制的核心,软件编程灵活、自由度大、功耗低、体积小、成本低,芯片引脚少,软硬件连接简便灵活,硬件容易实现。(2)驱动模块:方案一驱动电路结构设计需要脉冲信号、信号分配、功率放大三部分组成。由于使用的是四相的步进电机,就需要对四路信号分别进行放大,放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂

15、,参数选择困难,且需要多级放大,同时又要考虑功率的放大。方案二的驱动模块直接采用uln2003芯片进行功率放大。uln2003芯片自身功耗小、 驱动能力强、可靠稳定、体积小、 使用方便。(3)显示模块:由于设计仅需同步显示步进电机的转速和圈数,方案一采用液晶显示器,虽然显示直观,但能实现更多的显示的特点不能很好的发挥,并且器件昂贵。方案二:采用数码管进行动态显示,硬件电路简单、编程简便、显示信息清晰、器件价格低廉。(4)人机交互模块:方案一采用4乘4矩阵键盘,查询工作方式,程序复杂,软件虽然较难但电路较简单,价格较贵。方案二采用独立式按键,中断工作方式,原理易懂、程序简单、软件较容易、硬件电路

16、较繁琐、价格低廉。方案选择:综上所述,通过对两种方案进行分析比较,虽然方案一功能强大,但软件编程复杂、硬件实现较困难、器件价格较高;方案二不尽能实现设计任务要求的功能,而且软件编程灵活、自由度大、硬件实现较容易、元器件性价比较高,因而综合考虑采用方案二。2 设计实现2.1 主要元器件介绍2.1.1 四相六线步进电机的介绍步进电机工作原理:该设计中所用到的步进电机为四相六线步进电机,它是采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图3.1是该四相步进电机工作原理示意图。图4 四相步进电机步进示意图开始时,开关sb接通电源,sa、sc、sd断开,b相磁

17、极和转子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、b、c、d四相绕组轮流供电,则转子会沿着a、b、c、d方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保

18、持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图3.2中a、b、c所示。图5 步进电机工作时序波形本设计中步进电机的参数:模组配备的步进电机为25by2406电机,工作方式为双极性四相。电机是种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率实现步进电机的调速。 市面上一般的步进电机内部结构图如图3.3所示。图6 步进电机的接线本设计采用的步进电机是25by2406,因生产厂家不同,其接线也有所不同。

19、电机共引出四根线,其余两根线是公共端,经测量后可得到其正确的接线顺序,表3.1给出了电机所对应的相序。表1 步进电机控制线控制线颜色黑橙棕黄控制线名称abcd其中,c与d是电机内部一组线圈的两个抽头, a与b是另一组线圈的两个抽头。只需以一定的顺序控制两组线圈中的电流方向即可使步进电机按指定方向转动。25by2406的主要技术参数如下表3.2所示。表2 步进电机25byj1201技术参数电压相电阻步距角启动转矩(g.cm)启动频率(p.p.s)定位转矩(g.cm)512v2015120200482.1.2 at89c51单片机芯片介绍本设计采用at89c51单片机作为控制系统的核心。at89c

20、51单片机组成结构中包含运算器、控制器、片内存储器、4个i/o口、串行口、定时器/计数器、中断系统、振荡器等功能部件。采用hmos制造工艺的mcs-51单片机都采用40管脚双列直插式封装,除采用40脚双列式直插式封装外,还有用方形的封装方式。40管脚双列直插式封装管脚图如3.4图所示。图7 mcs-51系列单片机管脚图2.1.3 uln2003芯片介绍uln2003 是高耐压、大电流、内部由七个硅npn 达林顿管组成的驱动芯片,如图3.5所示。经常在以下电路中使用,作为:显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。图8 uln2003芯片图2.1.4 led七

21、段数码管介绍本设计采用六位led共阴数码显示管作为显示部分,即将每个数码管的ag及dp端串联在一起,公共端作为位选信号输入端。如图3.8所示。图9 六位led共阴数码显示管图2.2 步进电机控制及驱动系统电路设计实现2.2.1 硬件设计根据之前确定方案及各元器件的功能原理步进电机控制及驱动系统的详细电路设计如下:(1)控制模块采用atmel公司的at89c51单片机作为系统控制的核心,如图3.9所示。图10 控制模块硬件电路图脉冲信号由单片机产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。信号分配实际上就是按照某一种控制方式(根据需要进行选定)所规定的顺序发送脉冲序

22、列,达到控制步进电机方向的目的。根据要求,所设计的步进电机八拍通电顺序为aabbbcccdddaa。步进电机的方向控制方法是:用单片机输出接口的每一位控制一根相绕组。本设计中,用p3.0,p3.1,p3.2,p3.3分别接至步进电机的a,b,c,d四相绕组。(2)驱动模块直接采用uln2003芯片,如图3.10所示。由单片机产生的脉冲序列和方向控制信号从p3.0p3.3口输出,直接送入uln2003芯片进行功率放大,达到步进电机所需的驱动电流和电压,以此驱动步进电机工作。图11 驱动模块硬件电路图(3)显示模块采用六位led七段共阴数码管进行动态显示,如图3.11所示。由at89c51单片机产

23、生的段选信号从p0输出,经过1k左右的上拉排阻驱动数码管显示,位选信号从p2口输出直接送数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、显示信息清晰。图12 显示模块硬件电路图 (4)人机交互模块采用独立式按键,中断工作方式。总共设置了15个按键,如图3.12所示,其中四个控制按键分别执行对步进电机的启动/停止、正转/反转、加速、减速四种控制功能,由单片机的p3.4p3.7口输入。四个按键不可同时按下,当其中一个按下时控制电机的某一种状态。按键09完成预置步进电机所转圈数的功能,剩余一个按键实现清零的功能,由单片机的p1口输入。采用独立式按键,原理易懂,软件编序简单。图13 人机交

24、互模块硬件电路图(5)步进电机部分,该设计中所用到的步进电机为四相六线步进电机,图14 步进电机部分硬件电路图2.2.2 软件设计综合以上选取的方案,总的流程如图3.15所示。整个程序采用c 语言编程,使程序简单易读,在整个过程中采用模块化调试,可靠性好。详细的源程序见附录。图15 系统程序流程图3 电路调试以上为本作品的设计过程和结果的详细介绍,但是,从本质上来讲,都是纯理论的设计和分析。为了验证作品的可行性,我还做了硬件电路,来对设计作品中设计方案的主要功能及其理论进行实际验证。同时,在软硬件电路的调试过程,也可以发现本设计作品中有没有一些不足和错误的地方。为了能检验本毕业设计的可行性,并

25、将其质量推向一个更高的层次,我们认真地设计了硬件电路,也进行了仔细的功能调试。3.1 软件的仿真系统电路软件仿真的步骤如下:(1)打开protuse仿真软件;(2)在软件的元器件库中选择所需的器件;(3)按照硬件电路设计方案连线;(4)加载编译好的hex文件;(5)运行、调试;(6)如有错误或与设计预期不相符,则继续进行步骤35,进行调试,至到调试成功。系统仿真如图4.1所示。图16系统仿真软件图3.2 硬件电路的调试当硬件设计从布线到安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。(1)排除逻辑故障(2)排除电源故障(3)排除元器件失效(4)脱机调试(5)接入单片机调试硬件电路调

26、试如图4.2所示。图17硬件电路调试图4 数据分析及总结4.1 测试数据及说明圈数测试:在步进电机的机壳上做一个标记,从该标记处让步进电机开始运行,对步进电机的运行圈数进行记数,记数结果与预定值及显示值进行比较。预设时,第一位置0,不分正反转。因为设计时,步进电机的步距角以15度为准,所以需24步为一圈,数码管只显示步进电机所转圈数。测试时,为区分正反转,设定首位为零为正转,首位为负号的为反转。正转时测试数据如表5.1所示。表3正转时测试数据测试次数123456预设值001125000101002128000087004012000023测试值0112500101021280008704012

27、00023反转时测试数据如表5.2所示。表4反转时测试数据如表测试次数123456预设值001125000101002128000087004012000023测试值-01125-00101-02128-00087-04012-00023测试结果显示,电机在正常运行时电机没有圈数误差,电机圈数显示和实际计数结果吻合。从测试数据可看出,当步进电机运转到预设值时,电机停止运转,达到了对电机运转的控制。步距角测试:随机的抽取电机转动一定的角度,在低频工作状态下记录电机的转动步数,用总角度除以转动步数,得出步距角。为了便于测量,选取90、180、270、360度,各测三次读出步距角求平均值。测试结果如

28、表5.3所示。表5步距角结果测试表总角度90180270360步 数6121824根据测试得到的结果及公式:总角度/步数=步距角,得出步距角为15度,与电机实际参数相符,电机运行的结果正常。显示圈数的测试:把显示值和计数结果进行比较。随机的采样五次比较,比较结果显示,显示的圈数等于计数结果。数码管所显示的结果为可以信赖的结果。电机正反转、加减速测试:通过对步进电机正反转的切换及加减速控制,观察电机的转动状态及数码管同步显示,电机的正反转、加减速运行状态正常。4.2 总结本系统主要研究了一种基于单片机的步进电机控制及驱动的电路设计。设计采用at89c51单片机作为控制模块的核心,利用单片机编程实

29、现了对步进电机的控制。由单片机产生的信号经uln2003a芯片进行功率放大,驱动步进电机工作,同时由数码管同步显示预置数和所转圈数,由相应的按键实现预置圈数、控制、清零功能。系统能够实现:(1) 预设步进电机所转圈数;(2) 启动停止、正转反转、加速减速等功能的基本控制;(3) 同步显示圈数;(4) 电机转至预置圈数自动停机;(5) 步进电机处于停止状态时可以对预置数进行清零操作。在系统设计过程中,力求硬件电路简单,充分发挥软件部分的优势,编程灵活方便来满足系统的要求。通过实际测试表明本设计系统的性能优于传统步进电机控制器,具有结构简单、可靠性高、实用性强、人机接口简单方便、性价比高等特点。本

30、设计作品,就是单片机在智能化仪表方面的具体应用,充分体现了单片机的优越之处。本论文,从硬件设计到软件设计,根据硬件的工作原理及设计原理,对设计的设计方案做了仔细的分析和比较,最后确定下来完整可行的解决方案。为了验证设计出的系统的功能可靠性和方案的可行性,我们还制作了硬件电路。硬件电路是为了验证方案原理而设计的,在调试过程中,也得到了令人满意的效果,很好的验证了设计方案的可行性。参考文献1 刘宝廷.步进电动机及其驱动控制系统m.哈尔滨:哈尔滨工业大学出版社,1997,1200.2 王晓明. 电动机的单片机控制m. 北京:北京航空航天大学出版社,2002,50150.3 王福瑞 等.单片机微机测控

31、系统设计大全m.北京:北京航空航天大学出版社,1998,6785.4 胡寿松. 自动控制原理m. 北京: 国防工业出版社,2000,4388.5 杨宁 胡学军.单片机与控制技术m.北京:北京航空航天大学出版社,2005,22175.6 陈隆昌,等.控制电机( 第三版)m.西安:西安电子科技大学出版社,2000,3565.7 杨宁 胡学军.单片机与控制技术m.北京:北京航空航天大学出版社,2005,2392.8 马忠梅,等.单片机的c语言应用程序设计(第三版)m北京:北京航空航天大学出版社,2003,3472.9 韩全力单片机控制技术及应用m北京:电子工业出版社,2004,2167.10谭建成新

32、编电机控制专用集成电路与应用m北京:机械工业出版社2005,1597.11donald e thomas, philip r moorby1the verilog hardware description language1netherlands: kluweracademic, 1996.12stein david, chirikjian gregory s.,“experiments in the commutation and motion planning of a spherical stepper motor.”proc.asme int conf.detc.pp.1-7,sept

33、ember 2000.附录附录a电路总图如下电路总图附录b 设计实物图附录c源程序如下:#include #define uchar unsigned char/uchar code rst=0xe4,0xc0,0xe0,0xc0,0xe0,0x32; / 复位代码 char seg_0=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, /共阴极数码管 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;char seg_point=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78, /带小数点 0x00

34、,0x10,0x08,0x03,0x46,0x21,0x06,0x0e;int a=0, b=0,c=0x01;unsigned int t,key,x=0,y,z=0,m=0,n;char ge,shi,bai,qian,wan;char age,ashi,abai,aqian,awan;uchar readkey; uchar x_temp,y_temp;/*延时程序*/void delay(char i)char j=0,n=0;for(;ji;j+)for(;n100;n+) /0.5ms延时/*电机转动程序*/void time0() interrupt 1 /计数器t0电机运转 t

35、h0=(65536-t)/256; tl0=(65536-t)%256; if(b) /判断方向if(z/4x|x=0) /判断步数是否与设置相符,或者没有设置步数,则继续运行 if(a) /是否停止 if(c&0x08) c=0x01; z+;elsec=1;p3=c; else z=0; else if(z/4=x) a=0; / 当电机达到预置数停止时 置a=0; else if(z/4=1;p3=c;else z=0; else if(z/4=x) a=0; /同上 /*数码管显示程序*/void time1() interrupt 3 /计数器t1 数码显示 th1=0xd8; tl

36、1=0xef; if(a) p2=0xfe;/个位选通 p0=seg_0ge;/delay(5);/p2=0xfd;/十位 p0=seg_0shi;delay(5); p2=0xfb;/ 百位 p0=seg_0bai;delay(5);/ p2=0xf7;/千位 p0=seg_0qian;delay(5);/p2=0xef;/万位 p0=seg_0wan;delay(5);if(b=0)/方向显示 p2=0xdf; p0=0x40;else /显示键盘 p2=0xfe; p0=seg_0age; delay(5); p2=0xfd; p0=seg_0ashi; delay(5); p2=0xf

37、b; p0=seg_0abai; delay(5); p2=0xf7; p0=seg_0aqian; delay(5); p2=0xef; p0=seg_0awan; delay(5); /*键盘扫描程序*/void key_scan(void) p1=0x0f;x_temp=p1&0x0f;if(x_temp!=0x0f) p1=0xf0;y_temp=p1&0xf0;readkey=x_temp|y_temp;readkey=readkey;x+;switch(readkey) case 0x11:key=0; break;case 0x21:key=1; break;case 0x41:

38、key=2;break;case 0x81:key=3; break;case 0x12:key=4;break;case 0x22:key=5;break;case 0x42:key=6; break;case 0x82:key=7; break;case 0x14:key=8; break;case 0x24:key=9; break;case 0x44:key=10;break;case 0x84:key=11;break;case 0x18:key=12;break;case 0x28:key=13;break;case 0x48:key=14;break;case 0x88:key=

39、15;break;default: key=16;break; /* 主程序*/main()int i;int j; t=30000;th0=(65536-t)/256;tl0=(65536-t)%256;tmod=0x11;tr0=0x01;tf0=0x00;pt0=0;et0=0x01;th1=0xd8;tl1=0xef;tr1=0x01;tf1=0x00;pt1=1;et1=0x01;ea=0x01;p3=0x01;p2=0xfe;key=0;while(1)/圈数计算j=z/4;i=j;ge=i%10;i=j/10;shi=i%10;i=j/100;bai=i%10;i=j/1000;

40、qian=i%10;i=j/10000;wan=i%10;/键盘显示值计算p1=0x0f;if(p1!=0x0f&a=0)/电机未运转则键盘有效 if(p1!=0x0f&a=0) key_scan(); if(key=15) /清零 age=0; ashi=0; abai=0; aqian=0; awan=0; x=0; m=0; / (*(void (*)()(rst)(); / 将rst数组当函数调用 产生复位效果(已经屏蔽) else if(m6553) /键盘设定值要小于65535 m=m*10+key;age=m%10;n=m/10;ashi=n%10;n=m/100;abai=n%

41、10;n=m/1000;aqian=n%10;n=m/10000;awan=n%10;x=m; while(p1!=0xf0);while(p3_7) /开关while(p3_7); a=a;while(p3_6) /方向while(p3_6); b=b;while(p3_5) /减速 while(p3_5);/ t值最大为65535if(t=20000) t=t-10000; g an employment tribunal claiemployment tribunals sort out disagreements between employers and employees.you

42、may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.for more information about dismissal and unfair dismissal, seedismissal.you can make

43、a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. however, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.remember that in most cases you must make an

44、application to an employment tribunal within three months of the date when the event you are complaining about happened. if your application is received after this time limit, the tribunal will not usually accept i.if you are worried about how the time limits apply to you, take advice from one of th

45、e organisations listed underfurther help.employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.most people find making a claim to an employment tribunal challenging. if you are thinking about makin

46、g a claim to an employment tribunal, you should get help straight away from one of the organisations listed underfurther help.if you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. this

47、is known as adamages-based agreement. in england and wales, your solicitor cant charge you more than 35% of your compensation if you win the case.if you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. it might be best to

48、 get advice from an experienced adviser, for example, at a citizens advice bureau. to find your nearest cab, including those that give advice by e-mail, click onnearest cab.for more information about making a claim to an employment tribunal, seeemployment tribunals.the (lack of) air up there watch m

49、cayman islands-based webb, the head of fifas anti-racism taskforce, is in london for the football associations 150th anniversary celebrations and will attend citys premier league match at chelsea on sunday.i am going to be at the match tomorrow and i have asked to meet yaya toure, he told bbc sport.

50、for me its about how he felt and i would like to speak to him first to find out what his experience was.uefa hasopened disciplinary proceedings against cskafor the racist behaviour of their fans duringcitys 2-1 win.michel platini, president of european footballs governing body, has also ordered an i

51、mmediate investigation into the referees actions.cska said they were surprised and disappointed by toures complaint. in a statement the russian side added: we found no racist insults from fans of cska.age has reached the end of the beginning of a word. may be guilty in his seems to passing a lot of

52、different life became the appearance of the same day; may be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. always feel oneself should go to do something, or write something. twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到

温馨提示

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

评论

0/150

提交评论