《[计算机硬件及网络]单片机控制直流电机.doc》由会员分享,可在线阅读,更多相关《[计算机硬件及网络]单片机控制直流电机.doc(33页珍藏版)》请在三一办公上搜索。
1、华中师范大学2011届自考本科论文答辩题目:基于单片机的直流电机调速系统的设计与实现学生姓名:李达所在院系:机械电子工程学院所学专业:机电一体化系统设计指导老师:卢丽君完成时间:2013-03-10目录摘要1Abstract2项目一 直流电机3一 直流电机的发展3二 直流电机的控制方法和工作原理3项目二 单片机最小系统4一 单片机及微处理器控制系统的发展4二 整体设计51 硬件电路设计62 单片机最小系统的设计6三 单片机AT89S5261复位电路及时钟电路72 AT89C51各个管脚说明83 振荡器特性104 芯片擦除10项目三 直流电机驱动电路10一 H桥10二 H桥驱动电路11三 使能控
2、制和方向逻辑12项目四 PWM脉宽调制原理15一 PWM调速原理15二 PWM调速方法15三 PWM实现方式16四 显示模块16五 控制模块17项目五 C语言软件编程18项目六 系统调试与分析19一 系统功能调试与仿真191 调试软件介绍192 系统调试193 仿真图形20结束语22附录 单片机控制程序23参考文献30摘要本文是对直流电机PWM调速器设计的研究,主要实现对电机的控制。本课程设计主要是实现PWM调速器的正转、反转、加速、减速、停止等操作。并实现电路的仿真。为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对
3、电动机转速参数的显示和测量;由命令输入模块、光电隔离模块及H型驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,不断给光电隔离电路发送PWM波形,H型驱动电路完成电机正反转控制.在设计中,采用PWM调速方式,通过改变PWM的占空比从而改变电动机的电枢电压,进而实现对电动机的调速。设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。关键词:AT89C51单片机;PWM调速;正反转控制;仿真。AbstractThis article is a DC motor PWM speed control
4、design study, the main achievement of motor control. This course is primarily designed to achieve PWM speed controller for forward and reverse, acceleration, deceleration, and stop such an operation. And to achieve the circuit simulation. To achieve system, microcomputer control, in the design, usin
5、g AT89C51 microcontroller control system as a whole, the core of the control circuit, accompanied by a variety of shows, drive module enables the motor speed parameter display and measurement; from the command input module, Optical isolation module and H-drive module. With the stand-alone keyboard w
6、ith a break as a command input, single-chip in the process control, continuing to the optical isolation circuit to send PWM waveform, H-type motor driving circuit to complete positive inversion control. In the design, using PWM speed mode, by changing the PWM duty cycle to change the motor armature
7、voltage, so as to realize the speed of the motor. Design of the control system hardware structure with a large number of integrated circuit modules, greatly simplifying the hardware circuitry to improve stability and reliability of the system so that the whole system performance is improved.Key word
8、s: AT89C51 microcontroller; PWM speed; positive inversion control; Simulation。项目一 直流电机一 直流电机的发展直流电动机在冶金、矿山、化工、交通、机械、纺织、航空等领域中已经得到广泛的应用。而以往直流电动机的控制只是简单的控制,很难进行调速,不能实现智能化。如今,直流电动机的调速控制已经离不开单片机的支持,单片机应用技术的飞速发展促进了自动控制技术的发展,使人类社会步入了自动化时代,单片机应用技术与其他学科领域交叉融合,促进了学科发展和专业更新,引发了新兴交叉学科与技术的不断涌现。现代科学技术的飞速发展,改变了世界
9、,也改变了人类的生活。由于单片机的体积小、重量轻、功能强、抗干扰能力强、控制灵活、应用方便、价格低廉等特点,计算机性能的不断提高,单片机的应用也更加广泛特别是在各种领域的控制、自动化等方面。在实际应用中,电动机作为把电能转换为机械能的主要设备,一是要具有较高的能量转换效率;二是应能根据生产工艺的要求调整转速。电动机的调速性能如何对提高产品质量、提高劳动生产率和节省电能有着直接的决定性影响。因此,调速技术一直是研究的热点。二 直流电机的控制方法和工作原理直流电动机转速的控制方法可分为两类:励磁控制法与电枢电压控制法。励磁控制法控制磁通,其控制功率虽然小但低速时受到磁场饱和的限制,高速时受到换向火
10、花和转向器结构强度的限制,而且由于励磁线圈电感较大动态响应较差。所以常用的控制方法是改变电枢端电压调速的电枢电压控制法。传统的改变端电压的方法是通过调节电阻来实现的,但这种调压方法效率低。随着电力电子技术的发展,创造了许多新的电枢电压控制方法。其中脉宽调制(Pulse Width Modulation,PWM)是常用的一种调速方法。其基本原理是用改变电机电枢电压的接通和断开的时间比(即占空比)来控制马达的速度,在脉宽调速系统中当电机通电时,其速度增加,电机断电时其速度降低。只要按照一定的规律改变通断电的时间,就可使电机的速度保持在一稳定值上。直流电机可按其结构、工作原理和用途等进行分类,其中根
11、据直流电机的用途可分为以下几种:直流发电机(将机械能转化为直流电能)、直流电动机(将直流电能转化为机械能)、直流测速发电机(将机械信号转换为电信号)、直流伺服电动机(将控制信号转换为机械信号)。直流电机电路模型如图1-1所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。直流电机模型见图1。图1 直流电动机电路模型项目二 单片机最小系统一 单片机及微处理器控制系统的发展单片微型计算机的诞生是计算机
12、发展史上的一个新的里程碑。近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠
13、性高,结构合理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的阶段。微处理器诞生于上个世纪七十年代,随着集
14、成电路大规模及超大规模集成电路制造工艺的迅速发展,微处理器的性价比越来越高。此外,由于电力电子技术的发展,制作工艺的提升,使得大功率电子器件的性能迅速提高。为微处理器普遍用于控制电机提供了可能,利用微处理器控制电机完成各种新颖的、高性能的控制策略,使电机的各种潜在能力得到充分的发挥,使电机的性能更符合工业生产使用要求,还促进了电机生产商研发出各种如步进电机、无刷直流电机、开关磁阻电动机等便于控制且实用的新型电机,使电机的发展出现了新的变化。对于简单的微处理器控制电机,只需利用用微处理器控制继电器、电子开关元器件,使电路开通或关断就可实现对电机的控制。现在带微处理器的可编程控制器,已经在各种的机
15、床设备和各种的生产流水线中普遍得到应用,通过对可编程控制器进行编程就可以实现对电机的规律化控制。对于复杂的微处理器控制电机,则要利用微处理器控制电机的电压、电流、转矩、转速、转角等,使电机按给定的指令准确工作。通过微处理器控制,可使电机的性能有很大的提高。目前相比直流电机和交流电机他们各有所长,如直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题;交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节2。高性能的微处理器如DSP (DIGITAL SIGNAL PROCESSOR即数字信号处理器
16、)的出现,为采用新的控制理论和控制策略提供了良好的物质基础,使电机传动的自动化程度大为提高。在先进的数控机床等数控位置伺服系统,已经采用了如DSP等的高速微处理器,其执行速度可达数百万兆以上每秒,且具有适合的矩阵运算。二 整体设计89S52单片机为核心的直流电机控制系统控制简图如图1所示,由软件转换成PWM 信号,并由P3.0、P3.1输出,经驱动电路输出给电机,从而控制电机得电与失电。软件采用定时中断进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的预定值
17、,从而可以控制P3.0/ P3.1输出高低电平时的占空比,进而控制电压的大小。控制程序应用于电机的加减速。在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制。脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉冲频率低则反之。经实验发现,脉冲频率在40Hz以上,电动机转动平稳,但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10Hz以下,电动机转动有明显跳动现象。实验证明,脉冲频率在15Hz-30Hz时效果最佳。而具体采用的频率可根据个别电动机性能在此范围内调节。通过 P3.0输入高电平信号P3.1输入低电平与P3.0输入低电平P3.1输入信号分别实现电动机的正转
18、与反转功能。通过对信号占空比的调整来对直流电机进行调节。AT89C52显示模块驱动模块电源模块输入 入模块图2 系统硬件框图1 硬件电路设计由单片机硬件设计原理可知:(1)尽可能采用功能强的芯片,以简化电路;(2)留有余地。在设计硬件电路时,要考虑到将来修改、扩展的方便。2 单片机最小系统的设计单片机最小系统:所谓最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机,晶振电路和复位电路。如图3所示:三 单片机AT89S52AT89S52 8位单片机是MSC-51系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优
19、势技术(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口
20、下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。 DIP-40封装89S52引脚图如图4所示。1复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位,如图5,图6所示。 图5 上电复位 图6 手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更
21、多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。最小系统如图7所示。2 AT89C51各个管脚说明VCC:供电电压。 -i.bm hxy0:m GND:接地。 )U GR&QR %BI;(w9 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的
22、第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 xqdee :RD n&4xR3|z P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 p?o0&Z L#-V6. P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因
23、此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 &eF qLT: 2LzI2 Dn P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 h v9
24、PGg6 10qh*5s P3口也可作为AT89C51的一些特殊功能口,如下表所示: ,1-jf* CeNWlM=W口管脚 备选功能 v6w8=T- 6.T/Kj$DWa P3.0 RXD(串行输入口) W8.oLh m38*s x P3.1 TXD(串行输出口) EOBh0$!e -?MpHSho$ P3.2 /INT0(外部中断0) #!Id %=P2 WE+Vs P3.3 /INT1(外部中断1) ,9o4%I tI(39P3.4 T0(记时器0外部输入) s_o)MyCVC )Z2p Pmx P3.5 T1(记时器1外部输入) zN;u.8)h0 (;g!)P3.6 /WR(外部数据存
25、储器写选通) z= IkMktD l?uo/u P3.7 /RD(外部数据存储器读选通) gh;6t*a (ddtRfXUN P3口同时为闪烁编程和编程校验接收一些控制信号。 5V/y(4 /Uw% 4sI/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心 :Hs6?00 hw(M 读引脚时也就是把端口作
26、为外部输入线时首先要通过外部指令把端口锁存器置1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3
27、口都还有其他的功能 w%o)Q+ !nt2(eRST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 g|)DXz/ K?2yiDmc bNIX%r%7 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 Jx e|w h3 M=Vrr D /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程
28、期间,此引脚也用于施加12V编程电源(VPP)。 2 pvyNYGV _Ko| IXTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 :d#o0, 249V.XTAL2:来自反向振荡器的输出。3 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms
29、 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 kZ4;Psp AIAL g 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。项目三 直流电机驱动电路一 H桥由两个三极管,一个可以对正极导通实现上拉,另一个可以对负极导通实现下拉。 由两套这样的电路,在同一个电路中,同时一个上拉,另一个下拉,或相反,两者总是保持相反的输出,这
30、样可以在单电源的情况下使负载的极性倒过来。由于这样的接法加上中间的负载画出来经常会像一个H的字样,故得名H桥。二 H桥驱动电路图8中所示为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图8及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。 如图所示,H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。图8 H桥驱动电路要使电机运转,必须使对角线上的一对
31、三极管导通。例如,如图9所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。图9 H桥电路驱动电机顺时针转动图10所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。图10 H桥驱动电机逆时针转动三 使能控制和方向逻辑驱动电机时,保证H桥上两个同侧的三极管不会同时导
32、通非常重要。如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。 图11 所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。(与本节前面的示意图一样,图11所示也不是一个完整的电路图,特别是
33、图中与门和三极管直接连接是不能正常工作的。)图11 具有使能控制和方向逻辑的H桥电路采用以上方法,电机的运转就只需要用三个信号控制:两个方向信号和一个使能信号。如果DIRL信号为0,DIRR信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(如图12所示);如果DIRL信号变为1,而DIRR信号变为0,那么Q2和Q3将导通,电流则反向流过电机。图12 使能信号与方向信号的使用实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。比如常用的L293D、L298N、
34、TA7257P、SN754410等。 附两张分立元件的H桥驱动电路:项目四 PWM脉宽调制原理一 PWM调速原理PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”,见图13所示。图13 PWM信号的占空比设电机始
35、终接通电源时,电机转速最大为Vmax,设占空比为D= t1 / T,则电机的平均速度为Va = Vmax * D,其中Va指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;D = t1 / T是指占空比。由上面的公式可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Va,从而达到调速的目的。严格来说,平均速度Va与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似的看成是线性关系。二 PWM调速方法基于单片机类由软件来实现PWM:在PWM调速系统中占空比D是一个重要参数在电源电压Ud不变的情况下,电枢端电压的平均值取决于占空比D的大小,改变D的值可以改
36、变电枢端电压的平均值从而达到调速的目的。改变占空比D的值有三种方法:A、定宽调频法:保持t1不变,只改变t2,这样使周期(或频率)也随之改变。B、调宽调频法:保持t2不变,只改变t1,这样使周期(或频率)也随之改变。C、定频调宽法:保持周期T(或频率)不变,同时改变t1和t。前两种方法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。三 PWM实现方式方案一:采用定时器做为脉宽控制的定时
37、方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。故采用方案一。四 显示模块在本设计课题中采用的是7段4位共阳极LED数码管,它的引脚图如图14所示。7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,7段数码管分共阴和共阳两种显示方式,本设计中采用共阳极显示器。共阳极显示器的发光二极管的阳极连接在一起,当公共阳极接电源+5V时,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。通常将控制发光二极管发光的8位字节数据编码称为LED显示的段选码,要
38、构成多位LED显示时,除需要段选线外,还需要位选线,以确定段选码对应的显示位,位选线控制第几个LED显示。段选线控制显示字形。8个阴极分别与8个限流电阻相连,在接到相应的电路中(发光二极管的工作电流选取在10-20ma,限流电阻太大,数码管会太亮),其连接图如图15所示。图15 7段共阳极LED连接图因为单片机的输出端口输出的电流小,点亮数码管的能力不大,所以需要采用三极管放大输出电流,此次三极管采用的是C9013,具体放大电路如图16所示。图16 数码管放大电路五 控制模块正转、反转、急停、加速、减速五个开关分别与单片机的P1.0,P1.1,P1.2,P1.3,P1.4相连,然后再与地相连。
39、急停实现直流电机的停转,正转实现直流电机的正转,反转实现直流电机的反转,加速实现直流电机的加速,减速实现直流电机的减速,其电路如图17所示。图17 按键电路项目五 C语言软件编程在单片机系统的程序的设计开发中,单片机就如同整个系统的交通中枢,而程序就是组成交通中枢的条条大道,各个部分的模块化的程序就是整个系统的组成成份。软件编写的好坏,语句运用的是否简洁直接关系单片机的工作效率。在各个模块化的程序中尽量用最少的语句作最多的事情,不让语句出现歧义,这样就可以使整个程序可以在系统中更好的运行,使单片机工作效率大大的提高。该课题的软件设计采用了模块化设计的思想即将程序划分为若干个相对独立的功能模块,
40、画出每一个功能模块的详细流程图,并根据流程图编写程序,最后按照软件设计的总体结构框图,将各模块连接成一个完整的主程序。在主程序的设计中要合理地调用各模块程序。模块化设计的优点是:无论是硬件还是软件,每一个模块都相对独立,故能独立地进行设计、研制、调试和修改,从而使复杂的工作得以简化。模块之间的相互独立也有助于研制任务的分解和设计人员之间的分工合作,这样可提高工作效率和仪表的研制速度。本利用P3口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的电平的持续时间,达到使电机正转、反转、加速、减速、停转等目的10-11。由软件编程从P3.0/P3.1管脚产生PWM 信号,经驱动电路输出给电
41、机,从而控制电机得电与失电。软件采用延时法进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P3.0为高电平时实现电机正转,P3.1为高电平时实现电机反转。根据不同的加减速按钮,调整P3.0/ P3.1输出高低电平时的占空比,从而可以控制P3.0/ P3.1输出高低电平时的有效值,进而控制电机的加减速。项目六 系统调试与分析一 系统功能调试与仿真1 调试软件介绍KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理
42、解。在开发大型软件时更能体现高级语言的优势。KEIL C51编译器由uVision2集成开发环境与编辑器和调试器以及C51编译器组成。其中uVision2集成开发环境中的工程(project)是由源文件、开发工具选项以及编程说明三部分组成的;编辑器和调试器包括源代码编辑器、断点设置、调试函数语言、变量和存储器。Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的
43、参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一
44、个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。当电路设计完成之后,为了减少在电路板上调试时的难度,保证电路设计的正确性,将Keil c51编译生成的*.HEX 文件载入Proteus软件,实现电路仿真。2 系统调试在程序编写的过程中,出现了很多问题,包括PWM信号发生电路的控制、以及单片机控制直流电机的转动方向等问题,虽然问题不是很大,但是也让我研究了好长时间,在解决这些问题的时候,我不断向老师和同学请教,希望能通过大家一块的努力把软件编写的更完整,让系统的功能更完备。经过多天
45、的努力探索,也经过老师的指导,大部分问题都已经解决,就是程序还是不能实现应该实现的功能,这让我很着急。后来经过一点一点的调试,并认真总结,发现了问题其实在编写中断处理程序时出现了错误,修改后即可实现直流电机调速的目的。总结这次软件调试,让我认识到了做软件调试的基本方法与流程:(1)认真检查源代码,看是否有文字或语法错误(2)逐段子程序进行设计,找出错误出现的部分,重点排查(3)找到合适的方法,仔细检查程序,分步调试直到运行成功3 仿真图形初始状态,直流电机有如图示18运行效果图18 电机半速运转按下急停键,直流电机有图19的停止运行结果。图19 电机停转按下加速键,直流电机有图20的正向加速运行结果。图20 电机正转加速按下减速键,直流电机有图21正向减速运行结果。图21 电机正转减速按下反转键,直流电机有图22反向加速运行结果。图22 电机反转加速结束语该课题的主要任务是设计一个以89C51单片机为核心的直流电机调速系统。通过联调,实验验证了系统的可行,能满足设计要求,达到设计的指标,最后实现了对转速的控制和LED显示转速。这个开发过程主要包括了硬件电路仿真设计和软件编程两个部分。从确定课设题目,到查阅质料确