毕业设计(论文)-基于单片机的步进电机控制系统设计.doc

上传人:哈尼dd 文档编号:3283921 上传时间:2019-08-08 格式:DOC 页数:57 大小:1.61MB
返回 下载 相关 举报
毕业设计(论文)-基于单片机的步进电机控制系统设计.doc_第1页
第1页 / 共57页
毕业设计(论文)-基于单片机的步进电机控制系统设计.doc_第2页
第2页 / 共57页
毕业设计(论文)-基于单片机的步进电机控制系统设计.doc_第3页
第3页 / 共57页
毕业设计(论文)-基于单片机的步进电机控制系统设计.doc_第4页
第4页 / 共57页
毕业设计(论文)-基于单片机的步进电机控制系统设计.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《毕业设计(论文)-基于单片机的步进电机控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机的步进电机控制系统设计.doc(57页珍藏版)》请在三一文库上搜索。

1、南京邮电大学毕 业 设 计(论 文)题 目: 基于单片机的步进电机控制系统设计 专 业: 电气信息 学生姓名: 班级学号: B06050927 指导教师: 指导单位: 自动化学院 日期:2010年 3月15日至2010年 6月 2日摘 要随着自动控制系统的发展和对高精度控制的要求,步进电机在自动化控制中扮演着越来越重要的角色,区别于普通的直流电机和交流电机,步进电机可以对旋转角度和转动速度进行高精度控制。步进电机作为控制执行元件,是机电一体化的关键组成之一, 广泛应用在各种自动化控制系统和精密机械等领域。凡需要对转角和速度进行精确控制的情况下,使用步进电机最为理想。随着集成电路和计算机技术的发

2、展,步进电机的需求量与日俱增,在各个国民经济领域都有广泛应用。原来的步进电机控制系统采用分立元件或者集成电路组成的控制回路,不仅调试安装复杂,要消耗大量元器件,而且定型之后,要改变控制系统方案就要重新设计控制电路。计算机则通过软件来控制步进电机,更好地挖掘出电动机的潜力。因此,用计算机控制步进电机已经成为了一种必然的趋势,不仅方便调试,而且功能更加灵活。本课题主要涉及步进电机的原理,驱动电路设计,控制系统设计。通过对步进电机的控制系统设计,可以充分了解步进电机的运行原理及控制方法。详细介绍步进电机的原理,几种驱动方案的区别和优缺点,控制流程,控制方案选择,步进电机的选择等,代码的实现等。可以在

3、不改变外部器件的前提下,通过键盘和改变程序参数来实现各种各样的功能,具有很大的灵活性。关键词:步进电机、控制流程、驱动ABSTRACTWith the development of automatic control systems and the requirements of high-precision control,stepper motor control in automation plays an increasingly important role,different from the common DC and AC motor,stepper motor can rot

4、ate the angle and rotation speed of high-precision control. As the implementation of stepper motor control components, stepper motor is a key component of mechanical and electrical integration, widely used in a variety of automatic control systems, and precision machinery and other fields. Where the

5、 need for precise control of angle and speed of the case, stepper motor is of the best. With the development of integrated circuits and computer technology, there is increasing demand for stepper motor, and are widely used in various economic fields . The original stepper motor control system compos

6、ed of discrete components or integrated circuit control loop.It not only increases the debug installation complexity, spends a lot of components, and once after setting, to change the control scheme had to be re-designed control circuit. Computer can be used to control stepper motors, can better dig

7、 out the motors potential. Thus, computer-controlled stepper motor has become an inevitable trend, not only to facilitate debugging, and functions more flexible. These issue mainly relate to the principle of stepper motor, drive circuit design, control system design. By stepping motor control system

8、 design, we can fully understand the principle and operation of stepper motor control. Details of the stepper motor principle, several advantages and disadvantages of the difference between driving programs, control flow, control plan selection, selection of the stepper motor, the code realization.

9、Not to change the premise of the external device but through the keyboard and change the program parameters to achieve a variety of functions, which has great flexibility.Keywords : Stepper motor, control flow, drive circuit 目 录摘 要IIABSTRACTIII第一章 绪论11.1步进电机的发展概况11.2步进电机的原理及控制11.2.1步进电机的原理11.2.2步进电机

