1、单片机控制直流电机PWM调速系统的设计与仿真III摘 要IIIABSTRACTIV1 绪论11.1直流电机的发展及设计背景11.2直流电机调速原理21.3系统方案与分析31.4总体硬件电路设计42 PWM脉宽调制原理52.1 PWM调速原理52.2 PWM 调速方法52.3 PWM 实现方式63硬件部分83.1单片机的选型:83.2驱动电路103.2.1 芯片IR2110性能及特点103.2.2 IR2110的引脚图以及功能103.2.3 元器件的选择比较、选型113.3 H桥双极性主电路123.4检测回路153.4.1 光电编码器153.4.2 M/T法测速原理163.5 键盘及显示电路17
2、3.5.1键盘/显示芯片8279简介173.5.3显示器设计183.6电源电路194系统软件设计214.1 PWM实现方式214.1.1 定时器/计数器214.1.2 PWM产生程序214 .2 系统程序设计224.2.1主程序及系统初始化模块224.2.2 中断程序设计234.2.3 中断子程序模块244.3键盘/显示模块设计244.4数字PID控制器264.4.1 PID控制器原理264.4.2 数字PID控制器流程图275系统的MATLAB仿真30 5.1 系统的建模与参数设置305.2电机Matlab仿真32结束语34致谢35参考文献36附录37单片机控制直流电机PWM调速系统的设计与
3、仿真摘 要本文主要研究了利用AT89S52单片机控制PWM信号从而实现对直流电机转速进行控制的方法。文章介绍了AT89S52的详细参数,并对PWM信号的原理、产生方法、以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了阐述。此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。在软件方面,文章中详细介绍了PID运算程序,初始化程序等的编写思路和具体的程序实现。本系统中使用了光电编码器对直流电机的转速进行测量,并且作为反馈值输入到单片机进行PID运算,从而实现了对直流电机速度的控制。关
4、键词: PWM信号;IR2110;PID运算The Design Of Direct Current Motor Speed RegulationSystem Based On SCMABSTRACTThis article mainly introduces the method to generate the PWM signal by using AT89S52 single-chip computer to control the speed of a D.C. motor. It also clarifies the principles of PWM and the way to
5、adjust the duty cycle of PWM signal. In addition, IR2110 has been used as an actuating device of the power amplifier circuit which controls the speed of rotation of D.C. motor. Whats more, is used in this system to measure the speed of D.C. motor. In software, the article introduced the PID operatio
6、n procedures, such as initial program and the writing of the thought and after passing the filtering circuit, and finally the feedback single is stored in the single-chip computer and participates in a PIDcalculation. Key words: PWM signal;IR2110;PID calculation11 绪论1.1直流电机的发展及设计背景直流电动机具有良好的起动、制动性能,
7、宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率。在实际应用中,电动机作为把电能转换为机械能的主要设备,一是要具有较高的能量转换效率;二是应能根据生产工艺的要求调整转速。电动机的调速性能如何对提高产品质量、提高劳动生产率和节省电能有着直接
8、的决定性影响。因此,调速技术一直是研究的热点直流电动机在冶金、矿山、化工、交通、机械、纺织、航空等领域中已经得到广泛的应用。而以往直流电动机的控制只是简单的控制,很难进行调速,不能实现智能化。传统的控制系统采用模拟元件,虽在一定程度上满足了生产要求,但是因为元件容易老化和在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受到器件性能、温度等因素的影响,故系统的运行可靠性及准确性得不到保证,甚至出现事故。如今,直流电动机的调速控制已经离不开单片机的支持,单片机应用技术的飞速发展促进了自动控制技术的发展,使人类社会步入了自动化时代,单片机应用技术与其他学科领域交叉融合,促进了学科发展和专业
9、更新,引发了新兴交叉学科与技术的不断涌现。现代科学技术的飞速发展,改变了世界,也改变了人类的生活。由于单片机的体积小、重量轻、功能强、抗干扰能力强、控制灵活、应用方便、价格低廉等特点,计算机性能的不断提高,单片机的应也更加广泛特别是在各种领域的控制、自动化等方面。目前,直流电动机调速系统数字化已经走向实用化,伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。近年来,随着科技的进步,电力电子技术得到了迅速的发展,直流电机得到了越来越广泛的应用。直流它具有优良的调速特性,调速平滑、
10、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;需要能满足生产过程自动化系统各种不同的特殊运行要求,从而对直流电机的调速提出了较高的要求,改变电枢回路电阻调速,改变电枢电压调速等技术已远远不能满足要求,这时通过PWM方式控制直流电机调速的方法应运而生。1.2直流电机调速原理直流电机电路模型如图1-1 所示,磁极N、S 间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的方向也将 图1-1 直流电动机电路模型 不同励磁方式的直流电动机机械特
11、性曲线有所不同。但是对直流电动机的转速有以下公式: n=U/Cc-TR内/CrCc (1-1)其中:U电压;励磁绕组本身的电阻;每极磁通(Wb)Cc电势常数;Cr转矩常量直流电动机转速的控制方法可分为两类:励磁控制法与电枢电压控制法。励磁控制法控制磁通,其控制功率虽然小但低速时受到磁场饱和的限制,高速时受到换向火花和转向器结构强度的限制,而且由于励磁线圈电感较大动态响应较差。所以常用的控制方法是改变电枢端电压调速的电枢电压控法。电枢控制是在励磁电压不变的情况下,把控制电压信号加到电机的电枢上,以控制电机的转速。在工业生产中广泛使用其中脉宽调制(PWM)应用更为广泛。脉宽调速利用一个固定的频率来
12、控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。1.3 系统方案与分析本文主要研究了利用AT89S52单片机,通过PWM方式来改变电压的占空比实现来驱动电机。利用光电编码器测得电机速度,把电压信号反馈给单片机,在内部进行PID运算,输出控制量完成闭环控制,实现电机的调速控制。单片机直流电机调速简介:单片机直流调速系统可实现对直流电动机的平滑调速。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。在PW
13、M驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。本系统以AT89S52单片机为核心,通过单片机控制,C语言编程实现对直流电机的平滑调速。本系统以单片机系统为依托,根据PWM调速的基本原理,以直流电机电枢上电压的占空比来改变平均电压的大小,从而控制电动机的转速为依据,实现对直流电动机的平滑调速,并通过单片机控制速度的变化。本文所研究的直流电机调速系统主要是由硬件和软件两大部分组成。硬件部分是前提,是整个系统执行的基
14、础,它主要为软件提供程序运行的平台。而软件部分,是对硬件端口所体现的信号,加以采集、分析、处理,最终实现控制器所要实现的各项功能,达到控制器自动对电机速度的有效控制。1.4总体硬件电路设计系统总体设计框图驱动电路 AT89S52单片机(速度的测量计算、输入设定及系统控制)LED显示PWM 直流电机转速检测反馈键盘控制 图1-2 直流电机PWM调速系统设计方框图2 PWM脉宽调制原理2.1 PWM调速原理PWM脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)的技术。下式是占空比计算公式:式中t1表示一个周期内开关管导通的时间,T表示一个周期的时间。占空比
15、D表示了在一个周期里,开关管导通的时间与周期的比值,变化范围为0D1。由上式可知,当电源电压不变的情况下,电枢的端电压的平均值为,因此改变占空比D就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。如图所示: 图2-1 PWM信号的占空比根据上图,如果电机始终接通电源时,电机转速最大为,占空比为D=/T,则电机的平均速度为:,可见只要改变占空比D,就可以得到不同的电机速度,从而达到调速的目的。2.2 PWM 调速方法在PWM调速时,占空比是一个重要参数。以下是三种可改变占空比的方法: (1)定宽调频法:保持不变,改变,从而改变周期(或频率)。 (2)调宽调频法:保持不变,改变,
16、从而改变周期(或频率)。 (3)定频调宽法:保持周期(或频率)不变,同时改变、。 前2种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此应用较少。目前,在直流电动机的控制中,主要使用第3种方法。定频调宽法是利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。2.3 PWM 实现方式方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采
17、用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。故采用方案一。同开环控制系统相比,闭环控制具有一系列优点。在反馈控制系统中,不管出于什么原因(外部扰动或系统内部变化),只要被控制量偏离规定值,就会产生相应的控制作用去消除偏差。因此,它具有抑制干扰的能力,对元件特性变化不敏感,并能改善系统的响应特性。由于闭环系统的这些优点因此选用闭环系统。 如图2-2,通过单片机控制器产生PWM矩形波,PWM矩形波经过驱动电路的放大对直流电机进行PWM控制,由速度传感器对电机进行测速,并将测得的速度反馈到输入端即让反馈信号与给定量进行比较。从而达到对直流电机的较为精确的控制。单片
18、机控制器驱动电路直流电机光电编码器r被控量y-给定量+速度反馈PWM矩形波 图2-2直流电机PWM调速系统原理图3硬件部分3.1单片机的选型:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;100
19、0次擦写周期;全静态操作:0Hz33Hz;三级加密程序存储器;32个可编程I/O口线;三个16位定时器/计数器;八个中断源;全双工UART串行通道;低功耗空闲和掉电模式;掉电后中断可唤醒;看门狗定时器;双数据指针;掉电标识符。AT89S52主要功能1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256字节5、32 个可编程I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工UART串行通道AT89S52引脚图图3-1 单片
20、机引脚图 AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。 AT89S52内部具有看门狗定时器及3个16位可编程定时器/计数器。16位是指他们都是由16个触发器构成,故最大计数模值为。可编程是指它们的工作方式由指令来设置,或者当计数器用,或者当定时器用,并且记数(定时)的范围也可以由指令来设置。这种控制功能是通过定时器方式控制器TMOD来完成的。3.2驱动电路功率放大驱动
21、芯片有多种,其中较常用的芯片有IR2110和EXB841,但由于IR2110具有双通道驱动特性,且电路简单,使用方便,价格相对EXB841便宜,具有较高的性价比,且对于直流电机调速使用起来更加简便,因此该驱动电路采用了IR2110集成芯片,使得该集成电路具有较强的驱动能力和保护功能。3.2.1 芯片IR2110性能及特点IR2110是美国国际整流器公司利用自身独有的高压集成电路以及无闩锁CMOS技术,于1990年前后开发并且投放市场的,是一种双通道高压、高速的功率器件栅极驱动的单片式集成驱动器。它把驱动高压侧和低压侧MOSFET或IGBT所需的绝大部分功能集成在一个高性能的封装内,外接很少的分
22、立元件就能提供极快的功耗,它的特点在于,将输入逻辑信号转换成同相低阻输出驱动信号,可以驱动同一桥臂的两路输出,驱动能力强,响应速度快,工作电压比较高,可以达到600V,其内设欠压封锁,成本低、易于调试。高压侧驱动采用外部自举电容上电,与其他驱动电路相比,它在设计上大大减少了驱动变压器和电容的数目,使得MOSFET和IGBT的驱动电路设计大为简化,而且它可以实现对MOSFET和IGBT的最优驱动,还具有快速完整的保护功能。与此同时,IR2110的研制成功并且投入应用可以极大地提高控制系统的可靠性。降低了产品成本和减少体积。3.2.2 IR2110的引脚图以及功能图3-2 IR2110管脚图IR2
23、110采用HVIC和闩锁抗干扰CMOS工艺制作,具有独立的高端和低端输出通道;逻辑输入与标准的CMOS输出兼容;浮置电源采用自举电路,其工作电压可达500V,du/dt=50V/ns,在15V下的静态功耗仅有1.6mW;输出的栅极驱动电压范围为1020V,逻辑电源电压范围为515V,逻辑电源地电压偏移范围为5V5V。IR2110采用CMOS施密特触发输入,两路具有滞后欠压锁定。推挽式驱动输出峰值电流2A,负载为1000pF时,开关时间典型值为25ns。两路匹配传输导通延时为120ns,关断延时为94ns。IR2110的脚10可以承受2A的反向电流。 图3-3 IGBT驱动电路3.2.3 元器件
24、的选择比较、选型 本设计采用IGBT,IGBT作为大功率的电路驱动器件,具有以下优点:(1)IGBT在正常工作时,导通电阻较低,增大了器件的电流容量。(2) IGBT的输出电流和跨导都大于相同尺寸的功率MOSFET。(3)较宽的低掺杂漂移区(n-区)能够承受很高的电压,因而可以实现高耐压的器件。(4)IGBT利用栅极可以关断很大的漏极电流。(5)与MOSFET一样,IGBT具有很大的输入电阻和较小的输入电容,则驱动功率低,开关速度高。虽然当IGBT关断(栅极电压降为0)时,IGBT的漏极电流也就相应地不能马上关断,即漏极电流波形有一个较长时间的拖尾关断时间较长(1050ms),所以IGBT的工
25、作频率较低。但这本设计中IGBT仍然是本设计驱动的最理想器件。 IGBT型号选择:(1)IGBT承受的正反向峰值电压:Uirm (3-1)考虑到2-2.5倍的安全系数,可选IGBT的电压为900V。(2)IGBT导通时承受的峰值电流: Iirm= (3-2) 额定电电压按220V供电电压、额定功率10kVA容量算。在计算出(或测出)最大电压后,再留有20%30%的裕量,选用的IGBT型号为三菱公司的CT60AM-18F,其耐压值为900V,最大峰值电流30A,完全满足设计要求。3.3 H桥双极性主电路从上面的原理可以看出,产生高压侧门极驱动电压的前提是低压侧必须有开关的动作,在高压侧截止期间低
26、压侧必须导通,才能够给自举电容提供充电的通路。因此在这个电路中,VT1、VT4或者VT 2、VT 3是不可能持续、不间断的导通的。我们可以采取双PWM信号来控制直流电机的正转以及它的速度。将IC1的HIN端与IC2的LIN端相连,而把IC1的LIN端与IC2的HIN端相连,这样就使得两片芯片所输出的信号恰好相反。在HIN为高电平期间,VT 1、VT 4导通,在直流电机上加正向的工作电压。其具体的操作步骤如下:电源经VT 1至电动机的正极经过整个直流电机后再通过VT 4到达零电位,完成整个的回路。此时直流电机正转。在HIN为低电平期间,LIN端输入高电平,VT 2、VT 3导通,在直流电机上加反
27、向工作电压。其具体的操作步骤如下:电源经VT 3至电动机的负极经过整个直流电机后再通过VT 2到达零电位,完成整个的回路。此时,直流电机反转。因此电枢上的工作电压是双极性矩形脉冲波形,由于存在着机械惯性的缘故,电动机转向和转速是由矩形脉冲电压的平均值来决定的。设PWM波的周期为T,HIN为高电平的时间为t1,这里忽略死区时间,那么LIN为高电平的时间就为T-t1。HIN信号的占空比为D=t1/T。设电源电压为V,那么电枢电压的平均值为:Vout= t1 - ( T - t1 ) V / T = ( 2 t1 T ) V / T = ( 2D 1 )V (3-3)定义负载电压系数为,= Vout
28、 / V, 那么 = 2D 1 ;当T为常数时,改变HIN为高电平的时间t1,也就改变了占空比D,从而达到了改变Vout的目的。D在01之间变化,因此在1之间变化。如果我们联系改变,那么便可以实现电机正向的无级调速。当=0.5时,Vout=0,此时电机的转速为0;当0.51时,Vout为正,电机正转;当=1时,Vout=V,电机正转全速运行。 图3-4 桥式可逆PWM变换器电路双极式控制可逆PWM变换器的四个驱动电压波形如图8所示。图3-5 PWM变换器的驱动电压波形他们的关系是:。在一个开关周期内,当时,晶体管、饱和导通而、截止,这时。当时,、截止,但、不能立即导通,电枢电流经、续流,这时。
29、在一个周期内正负相间,这是双极式PWM变换器的特征,其电压、电流波形如图2所示。电动机的正反转体现在驱动电压正、负脉冲的宽窄上。当正脉冲较宽时,则的平均值为正,电动机正转,当正脉冲较窄时,则反转;如果正负脉冲相等,平均输出电压为零,则电动机停止。双极式控制可逆PWM变换器的输出平均电压为 (3-4)如果定义占空比,电压系数则在双极式可逆变换器中调速时,的可调范围为01相应的。当时,为正,电动机正转;当时,为负,电动机反转;当时,电动机停止。但电动机停止时电枢电压并不等于零,而是正负脉宽相等的交变脉冲电压,因而电流也是交变的。这个交变电流的平均值等于零,不产生平均转矩,徒然增大电动机的损耗这是双
30、极式控制的缺点。但它也有好处,在电动机停止时仍然有高频微震电流,从而消除了正、反向时静摩擦死区,起着所谓“动力润滑”的作用。双极式控制的桥式可逆PWM变换器有以下优点:1)电流一定连续。2)可使电动机在四象限运行。3)电动机停止时有微震电流,能消除静摩擦死区。4)低速平稳性好,每个开关器件的驱动脉冲仍较宽,有利于保证器件的可靠导通。3.4检测回路检测回路利用光电编码器将转速直接转换成数字信号送入单片机进行处理。3.4.1 光电编码器 编码器是把角位移或直线位移转换成电信号的一种装置。前者成为码盘,后者称码尺按照读出方式编码器可以分为接触式和非接触式两种接触式采用电刷输出,一电刷接触导电区或绝缘
31、区来表示代码的状态是“”还是“”;非接触式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件时以透光区和不透光区来表示代码的状态是“”还是“”。 按照工作原理编码器可分为增量式和绝对式两种。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。本设计采用增量式光电编码器来采样转速信号,如图3-6所示。增量式编码器是专门了用来测量转动角位移的累计量。这里以三相编码器为例来介绍增量式编码器的工作原理及其结构。图3-6 编码器原理图增量式光电编码
32、器在圆盘上有规则地刻有透光和不透光的线条,在圆盘两侧安放发光元件和光敏元件。当圆盘随电机旋转时,光敏元件接受的光增量随透光线条同步变化,光敏元件输出波形经过整形后变成脉冲。码盘上有向标志,每转一圈z相输出一个脉冲。此外,为判断旋转方向,码盘还提供相位相差90的两路脉冲信号。将A、B两相脉冲中任何一相输入计数器中,均可使计数器进行计数。编码盘输出的z相脉冲用于复位计数器,每转一圈复位一次计数器。编码盘的旋转方向可以通过D触发器的输出信号Q来判断。整形后的A、B两相输出信号分别接到D触发器的时钟端和D输入端,D触发器的CLK端在A相脉冲的上升沿触发。由于A、B两相的脉冲相位相差90,当电机正转时,
33、B相脉冲超前A相脉冲90,触发器总是在B脉冲为高电平时触发,这时D触发器的输出端Q输出为高电平。当电机反转时,A相脉冲超前B相脉冲90,则D触发器总是在B脉冲为低电平时触发,这时Q输出端输出为低电平,由此确定电机的转动方向。 转速检测的精度和快速性对电机调速系统的静、动态性能影响极大。为了在较宽的速度范围内获得高精度和快速的数字测速,本设计使用每转1024线的光电编码器作为转速传感器,它产生的测速脉冲频率与电机转速有固定的比列关系,微机对该频率信号采用M/T法测速处理。3.4.2 M/T法测速原理 M/T法测速原理是在对光电编码器输出的测速脉冲数m1进行计数的同时对时钟脉冲的个数m2也进行计数
34、。原理如图3-7:图3-7 M/T法测速原理测速时间Td由测速脉冲来同步,即由图3-7电路实现Td等于整m1个脉冲周期。设从图3-7上a点开始,计数器分别对m1和m2计数,到达b点,预计的测速时间Tc到,微机发出停机指令,但因为Tc不一定恰好等于整数个编码输出脉冲周期,所以计数器仍对时钟脉冲计数,直到c点时,可以利用下一个转速脉冲上升沿(即c点)触发数字测速硬件电路使计数器停止计数。这样,m2代表了m1个测速脉冲周期的时间。设时钟脉冲频率为f0,光电编码器每转发出p个脉冲,则电机转速的计算公式为:n=(60*m1*f0)/(z*m2) (3-5)由于M/T法的计数值M1和M2都随着转速的变化而
35、变化,高速时,相当于M法测速,最低速时,M1=1,自动进入T法测速。因此,M/T法测速能适用的转速范围比较大,是目前广泛应用的一种测速方法。希望在低速获得高精度测速值,于是利用光码盘A,B两相输出在相位上互差90的二路脉冲经异或门二倍频再送入m1的计数器。这时,转速计算公式修改为: (3-6)3.5 键盘及显示电路键盘在单片机应用系统中能实现向单片机输入数据、传诵命令等功能,是人工干预单片机的主要手段.单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。键盘的工作方式的选取应根据实际应用系统中CPU工作的忙、闲情况而定。其原
36、则是既要保证能及时响应按键操作,又要不过多占用CPU的工作时间。3.5.1键盘/显示芯片8279简介Intel公司的8279是键盘/显示模块的核心控制器。如图12所示。它是一种实现键盘输入和段式数码显示控制的专用智能芯片。采用该芯片,可以大大简化单片机控制系统的软硬件设计,并且减轻CPU的负担。简单地说,它有以下一些功能: 与微处理器接口简单; 能自动实现按键的“去抖”和重键处理; 能以中断或查询两种方式工作; 能按FIFO(先进先出)方式实现8个键值的 缓冲 常规情况下,能同时管理64个物理键和16个八段数码管。其引脚定义如下: DB0DB7:双向数据总线/RD、/WR:读写选通信号 /CS
37、:片选信号 RESET:复位信号 CLK:时钟信号 A0:命令/状态或数据识别信号A=1,为写命令或读状态; A=0,为数据 IRQ:中断请求信号SL0SL3: 矩阵扫描线 RL0RL7: 检测输入线 /BD: 显示消隐信号 SHIFT: 扩展键位的换档信号,带上拉电阻 CTRL/STB: 控制键输入/选通信号输入,带上拉电阻 3.5.2键盘设计采用4*4式键盘,分数字部分和控制部分,如图下表所示。数字部分用来输入给定转速,控制部分用来控制电机的运行。0123456789取消确认测速停车 图3-8显示器图输入给定转速时应注意的几个问题:(1)转速不足四位时,在前面加拨0凑够四位;(2)转速输入
38、错误时,按取消键,显示器清空,重新输入值;(3)转速输入完成后,按确认键。3.5.3显示器设计 采用共阴极的发光二极管构成可以显示4位十进制的显示器,运行中显示当前的实际转速值。如上图示。8279与单片机、键盘和显示器的外围总接线如图3-9示。 图 3-9显示器/键盘驱动电路由于8279芯片有自动分时扫描功能,所以它可与CPU同时工作,减轻CPU的负担,而且接口方便,显示稳定,程序简单,可靠性高。3.6电源电路 电源电路采用78系列芯片产生+5V、+15V。电路图如图3-10:图3-10 78系列的电源电路78XX,XX就代表它所输出的电压值,能降低电压4-5V电子产品中常见到的三端稳压集成电
39、路有正电压输出的78系列和负电压输出的79系列。故名思义,三端IC是指这种稳压用的集成电路只有三条引脚输出,分别是输入端、接地端和输出端。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。有时在数字78或79后面还有一个M或L,如78M12或79L24,用来区别输出电流和封装形式等,其中78L调系列的最大输出电流为100mA,78M系列最大输出电流为1A,78系列最大输出电流为1.5A。在实际应用中,
40、应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏。4系统软件设计4.1 PWM实现方式调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便。4.1.1 定时器/计数器由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为f,
41、定时器计数器为N位,则定时器初值与定时时间的关系为: (4-1) 式中,TW定时器定时初值;N一个机器周期的时钟数。N随着机型的不同而不同。在应用中,应根据具体的机型给出相应的值。本设计中单片机采用12MZ的晶体振荡器,故N为6。这样,我们可以通过设定不同的定时初值TW,从而改变占空比,进而达到控制电机转速的目的。4.1.2 PWM产生程序#include#define uchar unsigned charuchar num;sbit PWM=P10;void init() TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; EA=1;
42、ET0=1; TR0=1;void T0_timer() interrupt 1 TH0=(65536-500)/256; TL0=(65536-500)%256; num+;void main() init(); while(1) if(num=4) PWM=PWM; num=0; 4.2 系统程序设计4.2.1主程序及系统初始化模块主程序完成实时性要求不高的功能,完成系统初始化后,实现键盘处理、刷新显示、与上位计算机和其他外设通信等功能,如图4-1。初始化子程序完成硬件器件工作方式的设定、系统运行参数和变量的初始化等,如图4-2。图4-1 主程序流程图 图4-2 初始化子程序 主程序主要完
43、成键盘/显示芯片8279、内部定时/计数器T0、T1测速和变量的初始化。此程序共有2个中断源:外部中断0,用于电机故障处理;外部中断1,用于键盘输入处理。 4.2.2 中断程序设计外部中断0模块设计外部中断0是故障中断,优先级最高。当电机出现问题时向CPU申请中断。响应中断后封锁PWM输出,使电机停转。外部中断1模块设计外部中断1是键盘输入中断,高优先级。当键盘有输入值时,8279向CPU申请中断。读取键值,按其实际功能进行操作。内部定时器T0溢出中断设计转速测定为M/T式编码盘测速,要通过测取给定时间内的编码盘输出的脉冲数。T0用来定时,T1用来计数,T0和T1均工作于方式1。T0定时50m
44、s,单片机的时钟频率为12MHz,机器周期为1us,4.2.3 中断子程序模块中断服务子程序完成实时性强的功能,如故障保护、PWM生成、状态检测和数字PID调节等,中断服务子程序由相应的中断源提出申请,CPU实时响应。 图4-3 转速调节中断子程序框图 图4-4故障保护中断子程序框图当故障保护引脚的电平发生跳变时申请故障保护中断,而转速调节采用定时中断。两种中断服务中,故障保护中断优先级别最高,转速调节中断级别次之。 4.3键盘/显示模块设计键盘/显示模块核心控制器件是8279,由软件设置为8字符显示,左端送入,编码扫描键盘,双键互锁,内部时钟频率设置为100KHz。按键操作由终端导入,静态显示方式。选通个位?是否选通个位?是否选通个位?是否选通个位?