《毕业设计(论文)基于AT89C51单片机的步进电机控制系统设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51单片机的步进电机控制系统设计与实现.doc(44页珍藏版)》请在三一办公上搜索。
1、摘要步进电机是一种将输入的电脉冲信号变换为阶跃性角位移或直线位移的电机,既给一个脉冲信号,电机就转动一个角度或前进一步,故而又称为脉冲电机。它输出的角位移与输入的脉冲数成正比,转速与脉冲频率成正比。步近电机必须与驱动器、控制器配套使用才能完成工作要求。本设计既有硬件电路设计,也包括软件电路设计。其中硬件电路设计主要有键盘电路,串行显示电路,驱动电路等。软件设计主要有主程序,键盘扫描子程序,串行显示子程序和延时子程序等。硬件设计采用57BYG350A型号的步进电机,与其配套的驱动器型号为MS-3H057M系列驱动器。采用AT89S51单片机对步进电机进行控制,通过44矩阵键盘对步进电机的状态进行
2、控制,采用LED数码管来显示步进电机的运行步数和运行速度。关键字:步进电机,AT89C51,硬件接口电路,软件模块AbstractTread into the electrical engineering(The Stepping Motors) is a kind of electricity pulse signal transformation that will input to jumps sex Cape move or the straight line to move for the rank of electrical engineering, since give a pu
3、lse signal, the electrical engineering turns to move an angle or fronts further, hence be called the pulse electrical engineering again.Its outputs Cape move with the importation of pulse the number becomes the direct proportion, turning to become the direct proportion with the pulse frequency soon.
4、Tread the near electrical engineering must then can complete the work request with actuator, the controller kit usage.The design of both hardware circuit design, including software design. One major hardware circuit design circuit has a keyboard, serial show circuit, the driver circuit. Software Des
5、ign main main program, keyboard scanning routines, serial display routines and routines, and so delayed. 57 BYG350A hardware design using models of stepping motor, instead of supporting the drive models for MS-3H057M series drives. AT89S51 microcontroller used to stepping motor control, through the
6、4 4 matrix keyboard on the status of stepping motor control, the use of LED digital display of the stepping motor running steps and speed.Keyword: stepping motor,AT89S51, Hardware circuit, Software module1 绪论1.1 课题背景步进电机是一种将电脉冲转化为角位移的机电执行元件,每外加一个控制脉冲,电机就运行一步故称为步进电机或脉冲马达。通俗一点讲:当步进电机接收到一个脉冲信号,它就驱动步进电机
7、按设定的方向转动一个固定的角度(步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 步进电机具有转子惯量底,定位精度高,无累积误差,控制简单等特点。实际操作时不受电源电压,负载,环境,温度的影响能够实现快速启动、制动和反转。步进电机可以对旋转角度和转动速度进行高精度控制步进电机作为控制执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统和精密机械等领域。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。随着数字技术和计算机的发展,研究步进电机驱动电路,使
8、步进电机的控制更加简便,灵活和智能化,使其应用更加广泛 步进电动机的发展方向主要有如下三点:(1)进一步完善和扩展驱动和控制功能。如采用SVPWM技术,采用电子齿轮比技术,扩展通讯网络功能等。(2)高功率密度的步进电动机系统。(3)闭环控制步进电动机系统。为了彻底克服步进电动机系统一些根本性的弱点,如振荡的倾向及失步等,可改为闭环系统,但这种改变的步进电动机系统已起了质的变化,不再是本来意义上的步进电动机,而成为无刷直流电动机(BLDCM),或交流伺服电机(AC servo)。1.2 主要研究工作硬件设计方面:通过单片机实验加深对步进电机的驱动电源和电机工作情况了解,测定并研究其在单步运行状态
9、,角位移和脉冲数关系,平均转速和脉冲频率关系。观察转子振荡状态,并且掌握步进电机的基本特性和指标。根据功能需要选择电路元器件和型号,设计电路并能解决现实抗干扰问题。画出电路原理图,进行电子自动化设计,做出PCB图。软件设计方面:通过高效率的汇编语言编写核心模块对步进电机进行控制。最终设计出一个单片机控制步进电机电路,能够调节步进电机的转向和速度。由于转速是通过调节脉冲频率实现的,该设计脉冲分配采用完全软件方式,既按照给定的通电换向顺序,通过单片机I/O口向驱动电路发出控制脉冲,避免采用复杂脉冲分配器芯片,实现单片机直接控制步进电机。在现实操作中解决堵转和启动失步等问题。设计采用TKSCM1-型
10、实验模板及伟福仿真器进行仿真。2 单片机基础知识2.1单片机选择2.1.1单片机选择依据第一,价格因素。考虑到该控制器设计的适用性,因此价格问题尤为重要,要选择一个性价比较高的单片机,包括单片机的单片价格和开发系统的造价。 第二,性能因素。AT89S51单片机机内部资源丰富、具有在线编程(串行下载目标程序)等功能,软硬件调试方便,通过对该系统分析,8位单片机可以满足系统控制精度的要求。第三,安全因素。电子产品的安全性是一个非常重要的环节,作为控制系统的核心,单片机的安全性必须达到系统要求。2.1.2 AT89S51单片机的优点(1)内部含Flash存储器: 在系统的开发过程中可以十分容易进行程
11、序的修改,大大缩短了系统的开发周期。(2)和 80S51 插座兼容: 该机型通用性好,能够利用现成的 51 系列的开发系统,不需另外重新建立新的开发系统,这样可节约开发成本。(3)静态时钟方式: AT89S51 单片机采用静态时钟方式,所以可以节省电能,这对于降低成品的功耗十分有用。(4)错误编程亦无废品产生: 一般的 OTP 产品一旦错误编程就成了废品,而AT89S51 单片机内部采用了 Flash 存储器,所以错误编程之后仍可以重新编程,直到正确为止,故不存在废品。(5)可进行反复系统试验: 用 AT89S51 单片机设计的系统可以反复进行系统试验,每次试验可以编入不同的程序,这样可以保证
12、用户的系统设计达到最优,而且随用户的需要和发展还可以进行修改,使系统能不断追随用户的最新要求。由于该机型具有上述优点,并且有现成的开发系统,不需购置新的开发系统,可节约开发成本,所以选择 AT89S51 单片机。2.2 单片机应用发展简介单片微型计算机(Single Chip Microcomputer)简称单片机,是在一块芯片体上集成了中央处理器CPU、随机存储器RAM或EPROM、定时器/计数器、中断控制器以及串行和并行I/O接口等部件,构成的一个完整的微型计算机。 自1971年Intel公司制造出第一块4位微处理器以来,发展十分迅猛,经历了4位机、低档8位机、高档8位机、16位机及最新一
13、代的单片机。最新一代单片机在结构上采用双CPU或内部流水线,CPU有8位、16位、32位,时钟频率高达20Hz,片内有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高集成化,低功耗方向发展,使得单片机在大量数据的及时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。 单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,故在国民经济建设、军事及家用电器等领域有广泛的应用。按照单片机特点,单片机可分为单机应用和多机应用。单机应用主要领域有(1)测控系统。用单片机构成各种工业控制系统、自适应系统、
14、数据采集系统等。如温室人工气候控制、水阀自动控制、电镀生产线自动控制、汽轮机电液调节系统等。(2)智能仪表。用单片机改造原有的测量、控制仪表,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展。如温度、压力、流量、浓度的测量、显示及仪表控制。通过单片机软件编程,是测量仪表中长期存在的误差修正、线形化处理等难题迎刃而解。(3)机电一体化产品。如简易数控机床、医疗器械等。(4)智能接口。在大型工控系统中,普遍采用单片机进行接口的控制与管理,这个因为单片机与主机是并行工作的,可大大提高系统运行速度。如大型数据采集系统中,用单片机对ADC接口进行控制不仅可提高采集速度还可对数据进行预处理。如数字
15、滤波、线形化、误差修正等。多机应用主要在功能集散系统、并行多控制系统、局部网络系统。(1)功能集散系统。多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。如一个加工中心的计算机系统除完成机床加工运行控制外,还要控制对刀系统、坐标系统、刀库管理、状态监视、伺服驱动等机构。(2)并行多控制系统。并行多控制系统主要解决工程应用系统的加速问题,以便构成大型实时工程应用系统。典型的有快速并行数据采集、处理系统、实时图象处理系统等。(3)局部网络系统。单片机网络系统的出现,使单片机的应用进入了一个新的水平。目前该网络系统主要是分布式测控系统,单片机主要用语系统中的通信控制,以及构成各种测
16、控子级系统。2.3 AT89S51单片机外部引脚说明 MCS-51单片机芯片均有40个引脚。在40条引脚中有两条专用于主电源的引脚,两条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条I/O引脚。单片机管脚图如图2.1。图2.1 MSC-51单片机的管脚图下面分别叙述这40条引脚的功能(1) 主电源引脚VCC和VSSGND(20脚)接地;VCC(40脚)接5V电源(2) 外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器,当采用外部振荡器时,此引脚应接地。XTAL2(18脚)接外部晶体的另一端,
17、在单片机内部接至上述振荡器的反相放大器的输出端。采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。(3) 控制信号或与其它电源复用引脚RST(9脚):当振荡器运行时,在此引脚上出现两个机器周期的高电平将使单片机复位。推荐此引脚与Vss引脚之间连接一个约8.2k的下拉电阻,与Vcc引脚之间连接一个约10MF的电容,以保证可靠的复位。Vcc掉电期间,此引脚可接上备用电源,以保持内部RAM的数据,当Vcc下降到低于规定的值,而RST在其规定的电压范围(50.5V)内时,RST就向内部RAM提供备用电源。ALE/PROG(30脚):当访问外部存储器时,ALE(允许地址
18、锁存)的输出用于所存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期地出现正脉冲信号,此频率为振荡器频率的1/6,因此,它可用作对外输出的时钟,或用于定时。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个TTL输出。对于EPRPM型单片机(如8751),在EPROM编程期间,此引脚用来输入编程脉冲(PROG)。PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在由外部程序存储器取指令(或常数)期间,每个机器周期PSEN两次有效。但在次期间,每当访问外部数据存储器时(即从程序存储器取来的指令是MOVX类指令),过两次
19、有效的PSEN信号将不出现。PSEN可以驱动(吸收或输出电流)8个LSTTL。EA/Vpp(31脚):当EA端保持高电平时,访问程序存储器,但在PC(程序计数器)值超过0FFFFH时(对于8051、8751来说),将自动转向执行外部程序存储器内的程序。当EA端保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于8031来说,无内部程序存储器所以该脚必须接地,这样只能选择外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21伏的编程电源(Vpp)。(4) 输入/输出(I/O)引脚P0口,P1口,P2口,P3口P0口:双向8位三态I/O口,与地址总线(低8
20、位)及数据总线复用。P1口:8位准双向I/O口。P2口:8位准双向I/O口,与地址总线(高8位)复用。P3口:8位准双向I/O口,复用双功能口。作为第一功能使用时,即作为普通I/O口用,功能和操作方法与P1口相同。值得强调的是,P3口的每一位均可独立地定义为第一功能的输入输出或第二功能。3步进电机基础知识3.1 步进电机的选择步进电机有步距角(涉及到相数)、静转矩、及电流三大要素组成。一旦三大要素确定,步进电机的型号便确定下来了。(1)步距角的选择:电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。
21、目前市场上步进电机的步距角一般有0.36度/0.72度(五相电机)、0.9度/1.8度(二、四相电机)、1.5度/3度 (三相电机)等。(2) 静力矩的选择: 步进电机的动态力矩一下子很难确定,我们往往先确定电机的静力矩。静力矩选择的依据是电机工作的负载,而负载可分为惯性负载和摩擦负载二种。单一的惯性负载和单一的摩擦负载是不存在的。直接起动时(一般由低速)时二种负载均要考虑,加速起动时主要考虑惯性负载,恒速运行进只要考虑摩擦负载。一般情况下,静力矩应为摩擦负载的2-3倍内好,静力矩一旦选定,电机的机座及长度便能确定下来(几何尺寸)。(3)电流的选择:静力矩一样的电机,由于电流参数不同,其运行特
22、性差别很大,可依据矩频特性曲线图,判断电机的电流(参考驱动电源、及驱动电压)。综上所述本系统设计采用57BYG350A型号的步进电机。因一般的步进电机都配有固定型号的驱动器,57BYG350A型号的步进电机与其配套的驱动器型号为MS-3H057M系列驱动器,所以本系统驱动器的选择不再另作选择。3.2 步进电机工作原理步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。现在比较常用的步进电机包括反应式步进电机、永磁式步进电机、混合式步进电机和单相式步进电机等。其中反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。现阶段,感应子式步进电机获得较多的应用。
23、感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。 各种步进电机工作原理都大同小异,因为反应式步进电机工作原理比较简单。下面先叙述三相反应式步进电机原理。 (1)结构: 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。 0、1/3、2/3,(相邻两转子齿轴线间的距离为齿距以表示),即A与齿1相对齐,B与齿2向右错开1/3
24、,C与齿3向右错开2/3,A与齿5相对齐,(A就是A,齿5就是齿1)下面是定转子的展开图:图3.1 定转子展开图 (1)旋转: 如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。 如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3,此时齿3与C偏移为1/3,齿4与A偏移(-1/3)=2/3。 如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3,此时齿4与A偏移为1/3对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3 这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个
25、齿距,如果不断地按A,B,C,A通电,电机就每步(每脉冲)1/3,向右旋转。如按A,C,B,A通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。 不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用A-AB-B-BCC-CA-A这种导电状态,这样将原来每步1/3改变为1/6。甚至于通过二相电流不同的组合,使其1/3变为1/12,1/24,这就是电机细分驱动的基本理论依据。 不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制这是步进电机旋转的物理
26、条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 (3)力矩: 电机一旦通电,在定转子间将产生磁场(磁通量)当转子与定子错开一定角度产生力F与(d/d)成正比。其磁通量=BrS。Br为磁密,S为导磁面积,F与LDBr成正比, L为铁芯有效长度,D为转子直径。Br=NI/R,NI为励磁绕阻安匝数(电流乘匝数)R为磁阻。力矩=力半径。力矩与电机有效体积安匝数磁密成正比(只考虑线性状态)因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。图 3.2 磁通量与受力图3.3步进电机各指标和参数步进电机的指标和
27、参数通常分为静态指标术语和动态指标术语。 (1)步进电机的静态指标术语。 相数:产生不同对极 N S 磁场的激磁线圈对数。常用m表示。 拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A. 步距角:对应一个脉冲信号,电机转子转过的角位移用表示。=360 度(转子齿数 J 运行拍数),以常规二、四相,转子齿为 50 齿电机为例。四拍运行时步距角为=360度/(504)=1.8 度(俗称整步),八拍运行时步距角为=360度/(508
28、) =0.9 度(俗称半步)。 定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的) 静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过份采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。 (2)步进电机动态指标及术语: 步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在
29、 15%以内。 失步:电机运转时运转的步数,不等于理论上的步数,称之为失步。在步进电机的运行过程中,将可能出现失步,其失步原因有两种 : (1)转子的加速度慢于步进电机的旋转磁场,也就是低于换相速度而产生的。这是因为输入电机的电能不足,在步进电机中产生的同步力矩无法使转子速度跟随定子磁场的旋转,从而引起失步。 (2)转子的平均速度高于定子磁场的平均旋转速度,这时定子通电励磁的时间较长,大于转子步进一步所需要的时间,则转子在步进过程中获得过多的能量,从而产生前冲和后冲的摆动振荡,当振荡足够严重时就会导致失步。 失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用
30、细分驱动是不能解决的。 最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。 最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。 运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。 其它特性还有惯频特性、起动频率特性等。电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩取决于电机运行时的平均电流(而非静态电流),平均电流越大,电机输出力矩越大,即电机的频率特性越硬。如图3.3所示:图 3.3 步进电机运行矩
31、频特性图电机的共振点:步进电机均有固定的共振区域,二、四相感应子式步进电机的共振区一般在180-250pps之间(步距角1.8度)或在400pps左右(步距角为0.9度),电机驱动电压越高,电机电流越大,负载越轻,电机体积越小,则共振区向上偏移,反之亦然,为使电机输出电矩大,不失步和整个系统的噪音降低,一般工作点均应偏移共振区较多。电机正反转控制:当电机绕组通电时序为AB-BC-CD-DA时为正转,通电时序为DA-CA-BC-AB时为反转。4系统硬件设计4.1 系统硬件结构框图计算机的硬件和软件是相互结合而工作的,有些任务必须由硬件来实现,另外有些任务必须由软件来实现。但是也有一些任务可以由软
32、件来完成,也可由硬件来完成。一般来说,增加硬件会提高成本,但能简化设计程序,且实时性好。反之,加重软件任务,会增加编程调试工作量,但能降低硬件成本。所以要合理的安排软、硬件的结构。系统的硬件框图如图4.1所示。由于本微机控制系统采用单片机作为核心部件,利用单片机构成系统应从元件级进行系统设计,根据任务需要,选择合理的单片机并配置必须的接口和外围设备来构成系统。本设计主要有控制器、键盘、数码管显示、步进电机及其驱动器构成。其中控制器采用AT89S51单片机,步进电机及其驱动器配套使用,本文采用57BYG350A型号的步进电机,与其配套的驱动器型号为MS-3H057M系列驱动器。框图中人机对话部分
33、包括键盘和数码管显示。其中键盘用来设置初始值和控制步进电机的正反转运行,加速运行,减速运行等一些基本功能。因本设计采用二维步进电机,每8个按键控制一维步进电机,共用到16个按键,考虑到I/O口个数问题,本设计采用44矩阵键盘。数码管用来显示步进电机的运行步数和运行速度,以方便步进电机在工作中我们能直接观察到步进电机的运行状态。运行参数 键盘设定运行结果 数码管显示单片机电机驱动器步进电机图4.1 系统硬件框图4.2 单片机最小系统 一般情况下,单片机结合简单的接口电路就可以构成单片机的最小系统。一般包括单片机复位电路、时钟电路、键盘电路、显示电路等。键盘电路和显示电路在下文单独介绍,在单片机最
34、小系统里就不再另做介绍。下面介绍一下单片机的复位电路和时钟电路。4.2.1 单片机复位电路单片机的复位操作有上电自动复位、按键电平复位和外部脉冲复位三种,本设计采用按键电平复位电路,如图4.2所示。按键电平复位是通过按压键使复位端经电阻与VCC接通而实现的。图4.2 单片机复位电路4.2.2 单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,控制着单片机的有序运行节奏,在AT89S51芯片内部,有一个振荡器电路和时钟发生器,在引脚XTAL1和XTAL2之间接入晶体振荡器和电容后构成内部的时钟方式。设计电路如图4.3所示。图4.3 单片机时钟电路4.3键盘电路4.3.1 矩阵式键盘按键的
35、识别当非编码键盘的按键较多时,若采用独立式键盘占用I/O口线太多,此时可采用矩阵式键盘,键盘上的键按行列构成矩阵,在行列的交点上都对应有一个键。行列方式是用m条I/O线组成行输入口,用n条I/O线组成列输出口,在行列线的每一个交点处,设置一个按键,组成一个mxn的矩阵,如图4.4所示,矩阵键盘所需的连线数为行数+列数,如44的16键矩阵键盘需要8条线与单片机相连,般键盘的按键越多,这种键盘占I/O口线少的优点就越明显,因此,在单片机应用系统较为常见。列行图4.4 矩阵式键盘矩阵式键盘识别按键的方法有两种: 一是行扫描法, 二是线反转法。这里只说明一下第一种情况, 行扫描法:先令列线Y0为低电平
36、(0),其余3根列线Y1、Y2、Y3都为高电平,读行线状态。如果X0、X1、X2、X3都为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态;如果Y0这一列上没有键闭合,接着使列线Y1为低电平,其余列线为高电平。用同样的方法检查Y1这一列上有无键闭合,依次类推,最后使列线Y3为低电平,其余列线为高电平,检查Y3这一列有无键闭合。 为了防止双键或多键同时按下, 往往从第 0 行一直扫描到最后 1 行, 若只发现 1 个闭合键, 则为有效键, 否则全部作废。 找到闭合键后, 读入相应的键值, 再转至相应的键处理程序。l 关于键盘的抖动问题的
37、分析和解决:当用手按下一个键时,如图4.5所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。因此本系统采用软件消抖的方法。键按下前沿抖动后沿抖动闭合稳定图4.5 键抖动信号波形l 键编码及键值(1) 用键盘连接的I/O线的二进制组合表示键码。例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口
38、线的二进制数的组合表示16个键的编码,如图所示。各键相应的键值为88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。(2) 顺序排列键编码。如图所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号。4.3.2 键盘电路设计有关键盘操作的部分,可分为参数设定和执行控制等功能操作。所谓参数设定,本系统在开始运行前要求设置步进电机运行的速度,转向、运行步数等,所以要进行按键输入数值以传入参数。所谓执行控制指步进电
39、机的启动、停止。本系统采用二维电机,共十六个按键,如图4.6。每八个按键控制一个步进电机。两个步进电机的控制键功能相同,因此只介绍其中的八个按键。 各功能键具体设计如下: 设置键:设置步进电机的速度(包括加速和减速)。 启动键:执行该按键,步进电机就开始工作。 停止键:执行该按键,步进电机就停止工作。 转向键:电机正、反转选择。 数位键:预置步数的数据位设置。 数据键:预置步数位的数据设置。图4.6 44矩阵键盘4.4 LED显示电路设计多位LED显示时,常将所有位的段选线并联在一起,由一个8位IO口控制,也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。在本测量仪中,为
40、了节约I/O口资源,采用了由Max7219芯片构成的串行显示方式。Max7219是串行输入,输出共阴极显示驱动电路,可直接与单片机的3条I/O线接口,特别适用于I/O口线少的系统,并且可以程序控制数码管的亮度。本设计采用串行LED显示驱动器MAX7219来进行驱动LED显示。4.4.1 串行LED显示驱动器MAX7219MAX7219是美国MAXIM公司生产的串行接口8位LED数码管驱动器,采用CMOS工艺,内部集成了数据保持、BCD译码、多路扫描器、段驱动器和位驱动器。每片MAX7219最多可同时驱动8个LED数码管、条形图显示器或64只发光管。MAX7219的主要特点如下:采用三线串行传送
41、数据,仅用3个引脚与微处理器相应端相连即可,串行数据传送速率高达10MHz,还可以级联使用。内部具有8字节显示静态RAM(称为数字寄存器)和6个控制寄存器,可单独寻址和更新内容。有译码和不译码两种显示模式。上电时所有LED熄灭,正常工作时通过外接电阻或编程方式调节LED亮度。最大功耗为0.87W,具有150uA电流的低功耗关闭模式。MAX7219和LED数码管直接连接时不用外加驱动器和限流电阻,不用译码器、锁存器和其他硬件电路。MAX7219还可以级联使用,驱动更多的LED数码管,且不必另外占用单片机口线。下面介绍MAX7219的功能和使用方法。MAX7219是24脚双列直插式芯片,引脚排列如
42、图4.7。图4.7 MAX7219引脚图1) DIN:串行数据输入端。在CLK的上升沿,数据被装入到内部的16位移位寄存器中。 2) DIG7DIG0:8位数值驱动线。输出位选信号,从每位LED显示器公共阴极吸入电流。3) GND:接地端。4) LOAD:装载数据控制端。在LOAD的上升沿,最后送入的16位串行数据被锁存到数据或控制寄存器中。5)DOUT:串行数据输出端。进入DIN的数据在16.5个时钟后送到DOUT端,以便在级联时传送到下一片MAX7219。6)SEGASEGG:LED七段显示器段驱动端。7)SEGH:小数点驱动端。 8)VCC:+5V电源端。9)Iset:LED段峰值电流提
43、供端。它通过一只电阻与电源相连,以便给LED段提供峰值电流。10)CLK:串行时钟输入端。最高输入频率为10MHz,在CLK的上升沿,数据被移入内部移位寄存器;在CLK的下降沿,数据被移至DOUT端。 4.4.2 LED显示硬件电路Max7219是串行输入,输出共阴极显示驱动电路,可直接与单片机的3条I/O线接口,特别适用于I/O口线少的系统,并且可以程序控制数码管的亮度。在本设计中,采用单片机串行口(P3.0和P3.1)及P0.0三条线与Max7219相连接,P3.0、P3.1分别作为MAX7219串行数据输入信号DIN和时钟信号 CLK,P0.0输出口作为LOAD信号。因本系统中共用到16
44、个LED数码管,因此用两个MAX7219级联来驱动LED数码管的显示。本系统中共用到16个LED数码管,每八个数码管显示一个电机的一些参数。其中四位数码管用来显示步进电机的运行步数,另四位用来显示步进电机的运行速度。具体硬件线路图见图4.8。图4.8 MAX7219显示电路图4.5 步进电机驱动电路步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压,为了防止电机过流及改善驱动特性,需加限流电阻。步进电机的另一种驱动方式是高低压驱动,即在电机移步时,加额定或超过额定值的电压,以便在较大的电流驱动下,使电机快速移步。在现代社会,一般步进电机都有其配套的驱动器与其配套使用,本设计
45、就采用了57BYG350A型号的步进电机,与其配套的驱动器型号为MS-3H057M系列驱动器。4.5.1 MS-3H057M型号步进电机驱动器介绍图4.9 步进电机驱动器面板图CP+ 步进脉冲信号正端CP- 步进脉冲信号负端DIR+ 方向电平信号正端DIR- 方向电平信号负端EN+ 使能电平信号正端EN- 使能电平信号负端CW+ 正向步进脉冲信号正端CW- 正向步进脉冲信号负端CCW+ 反向步进脉冲信号正端CCW- 反向步进脉冲信号负端Power 电源指示灯(绿色)No ready 未准备好指示灯(红色)1-4位设定电机每转步数(细分数)5位 设定步进脉冲方式0- 单脉冲,1-双脉冲6位 设定
46、是否允许半电流 0- 不允许,1-允许7-10位 设定输出电流值(有效值)4.5.2 MS系列驱动器主要功能电机每转步数设定(细分数设定):每一种型号驱动器都有16种步数(细分数)可选,由驱动器上的拨位开关的第1、2、3、4位设定,此16种步数基本涵盖了用户对电机步距的要求,步数设定必须在驱动器未加电或已加电但电机未运行时才有效。驱动器输出电流设定:每一种型号驱动器都有16档输出电流可选,由驱动器上的拨位开关的第7、8、9、10位设定,驱动器输出三相正弦电流给电机,电流大小以有效值标称。控制信号方式设定:每一种型号驱动器都有2种控制信号方式可选,由驱动器上的拨位开关的第5位设定: CP/DIR
47、方式: 电机的旋转方向由DIR换向电平控制,而步进信号取决于CP。比如说,DIR为高电平时电机为顺时针旋转,DIR为低电平时电机则为反方向逆时针旋转。此种换向方式,我们称之为单脉冲方式。拨位开关的第5位设定在“0”位置;CW/CCW方式: 驱动器接受两路脉冲信号(一般标注为CW和CCW),当其中一路(如CW)有脉冲信号时,电机正向运行,当另一路(如CCW)有脉冲信号时,电机反向运行,我们称之为双脉冲方式。拨位开关的第5位设定在“1”位置。自动半电流:是指驱动器在脉冲信号停止施加1秒左右,会自动进入半电流状态,这时电机相电流为运行时的一半,以减小功耗和保护电机,此功能由驱动器上的拨位开关的第6位设定:0无此功能、1有此功能。相位记忆功能(无时间限制):驱动器断电时处于某一相位,下次加电时如果和此相位不同,电机就会“抖动”一下,为了消除电机抖动就必须把断电时的相