10、的特点61.2.3步进电机的控制7第二章 步进电机的加减速控制82.步进电机加速方案的提出82.2 线性加速82.3 指数型加速102.4 S型加速112.5 步进电机失步的原因11第三章 控制系统设计123.1 控制流程简介123.2 键盘扫描143.2.1 线反转法163.2.2 行扫描法163.2.3 循环扫描173.2.4 中断法173.2.5 定时器扫描法183.2.6 键盘的消抖193.2.7 几种键盘扫描法的比较223.3 脉冲的产生方法233.3.1 定时器产生脉冲233.3.2 函数延时法24第四章 步进电机的驱动方式244.1步进电机的运行方式介绍244.2 不同运行方式的

11、优缺点264.3如何选择合适的步进电机27第五章 硬件电路测试与实验结果285.1基本功能的实现情况28结束语28参考文献30附录31南京邮电大学2010届本科毕业生设计(论文)第一章 绪论步进电机是将脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、转动感的角度、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机在不超载情况下只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单1.1步进电机的发展概况步进电机最早是在1920年代由英国人发

12、明。50年代后期,晶体管的发明也促进了在步进电机的发展使其对于数字化的精确控制变得更为容易。此后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求效率高、自动化、省人力的机械中,我们很容易发现步进电机的踪迹,尤其以位置控制、重视速度、需要精确操作各项指令动作的灵活控制性场合步进电机最为常见。1.2步进电机的原理及控制1.2.1步进电机的原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,一般情况下并不需要闭环控制。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,给电机加一个脉冲信号,

13、电机则转过一个步距角。这一线性关系的存在,以及步进电机只有周期性的误差而无累积误差的特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单,同时电路无需闭环反馈,电路简单。下面简要介绍一下步进电机的构造,图1和图2为四相步进电机的内部构造。图 1 步进电机内部构造开始时,开关SB接通,SA、SC、SD断开,B相和0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当SC接通,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而2、5号齿就和A、D相绕组磁极产生错齿

14、, 0、3号齿和A、B相绕组产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。如果按照相反的方向来发送脉冲,则步进电机的转动方向正好相反。单四拍、双四拍和八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:图2.步进电机工作时序波形图力矩: 电机一旦通电,在定转子间将产生磁场(磁通量)当转子与定子错开一定角度产生力F与(d/d)成正比其磁通量=Br*SBr为磁密,S为导磁面积 F与L*D*Br成正比 L为铁芯有效长度,D为转子直径 Br=NI/RNI为励磁绕阻安匝数(电流乘匝数)R为磁阻。力矩=力*半径力矩与电机有效体积*安匝数*磁密 成正比(只考

15、虑线性状态)因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。这次选用的的步进电机的牵入转矩40mN,自定位转矩34mN。步进电机的分类:步进电机依其构造上的差异可分为三大类:可变磁阻式(VR型):转子以软铁加工成齿状,当定子线圈不加激磁电压时,保持转矩为零,故其转子惯性小、响应性佳,但其容许负荷惯性并不大。其步进角通常为15。无保持转矩,所以定位性不好,应用场合不大。永久磁铁式(PM型):转子由永久磁铁构成,其磁化方向为辐向磁化,无激磁时有保持转矩。依转子材质区分,其步进角有45、90及7.5、11.25、15、18等几种。混和式(HB型):转子由轴向磁化的磁

16、铁制成,磁极做成复极的形式,其乃兼采可变磁阻式步进电机及永久磁铁式步进电机的优点,精确度高、转矩大、步进角度小。目前市场上所使用的工业用步进电机,以混和式最为普遍步进电机动态指标及术语:1、步距角精度: 步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。2、失步: 电机运转时运转的步数,不等于理论上的步数。称之为失步。3、失调角: 转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。4、最大空载起动频率: 电机在某种驱动形式、电压及额定电流

17、下,在不加负载的情况下,能够直接起动的最大频率。5、最大空载的运行频率: 电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。6、运行矩频特性: 电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。如图3所示:图 2 步进电机力矩频率特性其它特性还有惯频特性、起动频率特性等。 电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩与电机运行时的平均电流有关系,平均电流越大,电机输出力矩越大,则电机的频率特性曲线越硬。如图4所示:图 4步进电机力矩频率特性其中,曲线3电流最大、或电压最高;曲线1电

