




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引言开发背景现代工业生产中,电动机是主要的驱动设备,目前在直流电动机拖动系统中已大量采用晶闸管(即可控硅)装置向电动机供电的KZ—D拖动系统,取代了笨重的发电动一电动机的F—D系统,又伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。直流电机调速基本原理是比较简单的(相对于交流电机),只要改变电机的电压就可以改变转速了[1]。改变电压的方法很多,最常见的一种PWM脉宽调制,调节电机的输入占空比就可以控制电机的平均电压,控制转速。PWM控制的基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。直到进入上世纪80年代,随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。随着电力电子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM控制技术获得了空前的发展,到目前为止,已经出现了多种PWM控制技术。选题的目的和意义直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能[2]。采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率。传统的控制系统采用模拟元件,虽在一定程度上满足了生产要求,但是因为元件容易老化和在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受到器件性能、温度等因素的影响,故系统的运行可靠性及准确性得不到保证,甚至出现事故。目前,直流电动机调速系统数字化已经走向实用化,伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。研究方法本文主要研究了利用MCS-51系列单片机,通过PWM方式控制直流电机调速的方法。PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一[3]。本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。文章中采用了专门的芯片组成了PWM信号的发生系统,然后通过放大来驱动电机。利用直流测速发电机测得电机速度,经过滤波电路得到直流电压信号,把电压信号输入给A/D转换芯片最后反馈给单片机,在内部进行PI运算,输出控制量完成闭环控制,实现电机的调速控制。
2直流电机调速原理电动机是用以驱动生产机械的,根据负载的需要,常常希望电动机的转速能在一定或宽广的范围内进行调节,且调节的方法要简单经济。直流电动机在这些方面有其独到的优点。从直流电机的转速公式[4]n=可知,调速方法有两种:电枢控制,即用调节电枢电压或者在电枢电路中接入调速电阻来调速。磁场控制,即用调节励磁电流来调速。电枢电路中接入调速电阻电枢电路接入调速电阻RΩ后,有公式n=可知其机械特性将随之增大,它和负载特性TL+T0的交点将逐步下移,于是电动机的转速将下降。图2-1串入电阻后的机械特性曲线R2图2-1串入电阻后的机械特性曲线R2>R1调节电枢电压来调速2.2.1他励电动机图2-2不同电枢电压是他励直流电机的机械特性曲线(U1>U2>U3)电机的电枢需要由专用的直流电源(多采用可控整流电源)单独供电励磁则由另一电源他励,从机械特性表达式和右图可知提高或降低电枢端电压U(主磁通Φ保持不变),电动机的机械特性将平行的上升或下降,使电动机的转速相应地上升或下降。图2-2不同电枢电压是他励直流电机的机械特性曲线(U1>U2>U3)2.2.2串励电动机串励电动机也可以通过改变电枢电压来调速,如图表示电枢电压分别是U1和U2(U1>U2)时串励电动机的机械特性和负载特性。从图中可以看出提高电枢电压可以提高速度。图2-3改变电枢端电压时串励电动机的机械特性(U1>U图2-3改变电枢端电压时串励电动机的机械特性(U1>U2)从转速公式中可知可以看出减小励磁电流时。气隙磁通量Φ将减少,电动机转速将升高。从不同励磁电流时他励或并励电动机的机械特性曲线中也可以看出。这种方法所用的设备简单,调节也方便切效率高。但是随着转速和电枢电流的增加,电机温升升高,换向变坏,转速过高时会出现不稳定的现象。图2-4不同励磁电流时,他励(并励)电动机的机械特性曲线(I1图2-4不同励磁电流时,他励(并励)电动机的机械特性曲线(I1>I2)3硬件电路设计总体硬件电路设计本系统采用89C51控制输出数据,由单片机定时器直接产生PWM信号,送到直流电机,直流电机通过霍尔传感器测速电路,将脉冲重新送回单片机,从而实现对电机速度和转向的控制,达到直流电机调速的目的。[5]8051单片机简介1.8051单片机的基本组成图3-1系统整体框图8051单片机由CPU和8个部件组成,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式,但在功能单元的控制上采用了特殊功能寄存器的集中控制方法[6]。其基本组成如下图所示:图3-1系统整体框图图3-2单片机内部结构图图3-2单片机内部结构图2.CPU及部分部件的作用功能介绍如下中央处理器CPU:它是单片机的核心,完成运算和控制功能。内部数据存储器:8051芯片中共有256个RAM单元,能作为存储器使用的只是前128个单元,其地址为00H—7FH。通常说的内部数据存储器就是指这前128个单元,简称内部RAM。内部程序存储器:8051芯片内部共有4K个单元,用于存储程序、原始数据或表格,简称内部ROM。定时器:8051片内有2个16位的定时器,用来实现定时或者计数功能,并且以其定时或计数结果对计算机进行控制。中断控制系统:该芯片共有5个中断源,即外部中断2个,定时/计数中断2个和串行中断1个。LCD1602液晶显示器1.LCD1602液晶显示器基本介绍图3-31602实物图LCD1602液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,能够同时显示16x02即32个字符,(16列2行)。液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用[7]。图3-31602实物图表3-1引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、双向数据总线0位(最低位)8DB1低4位三态、双向数据总线1位9DB2低4位三态、双向数据总线2位10DB3低4位三态、双向数据总线3位11DB4高4位三态、双向数据总线4位12DB5高4位三态、双向数据总线5位13DB6高4位三态、双向数据总线6位14DB7高4位三态、双向数据总线7位(最高位)(也是busyflag)15BLA背光电源正极16BLK背光电源负极5.寄存器选择控制表表3-2RSR/W操作说明00写入指令寄存器(清除屏等)01读busyflag(DB7),以及读取位址计数器(DB0~DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据功率放大驱动电路的设计功率放大驱动电路有多种,也可以直接用芯片其中较常用的芯片有IR2110和EXB841,为了有较高的性价比,且对于直流电机调速使用起来更加简便[8],因此该驱动电路使用了H桥放大电路驱动,并且使得该集成电路具有较强的驱动能力和保护功能,且能控制电机的旋转方向。3.4.1H桥驱动电路特点电路得名于“H桥式驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠。H桥电路的“H”的意思是它实际电路在电路图上是一个字幕H的样式。如下图:
图3-4H桥电路图图3-4H桥电路图H桥是如何控制电机的呢,举个例子:你手里拿着一节电池,用导线将马达和电池两端对接,马达就转动了;然后如果你把电池极性反过来会怎么样呢?没有错,马达也反着转了。如图:图3-6电机反转图3-5电机正转当Q1和Q4导通时电流从左上方流过电机流向右下方,电机的旋转方向认为正转的话;当Q2和Q3同时导通时电流从右向上方流过电机流向左下方,电机反转。图3-6电机反转图3-5电机正转注意:千万不能将同一侧的两个三极管同时导通,否则会烧坏电路。如果你将两个高位电路或者两个低位电路同时接通,你的马达会自动制动。这是因为当没有电源供给时,马达在自由转动的情况下是处于发电状态,同位的电路接通,相当于将马达的两端“短接”,那么马达会因为短路而相当与接了一个无限大功率的电炉即一个很大的负载,所以马达就会产生“电”制动;当你把马达两端悬空后,它就恢复自由了。图3-7加入二极管的H桥为了以避免马达的反电动势的危害,我们仍然需要在晶体管两端接二极管,因为马达线圈在电路开闭瞬间产生的反向电动势通过会高过电源,这样对晶体管和电路会有很大的影响甚至烧毁零件。如图在两端接入二极管后图3-7加入二极管的H桥半导体晶体管本身有导通电阻,在通过大电流时会明显发热,如果没有散热措施会很容易烧毁。这样就会限制电路功率的增加。Mosfets(金属氧化物半导体场效应晶体管),这里简称MOS管,由于结构和原理的不同,导通电阻远比普通三极管低,允许流过更大的电流。而且MOS管都内置有反向二极管来保护管子本身。所以采用MOS管连接H桥不但效率可以提高,电路也可以简化。使用MOS管搭建H桥,高位电路要用P沟道管;低位要用N沟道管。因为N沟道管比P沟道管便宜的多,所以有人用N沟道管在高位,加上削波电路来抑制反电动势。应用H桥的关键是四个电路开闭状态的准确。一旦在电源和地之间出现通路,毫无疑问会立刻产生短路,让你的晶体管变成一枚小炸弹。下面我们介绍一些H桥的集成电路,这样我们可以更容易更安全的使用H桥。常用H桥集成电路L293内置两个H桥,每个桥提供1A的额定工作电流,和最大2A的峰值电流。它能驱动的马达一般是不超过35毫米照片胶卷筒大小。L298内置两个H桥,每个桥提供1A的额定工作电流,和最大3A的峰值电流。它能驱动的马达不超过可乐罐大小。LMD18200内置1个H桥,工作电流2~3A,峰值电流6A。它驱动可乐罐大小的马达。3.4.2H桥驱动电路的设计如下图:图3-8H桥驱动电路的设计图3-8H桥驱动电路的设计左端两个输入接单片机输入PWM脉冲波控制H桥三极管的导通截止,PWM脉冲由单片机P2.6、P2.7两个端口输出,其中由程序设定同时只有一个端口输出PWM脉冲波来控制电机的转动方向[9]。当PWM1为脉冲波时,PWM2为低电平,三极管Q2为截止状态,经上拉电源H桥右端高电平,右上方三极管导通,右下方三极管截止,当PWM1为高电平时Q1导通,H桥左端接地为低电平,左上方三极管截止,左下方三极管导通,电机有电流经左上右下流过,电机旋转,当PWM1为低电平时Q1截止,H桥左端为高电平,左上方三极管导通,左下方三极管截止,由于电机中储存能量,电机通过左上右下二极管放电续流,等下一个PWM脉冲周期供电。反之当PWM2为PWM脉冲波时,电机中有从左向右的电流,电机反转。电源电路的设计稳压电源的分类方法繁多,按输出电源的类型分有直流稳压电源和交流稳压电源;按稳压电路与负载的连接方式分有串联稳压电源和并联稳压电源;按调整管的工作状态分有线性稳压电源和开关稳压电源;按电路类型分有简单稳压电源和反馈型稳压电源。稳压电源电路分为线性稳压电源,集成稳压电源,晶体管稳压电源,交流稳压电源。本文介绍的是使用三端稳压集成电路78××线性稳压电源3.5.1芯片介绍图3-97805实物图7805三端稳压集成电路lm7805。电子产品中,常见的三端稳压集成电路有正电压输出的lm78××系列和负电压输出的lm79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO-220的标准封装,也有lm9013样子的TO-92封装。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V,因为三端固定集成稳压电路的使用方便,电子制作中经常采用[10]。图3-97805实物图在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏。当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。另外在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。在78**、79**系列三端稳压器中最常应用的是TO-220和TO-202两种封装。这两种封装的图形以及引脚序号、引脚功能如附图所示。从正面看①②③引脚从左向右按顺序标注,接入电路时①脚电压高于②脚,③脚为输出位。如对于78**正压系列,①脚高电位,②脚接地,;对与79**负压系列,①脚接地,②脚接负电压,输出都是③脚。如附图所示。图3-10引脚图此外,还应注意,散热片总是和接地脚相连。这样在78**系列中,散热片和②脚连接,而在79**系列中,散热片却和①脚连接。图3-10引脚图7805典型应用电路图:78XX系列集成稳压器的典型应用电路如下图所示,这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。当输出电流较大时,7805应配上散热板。图3-11-5图3-11-5V电源图3-12+5V电源图3-12+5V电源3.5.2电源电路的设计电路图:图3-13电源电路的设计图3-13电源电路的设计由于电路中需要两个电压:12V和5V,电源中用了7812和7805两个三端集成稳压块,先用变压器220V~12V将输出12V交流电,经过整流二极管全波整流,滤波后通过7812输出12V稳压直流电,再通过7805转化为5V直流电。图中D5、D6在电路中气保护作用,为了电路的稳定工作,在一般情况下,还需要接二极管作为保护电路,防止电路中的电容放电时的高压把集成稳压器烧坏。测速电路的设计测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。要测速,首先要解决是采样的问题。在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。本文用3144设计信号获取电路,通过电压比较器实现计数脉冲的输出,既可在单片机实验箱进行转速测量,也可直接将输出接到频率计或脉冲计数器,得到单位时间内的脉冲数,进行换算即可得电机转速。3.6.1脉冲信号的获得图3-143144实物图霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040、OH3144等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3144的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。图3-143144实物图使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出[11]。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。3.6.2硬件电路的设计图3-15霍尔脉冲隔离图3-15霍尔脉冲隔离霍尔传感器通过感应电机轴上的电磁铁磁场变化产生一个输出电压,一满足后续电路的触发信号,触发信号通过差分放大器和反相器产生一个满足单片机输入脉冲的方波信号,由于霍尔传感器输出的电压信号高电平在电源电压(11--12)V之间,低电平在0V左右,这个信号的电压值不符合单片机的借口要求,可以利用哟个三极管整形电路处理电压信号,使其满足单片机的接受要求,当三极管的输入为“1”时,三极管的发射极、集电极都正偏,三极管处于饱和状态,气输出约为“0”;当三极管的输入为0时,三极管的发射极反偏,三极管处于截止状态,气输出电压约为+5V这样经过处理产生的方波即可满足单片机的要求。3.6.3数据处理速度检测一般有三种方法:M法测速、T法测速、M/T法测速。1.M法测速:是在规定时间Tc内[12],对位置脉冲信号是个数m1进行计数,从而得到转速的测量值,n=PN是每个位置周期所含有的信号脉冲数,适用于高速运行时的测速,低速时精度较低2.T法测速:测出相邻两个位置信号的间隔时间来计算转速的一种方法,而时间的测量是借助计数器对已知频率的时钟脉冲计数实现的,设时钟频率f,两个位置脉冲间的时钟脉冲个数为m2,则电机转子位置脉冲信号的周期T为T=n==PN是每个位置周期所含有的信号脉冲数,适用于低速运行时的测速,高速时每个位置周期的时钟脉冲数m2小,测得的精度较低3.M/T法综合了以上两种方法的优点,既可在低速段可靠的测速,又在高速段具备较高的分辨能力,因此在较宽的转速范围内都有很好的检测精度。即在稍大于规定时间Tc的某一时间Td内,分别对位置信号的脉冲个数m1和高频时钟脉冲个数m2进行计数。于是:n=由于调速关系本文采用M/T法测速以使测速的准确性,即在100个PWM周期内电机所转的转数,n=60m1其中f=100,m2=100,PN=1
4系统软件部分设计软件由1个主程序和1个定时器中断程序,1个外部中断计数程序组成。主程序设计主程序是一个循环程序,其主要思路是,先设定好占空比初始值,出控制系数给PWM发生电路改变波形的占空比,进而控制电机的转速。其程序流程图如图所示。软件由1个主程序和1个定时器中断程序,1个外部中断计数程序组成。主程序是一个循环程序,其主要思路是由单片机P0口进行键盘扫描,根据按键输入信息选择进行操作的函数,进行控制电机。图4-1主程序流程图定时器中断程序设计图4-1主程序流程图1程序思路:定时器程序通过选择判断来输出PWM脉冲波的高低电平,其中两个参数cycle、PWM_ON分别控制PWM脉冲波的周期和高电平的占空比。同时通过计数处理输出速度。2.中断程序流程图图4-2定时器中断流程图PWM的基本原理及程序设计图4-2定时器中断流程图4.3.1PWM的基本原理PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速[13]。也正因为如此,PWM又被称为“开关驱动装置”。如图2-8所示:图4-3PWM原理图图4-3PWM原理图设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为Va=Vmax*D,其中Va指的是电机的平均速度;Vmax是指电机在全通电时的最大速度;D=t1/T是指占空比。由上面的公式可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。严格来说,平均速度Vd与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。4.3.2PWM信号发生程序设计思路利用单片机内部定时器中断产生PWM脉冲波,程序中通过两个参数控制占空比,根据中断次数控制输出高电平的占空比[14]。cycle和PWM_ON分别记录一个周期中断次数和高电平的中断次数如下图:图4-4PWM信号软件设计思路这样就可以根据PWM_ON的值从1~100控制占空比图4-4PWM信号软件设计思路
5系统仿真与调试系统仿真仿真软件选择Proteus,在Proteus中画出系统电路图,当程序在KeilC中调试通过后,会生成以hex为扩展名的文件,这就是使系统能够在Proeus中成功进行仿真的文件。将些文件加载到单片机仿真系统中,验证是否能完成对直流电机的速度调节。若不成功,则重新回到软件调试步骤,进行软件调试。找出错误所在,更正后重新运行系统。硬件仿真电路的设计完全按照论文设计方案进行。在仿真的过程中也遇到了很多问题,比如元件选择、电路设计等,在元件选择方面,有的芯片是我以前学习的时候所没有遇到过的,所以在寻找和使用的过程中也遇到很多麻烦,但经过自己的努力,并借鉴从互联网上找到的资料,我逐渐掌握这些元件的使用方法和原理,为系统设计和仿真提供了良出的基础。另外,在进行仿真的时候,也经常出现程序没有错误了,但是仿真通不过的情况,这些大部分原因是在管脚定义上,很多系统仿真的问题都出在这。经过这段时间的努力,使我对仿真软件以及系统设计电路有了更深一步的认识,也为系统的成功奠定了基础。图5-1仿真结果如图是在protues上的仿真结果,DUTYF是占空比,图中显示的是50%,STEP是指在按加速、减速键时改变的占空比大小的百分数,SPEED是通过测速显示的速度大小,每秒计算并刷新一次。图5-1仿真结果软硬件调速5.2.1软件程序调试在程序编写的过程中,出现了很多问题,包括键盘扫描处理、PWM信号发生程序的控制、以及单片机控制直流电机的转动方向等问题,虽然问题不是很大,但是也让我研究了好长时间,在解决这些问题的时候,我不断向老师和同学请教,希望能通过大家一块的努力把软件编写的更完整,让系统的功能更完备。经过多天的努力探索,也经过老师的指导,大部分问题都已经解决,就是程序还是不能实现应该实现的功能,这让我很着急。后来经过一点一点的调试,并认真总结,发现了问题其实在编写中断处理程序时出现了错误,修改后即可实现直流电机调速的目的。总结这次软件调试,让我认识到了做软件调试的基本方法与流程:(1)认真检查源代码,看是否有文字或语法错误(2)逐段子程序进行设计,找出错误出现的部分,重点排查(3)找到合适的方法,仔细检查程序,分步调试直到运行成功(4)改进程序算法,提高程序执行效率,减少出错可能性5.2.2程序在硬件上的调试虽说在protues上仿真时能正常运行了,硬件的制作完成后,结合硬件又发现了很多问题。因为单片机的问题,使复位电路上的电容烧坏,单片机运行出错因为程序算法问题,在电机转动时,出现停顿现象按键问题为了方便,硬件板与板这件用杜邦线相连硬件实物图(1)电源与驱动图5-2电源与驱动电路图5-2电源与驱动电路(2)显示与键盘图5-3键盘与显示图5-3键盘与显示(3)霍尔测速图5-4霍尔脉冲转化电路
心得体会图5-4霍尔脉冲转化电路本课题设计,通过和老师、同学充分合作共同努力已完成并验收。在直流电机调速系统的设计中,完成的是硬件设计、制作及调试实验,同时完成软件设计方面的工作。在硬件设计中主要工作是:设计硬件的结构框图,完成硬件的设计。如电源电路、驱动电路、接收放大电路设计及制作。在选择构成系统电路的元器件时,应着重考虑其是否会影响系统的稳定性。在硬件的制作过程中,应尽量减小电源的波动对系统的影响。受时间和经验限制,本系统有不足和需改进的地方:1.更复杂的算法可以作研究尝试,但从实际效果考虑上,更好的办法可能是改进外围电路设计,本系统的外围电路设计还有很大的改善空间。4.本系统只考虑了电机的速度控制的输出,没有反馈,没有考虑负载的情况,以后可以从系统反馈方面来考虑系统整体的设计。
参考文献[1]张友德等,单片机原理应用与实验[M],复旦大学出版社1992.[2]张毅刚,彭喜源,谭晓钧,曲春波.MCS-51单片机应用设计[M].哈尔滨工业大学出版社2001.1.[3]宋庆环,才卫国,高志,89C51单片机在直流电动机调速系统中的应用[M]。唐山学院,2008.4[4]陈锟危立辉,基于单片机的直流电机调速器控制电路[J],中南民族大学学报(自然科学版),2003.9.[5]李维军韩小刚李晋,基于单片机用软件实现直流电机PWM调速系统[J],维普资讯,2007.9
附录1系统设计总电路图
附录2#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitlcden=P2^2;sbitlcdrs=P2^0;sbitxie=P2^1;sbitforward=P2^6;sbitreverse=P2^7;bitflag=1,flag1=1;ucharspeed,m1=0,m2=0;uchartens,ones,hunds,step=9;ucharcodetable[]={"DUTYF:%STEP:"};ucharcodetable1[]={"SPEED:r/min"};ucharcodetable2[]={"0123456789"}; //输入数字用ucharnum=0;ucharcycle=100;ucharPWM_ON=50;unsignedcharconstdofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F/*******************延时程序***键盘扫描用***********************/voiddelay1(uinti)//延时函数{ while(i--);}/*键盘扫描程序*/ucharkeyscan(void)//键盘扫描函数,使用行列反转扫描法{ ucharcord_h,cord_l;//行列值中间变量 P0=0x0f;//行线输出全为0 cord_h=P0&0x0f;//读入列线值 if(cord_h!=0x0f)//先检测有无按键按下 { delay1(100);//去抖 if(cord_h!=0x0f) { cord_h=P0&0x0f;//读入列线值 P0=cord_h|0xf0;//输出当前列线值 cord_l=P0&0xf0;//读入行线值 return(cord_h+cord_l);//键盘最后组合码 } }return(0xff);//返回该值}/***********************正转反转调节函数*****************************voidroll(flag){ if(flag) { forward=P2^6; reverse=P2^7; } else { forward=P2^7; reverse=P2^6; } reverse=0;}********************************************************************//***************延时程序液晶显************示器用********************/voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}/************************************/voidwrite_com(ucharcom)//根据写时序图写出指令程序{ lcdrs=0; P1=com; delay(5); lcden=1; delay(5); lcden=0;}voidwrite_data(uchardate)//根据写时序图写出数据程序{ lcdrs=1; P1=date; delay(5); lcden=1; delay(5); lcden=0;}/********自定义写入数据************用于写入速度***************/voidwrite_speed(){ write_com(0x80+0x46); hunds=speed/100; speed=speed%100; tens=speed/10; ones=speed%10; write_data(table2[hunds]); delay(50); write_data(table2[tens]); delay(50); write_data(table2[ones]);}/*****************步长显示*******************************/voidwrite_step(){ write_com(0X80+0x0e); tens=step/10; ones=step%10; write_data(table2[tens]); delay(50); write_data(table2[ones]);}/*************占空比显示**********************************/voidwrite_duty(){ write_com(0X80+0x06); tens=PWM_ON/10; ones=PWM_ON%10; write_data(table2[tens]); delay(50); write_data(table2[ones]); //write_digital(tens,ones);}/*****************步长输入************************************/voidchange(intvalue){ if(flag1==1) { step=value*10; //先输入十位 } else { step=step+value;//然后是个位 } flag1=!flag1; //个位十位区分标志}/**********液晶显示器初始化*********************/voidinit(){ lcden=0;//使能端为低电平 write_com(0x38);//显示模式设置 write_com(0x0c);//开显示,显示光标,光标闪烁 write_com(0x06);//地址指针自动+1且光标+1,写字符屏幕不会移动 write_com(0X01); write_com(0X80+0x00);//初始化指针在显示屏的第二个字符位置}/***********定时器中断(开始)************************/voidInitTimer0(void) //定时器中断{TMOD=0x01; //定时器1设置10usin12McrystalTH0=0x0FF; //赋初值TL0=0x0CE; EA=1; //总中断打开ET0=1; //定时器中断打开按开始键开始计时电机转动TR0=1; //定时器开关打开 EX1=1;//外部中断1开 IT1=1;//外部中断1边沿触发,下降沿触发,IT1=0表示电平触发}/**************定时器设置函数(停止中断)*******************/voidInitTimer1(void) //定时器中断{//TMOD=0x01; //定时器1设置0.1msin12Mcrystal//TH0=0x0FC; //赋初值//TL0=0x18;EA=0; //总中断关闭ET0=0; //按停止键定时器中断关闭开始计时电机转动TR0=1; //定时器开关打开 forward=0; reverse=0;}voidspeeding(bitseed){ if(seed==1&&PWM_ON+step<100) { PWM_ON=PWM_ON+step; } elseif(seed==1&&PWM_ON+step>=100) { PWM_ON=99; } elseif(seed==0&&PWM_ON>step) { PWM_ON=PWM_ON-step; } elseif(seed==0&&PWM_ON<=step) { PWM_ON=1; }}/*************主程序函数************************************/voidmain(){ ucharkey; xie=0; init(); for(num=0;num<16;num++) { write_data(table[num]); delay(50); } //write_com(1);//清行 write_com(0x80+0x40);//换行而且指针在屏幕外 for(num=0;num<16;num++) { write_data(table1[num]); delay(50); } /* for(num=0;num<16;num++) { write_com(0x1f);//又与视频上的不同1f是右移18是左移这个地方也是自己不断尝试出来的 delay(50); } */ reverse=0; forward=0;// InitTimer0(); while(1) { key=keyscan();//调用键盘扫描, switch(key) { case0x7e:flag=1;reverse=0;break;//正转按下相应的键显示相对应的码值 case0x7d:flag=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国五氟利项目创业计划书
- 佳木斯市中医院肿瘤患者随访管理质量考核
- 运城市人民医院药物抗体检测考核
- 通辽市中医院循证医学应用考核
- 中国塑胶栈板项目投资计划书
- 唐山市人民医院科室服务改进考核
- 中国三氯溴甲烷项目投资计划书
- 大庆市中医院审计基础知识与迎审准备试题
- 邯郸市人民医院临床技能带教考核
- 晋中市人民医院粪便检验技术准入考核
- 全等三角形-倍长中线法
- 集约化猪场的规划设计
- 数星星的孩子习题精选及答案
- GB/T 9162-2001关节轴承推力关节轴承
- 建筑机电安装工程标准化施工做法图集课件
- 可下载打印的公司章程
- 小学数学人教五年级上册小数除法《用“进一法”和“去尾法”解决实际问题》教学设计
- 螺旋千斤顶设计大作业
- 超声流量计技术规格书9
- (新教材)苏教版四年级上册科学第一单元《动物大家族》教材分析
- 《危险品航空运输培训》课件08危险品的标记与标签
评论
0/150
提交评论