《基于单片机的直流电机PWM调速系统-毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的直流电机PWM调速系统-毕业论文.doc(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 学校代码: 11059 学 号:0905074010Hefei University 毕业论文(设计)BACHELOR DISSERTATION 论文题目: 基于单片机的直流电机PWM调速系统 学位类别: 工 学 学 士 学科专业: 自 动 化 作者姓名: 马 明 全 导师姓名: 台 德 艺 完成时间: 2013年5月25日 单片机控制的PWM直流电机调速系统设计中 文 摘 要脉宽调制(PWM)具有调速精度高,响应速度快,调速范围宽和损耗低的特点,逐渐成为直流电机控制的主流技术,并获得了广泛应用。本系统采用STC89C52单片机作为系统的中央处理器,采用红外光电耦合器测量电动机的转速,用矩阵
2、键盘实现直流电机的速度设定及启动、停止、方向和加减速度的控制,采用QC12864液晶显示屏幕实现电机实时转速、设定转速及转动状态的显示。经测试:系统稳定、灵活,调速范围为500-2000转/每分,PWM波调整步长为1,对应的电机转速的调整步长为10r/min。关键词: 直流电机; 调速; STC89C52;PWMThe Design of PWM Controlled DC Motor Speed Control System Based On Single ChipABSTRACTPulse Width Modulation (PWM) with high precision speed c
3、ontrol, fast response, wide speed range and low loss characteristics, has become the mainstream technology to DC motor control ,and access to a wide range of applications.The system used STC89C52 microcontroller as the systems central processor, using infrared optocouplers to measure the motor speed
4、, when Matrix keyboard DC motor speed setting and start, stop, direction and control of acceleration and deceleration, using QC12864 LCD screen to achieve real-time speed of the motor, set the speed and rotational state of the display. Tested: the system Stable, flexible, speed range of 500-2000rev/
5、minute, PWM wave adjustment in steps of 1, the corresponding adjustment of the motor speed in steps of 10rev/minute.Keyword: DC Motor; governor; STC89C52; PWM目 录第一章 前言11.1 课题选择的背景11.2 课题选择的意义11.3 国内外发展现状21.4 PWM变频调速发展前景31.5 课题研究内容及目标31.6 本章小结3第二章 系统总体方案设计42.1设计的任务和要求42.2 系统分析与选择42.2.1 控制器模块42.2.2 显示
6、模块的分析与选择42.2.3 测速传感器的分析与选择42.2.4 PWM实现方案论证52.2.5 键盘的方案分析与选择62.2.6 输入输出通道的分析72.2.7 驱动模块的分析与选择72.3 系统硬件组成及各模块功能72.4 本章小结9第三章 系统硬件设计103.1 CPU主控制模块103.2 电源电路123.3 H 桥驱动电路133.4 键盘部分143.5 电机测速电路的设计153.6 显示模块153.7 整体电路设计173.8 本章小结17第四章 系统软件设计184.1 主程序184.2 键盘扫描子程序194.3 PWM信号发生程序214.4 测速子程序224.5 显示子程序234.6
7、本章小结24第五章 系统调试与分析255.1 软件调试255.2 仿真软件调试265.3 硬件调试295.4调试故障及原因分析295.5 本章小结30总 结31参考文献32致 谢33附 录34附录A 系统原理图34附录B 系统实物图35附录C 部分程序36V第一章 前言1.1 课题选择的背景直流电机是最常见的一种电机,它已经广泛应用于交通、化工、航空、机械等领域中。早期的直流电机控制均以模拟电路为基础,采用运算放大器,非线性集成电路以及少量的数字电路组成,控制系统的硬件复杂,而且系统非常不灵活,功能单一,调试困难,阻碍了直流电机控制技术的发展和应用范围的推广。PWM控制技术是利用半导体器件的关
8、断和导通,把直流电压变成电压脉冲列,控制电压脉冲的周期和宽度以达到变压目的,或控制电压脉冲的周期和宽度以达到变压变频目的的一种控制技术。近年来,电气传动的PWM 控制技术已成为电气传动自动控制技术的热点之一。随着近代电力电子技术和计算机技术的发展以及现代控制理论的应用,单片机成为了直流电机调速不可或缺的部分之一。单片机具有体积小、功能强、重量轻、抗干扰能力强、控制灵活、应用方便、价格低廉等特点,而被广泛应用于直流电机调速系统。在实际应用中,电机是把电能转化为机械能的主要设备,因此要求其具有较好的能量转换效率和能够根据生产工艺的要求调整转速。电机调速性能对提高产品质量,提高劳动生产率和节省电能有
9、着决定性的影响。所以,电机调速一直是研究的热点。1.2 课题选择的意义直流电机具有良好的启动性能和调速特性,虽然各种类型的电机层出不穷,然而在电子仪器设备、自动控制领域等方面,直流电机的应用仍然占有突出地位。直流电机调速平滑,过载能力强,调速范围广,抗冲击负载能力强,可实现频繁的无极快速起动、制动、加/减速和正/反转。为了满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,通过PWM方式控制直流电机调速的方法就应运而生。PWM 直流电动机调压调速系统拥有需用的功率元件少、控制方便、线路简单、开关频率高、
10、低速性能好、稳速精度高及调速范围宽、控制方式多样化、能与数字速度给定信号直接接口等优点,在工厂企业得到广泛的应用,有利于国家工业化的发展。通过学习并熟练掌握这个调速系统,对今后的工作有非常重要的意义。本课题是以单片机为主要控制核心,针对直流电机的调速系统进行设计,通过本次毕业设计培养了我综合运用所学的知识和技能解决问题的能力,巩固和加深对所学知识的理解;培养了我探索研究的习惯和工作能力。1.3 国内外发展现状控制直流电机调速大致有下面几种方法:第一,最初的直流调速系统是采用恒定的直流电压向直流电机供电,通过改变电枢回路中的电阻来实现调速。第二,30年代末,出现了发电机电动机,人们开始配合采用电
11、机扩大机、电磁放大器、闸流管等控制器件来实现调速。第三,随着1957年世界上第一支晶闸管的诞生,人们开始采用晶闸管整流装置调速。近些年随着微型计算机、集成电路、新型电子器件及新的传感器的成熟应用,直流电动机控制装置也继续向前发展。在微机直流电气传动控制系统的应用中,倾向于数字化、智能化的思路,极大地促进了电气传动的发展。近年来,一些先进国家已推出大规模使用微机控制为核心的直流电气传动设备1。数字直流调速装置,在技术上它可以成功地完成从一个给定的信号,经过调整参数设置,最后实现触发脉冲的数字化。使用一个通用的硬件平台和一系列的附加软件程序来控制一定功率和电流的直流电动机,一台控制器可以通过参数设
12、定和使用相应软件对很多被控对象进行控制,强大的通讯功能使得其可以很容易与PLC等其他通讯设备构成整个工业控制过程系统,并具有操作简单、抗干扰能力强等特点,特别是方便和灵活的调试方法、完善的保护功能和整个控制器的小型化,使模拟直流调速系统的不完善、调试不方便、笨重等不足之处完全克服,另外数字控制系统还具有迅速排除故障、速度快、精度高、易于维护等优点,所以它具有广阔的应用前景1。目前我国的晶闸管直流调速系统也得到了迅速的发展和广泛的应用,已广泛应用于我国的各个部门。我国关于数字直流调速系统的研究主要有:综合性最优控制,补偿PID控制,PID算法优化。随着PWM技术的发展,我国直流电机调速也正在向着
13、脉宽调制方向发展。目前我国大部分数字化控制直流调速装置还是依靠进口。但由于进口设备价格昂贵,也给出了国产全数字控制直流调速装置的发展空间,所以国内许多科研单位、大专院校和厂家也都在开发全数字直流调速装置1。1.4 PWM变频调速发展前景20世纪末,随着微电子控制技术、电力电子功率变换技术的成熟应用,交流电动机变频调速技术以得到了惊人的发展。展望21世纪,交流电动机变频调速技术将会有更大发展。 (1) 在变频控制电路方面:随着变频装置已经实现了数字化控制,控制技术的微电子数字化将是今后的发展趋势。变频装置的数字化技术是从20世纪80年代中期开始逐步发展到16位、32位微处理器,目前普遍采用DSP
14、2。 (2) PWM及多电平技术:随机PWM技术为消除机械和电磁噪音提供了一种新的最佳途径,盲目地提高工作频率已经渐渐被随机PWM技术取代。由于PWM逆变器的开关损耗随着功率和频率的增加而迅速增加,这就限制了PWM逆变器的高频化和大功率,因此,在这些方面人类还有大量的工作。目前提高开关频率的一个方法是采用谐波技术及在此基础上发展起来的软开关技术。在大功率装置方面,除尽量采用优化PWM模式外,多电平逆变器也越来越受到人们的重视,这样开关损耗问题将转化为多管串联后的均压问题2。1.5 课题研究内容及目标根据基于单片机的直流电机PWM调速系统要求确定整体的设计方案,完成单片机控制的PWM直流电机调速
15、系统的设计。该系统需要能实现用软件产生PWM信号,并且实线对电机启动和停止、加速和减速、正传和反转的控制,同时还可以实现电机转速的设定;最后在显示器上显示直流电机的实时转速、设定转速和转动状态。经分析及设计,该系统将主要由输入模块、中央处理模块、显示器、电机驱动模块和测速元件部分组成。1.6 本章小结本章节主要分析了直流电机PWM调速系统研究的背景和研究的目的及意义;并且介绍了直流电机控制系统的国内外研究现状及发展情况;PWM变频调速的发展前景;以及本课题的主要研究内容及预期目标做了简要说明。第二章 系统总体方案设计 2.1设计的任务和要求设计一个基于单片机的直流电机调整系统,要求用PWM方式
16、控制电机的转速,用独立式按键控制电机的起运,停止,正转,反转,在键盘和上位机设定电机的转速和方向。完成直流电机和单片机接口电路的设计和系统软件的设计。本设计的控制对象为直流电机,控制器为键盘,控制量为电机转速,显示量为电机实时转速、转动方向和设定转速。2.2 系统分析与选择根据题目要求系统模块可以划分为:中央处理器模块、显示电路模块、控制模块、电机测速模块及电机驱动模块。为很好的实现各模块功能,分别对每个模块的设计方案进行了分析及选择。 2.2.1 控制器模块根据题目要求,控制器主要功能有:产生初始的PWM波;接收来自控制模块和测速模块的信号并加以分析处理;将信号的处理结果输出至显示模块和驱动
17、模块,前者以显示电机设定转速、实时转速及电机转动方向,后者以控制电机的运转状态。对控制器的选择我们做出以下选择:采用STC89C52作为本系统的中央处理装置。单片机不仅具有很好算术运算能力,而且编程时灵活、自由度大。同时又具有功耗低、体积小、技术成熟和价格低廉等优点。因此,在本设计中采用STC89C52作为系统的中央控制器。2.2.2 显示模块的分析与选择本设计中要求实现电机的正反转及转速的设定,正反转的状态及电机转速的设定值都需要用显示器进行显示,所以采用液晶显示屏幕作为系统的显示器,同时液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果
18、好,抗干扰能力强,并可灵活的实现多种状态。2.2.3 测速传感器的分析与选择对电机转速的测量,依据当今技术及本设计的现状,大致有以下三种可以执行的测量方式。方案一:使用测速发电机测速,电机的输出电动势E和转速n成线性关系,即E=kn,其中k是常数。当改变旋转方向时,输出电动势的极性也相应改变。方案二:采用霍尔传感器测速,霍尔元件是磁敏元件,在被测的旋转体上装一个磁体,当电机旋转时,每当磁体经过霍尔元件,霍尔元件就发出一个信号,经放大整形得到脉冲信号,送至单片机进行运算。方案三:采用红外光电耦合器测速,发射管发射信号,接收管接受到信号时输出脉冲。电机转动时,每转半圈OUT 端输出一个上脉冲,然后
19、用单片机在单位时间里面来采集上升源的个数,这样就完成速度的采集。经比较,方案一中测速发电机的安装不如方案二中霍尔元件安装方便,准确率也没方案二的高,并且方案二不需要A/D 转换,测量值直接可以被单片机接收。但方案二中霍尔传感器的采购不是很方便,价格比较也比较昂贵,方案三中硬件电路简单,器件采购方便,更重要的是它具有方案二的几乎所有的优点,故选择方案三。方案三中具体的记数方法是通过单片机记数时间S(秒)内的脉冲数N,从而计算得到每分钟的转速:M=N/S60。同时还可以采用定时的方法:通过定时器记录脉冲的周期T,这样每分钟的转速:M=60/T。比较两个计数方法,方法一的误差主要是1 误差(量化误差
20、),假设电机的最低设计转速为120 转/分,则记数时间S=1s,所以其误差的绝对值|=|(N1)/S60-N/S60=60(转/分),误差计算公式表明,增大记数时间可以提高测量精度,但这样做却增大了速度采样周期,会降低系统控制灵敏度。而方法二所产生的误差主要是标准误差,并且使采样时间降到最短,误差=60/(T1)-60/T,设电机速度在1206000 转/分之间,那么0.01sT0.5s,代入公式得:0.00024|0.6(转/分)。由此明显看出,方法二在测量精度及提高系统控制灵敏度等方面优于方法一,所以在这里我采用方法二进行计数。2.2.4 PWM实现方案论证(1)PWM调速工作方式方案一:
21、双极性工作制。在一个脉冲周期内,来自单片机两个端口的两个控制信号电平高低相反,这样两个控制信号的高电平时差控制着电动机的转向和转速。方案二:单极性工作制。PWM波的占空比取决于单片机的一个端口,另一个端口为低电平,两个输出口的切换控制着电机的正反转,PWM占空比控制着电机的转速。由于单极性工作制相较于双极性工作制具有电流最大波动小和电压波中的交流成分小的优点,所以我们本系统采用单极性工作制3。(2) PWM调脉宽方式调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定,不会与单片机中的其他频率产生冲突,并且在单片机产生PWM脉冲的软
22、件实现上也比较方便3。(3) PWM软件实现方式方案一:采用软件延时的方式,此方式的缺点是在引入中断之后,将会有一定的误差。方案二:采用定时器作为脉宽控制的定时方式,此方式产生的脉冲宽度极其精确,最大误差只能达到几个微秒,综合考虑我们采用方案二4。2.2.5 键盘的方案分析与选择键盘是单片机不可缺少的输入设备和实现人机对话的纽带。常用的键盘有独立式键盘和行列式键盘等。方案一:独立式键盘独立式键盘与单片机进行接口时,键盘接口使用的I/O线和键盘的数量相等,其特点为其按键的数量比较少,且键盘中各按键工作时不会相互干扰。因此可以依据设计需要实现对按键的灵活编码。这种形式的键盘结构简单,且按键识别比较
23、容易。独立键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这种类型的键盘。方案二:行列式键盘行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,按键在行线和列线的每个交叉点上,按键中按键的个数是M*N个。这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,行列式键盘适用于按键输入多的情况5。本设计不仅要求对电机的转速进行设定,而且要求实现电机的启动、停止、加速、转速、正转和反转控制,势必需要至少十个以上的按键,又根据以上的论述,故采用方案二,以提高单片机系统中I/O的利用率,从而节省了单片机系统中的I/O端
24、口。2.2.6 输入输出通道的分析由于选用了红外光电耦合器进行测速,微处理器采集的信号是脉冲信号,故无需经过A/D 转换就可以输入到单片机中。由于采用PWM 控制直流电机的电枢电压,单片机的输出信号通过驱动进行放大后就是电机的电枢电压,从而通过控制PWM波的占空比来控制电机的转速。2.2.7 驱动模块的分析与选择本设计的核心部分就是对小型直流电动机进行可逆的PWM调速控制。要实现这些功能,基本上采用的是由四个开关管构成的H型桥式驱动电路。对于小功率直流电机驱动有H桥式驱动和L298驱动两种方法,L298驱动芯片虽然简单,驱动能力也较强,但由于其价格昂贵,且本设计中电机属于小功率直流电机,H桥式
25、驱动电路就足以驱动,并且价格便宜,故而本设计采用H桥式驱动作为小功率直流电机的驱动模块6。2.3 系统硬件组成及各模块功能本调速系统主要是由:单片机、驱动电路、直流电机、测速元件、接口电路、显示器和输入控制模块等部分组成。硬件电路组成框图如图2.1所示:图2.1 直流电机调速系统硬件本调速系统各模块的功能分析如下:中央控制模块:这部分电路的核心部件是STC89C52单片机,它的功能总得来说分为三个方面,一、通过内部程序设定出初始PWM信号,输送给桥式驱动从而控制电机运行;二、接受来自键盘和红外光电接收管的信号再加以分析和处理;三、对处理的结果进行输出,如控制七段数码管的显示和点亮发光二极管。输
26、入控制模块:这一部分主要是利用带中断的矩阵键盘来实现对直流电机的控制。由矩阵键盘十六个按键中的十个键实现对转速的分级设定(0键按下设定转速为0,1键按下设定转速为5,2键按下设定转速为25,3键按下设定转速为40,4键按下设定转速为60,5键按下设定转速为80,6键按下设定转速为100,7键按下设定转速为120,8键按下设定转速为135,9键按下设定转速为150。其中转速单位为r/min),另外六个按键分别实现电机的开始、停止、加速、减速、正转和反转的六种控制。驱动模块:采用H桥式驱动来驱动电机及实现电机的正反转。驱动接受来自P2.0和P2.1口的PWM波,然后用来驱动直流电机。本设计中驱动的
27、是小功率直流电机,所以对驱动的驱动能力要求不是太高,一般的桥式驱动既能满足要求。测速模块:采用红外光电耦合器测速,发射管发射信号,接收管接受到信号时输出脉冲。电机转动时,每转半圈OUT 端输出一个上脉冲,然后用单片机在单位时间里面来采集上升源的个数,这样就完成速度的采集。显示模块:本设计采用液晶显示屏(LCD)作为本设计的显示模块。液晶显示屏上显示的内容包括:电机的(正转或反转)、电机的设定转速及电机的实时转速。2.4 本章小结本章主要介绍了直流电机调速系统的方案分析与选择,应用了适合于该系统的电机调速控制方案和总体设计方案;在器件的选择方面也做了比较具体的说明;最后又详细介绍了各个模块实现的
28、具体功能。在本章最后完成了基于单片机PWM直流电机调速系统的硬件组成框图设计。第三章 系统硬件设计本章将基于上一章为基础对硬件系统各部分作进一步的分析,并且对硬件各部分电路加以分析和呈现。下面将分别对CPU主控制模块、电源、PWM波形产生部分、电机驱动部分、键盘输入部分、测速部分及显示部分进行设计。3.1 CPU主控制模块本系统选用STC89C52单片机作为主控制器。主要功能包括三个方面:接受外界信号、处理接受信号和输出控制信号。外界信号主要指来自独立式键盘和红外光电耦合器接收管的信号;处理接受信号就是对接受的信号进行作用分析,并作出相应处理;输出信号包括输出PWM波控制电机转动和使数码管显示
29、电机实时转速。STC89C52单片机内部资源很丰富,不需要扩展芯片。在用STC89C52单片机设计系统时,首先要构成一个最小系统,单片机才能正常工作,即将单片机接上时钟(晶振)电路和复位电路。下面介绍单片机的设计部分分析:(1)单片机STC89C52STC89C52单片机是MSC-51系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机7。STC89C52
30、片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。如图3.1所示:图3.1 DIP-
31、40封装STC89C52引脚图(2)复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。如图3.2所示: 上电复位 手动复位图3.2 复位电路图有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本系统中选用手动复位的方式。程序的运行速度取决于时钟的频率,而且高频率时钟的应用还可以实现更高的信号的采样率。然而采用高时钟的代价是功耗大,同时对系统级运行环境都比较高。本系统中单片机本身用于控制,不需要太高频率的时钟,所以选择适当频率的时钟,同时适当频率的晶振有利于选频信号强度的准确度。本系统选取11.095M
32、HZ无源晶振接入XTAL1和XTAL2引脚,并联2个20pF陶瓷电容帮助起振。最小系统如图3.3所示:图3.3 STC89C52最小系统3.2 电源电路由于整个系统都是用单片机、小型电机和各类芯片以及电阻、电容组成的,其工作电压为+5V,不需要负电压,所以可采用三端固定集成稳压器LM2940稳压芯片。LM2940为输出电压固定的低压差三端稳压器;其输入电压为7.2V,输出电压5V,输出电流为1A;输出电流为1A时,最小输入输出电压差小于0.8V;最大输入电压为26V,输入电压范围比较大;工作温度也比较大,可以在-40至+125摄氏度范围内正常工作;内含静态电流降低电路、电流限制、过热保护、电池
33、反接和反插入保护电路。鉴于以上这些优点和其适合于本设计的要求,故采用LM2940作为整个系统的供电芯片。其中输入电压为直流7.2V,后接1uF和22uF电容进行滤波。电源模块电路图如图3.4所示。 图3.4 电源电路3.3 H 桥驱动电路H 桥式电机驱动电路包括一个电机和四个三极管,要使电机运转,就必须导通对角线上的一对三极管。根据不同三极管对电流的导通情况,电流会从左至右或从右至左流过电机,从而控制电机的转向。在本设计中采用H 桥功率驱动电路,H 桥功率驱动电路可应用于步进电机、直流电机及交流电机等的驱动。直流电机控制使用H 桥驱动电路(图3.5),当PWM1 为低电平时,通过对PWM2 输
34、出占空比不同的矩形波使三极管Q1和Q6 同时导通而Q5 截止,从而使电机的正向转动及实现了转速的控制;同理,当PWM2 为高电平,通过对PWM1 输出占空比不同的矩形波使三极管Q2和Q5 同时导通而Q6截止,从而使电机反向转动及实现转速的控制8。图3.5 H 桥的电机驱动电路3.4 键盘部分在第二章已经选用了4*4矩阵键盘作为该系统的输入设备,由矩阵键盘十六个按键中的十个键实现对转速的分级设定,另外六个按键分别实现电机的开始、停止、加速、减速、正转和反转的六种控制。其与单片机的接口电路如图3.6所示。图3.6 矩阵键盘电路硬件图3.5 电机测速电路的设计理论上,是先将转速转化为某一种可以方便测
35、量的电量来进行测量,如电压、电流等。在我的设计中采用了另外的一种方法,就是将直流电机的转速测量转化换为电机脉冲频率的测量。基于这一思想,采用了三极管输出型红外光电耦合器。如图3.7所示,在电机转轮上安装一个旋转挡板,这样,电机每转一圈,三级管(红外接收头)透光导通两次,OUT 端输出一个上脉冲,然后用单片机来计数单位时间上升沿的个数,这样就完成了直流电机转速的测量9。图3.7 电机测速电路3.6 显示模块本设计采用12864 LCD显示屏作为显示设备,12864是单片机应用系统中常用的显示设备。 128X64是指四位/八位并行、两线或三线串行的接口方式,内部包含国标一、二级简体中文字符点阵图形
36、液晶显示模块,其显示分辨率为12864,这意味着水平可显示128个点,垂直可显示64点,12864LCD内置8192个16*16点汉字和128个16 *8点ASCII字符集。使用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互式图形界面,不仅可以显示84行1616点阵汉字,还可以显示图形。12864LCD相较于其他液晶显示设备具有硬件电路和显示程序简单的优势,且价格也略低于相同的模块图形点阵液晶显示模块10。图3.8 12864与单片机的硬件连接图从12864与单片机的硬件连接图3.8中可以看出,本次设计采用的12864工作在并行模式,液晶模块和单片机的连接除了P0口的并行8位
37、数据线外,还有RS,RW,E等几根线,其中R/S是指令和数据寄存器的选择控制线(串行模式下为片选),R/W是读写控制线(串行模式下是数据线),E是使能线(串行模式下为时钟线)。通过这几根控制线和数据线,再结合它的时序图,就可以编写出相应的驱动程序。本次设计主要是单片机写数据到液晶屏,所以此处只介绍单片机写数据到液晶屏的时序图,并行模式下的写时序图如图3.9。根据这个时序图,就可以把写数据或者写命令写到LCD12864液晶的子程序。图3.9 并行模式的写时序图3.7 整体电路设计整体电路设计部分见附录A所示。3.8 本章小结本章开始介绍了该系统中所用的微控制器STC89C52在本设计中的功能及其
38、最小系统的组成,又详细介绍了H桥式驱动的功能、电路图等等;接着分别介绍了在该系统中矩阵键盘和LCD显示器与单片机的接口电路及红外测速元件的电路图,并给出了直流电机PWM调速系统的整体硬件图。第四章 系统软件设计本软件程序在keil vision2软件编程环境下,根据超声波测距的公式采用C语言将其分为主程序、定时中断子程序、速度测量子程序、显示子程序和键盘子程序。在这些程序中,以速度测量子程序和定时中断子程序为核心。4.1 主程序由于本设计没有限制编程方式,所以我选用了自己最熟悉的C语言编程。C语言简洁、紧凑,使用方便、灵活、具有结构化的控制语句,语法限制不太严格,程序设计自由度大,与汇编相比,
39、C语言的移植性较好。在设计编程时要尽量向结构化、模块化方向编写,部分程序清单见附录C。本章将对单片机控制的PWM直流电机调速系统的程序做具体分析。本节是对主程序的流程作分析,具体流程图如图4.1所示:图4.1 直流电机调速系统主流程在图4.1中可以看出首先对数据初始化然后对中断初始化。对控制直流电机的方向信号和选通信号的引脚置0(通电时电机不启动,直至启动键按下后才启动,启动后的转向是正转);接着就要对显示子程序中用到的数据寄存单元和测速子程序中用到的数据寄存器和时间寄存器清零;设定T0的工作方式及定时时间,开中断,并让T0开始工作;最后执行键盘扫描子程序。以后就循环着执行测速子程序、显示子程
40、序和键盘扫描子程序,直至停止键按下11。 4.2 键盘扫描子程序在第二章中我们已经选择了用矩阵键盘作为本系统的输入控制模块,由矩阵键盘十六个按键中的十个键实现对转速的设定,另外六个按键分别实现电机的开始、停止、加速、减速、正转和反转的六种控制。键盘的按键方式分为非接触式和接触式两种,而在单片机应用系统中一般是用机械式触点。在本系统中按键S未按下时,P1.X口输入为高电平,按键S按下后,对应的P1.X口的输入为低电平。因为按键是机械触点,所以按键闭合或断开时均会有抖动现象,此时P1.X口输入端的输出波形如图4.2所示。虽然这种抖动只是毫秒级,但是计算机的处理速度是微秒级的,所以这种抖动现象对计算
41、机来说影响还是很大的。所以在键盘使用中必须解决抖动问题12。图4.2 键盘按下时的抖动现象常用的去抖动方法有两种:软件方法和硬件方法。而在单片机中一般使用软件方法,因此本设计采用软件去抖动解决问题。软件解决抖动方法:如果检测到P1.X口为低电平时,先等待一段时间,即延时10ms或更长时间,当P1.X口仍为低电平,那么即可认为对应的按键S被按下。关于按键释放的后沿一般不对其进行处理,这里就不多做说明。本设计采用的是查询工作法,软件设计时直接在主程序中插入键盘子程序,主程序每执行一次,键盘子程序就执行一次。如果没有键按下就跳过键识别,直接执行主程序;如果有键按下,则执行键盘子程序,得到按键编码值,
42、然后对编码值进行处理,对电机进行相应操作。处理完以后再继续执行主程序。图4.3为键盘子程序的流程图。主程序中已经对电机初始转速进行了设定,当启动键按下时,单片机会把初始设定的电机转速送至H桥从而电机转动,然后单片机一直检测矩阵键盘是否有按键按下,若无电机转速及方向将保持不变,有则进入键盘中断子程序,进入后再检测到底是哪个键按下,若是电机状态键(代表电机加速、减速、正转和反转的按键)按下,则对应改变PWM占空比或者电机转向,若是设定转速键(设定电机分级转速的按键)按下,单片机则调用程序分析出设定的转速值,然后和当前单片机测量的电机实时转速值进行比较,再去改变PWM的占空比。于此同时单片机还会检测
43、停止键是否按下,若有则电机将停止转动。图4.3 键盘子程序流程图4.3 PWM信号发生程序本设计采用的STC89C52单片机用软件方法来模拟输出PWM波形,具体流程图见下图4.4。相对与用硬件方法实现PWM信号,用软件方法实现PWM信号具有成本低、限制少、实现便捷等优点。但是实现高性能的软件PWM信号,也不是容易的事情。实现软件PWM信号的最大难题是死区的大小,就是PWM的最少分辨时间;其次是程序的效率问题。用软件实现PWM信号,常用两种方法:一种是用定时器控制PWM输出,此种方法的死区时间最少占5个指令周期,分辨率比较低。第二种是应用指令延时实现PWM的输出,此种方法的分辨率可以达到一个指令
44、周期,但是程序较为复杂。理论上,把这两种方法结合起来,根据不同的占空比,采用相应合适的方式可以比较好的解决死区与效率的问题13。图4.4就是应用延时的方法实现PWM波形输出的流程图。在本设计中,把单片机每50个机器周期作为PWM波形的基本周期,采用定频调宽的方法去改变PWM的占空比。定时器T0确定PWM波的频率,T1确定高电平的所占时间,这样改变T1的初值就可以改变PWM的占空比。详细程序见附录C。停止T1,PWM置0入口启动T1,PWM置1初始化T1和T0初始化T0和T1返回T1入口返回T0入口返回图4.4 产生PWM信号的流程图4.4 测速子程序测速也是是本设计的主要功能,使用测速元件对速
45、度进行测量,并通过显示器显示,使人们可以直观地观察调速的结果。实现测速功能的程序流程图见图4.5。对于小型直流电机速度的测量,比较常用的是采用脉冲发生器来检测速度。通常可以使用以下两种方法:1、M法,在一定的时间间隔t内,对脉冲发生器中脉冲计数,从而得到与电机转速成正比的脉冲量的值m;2、T法,通过对脉冲发生器的脉冲周期进行测量来计算电动机转速的一种测量方法,对脉冲周期测量时借助频率已经确定的时钟脉冲技术。对于这两种测速方法,M法适用于对高速的检测,速度越高误差越小,测量数据越精确,反之,误差就越大;T法则适用于低转速的检测。本系统中因为电机转速基本停留在高速状态,故本设计采用M法测速。在图4.5测速功能程序流程图中可以看出,利用单片机进行转速的测量比较简单。本设计中转速的检测,实际上是应用了两个中断服务子程序,分别是T0中断和INT0中断。在图4.5中可见,INT0中断执行的功能就是外部每输入一个脉冲,R0寄存器就加1。T0中断的作用就是给定一个时间间隔T,在T内应用INT0中断对外部脉冲进行计数,时间到就送出R0的数值,并对其进行清零。本设计测速模块中应用了一片挡板,所以电机每转一圈,就会产生两个脉冲,因此我们只需要定时0.5S就可以得到电机1S的转速了。另外程序中的测速子程序,就是对转速数据进行BCD码的转换并且显示14。中断入口关定时器初始化T0R=10?保存T0值R0
限制150内