18、流最小、或电压最低,曲线与负载的交点为负载的最大速度点。要使平均电流大,尽可能提高驱动电压,使采用小电感大电流的电机。7、电机的共振点:步进电机均有固定的共振区域,二、四相感应子式步进电机的共振区一般在180-250pps之间(步距角1.8度)或在400pps左右(步距角为0.9度),电机驱动电压越高,电机电流越大,负载越轻,电机体积越小,则共振区向上偏移,反之亦然,为使电机输出电矩大,不失步和整个系统的噪音降低,一般工作点均应偏移共振区较多。8、电机正反转控制: 对于不同的步进电机当需要控制正反转的时候发送的脉冲也是不同的,对于这次选的步进电机,正转的脉冲次序为0x01,0x02,0x04,

19、0x08,当需要反转的时候,发送的脉冲次序为0x08,0x04,0x02,0x01。当需要反转次序的时候,只需要改变脉冲即可1.2.2步进电机的特点 步进电机由于其特殊的构造使其相对于普通电机有一些优越的特点,简要介绍如下:高精度的定位:步进电机最大特征即是能够简单的做到高精度的定位控制。以5相步进电机为例:其分辨率为0.72(全步级)/0.36(半步级),是非常细小的;停止定位精度误差皆在0.05以内,因为步进电机的特点,无累积误差,故可达到很高的控制精度。位置及速度控制:步进电机在输入脉冲信号时,可以依输入的脉冲数做固定角度的回转进而得到灵活的位置控制,并可得到与该脉冲信号频率成比例的回转

20、速度。开回路控制、不必依赖传感器定位:步进电机的控制系统构造简单,无累积误差,不需要速度感应器及位置传感器,无需复杂的反馈电路,就能以输入的脉波做速度及位置的控制。也因其属开回路控制,故最适合于短距离、高频度、高精度之定位控制的场合下使用。具定位保持力:步进电机在停止状态下,虽然没有脉冲输入,仍具有激磁保持力,故即使不依靠机械式的剎车,也能做到停止位置的保持,所以定位很精确。动作灵敏:步进电机因为具有优异的加速性能,选择不同的加速方案,可以可做到瞬时停止、起动、正反转和快速、频繁的定位动作。高信赖性:使用步进电机装置与使用离合器、减速机及极限开关等其它装置相较,步进电机的故障及误动作少,所以在

21、检查及保养时也较简单容易。小型、高功率:步进电机扭力大、体积小,可以方便的安装和调试,同时能够提供很高的转矩。步进电机的速度转矩特性速度-转矩特性曲线取决于电机和驱动器,其中驱动器占主要的角色,一个好的驱动器可以提供很高的驱动电流和很短相应时间,因此选择一个合适的驱动器尤为重要。1.2.3步进电机的控制步进电机的控制是本次设计的一个重要组成部分,对步进电机的控制主要是对脉冲信号的控制。脉冲的产生有两种方法,一种是用专用的驱动芯片来产生脉冲信号。这些芯片称为脉冲分配器。这些芯片已经高度集成化,不仅可以提供步进电机工作需要的工作电流,而且还可以根据指令来选择不同的驱动方案。例如广泛使用的TA843

22、5H芯片,这是单片正弦细分二相步进电机驱动专业芯片,输出电流可达1.5A,峰值2.5A。工作电压宽10V-40V,具有整步,半步,1/4细分,1/8细分,运行方式可供选择,采用脉宽调制式斩波驱动方式,具有复位和使能引脚,可选择使用单时钟输入或双时钟输入。外部信号只需要提供一个时钟脉冲信号来控制速度,和一个方向信号来控制方向,不需要额外的脉冲分配电路。采用TA8435H 构成步进电机驱动器, 利用此芯片输出步进脉冲的设计方案具有占用CPU时间 短、编程容易、结构简单、成本低、可靠性好、抗干扰 能力强等优点, 因此可在控制和测量领域中得到广 泛应用。但是其成本很高,只适合工业要求较为严格的场所。另

