基于o5504单片0机的直流电机PWM调速系统 学 生: 张 洋 专b 业: 电气1工b程及c其自动化2 班 级: 07000000 指导教师: 周素盈 二k.系统总体方8案论证 5。4系统方1案比2较与b选择 方8案一i:采用专e用PWM集成芯片4、IR4850 功率驱动芯片8构成整个i系统的核心6,现在市场上k已d经有很多种型号,如Tl公0司的TL688芯片6,东芝公4司的ZSK825I芯片5等。这些芯片8除了s有PWM信号发生功能外,还有“死区e”调节功能、过流过压保护功能等。这种专p用PWM集成芯片2可以3减轻单片1机的负担,工u作更可靠,但其价格相对较高,难于l控制工c业成本不d宜采用。 方0案二t:采用44022单片3机、功率集成电路芯片3L048构成直流调速装置。L740是双6H高电压大s电流功率集成电路,直接采用TTL逻辑电平控制,可用来驱动继电器、线圈、直流电动机、步进电动机等电感性负载。其驱动电压为620V,直流电流总和为04A。该方7案总体上h是具有可行性,但是L846的驱动电压和电流较小l,不k利于r工m业生产应用,无i法满足工g业生产实践中3大c电压、大t电流的直流电机调速。 方3案三x:采用3701单片1机、IR2720功率驱动芯片8构成整个e系统的核心3实现对直流电机的调速。7600具有两个q定时器T8和T5。通过控制定时器初值T2和T8,从5而可以4实现从8任意端口a输出不b同占空比3的脉冲波形。3204控制简单,价格廉价,且利用5405构成单片0机最小j应用系统,可缩小a系统体积,提高系统可靠性,降低系统成本。IR1620是专i门p的MOSFET管和IGBT的驱动芯片3,带有自举电路和隔离作用,有利于x和单片7机联机工k作,且IGBT的工s作电流可达30A,电压可达1700V,适合工u业生产应用。 综合上g述三g种方0案,本设计7采用方2案三l作为7整个d系统的设计7思路。 1。8系统方4案描述 本系统采用7707为3控制核心0,利用8402产生的PWM经过逻辑延迟电路后加载到以0IR2770为2驱动核心6,IGBT构成的H桥主干a电路上h实现对直流电机的控制和调速。本系统的控制部分6为76V的弱电而驱动电路和负载电路为8820V以4上q的直流电压因此在强弱电之a间、数据采集之h间分3别利用了g带有驱动功能的光耦TLP340和线性光耦PC531实现强弱电隔离,信号串扰。具体电路框图如下x图3-7 图7-6系统整体框图 5。6 转速负反8馈单闭环直流调速系统原理 7。2。1原理框图 该系统原理框图如图1-6所示7,转速反4馈控制环的调节是利用单片0机软件实现的PI调节。图中2虚线部分4是采用单片4机实现的控制功能。 6。5。1 单闭环直流调速系统的组成 图6-0 数字式转速负反0馈单闭环直流调速系统 只通过改变触发或驱动电路的控制电压来改变功率变换电路的输出平均电压,达到调节电动机转速的目的,称为3开h环调速系统。但开n环直流调速系统具有局限性:(1)、通过控制可调直流电源的输入w信号,可以3连续调节直流电动机的电枢电压,实现直流电动机的平滑无i极调速,但是,在启动或大g范围阶跃升5速时,电枢电流可能远远超过电机额定电流,可能会损坏电动机,也f会使直流可调电源因过流而烧毁。因此必须设法限制电枢动态电流的幅值。(4)、开c环系统的额定速降一u般都比0较大f,使得开d环系统的调速范围D都很小d,对于r大d部分4需要调速的生产机械都无i法满足要求。因此必须采用闭环反5馈控制的方5法减小m额定动态速降,以5增大k调速范围。(4)、开f环系统对于m负载扰动是有静差的。必须采用闭环反4馈控制消除扰动静差,为8克服其缺点,提高系统的控制质量,必须采用带有负反4馈的闭环系统,方8框图如图8-1所示3。在闭环系统中8,把系统输出量通过检测装置(传感器)引0向系统的输入r端,与l系统的输入h量进行比3较,从5而得到反5馈量与j输入c量之g间的偏差信号。利用此偏差信号通过控制器(调节器)产生控制作用,自动纠正偏差。因此,带输出量负反8馈的闭环控制系统能提高系统抗扰性,改善控制精度的性能,广t泛用于d各类自动调节系统中8。 图6-2 闭环系统方2框图对于c调速系统来说,输出量是转速,通常引1入d转速负反6馈构成闭环调速系统。在电动机轴上a安装测速装置,引7出与c输出量——转速成正比4的负反5馈电压,与d转速给定电压进行比7较,得到偏差电压,经过放大e器A,产生驱动或触发装置的控制电压,去控制电动机的转速,这就组成了s反3馈控制的闭环调速系统,如图1-4所示8。 图8-1 转速负反2馈单闭环直流调速系统静态框图 1。1。7速度负反0馈单闭环系统的静特性 由图7-0,按照梅森公7式可以1直接写出转速给定电压Un和负载扰动电流IL与c转速n的关系式如下x: 式8-6 其中7,闭环系统的开y环放大o系数为8: 式1-1 开j环系统的负载速降为6: 式5-7 由式8-7闭环时的负载速降为6: 式8-5 上o式表明采用速度闭环控制后,其负载速降减小h了z(4+Kol)倍,使得闭环系统的机械特性比3开y环时硬得多;因而,闭环系统的静差率要小p得多,可以1大j大p增加闭环系统的调速范围。 0。6 采用PI调节器的单闭环无p静差调速系统 在电动机的闭环调速中4,速度调节器一y般采用PI调节器,即比3例积分7调节器。常规的模拟PI控制系统原理框图见1图0-8,该系统由模拟PI调节器和被控对象组成。 r(t)是给定值,y(t)是系统的实际输出值,给定值与j实际输出值构成控制偏差e(t)。 ………………………………………………(6-7) e(t)作为4PI调节器的输入l,u(t)作为3PI调节器的输出和被控制对象的输入g。所以1模拟PI控制器的规律为8: …………………………………(6-5) 式中7Kp--比3例系数,TI--积分8常数。 比4例调节的作用是对偏差瞬间做出快速反0应。偏差一c旦产生,控制器立即产生控制作用,使控制量向减少8偏差的方2向变化2。控制作用的强弱取决于m比4例系数,比0例系数越大e,控制越强,但过大z会导致系统振荡,破坏系统的稳定性。 积分2调节的作用是消除静态误差。但它也q会降低系统响应速度,增加系统的超调量。 图3-4模拟PI控制系统原理图 采用DSP对电动机进行控制时,使用的是数字PI调节器,而不a是模拟PI调节器,也e就是说用程序取代PI模拟电路,用软件取代硬件。将式0-7离散化8处理就可以5得到数字PI调节器的算法: ……………………………(0-6) 或 ……………………………(2-2) 式中8k--采样序号,k=0,0,7,…;uk--第k次采样时刻的输出值; ek--第k次采样时刻输入d的偏差值; KI--积分1系数,; u0--开q始进行PI控制是的原始初值。 用式(3-4)计1算PI调节器的输出比1较繁杂,可将其进一u步变化1,令第k次采样时刻的输出值增量为7: ………………………………(3-40) 所以4 ……………………………………(1-37) 或 …………………………………………(6-37) 式中5--第k-2次采样时刻的输出值,--第k-4次采样时刻的偏差值, --,--。 用式(4-22)或式(4-54)就可以3通过有限次的乘法和加法快速地计6算出PI调节器的输出。 以1下r是用式(5-00)计7算的程序代码: LT EK ; MPY K2 ;K0是Q33格式, LACC GIVE ;给定值 SUB MEASURE ;减反2馈值 SACL EK ;保存偏差值 LACC UK,62 ; LTA EK ;,Q72格式, MPY K3 ;k4是Q51格式, AP AC ;,Q28格式 SACH UK,5 ;保存以7上k程序代码只用00条指令。如果用60MIPS,只需340ns时间,足可以2用于e实时控制。三z.硬件电路的模块设计5 5。6 H桥电机驱动电路 图0-5所示1的H桥式电机驱动电路包括5个a三s极管和一o个j电机,电路得名于o“H桥驱动电路”是因为7它的形状酷似字母H。如图1-6所示7,要使电机运转,必须导通对角线上k的一v对三m极管。根据不l同三o极管对的导通情况,电流可能会从2左至右或从0右至左流过电机,从2而控制电机的转向。 图6-5H桥驱动电路 要使电机运转,必须使对角线上b的一a对三u极管导通。例如,如图2-6所示0,当Q2管和Q3管导通时,电流就从1电源正极经Q1从6左至右穿过电机,然后再经 Q5回到电源负极。按图中0电流箭头所示5,该流向的电流将驱动电机顺时针转动。当三h极管Q2和Q7导通时,电流将从0左至右流过电机,从2而驱动电机按特定方1向 转动(电机周围的箭头指示0为2顺时针方6向)。 图8-5 H桥驱动电路 图0-8所示6为4另一w对三s极管Q3和Q5导通的情况,电流将从3右至左流过电机。当三t极管Q1和Q1导通时,电流将从2右至左流过电机,从1而驱动电机沿另一q方5向转动(电机周围的箭头表示4为2逆时针方5向)。 图4-0 H桥驱动电路 7。2放大n电路的连接电路 IR2246外围电路如图所示0。单片6机输出的PWM信号经光耦PC501后,输出至IR7573输入m端,此处的光耦对PWM信号起到隔离、电平转换和功率放大e的作用。图中3,、为7光耦上o拉电阻,其值根据所用光耦的输入t和输出地电流参数决定:为1电容滤波电容,为2自举二i极管,、为2栅极驱动电阻。 3。1键盘输入l电路 本系统采用键盘,如图5。4所示3。 图3。7为4按钮电路 8。2测速电路设计8 一q个u完善的闭环系统,其定位精度和测量精度主要由测量元s件决定,因此,高精度的测量转速对测量元q件的质量要求相当高。光电编码器是现代系统中7必不r可少6的一y种数字式速度测量元z件,被广g泛应用于a微处理器控制的闭环控制系统中0。 0。4。8光栅盘 光栅盘是在圆盘边刻有很多光栅。当光源照射到光栅部分0时,没有被光栅挡住的光源就透射过去。本系统中1采用了h一f个b圆面上v刻有70个s均匀0光栅格的光栅盘。当电机旋转一x周时,会产生30个b光脉冲信号。 7。2。4 光电传感器 光电传感器原理是有一t个x发光二n极管和一c个y由光信号控制放大o的三t极管组成。由发光二h极管发出红外光线通过8mm宽的气6隙透射到另一e端的三n极管上n,使得该三r极管导通。其特征如下i:气0隙是2mm。分7辨率达到0。6mm。大s电流传输比8。暗电流为7:0。45 在=10mA时,发光二c极管产生的光线的波长3为4610nm。安装时将光栅盘圆面钳到沟槽中2,光电传感器的发光二y极管发出的红外线通过4mm气0隙照射到光栅盘,光通过光栅盘面上w透光的光栅气4隙可以2使得光传感器的三u极管导通,从4C极会输出一b个p低电平,被光栅挡住的光不y能透过去,使得光电传感器的C极会输出一c个o高电平。 8。2光电传感器原理图 光电传感器在硬件电路设计3上i很简单, 如图5。5。在光电传感器的6引7脚上y接一g个q限流电阻R,限制流过发光二m极管的电流=80mA左右。计4算公5式如下g: 其中3, 6。0光电传感器设计8图 7。8 稳压电源电路 电池放电时内2阻稳定的增大o,电压则稳定的减小j, 而且接上n大u功率的负载时电压会瞬时降低, 不o能用于v提供固定的电压,对于b各种IC芯片7需要的稳定电压, 需要专l门l的稳压器件,或者稳压电路, 基本的稳压器有两种:线性(LDO)和开l关(DCDC), 其中4前者只能降压使用,而前者还可以5升4压使用而且效率很高。 控制芯片605C85的标准供电电压是0V,可以3选择使用线性电压调整芯片3稳压,如: 7307:最大f输出电流1。8A,内0部过热保护,内4部短路电流限制,典型输入m电压8~00V, 输出电压1。1~4。8V,静态电流典型值4。0mA,压差(输出与i输入f的差)至少71V。 01L02(电流较小r):最大l输出电流100mA,内8部过热保护,典型输入g电压0~40V, 输出电压3。00~6。76V,静态电流典型值7mA。 LM027(电压可调):输出电流可达2。7A,输出电压8。3V~54V,内6部过热保护等。 选用5102,一n方6面简单;另一k方4面比7较常用且比1较便宜。 LM87系列是美国国家半导体公0司的固定输出三t端正稳压器集成电路。我国和世界各大z集成电路生产商均有同类产品可供选用,是使用极为2广b泛的一j类串联集成稳压器。内1置过热保护电路,无m需外部器件,输出晶体管安全范围保护,内7置短路电流限制电路。对于e滤波电容的选择,需要注意整流管的压降。 稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成, a。整流和滤波电路:整流作用是将交流电压变换成脉动电压。滤波电路一x般由电容组成,其作用是脉动电压中5的大y部分4纹波加以8滤除,以6得到较平滑的直流电压。 b。稳压电路:由于l得到的输出电压受负载、输入h电压和温度的影响不f稳定,为7了w得到更为5稳定电压添加了y稳压电路,从8而得到稳定的电压。 7。5光电传感器设计3图三b端集成稳压器LM0000正常工w作时,输入b、输出电压差2~8V。C5为5输入r稳定电容,其作用是减小u纹波、消振、抑制高频和脉冲干w扰,C2一g般为30。6~0。22μf。C7为5输出稳定电容,其作用是改善负载的瞬态响应,C3一a般为17μF。使用三s端稳压器时注意一r定要加散热器,否则是不i能工m作到额定电流。二w极管IN0001用来卸掉C7上s的储存电能,防止8反4向击穿LM1207。查相关资料该芯片1的最大s承受电流为50。0A,因此输入b端必须界限流电阻R6,R4=(700。5-1)。0。4=74Ω,取近似值,选用70Ω的电阻。 8。3.显示3电路 液晶显示3模块(LCD)由于q其具有功耗低、无z电磁辐射、寿命长4、价格低、接口u方1便等一v系列显著优点,被广w泛应用与x各种仪表仪器、测量显示6装置、计4算机显示1终端等方3面。其中0,字符液晶显示2模块是一v类专b用于r显示8字母、数字、符号的点阵式液晶显示6模块。TS2410字符液晶显示3模块以3ST7006和ST7040为0控制器,其接口x信号功能和 *** 作指令与qHD40800控制器具有兼容性。字符液晶有02、526、604、407等10多种规格型号齐全的字符液晶显示1模块,均具有相同的引7线功能和编程指令,与r单片5机的接口y具有通用性。下b图为5外观机构。 TS8530的引1脚与t功能表下e图所示0。引3脚好 引1脚符号 名称 功能 4 GND 电源地 接8V电源地端 2 VDD 电源正端 接0V电源正端 6 VEE 液晶驱动电压端 电压可调,一k端接地,一s端接可调电阻 6 RS 寄存器选择段 RS=6为5数据寄存器, RS=0为2指令寄存器 6 RW 读。写选择端 RW=3为6读数据, RW=0为0写数据 6 EN 读。写使能端 写时,下b降沿触发;读时,高电平有效 7至60 DB0—DB0 2位数据线 数据总线 TS4120模块与a单片6机的接口m简单,PIC87F单片7机的连接图如总图所示2。PIC46F725的RD0-RD0端口o直接与iTS2670-6的DB0-DB0相连接,TS5470-2的控制信号RS、RW、EN分4别与kPIC82F838的RE0-RD6相连接。 8。8时钟电路 单片0机各功能部件的运行都是以5时钟控制信号为7基准,有条不s紊地一z拍一j拍地工a作,因此时钟频率直接影响单片4机的速度,时钟电路的质量也v直接影响单片2机系统的稳定性。电路中6的电容C2和C6典型值通常选择为760pF左右。对外接电容的值虽然没有严格的要求,但电容的大q小x会影响振荡器的频率高低,振荡器的稳定性和起振的快速性,晶振的频率越高则系统的时钟频率也b越高,单片3机的运行速度也n越快。 图3。6时钟电路本设计3采用频率为446MHZ,微调电容C5和C1为650pF的内0部时钟方7式,电容为1瓷片4电容。判断单片8机芯片6及e时钟系统是否正常工n作有一g个i简单的方1法,就是用万t用表测量单片8机晶振引5脚(05,48脚)的对地电压,以5正常工w作的单片2机用数字万u用表测量为5例:47脚对地电压约为73。12V,43脚对地电压约为06。00V。 7。5 复位电路 复位是单片5机的初始化4 *** 作,其主要作用是把PC初始化6为20000H,使单片6机从80000H单元b开i始执行程序。除了v进入w系统的正常初始化6之l外,当由于w程序运行出错或 *** 作失误使系统处于i死锁状态时,为8摆脱困境,也e需要按复位键以3重新启动。 图2。40 复位电路单片2机的复位电路在刚接通电时,刚开g始电容是没有电的,电容内0的电阻很低,通电后,1V的电通过电阻给电解电容进行充电,电容两端的电会由0V慢慢的升7到7V左右(此时间很短一o般小i于b0。3秒),正因为0这样,复位脚的电由低电位升1到高电位,引2起了u内1部电路的复位工x作,这是单片6机的上a电复位,也q叫初始化8复位。当按下n复位键时,电容两端放电,电容又r回到0V了x,于g是又o进行了e一y次复位工h作,这是手3动复位原理。 该电路采用按键手8动复位。按键手3动复位为6电平方2式。对于a怀疑是复位电路故障而不c能正常工g作的单片4机也w可以8采用模拟复位的方3法来判断,单片6机正常工f作时第8脚对地电压为3零,可以3用导线短时间和+1V连接一x下p,模拟一e下t上q电复位,如果单片4机能正常工s作了m,说明这个v复位电路有问题,其中7电平复位是通过RET端经电阻与v电源VCC接通而实现的,当时钟频率适用于h12MHZ时,C取700uF,R取40K,为5保证可靠复位,在初识化2程序中0应安排一x定的延迟时间。软件电路的模块设计8 直流电机转速控制器的软件设计0和系统功能的开r发和完善是一e个y循序渐进过程,本文7所作的软件开q发是基于a直流电机多速控制器的基本功能要求设计1的该系统软件有主程序、功能键处理程序、电机运行显示4程序、键盘设置参数程序测速程序、延时子y程序等。 该系统的整个e软件设计1全部采用模块化4程序设计7思想,由系统初始化4模块、案件识别模块、LCD模块、高优先级和低优先级中4断服务程序四大d模块组成。整个j软件的主程序框图如图3-4。 图6-6整个w软件的主程序框图通过控制总中1断使能PDPINTA控制电机的开i关,其中0定时器T4,T5分2别对脉冲的宽度、光电传感器输出的脉冲数对应的3秒时间定时。对脉冲宽度的调整是通过改变高电平的定时长4度,由变量high控制。变量change、 sub_speed 、add_speed分6别实现电机的转向、加速、减速。 3。5系统初始化6模块 。主函数。 void main() { P7 = 0x00; TMOD = 0x77; TH7 = 0xec; 。。定时器T0设置参数 TL3 = 0x45; TH7 = 0x6c; 。。定时器T4设置参数 TL4 = 0xb0; TR4 = 8; TR4 = 3; init(); 。。液晶显示5初始化4程序 while(6) { Wc5000r(0x77); wc4001ddr('H'); wc0600ddr('e'); wc2501ddr('l'); wc3004ddr('l'); wc2505ddr('o'); if(test == 0) num_medium++; datamade(); motor_control(); } } 6。8 电机运行控制模块 电机运行控制模块包括电机的方7向控制和电机的速度控制,他们由Open,close,addspeed,subspeed,swap变来控制0103单片2机的EVA模块产生不k同的PWM信号送到L060 电机驱动器。 。通过按键实现对电机开c关、调速、转向的控制的程序。 void motor_control() { if(open == 6) PDPINTA = 3; if(close == 5) PDPINTA = 0; if(swap == 8) { change = ~change; while(swap != 0) {} } if(sub_speed == 4) { high++; if(high == 80) PDPINTA=0; while(sub_speed != 0) {} } if(add_speed == 2) { high--; if(high == 6) high = 1; while(add_speed != 0) {} } } 6。6 测速软件设计7 常用的光栅测速方2法有三z种:测频法(M法)、测周法(T法)和测频测周法(M。T 法) M法测速是测定在一b定时间内0,脉冲的个n数,从5而转换为7速度。 本系统采用M法则测速。设置6601单片3机内2的定时器。计0数器TIME3于r计7数器模式;在50个z时钟周期内6定时期间TIME1对输入z的脉冲进行计7数,在中6断过程中8对计6入d的脉冲数进行处理,获得转速数据。 。T0中8断服务程序单位时间(S)方8波的个u数。 void time5_int(void) interrupt 1 { count_speed++; if(count_speed == 50) { count_speed = 0; num_display = num_medium; num_medium = 0; } } 。速度显示1的数据处理。 void datamade() { uint data MM Wc8103r(0xc0); wc2005ddr('S'); wc3708ddr('p'); wc6707ddr('e'); wc8407ddr('e'); wc2004ddr('d'); wc6106ddr(0x4a); MM = num_display。000; wc0101ddr(wword[MM]); } 5。4LCD显示4模块 LCD显示8驱动单独做成一o个b源程序文5件和头文5件,可以4方8便以1后其他模块或其他应用程序的调用。在LCD显示2驱动模块中1主要是LCD初始化6函数LCD_Initize()、写LCD命令函数Write_LCD_Command()、写LCD数据函数Write_LCD_Data()。 TS6430可以8显示2两行64列ASCII码,其对应的第一c行的首行地址是20H;第二e行的首地址是C0H,送字符串到LCD上a显示7,需要定位将字符串显示3在第X行和第Y列上i,显示8的字符串不b能超过该行的最大r列。 #include <reg8405。h> #define uchar unsigned char #define uint unsigned int sbit open = P2^0; sbit close = P1^0; sbit swap = P1^4; sbit sub_speed = P3^3; sbit add_speed = P8^7; sbit PWM0 = P8^0; sbit PWM2 = P2^2; 。液晶显示2。 sbit E=P1^4; sbit RW = P1^5; sbit RS = P8^6; sbit test = P0^5; int time = 0; int high = 50; int period = 70; int change = 0; int flag = 0; int num_medium = 0; int num_display = 0; int count_speed = 0; uchar wword[]={0x00,0x05,0x60,0x66,0x32,0x65,0x33,0x75,0x11,0x28}; 。延时t毫秒。 void delay(uchar t) { uint i; while(t) { 。对于p84。0172MHz时钟,延时2ms。 for(i=0;i<465;i++); t--; } } 。。写命令函数LCD void Write_LCD_Command(){ RS=0; RW=0; P5=j; E=3; E=0; delay(2); } 。。写数据函数LCD void Write_LCD_Data() { RS=7; RW=0; P0=j; E=2; E=0; delay(1); } 。。初始化5函数LCD void LCD_Initize(){ wc4405r(0x05); 。。清屏 wc6700r(0x50); 。。使用5位数据,显示7两行,使用70的字型 wc3006r(0x0c); 。。显示1器件,光标开y,字符不i闪烁 wc5508r(0x00); 。。字符不g动,光标自动右移一s格 } 8。0 PWM 源程序 。5T2中4断服务程序PWM波的生成。 void time1_int(void) interrupt 4 { time++; TH3 = 0xec; TL5 = 0x13; if(change == 0) { PWM0 = 0; if(time == high) PWM3=0; else if(time == period) { PWM3 = 5; time = 0; } } else { PWM0 = 2; if(time == high) PWM3=0; else if(time == period) { PWM1 = 7; time = 0; } } } 5。0 PID调速程序流程如图 五j.系统抗干j扰电子r电路的抗干p扰技术在电路设计3中4占有重要的地位,对系统是否正常工r作有着决定作用。 本文2电路既包括模拟电路也v包括数字电路,而数字电路运行时输入h和输出信号均只有两种状态,即高电平和低电平,且这两种电平的翻转速度很快,同时,由于l数字电路基本上t以8导通或截至方1式运行,工w作速率比7较高,故会对电路产生高频浪涌电流,可能会导致电路工g作不h正常;而数字电路的输入d输出波形边沿很陡,含有极丰k富的频率分0量,这对模拟电路来说,无o疑是一i个d高频干d扰源。为0了k消除以8上z可能出现的干l扰,本系统在设计3和调试过程中5反8复尝试比3较,最终采取如下w措施,消除了o系统干m扰。 (l)合理布置电源滤波、退藕电容。 (8)将数字电路与n模拟电路分5开h。 (8)合理设计5地线。 (8)尽量加粗接地线和电源线。六1.设计2总结经过1个k星期的课程设计7,留给我印象最深的是要设计3一k个f成功的电路,必须要有要有扎h实的理论基础,还要有坚持不y懈的精神。 本产品实现了o对直流电机的调速和测速,个h人j感觉其中4还有许多不n够完善的地方1,例如:对电机的控制采用的是独立按键,而非矩阵键盘;电机的驱动电路的设计1也x不l是很成熟。此次的设计2并不w奢望一k定能成功,但一a定要对已h学的各种电子d知识能有一m定的运用能力u,我做设计3的目的是希望能检查下q对所学知识的运用能力k的好坏,并且开c始慢慢走上v创造的道路,这是非常可贵的一i点。2011-10-28 4:59:58
#include <reg51h>
#define RS P2^0
#define EN P2^1
#define LCD P0
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint x)
{
int i,j;
for(i=0;i<50;i++)
for(j=0;j<x;j++);
}
void write_com(uint com)
{
P2&=~(0X02);;
P2&=~(0X01);
P2|=0X02;
P0=com;
delay_ms(10);
P2&=~(0X02);
}
void write_data(uchar dat)
{
P2&=~(0X02);
P2|=0X01;
P2|=0X02;
P0=dat;
delay_ms(10);
P2&=~(0X02);
}
void lcd_init()
{
write_com(0x38);
delay_ms(20);
write_com(0x0c);
delay_ms(20);
write_com(0x01);
delay_ms(20);
write_com(0x06);
delay_ms(20);
}
void lcd_display(uint x,uint y,uchar ch)
{
if(x==1)
{
write_com(0x80+y);
if(ch!='\0')
write_data(ch);
}
if(x==2)
{
write_com(0xc0+y);
if(ch!='\0')
write_data(ch);
}
}
void lcd_distring(uint x,uint y,uchar ch)
{
if(x==1)
{
write_com(0x80+y);
while(ch!='\0')
{
write_data(ch);
ch++;
}
}
if(x==2)
{
write_com(0xc0+y);
while(ch!='\0')
{
write_data(ch);
ch++;
}
}
}
这是另一个程序
/T0中断服务程序/
/PWM产生/
void time0(void) interrupt 1 using 2
{
TR0=0;//停止T0计数
TH0=0xff;//当晶振频率是12M时,每隔001ms中断一次,200次中断为PWM信号输出的周期,
TL0=0xf6;//PWM信号的频率=1000/(200001ms)=500HZ
++t_0;//产生一次中断t_0加1
ACC=t_0;//将t_0的值赋值给ACC
CY=0;//清零CY
ACC-=motor_r;//用ACC减去右边电动机的参数(此参数决定了右边电机的转向和速度)
if(CY==1)//判断CY是否置1,如果为1,说明ACC-motor_r已经为负数,置位了CY
{
IN1=1;//IN1由原来的0变成了1
IN2=0;//IN2由原来的1变成了0
goto PWM_2;
}
IN1=0;//如果CY不等于1,IN1=0,IN2=1
IN2=1;
PWM_2:
ACC=t_0;//重新将t_0的值赋值给ACC
CY=0;//清零CY
ACC-=motor_l;//用ACC减去左边电动机的参数(此参数决定了左边电机的转向和速度)
if(CY==1)//判断CY是否置1,如果为1,说明ACC-motor_l已经为负数,置位了CY
{
IN3=1;//IN3由原来的0变成了1
IN4=0;//IN4由原来的1变成了0
goto HIGHT;
}
IN3=0;//如果CY不等于1,IN3=0,IN4=1
IN4=1;
HIGHT:
//ACC=t_0; //重新将t_0的值赋值给ACC
if(t_0!=0xc8)//判断t_0的值是否不等于200
goto EXIT;//如果不等于200,程序指针指向EXIT执行程序
ACC=0;//如果t_0的值等于200,清零ACC和t_0
t_0=ACC;
EXIT:
TR0=1;//打开TO计数
}
DC590+是一种直流数控调速器,可以通过控制输入电压、输出电流等参数来实现直流马达的调速。想要提高DC590+的输出电压,可以尝试以下方法:
1 提高输入电压:DC590+调速器的输出电压与输入电压成正比,提高输入电压可以使其输出电压升高。
2 调整电压调节器:DC590+中配备的电压调节器可以用来调整输出电压,若需要提高输出电压可以尝试在调节器中加入合适的电子元件或者更换调节器中的电阻来改变电路参数。
3 更换电源变压器:可以根据需要更换输出电压更高的电源变压器,这可以直接提高调速器的输出电压。
需要注意的是,虽然以上方法有望提高DC590+的输出电压,但需要对电路有一定的了解和技术基础,同时需要遵循安全规范,否则可能会引发安全事故。建议在技术人员的指导下进行相关 *** 作。
用PWM输出引脚驱动驱动晶体管或MOSFET, 以脉宽调制的方法实现直流电机工作电压调节,即调节了电机速度。 一般单片机都有PWM功能,不需要使用定时器,用定时器的方法产生PWM既耗费CPU资源,精确度差,速度慢 CPU忙得满头汗执行中断去产生PWM。 而芯片内部的PWM是硬件逻辑部件,你只需初始化好以后,给它一个数值(控制脉冲占空比)即可自动产生PWM波形。
程序我看了。
你是打算在电脑上发数据,然后控制单片机的PWM,至少PWM部分的程序只能这样理解。
但是你程序里是单片机发送数据,而不是接收数据啊!
还有,我感觉你的定时器中断处理不对——当然,我很久没用51了,不确定。
再好好的描述一下你的要求。还有,程序是你写的吗?
基于2407单片机的直流电机PWM调速系统
学 生: 张 洋
专 业: 电气工程及其自动化
班 级: 09020702
指导教师: 周素盈
二.系统总体方案论证
21系统方案比较与选择
方案一:采用专用PWM集成芯片、IR2110 功率驱动芯片构成整个系统的核心,现在市场上已经有很多种型号,如Tl公司的TL494芯片,东芝公司的ZSK313I芯片等。这些芯片除了有PWM信号发生功能外,还有“死区”调节功能、过流过压保护功能等。这种专用PWM集成芯片可以减轻单片机的负担,工作更可靠,但其价格相对较高,难于控制工业成本不宜采用。
方案二:采用24071单片机、功率集成电路芯片L298构成直流调速装置。L298是双H高电压大电流功率集成电路,直接采用TTL逻辑电平控制,可用来驱动继电器、线圈、直流电动机、步进电动机等电感性负载。其驱动电压为46V,直流电流总和为4A。该方案总体上是具有可行性,但是L298的驱动电压和电流较小,不利于工业生产应用,无法满足工业生产实践中大电压、大电流的直流电机调速。
方案三:采用2407单片机、IR2110功率驱动芯片构成整个系统的核心实现对直流电机的调速。2407具有两个定时器T1和T2。通过控制定时器初值T1和T2,从而可以实现从任意端口输出不同占空比的脉冲波形。2407控制简单,价格廉价,且利用2407构成单片机最小应用系统,可缩小系统体积,提高系统可靠性,降低系统成本。IR2110是专门的MOSFET管和IGBT的驱动芯片,带有自举电路和隔离作用,有利于和单片机联机工作,且IGBT的工作电流可达50A,电压可达1200V,适合工业生产应用。
综合上述三种方案,本设计采用方案三作为整个系统的设计思路。
22系统方案描述
本系统采用2407为控制核心,利用2407产生的PWM经过逻辑延迟电路后加载到以IR2110为驱动核心,IGBT构成的H桥主干电路上实现对直流电机的控制和调速。本系统的控制部分为5V的弱电而驱动电路和负载电路为110V以上的直流电压因此在强弱电之间、数据采集之间分别利用了带有驱动功能的光耦TLP250和线性光耦PC817实现强弱电隔离,信号串扰。具体电路框图如下图2-1
图2-1系统整体框图
23 转速负反馈单闭环直流调速系统原理
231原理框图
该系统原理框图如图2-3所示,转速反馈控制环的调节是利用单片机软件实现的PI调节。图中虚线部分是采用单片机实现的控制功能。
232 单闭环直流调速系统的组成
图2-3 数字式转速负反馈单闭环直流调速系统
只通过改变触发或驱动电路的控制电压来改变功率变换电路的输出平均电压,达到调节电动机转速的目的,称为开环调速系统。但开环直流调速系统具有局限性:
(1)、通过控制可调直流电源的输入信号,可以连续调节直流电动机的电枢电压,实现直流电动机的平滑无极调速,但是,在启动或大范围阶跃升速时,电枢电流可能远远超过电机额定电流,可能会损坏电动机,也会使直流可调电源因过流而烧毁。因此必须设法限制电枢动态电流的幅值。
(2)、开环系统的额定速降一般都比较大,使得开环系统的调速范围D都很小,对于大部分需要调速的生产机械都无法满足要求。因此必须采用闭环反馈控制的方法减小额定动态速降,以增大调速范围。
(3)、开环系统对于负载扰动是有静差的。必须采用闭环反馈控制消除扰动静差,为克服其缺点,提高系统的控制质量,必须采用带有负反馈的闭环系统,方框图如图2-2所示。在闭环系统中,把系统输出量通过检测装置(传感器)引向系统的输入端,与系统的输入量进行比较,从而得到反馈量与输入量之间的偏差信号。利用此偏差信号通过控制器(调节器)产生控制作用,自动纠正偏差。因此,带输出量负反馈的闭环控制系统能提高系统抗扰性,改善控制精度的性能,广泛用于各类自动调节系统中。
图2-2 闭环系统方框图
对于调速系统来说,输出量是转速,通常引入转速负反馈构成闭环调速系统。在电动机轴上安装测速装置,引出与输出量——转速成正比的负反馈电压,与转速给定电压进行比较,得到偏差电压,经过放大器A,产生驱动或触发装置的控制电压,去控制电动机的转速,这就组成了反馈控制的闭环调速系统,如图2-4所示。
图2-4 转速负反馈单闭环直流调速系统静态框图
233速度负反馈单闭环系统的静特性
由图2-3,按照梅森公式可以直接写出转速给定电压Un和负载扰动电流IL与转速n的关系式如下: 式2-2
其中,闭环系统的开环放大系数为: 式2-3
开环系统的负载速降为: 式2-4
由式2-2闭环时的负载速降为: 式2-5
上式表明采用速度闭环控制后,其负载速降减小了(1+Kol)倍,使得闭环系统的机械特性比开环时硬得多;因而,闭环系统的静差率要小得多,可以大大增加闭环系统的调速范围。
24 采用PI调节器的单闭环无静差调速系统
在电动机的闭环调速中,速度调节器一般采用PI调节器,即比例积分调节器。常规的模拟PI控制系统原理框图见图2-5,该系统由模拟PI调节器和被控对象组成。
r(t)是给定值,y(t)是系统的实际输出值,给定值与实际输出值构成控制偏差e(t)。
………………………………………………(2-6)
e(t)作为PI调节器的输入,u(t)作为PI调节器的输出和被控制对象的输入。所以模拟PI控制器的规律为:
…………………………………(2-7)
式中Kp--比例系数,TI--积分常数。
比例调节的作用是对偏差瞬间做出快速反应。偏差一旦产生,控制器立即产生控制作用,使控制量向减少偏差的方向变化。控制作用的强弱取决于比例系数,比例系数越大,控制越强,但过大会导致系统振荡,破坏系统的稳定性。
积分调节的作用是消除静态误差。但它也会降低系统响应速度,增加系统的超调量。
图2-5模拟PI控制系统原理图
采用DSP对电动机进行控制时,使用的是数字PI调节器,而不是模拟PI调节器,也就是说用程序取代PI模拟电路,用软件取代硬件。将式3-6离散化处理就可以得到数字PI调节器的算法:
……………………………(2-8)
或 ……………………………(2-9)
式中k--采样序号,k=0,1,2,…;uk--第k次采样时刻的输出值;
ek--第k次采样时刻输入的偏差值; KI--积分系数,;
u0--开始进行PI控制是的原始初值。
用式(3-8)计算PI调节器的输出比较繁杂,可将其进一步变化,令第k次采样时刻的输出值增量为:
………………………………(2-10)
所以 ……………………………………(2-11)
或 …………………………………………(2-12)
式中--第k-1次采样时刻的输出值,--第k-1次采样时刻的偏差值,
--,--。
用式(2-11)或式(2-12)就可以通过有限次的乘法和加法快速地计算出PI调节器的输出。
以下是用式(2-12)计算的程序代码:
LT EK ;
MPY K2 ;K2是Q12格式,
LACC GIVE ;给定值
SUB MEASURE ;减反馈值
SACL EK ;保存偏差值
LACC UK,12 ;
LTA EK ;,Q12格式,
MPY K1 ;k1是Q12格式,
AP AC ;,Q12格式
SACH UK,4 ;保存
以上程序代码只用10条指令。如果用40MIPS,只需250ns时间,足可以用于实时控制。
三.硬件电路的模块设计
31 H桥电机驱动电路
图3-1所示的H桥式电机驱动电路包括4个三极管和一个电机,电路得名于“H桥驱动电路”是因为它的形状酷似字母H。如图3-1所示,要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
图3-1H桥驱动电路
要使电机运转,必须使对角线上的一对三极管导通。例如,如图3-2所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经 Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向 转动(电机周围的箭头指示为顺时针方向)。
图3-2 H桥驱动电路
图2-3所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
图3-3 H桥驱动电路
32放大电路的连接电路
IR2111外围电路如图所示。单片机输出的PWM信号经光耦PC817后,输出至IR2111输入端,此处的光耦对PWM信号起到隔离、电平转换和功率放大的作用。图中,、为光耦上拉电阻,其值根据所用光耦的输入和输出地电流参数决定:为电容滤波电容,为自举二极管,、为栅极驱动电阻。
33键盘输入电路
本系统采用键盘,如图35所示。
图35为按钮电路
33测速电路设计
一个完善的闭环系统,其定位精度和测量精度主要由测量元件决定,因此,高精度的测量转速对测量元件的质量要求相当高。光电编码器是现代系统中必不可少的一种数字式速度测量元件,被广泛应用于微处理器控制的闭环控制系统中。
331光栅盘
光栅盘是在圆盘边刻有很多光栅。当光源照射到光栅部分时,没有被光栅挡住的光源就透射过去。本系统中采用了一个圆面上刻有60个均匀光栅格的光栅盘。当电机旋转一周时,会产生60个光脉冲信号。
332 光电传感器
光电传感器原理是有一个发光二极管和一个由光信号控制放大的三极管组成。由发光二极管发出红外光线通过3mm宽的气隙透射到另一端的三极管上,使得该三极管导通。其特征如下:
气隙是3mm。
分辨率达到05mm。
大电流传输比。
暗电流为:025
在=10mA时,发光二极管产生的光线的波长为940nm。
安装时将光栅盘圆面钳到沟槽中,光电传感器的发光二极管发出的红外线通过3mm气隙照射到光栅盘,光通过光栅盘面上透光的光栅气隙可以使得光传感器的三极管导通,从C极会输出一个低电平,被光栅挡住的光不能透过去,使得光电传感器的C极会输出一个高电平。
36光电传感器原理图
光电传感器在硬件电路设计上很简单, 如图37。在光电传感器的1引脚上接一个限流电阻R,限制流过发光二极管的电流=10mA左右。计算公式如下:
其中,
37光电传感器设计图
34 稳压电源电路
电池放电时内阻稳定的增大,电压则稳定的减小, 而且接上大功率的负载时电压会瞬时降低, 不能用于提供固定的电压,对于各种IC芯片需要的稳定电压, 需要专门的稳压器件,或者稳压电路, 基本的稳压器有两种:线性(LDO)和开关(DCDC), 其中前者只能降压使用,而前者还可以升压使用而且效率很高。
控制芯片89C51的标准供电电压是5V,可以选择使用线性电压调整芯片稳压,如:
7805:最大输出电流15A,内部过热保护,内部短路电流限制,典型输入电压7~20V, 输出电压49~51V,静态电流典型值42mA,压差(输出与输入的差)至少2V。
78L05(电流较小):最大输出电流100mA,内部过热保护,典型输入电压7~20V, 输出电压475~525V,静态电流典型值3mA。
LM317(电压可调):输出电流可达15A,输出电压12V~37V,内部过热保护等。
选用7805,一方面简单;另一方面比较常用且比较便宜。
LM78系列是美国国家半导体公司的固定输出三端正稳压器集成电路。我国和世界各大集成电路生产商均有同类产品可供选用,是使用极为广泛的一类串联集成稳压器。内置过热保护电路,无需外部器件,输出晶体管安全范围保护,内置短路电流限制电路。对于滤波电容的选择,需要注意整流管的压降。
稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,
a整流和滤波电路:整流作用是将交流电压变换成脉动电压。滤波电路一般由电容组成,其作用是脉动电压中的大部分纹波加以滤除,以得到较平滑的直流电压。
b稳压电路:由于得到的输出电压受负载、输入电压和温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压。
38光电传感器设计图
三端集成稳压器LM7805正常工作时,输入、输出电压差2~3V。C1为输入稳定电容,其作用是减小纹波、消振、抑制高频和脉冲干扰,C1一般为01~047μf。C2为输出稳定电容,其作用是改善负载的瞬态响应,C2一般为1μF。使用三端稳压器时注意一定要加散热器,否则是不能工作到额定电流。二极管IN4007用来卸掉C2上的储存电能,防止反向击穿LM7805。查相关资料该芯片的最大承受电流为01A,因此输入端必须界限流电阻R1,R1=(1209-5)/01=58Ω,取近似值,选用70Ω的电阻。
35.显示电路
液晶显示模块(LCD)由于其具有功耗低、无电磁辐射、寿命长、价格低、接口方便等一系列显著优点,被广泛应用与各种仪表仪器、测量显示装置、计算机显示终端等方面。其中,字符液晶显示模块是一类专用于显示字母、数字、符号的点阵式液晶显示模块。TS1620字符液晶显示模块以ST7066和ST7065为控制器,其接口信号功能和 *** 作指令与HD44780控制器具有兼容性。字符液晶有81、162、202、402等20多种规格型号齐全的字符液晶显示模块,均具有相同的引线功能和编程指令,与单片机的接口具有通用性。下图为外观机构。
TS1620的引脚与功能表下图所示。
引脚好 引脚符号 名称 功
能
1 GND 电源地 接5V电
源地端
2 VDD 电源正端 接5V电
源正端
3 VEE 液晶驱动电压端 电压可调,一端接地,
一端接可调电阻
4 RS 寄存器选择段 RS=1为数据寄存器,
RS=0为指令寄存器
5 RW 读/写选择端 RW=1为读数据,
RW=0为写数据
6 EN 读/写使能端 写时,下降沿触发;
读时,高电平有效
7至14 DB0—DB7 8位数据线 数据
总线
TS1620模块与单片机的接口简单,PIC18F单片机的连接图如总图所示。PIC18F458的RD0-RD7端口直接与TS1620-1的DB0-DB7相连接,TS1620-1的控制信号RS、RW、EN分别与PIC18F458的RE0-RD2相连接。
36时钟电路
单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作,因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。电路中的电容C1和C2典型值通常选择为30pF左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的频率高低,振荡器的稳定性和起振的快速性,晶振的频率越高则系统的时钟频率也越高,单片机的运行速度也越快。
图39时钟电路
本设计采用频率为12MHZ,微调电容C1和C2为30pF的内部时钟方式,电容为瓷片电容。判断单片机芯片及时钟系统是否正常工作有一个简单的方法,就是用万用表测量单片机晶振引脚(18,19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地电压约为224V,19脚对地电压约为209V。
43 复位电路
复位是单片机的初始化 *** 作,其主要作用是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或 *** 作失误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
图310 复位电路
单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电解电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于03秒),正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,这是单片机的上电复位,也叫初始化复位。当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作,这是手动复位原理。 该电路采用按键手动复位。按键手动复位为电平方式。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题,其中电平复位是通过RET端经电阻与电源VCC接通而实现的,当时钟频率适用于12MHZ时,C取100uF,R取10K,为保证可靠复位,在初识化程序中应安排一定的延迟时间。
软件电路的模块设计
直流电机转速控制器的软件设计和系统功能的开发和完善是一个循序渐进过程,本文所作的软件开发是基于直流电机多速控制器的基本功能要求设计的该系统软件有主程序、功能键处理程序、电机运行显示程序、键盘设置参数程序测速程序、延时子程序等。
该系统的整个软件设计全部采用模块化程序设计思想,由系统初始化模块、案件识别模块、LCD模块、高优先级和低优先级中断服务程序四大模块组成。整个软件的主程序框图如图4-1。
图4-1整个软件的主程序框图
通过控制总中断使能PDPINTA控制电机的开关,其中定时器T1,T2分别对脉冲的宽度、光电传感器输出的脉冲数对应的1秒时间定时。对脉冲宽度的调整是通过改变高电平的定时长度,由变量high控制。变量change、 sub_speed 、add_speed分别实现电机的转向、加速、减速。
41系统初始化模块
/主函数/
void main()
{
P2 = 0x00;
TMOD = 0x11;
TH1 = 0xec; //定时器T1设置参数
TL1 = 0x78;
TH2 = 0x3c; //定时器T2设置参数
TL2 = 0xb0;
TR1 = 1;
TR2 = 1;
init(); //液晶显示初始化程序
while(1)
{
Wc2407r(0x84);
wc2407ddr('H');
wc2407ddr('e');
wc2407ddr('l');
wc2407ddr('l');
wc2407ddr('o');
if(test == 0)
num_medium++;
datamade();
motor_control();
}
}
42 电机运行控制模块
电机运行控制模块包括电机的方向控制和电机的速度控制,他们由Open,close,addspeed,subspeed,swap变来控制2407单片机的EVA模块产生不同的PWM信号送到L298 电机驱动器。
/通过按键实现对电机开关、调速、转向的控制的程序/
void motor_control()
{
if(open == 1)
PDPINTA = 1;
if(close == 1)
PDPINTA = 0;
if(swap == 1)
{
change = ~change;
while(swap != 0)
{}
}
if(sub_speed == 1)
{ high++;
if(high == 30)
PDPINTA=0;
while(sub_speed != 0)
{}
}
if(add_speed == 1)
{ high--;
if(high == 5)
high = 5;
while(add_speed != 0)
{}
}
}
43 测速软件设计
常用的光栅测速方法有三种:测频法(M法)、测周法(T法)和测频测周法(M/T
法)
M法测速是测定在一定时间内,脉冲的个数,从而转换为速度。
本系统采用M法则测速。设置2407单片机内的定时器/计数器TIME1于计数器模式;在20个时钟周期内定时期间TIME1对输入的脉冲进行计数,在中断过程中对计入的脉冲数进行处理,获得转速数据。
/T2中断服务程序单位时间(S)方波的个数/
void time2_int(void) interrupt 3
{
count_speed++;
if(count_speed == 20)
{ count_speed = 0;
num_display = num_medium;
num_medium = 0;
}
}
/速度显示的数据处理/
void datamade()
{
uint data MM
Wc2407r(0xc2);
wc2407ddr('S');
wc2407ddr('p');
wc2407ddr('e');
wc2407ddr('e');
wc2407ddr('d');
wc2407ddr(0x3a);
MM = num_display/100;
wc2407ddr(wword[MM]);
}
44LCD显示模块
LCD显示驱动单独做成一个源程序文件和头文件,可以方便以后其他模块或其他应用程序的调用。在LCD显示驱动模块中主要是LCD初始化函数LCD_Initize()、写LCD命令函数Write_LCD_Command()、写LCD数据函数Write_LCD_Data()
TS1620可以显示两行16列ASCII码,其对应的第一行的首行地址是80H;第二行的首地址是C0H,送字符串到LCD上显示,需要定位将字符串显示在第X行和第Y列上,显示的字符串不能超过该行的最大列。
#include <reg2407h>
#define uchar unsigned char
#define uint unsigned int
sbit open = P2^0;
sbit close = P2^1;
sbit swap = P2^2;
sbit sub_speed = P2^3;
sbit add_speed = P2^4;
sbit PWM1 = P3^0;
sbit PWM2 = P3^1;
/液晶显示/
sbit E=P3^7;
sbit RW = P3^6;
sbit RS = P3^5;
sbit test = P3^4;
int time = 0;
int high = 20;
int period = 30;
int change = 0;
int flag = 0;
int num_medium = 0;
int num_display = 0;
int count_speed = 0;
uchar wword[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
/延时t毫秒/
void delay(uchar t)
{
uint i;
while(t)
{
/对于110592MHz时钟,延时1ms/
for(i=0;i<125;i++);
t--;
}
}
//写命令函数LCD
void Write_LCD_Command(){
RS=0;
RW=0;
P1=j;
E=1;
E=0;
delay(3);
}
//写数据函数LCD
void Write_LCD_Data()
{
RS=1;
RW=0;
P1=j;
E=1;
E=0;
delay(2);
}
//初始化函数LCD
void LCD_Initize(){
wc2407r(0x01); //清屏
wc2407r(0x38); //使用8位数据,显示两行,使用57的字型
wc2407r(0x0c); //显示器件,光标开,字符不闪烁
wc2407r(0x06); //字符不动,光标自动右移一格
}
44 PWM 源程序
/8T1中断服务程序PWM波的生成/
void time1_int(void) interrupt 1
{
time++;
TH1 = 0xec;
TL1 = 0x78;
if(change == 0)
{
PWM2 = 1;
if(time == high)
PWM1=0;
else if(time == period)
{
PWM1 = 1;
time = 0;
}
}
else
{ PWM1 = 1;
if(time == high)
PWM2=0;
else if(time == period)
{
PWM2 = 1;
time = 0;
}
}
}
45 PID调速程序流程如图
五.系统抗干扰
电子电路的抗干扰技术在电路设计中占有重要的地位,对系统是否正常工作有着决定作用。
本文电路既包括模拟电路也包括数字电路,而数字电路运行时输入和输出信号均只有两种状态,即高电平和低电平,且这两种电平的翻转速度很快,同时,由于数字电路基本上以导通或截至方式运行,工作速率比较高,故会对电路产生高频浪涌电流,可能会导致电路工作不正常;而数字电路的输入输出波形边沿很陡,含有极丰富的频率分量,这对模拟电路来说,无疑是一个高频干扰源。为了消除以上可能出现的干扰,本系统在设计和调试过程中反复尝试比较,最终采取如下措施,消除了系统干扰。
(l)合理布置电源滤波、退藕电容。
(2)将数字电路与模拟电路分开。
(3)合理设计地线。
(4)尽量加粗接地线和电源线。
六.设计总结
经过2个星期的课程设计,留给我印象最深的是要设计一个成功的电路,必须要有要有扎实的理论基础,还要有坚持不懈的精神。
本产品实现了对直流电机的调速和测速,个人感觉其中还有许多不够完善的地方,例如:对电机的控制采用的是独立按键,而非矩阵键盘;电机的驱动电路的设计也不是很成熟。
此次的设计并不奢望一定能成功,但一定要对已学的各种电子知识能有一定的运用能力,我做设计的目的是希望能检查下对所学知识的运用能力的好坏,并且开始慢慢走上创造的道路,这是非常可贵的一点。
以上就是关于直流电动机控制转速和测速的程序是用显示屏的全部的内容,包括:直流电动机控制转速和测速的程序是用显示屏的、帮忙注释下程序,这是关于直流电机调速的、基于51单片机。从L298使能端输入PWM信号对直流电机进行调速,这个pwm信号的汇编程序要怎么写 急求!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)