23、一种控制方法是用单片机提供控制脉冲,提供给驱动芯片,由驱动芯片来驱动电机。这里的驱动电路只是用来提供单片机工作所需要的电流,并没有脉冲分配功能,其作用相当于一个继电器。常用的驱动芯片为ULN2003,又称为达林顿管,为双列16脚,最大驱动电压为50V,最大驱动电流500mA,适用于TTL和CMOS电路。由七个硅NPN 达林顿管组成。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压

24、,输出还可以在高负载电流并行运行。在有单片机驱动时,只需要一个2K的上拉电阻。ULN2003是高电压,大电流达林顿晶体管阵列系列产品,具有电流增益高,工作电压高,温度范围宽,带负载能力强扥特点,适用于各类要求告诉大功率驱动系统。在本次实验中采用的便是这个方案,单片机的口接ULN2003,用来驱动步进电机,脉冲由软件产生,P20P23口接ULN2003,然后来驱动步进电机。 第二章 步进电机的加减速控制2.步进电机加速方案的提出从步进电机的矩频特性可知,步进电机的输出转矩随着转速的不断上升而下降,启动速度越高,启动转矩就越小,负载的能力越差,可能造成启动失步,而在停止时又会发生过冲,造成定位不准

25、。为了使步进电机迅速的达到所要求的速度,并且而又不过冲或失步,其关键在于使加速过程中加速度所要求的转矩既能充分利用步进电机在各个运行频率下所提供的转矩,又不允许超过这个转矩,否则造成失步。因此,步进电机的运行一般要经过加速、匀速、减速三个阶段,要求加减速过程时间尽量的短,恒速时间尽量长。尤其是在要求响应时间比较小的过程中,从开始到终点运行的时间要求最短,这就必须要求缩小加速、减速时间,而使恒速运行时的速度最高。2.2 线性加速 线性加-减速控制法的快速性好,且较易获得解析解,对MCU的占用率小,并可将其进一步离散化,从而便于计算机实现。而其他两种方法难以进行直接离散化,计算机实现较为困难。因此

26、 ,本次设计统选择采用线性加-减速控制技术来达到电机的高速转动。电机的转速可由公式 (1)给出。 V =V0+ at ( 1)其中,V为电机转速;V0为电机启动转速;a为电机加速度;t为电机加速时间。若Ti为相邻两个进给脉冲之间的时间间隔(单位: s) ,Vi为进给一步后的末速度(单位:步/秒)。a为进给一步的加速度(单位:步/秒2 )。则有: (2)由此可计算出相邻两个进给脉冲间的时间间隔为: ( 3)其中, T0可取电机的启动频率,在系统中取250Hz。减速过程为其逆过程。线性加减速控制快速性较好,且算法较为简单,容易实现,缺点是加速时间较长,电机通过其谐振点加速可能会有困难。在步进电机不

27、失步的前提下,驱动脉冲频率变化的加速度和步进电机转子的角加速度成正比。在步进电机的转矩随脉冲频率的上升保持恒定时,直线规律的升降速才是理想的升降速曲线,但是实际上步进电机的转矩随转速的的不断上升而下降,所以其加速曲线线就不是理想的升降速曲线。因此,按直线规律升降速来计算加速 这种方法虽然实现简单,但是它不能保证在升降速的过程中步进电机的输出力矩与转子的角加速度相适应,不能让电机的加速性能最大发挥。2.3 指数型加速这种方法是从步进电机的矩频特性出发,根据转矩随频率的变化规律推导出来的。它符合步进电机加减速过程的运动规律,能充分利用步进电机的有效转矩,快速响应性能较好,升降时间短。指数升降控制具

28、有较强的跟踪能力,其缺点是当速度变化较大时平衡性较差,一般适用于跟踪响应要求较高的切削加工中。本次单片机使用使用分频器的方式来控制步进电机的速度,升降速控制实际上是不断改变分频器初载值的大小。指数曲线由于无法通过程序编制来实现,可以用阶梯曲线来逼近升速曲线,不一定每步都计算装载值。图 5 步进电机理想升速和实际升速曲线如图5所示,纵坐标为频率,单位是步/秒,其实反映了转速的高低。横坐标为时间,各段时间内走过的步数用N来表示,步数其实反映了行程。图中标出理想升速曲线和实际升速曲线。程序执行过程中,对每档速度都要计算在这档速度应走的步数,然后以递减方式检查,即每走一步,每档步数减1。当减至零时,表

29、示该档速度应走的步数己走完,应进入下一档速度。一直循环到给出的速度大于或等于给定的速度为止。减速过程与升速过程刚好相反。2.4 S型加速S型加减速曲线,其加减速过程比较复杂,分为7个阶段,加加速运动阶段、加速运动阶段、减加速运动阶段、匀速运动阶段、加减速运动阶段、减速运动阶段、减减速运动阶段。其主要适用于对加减速平稳性要求较高的工业环境里。 图 6 S型加速曲线图6为S型加速曲线,实际中要是步进电机按照*8级进行分段,根据设定的加速的总时间,求出每级运行频率的运运行时间,就能确定需要的脉冲数,可以将其写入到一个表中,待给定时器初始化的时候在写入到定时值。2.5 步进电机失步的原因步进电机的失步

30、有两种原因。第一种原因是转子的加速度慢于步进电机的旋转磁场的加速度,也即是低于换相速度而产生的。这时是因为输人电机的电能不足。定子磁场产生的同步力矩无法驱动转子跟随磁场换相的旋转速度,从而引起失步。而且凡是大于此时频率的工作频率都必将失步。这种失步说明了步进电机的转动力矩不够。可以通过减少负载,或者提高绕组中的激磁电流,就有可能克服步进电机的失步。 第二种原因是转子的平均速度比磁场换相的平均旋转速度快。由于定子通电激磁的时间较长,大于转子步进一步所需的时间。 则转子在步进过程中获得了额外的能量, 从而产生前冲和后冲的摆动振荡。当振荡足够严重时就导致失步。所以, 在步进电机的起始时刻,加速度要小

31、防止失步。然后逐渐加速至高速运行, 可避免失步。第三章 控制系统设计3.1 控制流程简介下面简要介绍一下这次步进电机控制系统的控制流程:控制流程如下:刚上电的时候对单片机进行初始化,主要完成开定时中断,对定时器1的初始化,设定键盘扫描的间隔时间为20ms,同时完成对全局静态变量的定义与初始化。初始化介绍之后定时器1开始运行,周期扫描键盘,如果有键盘按下则进入键值处理程序keydeal(),然后处理每一次按键。键盘的布局为4*4的16键键盘,前10个键表示09共10个数字,其余的键功能如下图所示:0124456789A 启动B 停止C 设置D 确定E 换向F 模式转换启动按钮是用来启动定时器0,

32、以产生产生定时脉冲,才控制步进电机的运行。停止按钮式用来关闭定时器0,当需要停止时,按动此按钮便可停止步进电机的运行。设置按钮式用来设置步进电机的运行速度或者旋转角度的,其工作模式又F键来控制,默认的工作模式是匀速运转,当按下F键是,步进电机便进入定位模式,可以按照设定的角度来工作。当需要换向的时候,在设置速度之前,按下换向按钮便可以。步进电机的脉冲函数是由paulse(unchar d)函数提供的,入口函数是方向位,用它来控制脉冲的发送方向。如果d为1,则步进电机倒转,默认是正转,其方向可由键盘来控制3.2 键盘扫描键盘扫描是本次设计的关键部分,键盘是电机的参数输入设备。键盘是由若干个按键开

33、关组成,键的多少根据单片机应用系统的用途而定。键盘由许多键组成,而每个键相当于一个机械开关触点,当键按下时,触点闭合,当键松开时,触点断开。单片机接收到按键的触点信号后作相应的功能处理。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4= 16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。除了矩阵式键盘外还有独立式键盘。独立式键盘的每个按键都与单片机

34、电路相连,所有按键都通过一个公共端与高电平相连,键之间相互独立互不影响。如下图所示,当按下键1时,无论其它键是否按下,键1的信号线就由1变0;当松开键1时,无论其它键是否按下,键1的信号线就由0变1。图7独立式键盘常用电路:图 7 独立式键盘电路由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的,所以本次实验用的是4*4的矩阵式键盘。图8为本次实验用的4*4键盘图 8 矩阵式键盘电路键盘扫描程序一直以来都占有这较大的cpu资源,因此选择一个合适的扫描方案十分重要。下面是几种常用的扫描方案,常用的键盘扫描电路如下:3.2.1 线反转法线反转法是比较常用的键盘扫描法,其扫描流程如下 1:将

35、列线作为输出线,行线作为输入线。置输出线全部为0,此时行线中呈低电平0的为按键所在行,如果全部都不是0,则没有按键按下。 2:将第一步反过来,即将行线作为输出线,列线作为输入线。置输出线全部为0,此时列线呈低电平的为按键所在的列。这样,就可以确定了按键的位置(X,Y)。3:key=X*4+Y.KEY即为多得到的键值。线反转法原理简单,实现方便,代码简短,是比行扫描法更快更稳定的方法,本次实验就是用的线反转法。 此外还要注意去抖动,去抖动的方法比较多,在下一部分介绍,另外还需要在行线上加上拉电阻,就是焊接电路中的四个电阻。3.2.2 行扫描法1 判断键盘中有无键按下将全部行线 P10-P13 置

36、低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中若所有列线均为高电平则表示键盘中无键按下2 判断闭合键所在的位置在确认有键按下后 即可进入确定具体闭合键的过程 其方法是 依次将行线置为低电平即在 置某根行线为低电平时 其它线为高电平当确定某根行线为低电平后 再逐行检测各列线的电平状态若某列为低 则该列线与置为低电平的行线交叉处的按键就是闭合的按键3.2.3 循环扫描查询方式是指在程序中用一段专门的扫描和读按键程序不停查询有无按键按下,确定键值。这种方式电路简单,但需要占用单片机的机器时间。一直占用着MCU的时间,效

37、率很低,一般不采用。只在一些简单的程序中才会用到。3.2.4 中断法中断法就是利用单片机的外部中断来进入键盘扫描程序,此时则需要对键盘电路做一下改动,因为利用的是外部中断0,同时中断触发方式选择下降沿触发,因此改动后的键盘电路如图9:图 9 中断式矩阵扫描键盘电路当任何一个键被按下时,都会在P14P17产生一个下降沿电平,同时4与门的输出口也会产生一个下降沿,在单片机的P32口产生一个外部中断,同时进入中断服务程序,进行键盘的扫描和处理。其余的键盘扫描程序跟循环扫描一样。其优点是不占用MCU时间,只有在有键盘输入的时候才进入中断处理程序,进行键值确认和处理,实时性高,不会出现定时方式时的检测不

38、到键盘的情况。这种方式硬件电路上必须要产生中断线,需要额外的逻辑门来产生中断信号,线路相对查询式和定时扫描时比较复杂,但是由于他的优点很明确,所以应用场合很广泛。3.2.5 定时器扫描法定时扫描方式是指利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中设置键盘扫描程序,检查有无按键按下,确定键值。这种方式的电路也比较简单,跟普通的查询式键盘的硬件是一样的。其优点是不占用单片机的机器时间,软件开销少,但需要占用一个定时器,同时定时的时间应该设置好,不能太长也不能太短,长了可能检测不到相应得按键,短了的话会加重机器开销。对本次实验来说,采用的就是这种方案,定时器用的是定时器1,定时扫描

39、间隔为20ms,定时器0用来产生控制步进电机的驱动脉冲。3.2.6 键盘的消抖通常的按键所用开关材料为弹性材料,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,并且在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如图10所示。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合尤其是软件消抖方面都要用到。图 10 消抖原理图按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。如果没有消抖,就会产生错误信号,导致解析出的键值出错或者重复输出键值。为确保CPU对键的一次闭

40、合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。1,、硬件消抖在键数较少时可用硬件方法消除键抖动。常用RS触发器作为去抖硬件。如图11所示:图 11 双稳态触发器消抖电路图中两个“与非”门构成一个RS触发器。其实在这个地方,此RS触发器的作用就是双稳态触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使因为按键的机械性能,使按键因弹性抖动而产生瞬时断开和闭合,只要按键不返回原始状态A,双稳态电路的状态不改变,输出不改变保持为0,因此不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经触发器

41、之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作原理很容易得到验证。另一种方法是利用电容的放电延时,如图12采用并联电容法。这实际上也是个低通滤波器,将高频的抖动信号过滤掉,只留下低频的输入信号,也可以实现硬件消抖:图12电容式消抖电路硬件消抖适合应用在按键不多,键盘电路比较简单的场合,但是因为硬件消抖需要额外的电路,所以应用场合不然软件消抖。下面简要介绍一下软件消抖2、软件消抖软件消抖也有不少方法的。如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms10ms的延时,让前沿抖动稳定后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下,然后再进入

42、键值检测程序。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序,防止再次进入键值判断程序。软件消抖的另一种方法是循环比较法。第一次扫描,将键值存储在寄存器中,继续扫描,然后和寄存器中的值比较,如果相同,继续扫描,在比较。可以选一个比较次数,如60H,在比较次数满60H前,如果有一次,比较不相同,此次扫描失败,如果60H相同,就承认次键值。这个方法是相比较而言非常可靠的方法,基本上避免了抖动对程序的干扰。还有一种比较复杂的方法就是逻辑运算法,配合定时中断读取按键,通过运算逻辑表达式:Keradyn=Kt Ki+Krn-1 (Kt Ki) (1)Kt=Ki (

43、2)可以获得消除抖动的按键消息。这种方法效率高,不需耗时的循环等待,而且算法简单、使用方便。一、基本原理 由于按键的按下与抬起都会有10ms左右的抖动毛刺存在,因此,为了获取稳定的按键信息,必须要避开这个抖动期,待其稳定后再读键值。 设置3个变量Kr、Kt和Ki,并设置定时器中断周期为20ms。在定时中断服务程序中读取按键,并把读取的数据存于变量Ki中。变量Kr中是所需要的稳定的按键信息;Kt是中间变量,它的值是上一次的Ki。 根据当前按键的状态,考虑到Kr中是20ms抖动后的有效键信息,则Kr、Kt和Ki之间,在不同时刻的状态关系如表1所列。表1时 刻 Kr Kt Ki1 0 0 02 0

44、0 13 0 1 04 0015 1 116 1 1 17 1 1 08 10 19 1 1 0100 0 011 0 0 0 时刻1为没有键按下的初始状态;时刻2的Ki为1,但时刻3的Ki又变为0,说明时刻2的Ki为1并不是有键按下,可能只是干扰,所以Kreqdy为0;时刻4同时刻2的情况类似,但是时刻4和时刻5时Ki都为1,说明有按键按下,在时刻5时Kr为1;虽然时刻7时Ki为0,但时刻5、6、8时Ki都为1,说明按键一直按下,只不过有干扰,Kr保持为1;时刻9、10连续两个时刻Ki为0,表示按键抬起,时刻10时Kr为0。通过分析可以看出,Kr中是消除了抖动并在一定程度上排除了干扰的有效按

45、键信息。3.2.7 几种键盘扫描法的比较1、硬件消抖:此种方法不消耗MCU资源,不需要在软件中添加消抖程序,软件开销小,消抖效果稳定,适合程序对MCU要求比较大的程序。但是因为需要硬件消抖,所以增加了电路的复杂度和提高了成本,因此不适合大规模生产。2、软件消抖:此种方法需要在键值判定后添加消抖程序,需要消耗MCU资源,在一些程序对MCU消耗较少的情况下,此种方法最为简单,并且消抖效果很好。由于不需要额外的电路,只需要普通的4*4矩阵键盘就成,所以降低了成本。缺点是软件开销比较大,在一些负载比较重的程序里会加重消耗,但是因为电路简单,实现方法方便,所以用处很广。本次实验用的是软件消抖的方法,经过实际检验后,消抖效果很好,很稳定,没有出现多处重复按键的情况。3.3 脉冲的产生方法 对步进电机的速度的控制就是对输入到步进电机脉冲的控制,脉冲的产生方法有两种,一种延时法,即通过延时函数来实现其脉冲间隔输出。另一只方法则是通过单片机上所带的定时器产生脉冲下面简要介绍一下两种计时方式3.3.1 定时器产生脉冲89C52芯片带有三个定时器,定时器0和定时器1是普通定时器,功能一样,既可以做定时器,又可以做计数器。定时器2是一个功能较强

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1