1、武汉职业技术学院2012毕业设计摘要本次课程设计基于AT89C51单片机为核心,应用PWM技术对直流电机的速度进行精确调节,并测量出电动机的转速,通过模数转换系统,使用LCD液晶显示器精确的显示电动机的转速。本次课程设计的目的是更加熟练掌握单片机的工作原理及实际应用,特别是单片机的编程语言,数模转换系统,PWM调节脉冲及LCD液晶显示器的工作原理。关键字 :51单片机;转速控制;模数转换;LCD液晶显示器; 35 目录1前言12 硬件部分的设计22.1硬件设计总体思路22.2单片机控制直流电机部分的硬件设计.3 2.2.1直流电机组成原理.3 2.2.2直流电机调速方案的设计.4 2.2.3直
2、流电机测速方案的设计.6 2.2.4 PWM产生与控制部分方案的设计.7 2.2.5 LCD显示部分方案的设计.9 2.2. 数模与模数转换部分方案的设计.133 各硬件部分的连接与接口153.1 单片机与直流电机接口部分.153.2单片机与LCD显示模块通信接口部分173.3各部分硬件结合原理及构造184 软件程序设计194.1系统软件设计的总体概述194.2系统各部分软件设计的思路225 系统的调试与现象分析246设计总结26参考文献27单片机程序.28单片机控制直流电机转速及温度测量程序.331 前言近年来,随着科技的飞速发展,单片机的应用正在不断地走向深入。在仪器仪表、家用电器和专用装
3、备的智能化以及过程控制等方面,单片机都扮演着越来越重要的角色。将单片机的应用引入实际科技实践必将对微电子控制技术的研究与实践注入强大活力。本次设计研究的直流电机转速控制及转速的LCD显示实验装置即以单片机作为核心部件,它可完成对直流电机转速、方向的闭环控制,并应用LCD液晶显示装置显示出转速。本文利用现代单片机和LCD液晶显示器的一切优点、组合实现功能的强大,可方便以后电路的升级与扩展。本文结合LCD显示、电机控速、红外侧距、键盘操作等多种技术,实现了基于51单片机的电机转速测量控制系统的设计。直流电机调速性能好,可靠性高,机械特性强,在自动控制中的应用极为广泛。直流电机的调速系统多种多样,但
4、系统复杂,控制精度和成品价格难以兼顾。本文使用价格低廉、应用广泛的MCS - 51 系列单片机为控制芯片,以PI 调节控制算法为基础,完成对直流电机转速的调节,达到了控制性能好,成本低的目的。本文重点阐述了该系统的基本工作原理、所采用的相关技术等,进而交代了电机转速测量控制的实现方法。最后重点阐述了LCD液晶显示和按键部分。基于该系统在LCD上实现菜单控制系统在电路图设计比较方便,主要分为四部分,电源部分、安键部分、LCD显示部分和控制部分;较复杂的是在控制软件部分,软件控制部分分为三部分,一部分是安键判断部分、菜单控制部分和显示部分。液晶显示器(LCD)是现在非常普遍的显示器。它具有体积小、
5、重量轻、省电、辐射低、易于携带等优点。2 硬件设计部分51 系列单片机引脚图见图2-1 ,其优点是支持较为丰富而且简单的指令集,编程器通用且兼容性好,具有单片机的典型代表性,因此该系列单片机在自动控制中应用最为广泛。 图2-1 8051 单片机引脚图2.1硬件设计总体思路根据本次课程设计的具体要求为:利用数模转换来改变直流电动机的转速,并使用LCD显示器系统显示出直流电机的具体转速,并且单片机控制的电机实际转速与液晶显示器显示出的转速应该时时对应。这个硬件系统的隐含意义是,本系统应该具有数模和模数转换的部分,因为这个模数转换部分在这个系统中是不可缺少的,单片机控制的直流电机转速,在实际中无论是
6、对电机控制的信号,还是电机输出的信号都应该是数字信号,因为只有数字信号才能被单片机所识别,而最重要的是,单片机控制的直流电机输出的转速的信号只有是数字信号时才能被液晶显示LCD模块所识别,并最终准确的显示出直流电机的转速。在硬件电路的设计中,模块的组合要根据它们之间的控制和被控制的关系进行电路连接。测速部分采用的是与被测电机同轴的测速发电机。它可以很方便快捷地将直流电机的速度信号转换为可供CPU采集的模拟信号。CPUAT89S52是MCS-51系列单片机中用途比较广泛的一种类型。8位输入输出数据具有较高的运行速度。模数转换器CS-0832将模拟信号高速转换为12位数字信号并将数字信号输出给CP
7、U做数据处理。电动机驱动器件1293D是内部自带保护电路的电动机驱动芯片,内置钳位二级管,拥有过电流保护和过电压保护功能。此外,为避免在系统运行时出现飞车现象,专门设计复位电路。复位电路包括软件复位和硬件复位2种,当软件复位无法正常控制复位时,可由硬件强行对其进行复位控制。系统可通过键盘控制电机的转速方向和速率的改变,首先CPU不断对键盘进行扫描,当有按键按下时,CPU将自动执行键盘程序对电动机进行转速控制。经过测速反馈电路进行实时检测转速可通过LCD数码管显示电动机运行状态,使其运行在正转、反转、加速、减速等不同的运行状态。单片机控制电动机的系统总体结构如图1所示。我的硬件设计正是根据这个整
8、体设计的思路为指导进行的。调速系统的硬件设计原理方框图如图2-2 所示, 以AT89C51单片机为控制核心,包括测速电路、PWM波形发生器和PWM功放电路以及LCD显示部分。图2-2硬件方框设计原理图2.2单片机控制直流电机部分的硬件设计2.2.1直流电机组成原理 直流电动机结构由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。直流电动机的结构
9、是由直流电源、直流电机、控制开关和调速器组成。直流发电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。感应电动势的方向按右手定则确定其工作原理不外乎就是用直流电源作为能量来驱动电机旋转。通过对三极管的截止与导通进行控制,使其起到开、关和调速的作用。具体的操作为当直流电动机接上直流电源时,使用电位器旋转按钮控制三极管集极的电压。如直流电机控制原理图2-3图2-3直流电机控制原理1、当三极管的集极电压小于死区电压时三极管截止,则电动机不转动;2、当集极电压大于死区电压而小于饱和电压时三极管处于放大状态,随着集极电压改变,从而改变了直
10、流电动机两端的压降也就改变了电机的转速。具体原理为集极的电压大小不一样,三极管的电压放大倍数也不一样从而起到调速作用改变直流电动机的旋转速度。2.2.2直流电机调速方案的设计本设计将采用电枢控制方法对电动机的速度和转向进行控制。电机调速控制模块的方案假设:()直流电机转速调节:某些场合往往要求直流电机的转速在一定范围内可调节,例如,电车、机床等,调节范围根据负载的要求而定。调速可以有三种方法:(1)改变电机两端电压;(2)改变磁通;(3)在电枢回路中,串联调节电阻。采用第一种方法:通过改变施加于电机两端的电压大小达到调节直流电机转速的目的。方案一:采用电阻网络或数字电位器调整电动机的分压,从而
11、达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用
12、的PWM调速技术。()直流电机调速原理:图2-4所示电枢电压为Va ,电枢电流为Ia ,电枢回路总电阻为Ra ,电机常数Ca ,励磁磁通量是 。图2-4直流电机原理那么根据KVL方程:电机转速n=(Va-Ra)/Ca,其中,对于极对数为p ,匝数为N ,电枢支路数为a 的电机来说:电机常数Ca = pN / 60 a,意味着电机确定后,该值是不变的。而在Va - IaRa 中,由于Ra 仅为绕组电阻,导致IaRa 非常小,所以Va - IaRaVa 。由此可见我们改变电枢电压时,转速n 即可随之改变。方案的确定:兼于直流电机工作原理,和以上所陈述的三种方案,由于方案三调速特性优良、调整平滑、调
13、速范围广、过载能力大,因此本设计的调速部分决定采用方案三。PWM调速工作方式:方式一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。方式二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。2.2.3直流电机测速方案的设计测速电路由附在电机转子上的光电编码盘及施密特整形电路组成。电脉冲的频率与电
14、机的转速成固定的比例关系,光码盘输出的电脉冲信号经放大整形为标准的TTL 电平, 输入到单片机的两个外部中断:INT0和INT1, 利用单片机内部定时器/计数器T0和T1,以及内部一个寄存器作软计数器,循环地捕捉相邻两次速度脉冲,并由这两次触发所记录的时间差算出其转速,再将这个转速与预置转速进行比较,得出差值,单片机通过对这个差值进行P I运算,得出控制增量,在P010 P013引脚送出控制信号改变PWM波形发生电路的占空比,最终达到控制电机转速的目的。使用栅格圆盘和光电门组成测速系统。当直流电机通过传动部分带动栅格圆盘旋转时,测速光电门获得一系列脉冲信号。这些脉冲信号通过单片机两个定时/计数
15、器配合使用同,一个计数,一个定时。计算出单位时间内的脉冲数m,经过单位换算,就可以算得直流电机旋转的速度。直流电机转速计算公式:n=60m/(N1TN)(rpm)其中:n 为直流电机转速,N 为栅格数,N1 为T0 中断次数,m 为计数器T1 在规定时间内测得的脉冲数,T 为定时器T0 定时器溢出时间。使用系统提供的显示电路,可把电机的转速显示出来。本实验用DAC0832D/A 转换输出控制直流电机两端电压。程序中直流电机初始速度较大(大约40 转/秒),设运行速度设置为2000 转/分,经过若干秒后,直流电机转速慢慢下降到运行速度,以设定的速度运行。本测速系统的关键是光电耦合器,它的组成是用
16、一个发光二极管和一个光敏三极管构成。光电耦合器的工作原理就是使发光二极管导通与截止状态进行发射红外线与不发射,让光敏三极管导通与截止。具体过程为当发光二极管的两端电压大于死区电压时二极管发射出红外线同时光敏三极管栅极有驱动三极管导通的电压,使得三极管的源级电压降低由原来的高电平变为低电平,进而产生一个脉冲的形式转送给单片机。通过单片机的外部中断进行计数脉冲个数从而得到直流电动机的旋转速度。在改变电机转速的同时影响到发光二极管导通与截止。只有这样才能产生脉冲的形式发送给光敏二极管,进而改变了外部中断P3.5口高低电位。则单片机内部进行计数就可以获取转速。光电耦合器的电路图如图2-5所示。图2-5
17、电耦合器的电路图2.2.4 PWM产生与控制部分方案的设计(1).PWM波形发生电路由于测速中占用了两个定时器T0和T1,如果再将PWM波形产生交给AT89C51 则会加大软件的任务,并且影响整个系统的控制效果。因此这里考虑单独设计一个PWM波形发生电路,单片机对它只提供控制参数以改变其占空比。其电路原理如图2-6所示。图2-6 PWM波形产生电路图中,U1 和U2 为两片4位比较器74LS85,U3 为8位的计数器。计数器的时钟输入为系统的时钟信号(本系统晶振频率为12 MHz) 。经512分频后为2314kHz,即PWM波形的频率为2314 kHz。其中,U1、U2 的A0 A3 分别接P
18、014 P017、P010 P013。B0 B3 分别接Q0 Q3、Q4 Q7。A B端接一个过零比较器,其输出即为PWM波,其占空比是通过P0口给定的数值来改变的。(2). PWM功率放大电路本系统采用双极性脉宽调制功率放大器,如图2-7所示。其中VT1、VT2 为作开关用的大功率晶体管,工作在截止和饱和状态。当电动机正转工作时, VT1 工作,VT2 不工作;反之当电动机反转工作时, VT2 工作而VT1 不工作。VD1、VD2 为续流二极管,主要起到保护作用,避免VT1、VT2 被反向击穿。U4 和U6 为光电耦合器,主要起隔离和抗干扰作用。调脉宽的方式有三种:定频调宽、定宽调频和调宽调
19、频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。方案一:采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差很小。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。图2-7 PWM驱动电路原理图2.2.5 LCD显示部分方案的设计(1).课设所用LCD模块概述模块SMC1602B由一块点阵液晶屏和控制器HD44780及其辅助电路组成。本系统设计采用OCMJ中文模块系统L
20、CD液晶作为下位机的显示模块。该模块内含GB2312 1616点阵国标一级简体汉字和ASCII88(半高)及816(全高)点阵形英文字库,用户输入区位码或ASCII码可实现文本显示。OCMJ中文液晶显示模块采用ASKANSWER握手方式。系统使用OCMJ4X8C_3型液晶显示屏(奥可拉中文集成模块)。此模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口(OCMJ4X16A/B无串行接口)。所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2
21、M-位中文字型ROM (CGROM) 总共提供8192个中文字型(16x16点阵),16K位半宽字型ROM(HCGROM) 总共提供126 个符号字型(16x8点阵),64x16位字型产生RAM(CGRAM),另外绘图显示画面提供一个64x256点的绘图区域(GDRAM),可以和文字画面混和显示。提供多功能指令:画面清除(Display clear)、光标归位(Return home)、显示打开/关闭(Display on/off)、光标显示/隐藏(Cursor on/off)、显示字符闪烁(Displaycharacter blink)、光标移位(Cursor shift)、显示移位(Dis
22、playshift)、垂直画面卷动(Vertical line scroll)、反白显示(By_line reverse display)、待命模式(Standbymode)。OCMJ4X8C_3的引脚说明如表2-1:便于使用 OCMJ48C(12864)引脚,做了如表1所示说明。表1各引脚说明引脚名称方向说明引脚名称方向说明1VSS-GND(0V)11DB4I/O数据42VDD-Supply Voltage For Logic (+5V)12DB5I/O数据53VO-Supply Voltage For LCD (悬空)13DB6I/O数据64RS(CS)IH:Data L: Instruc
23、tion Code14DB7I/O数据75R/W(STD)IH: Read L: Write15PSBIH: Parallel Mode L: Serial Mode6E(SCLK)IEnable Signal,高电平有效16NC-空脚7DB0I/O数据017/RSTIReset Signal,低电平有效8DB1I/O数据118NC-空脚9DB2I/O数据219LEDA-背光源正极(+5V)10DB3I/O数据320LEDK-背光源负极(OV)注:OCMJ48C_3/_6为减少背光电源对模块的干扰作了特别处理,背光电源焊盘(20、21 脚)与17 脚间留了2 个焊盘(18、19 脚)位置但并无
24、焊盘和引脚引出;背光电源的2 条走线与其他走线间的间隔距离至少保留了2mm的爬电间隔。LCD主要参数:1、工作电压(VDD):4.55.5V2、逻辑电平:2.75.5V3、LCD 驱动电压(Vo):07V4、工作温度(Ta):055(常温)/-2075(宽温) 保存温度(Tstg):-1065(常温)/-3085(宽温)。2.资料传输与接口时序当PSB脚接低电位时,模块将进入串行模式。从一个完整的串行传输流程来看,一开始先传输启始字节,它需先接收到五个连续的“1”(同步位字符串),在启始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(RW)及寄存器选择位
25、(RS),最后第八的位则为“0”。在接收到同步位及RW和RS资料的启始字节后,每一个八位的指令将被分为两个字节接收到:较高4位(DB7DB4)的指令资料将会被放在第一个字节的LSB部分,而较低4位(DB3DB0)的指令资料则会被放在第二个字节的LSB部分,至于相关的另四位则都为0。串行接口时序图如下:图2-8 串行接口时序图为了更好的了解LCD的工作特性我们可以从下图2-9所示,了解串行口接口特性,图2-9串行口接口特性(3).LCD显示步骤显示数据RAM 提供642 个字节的空间,最多可以控制4 行16 字(64 个字)的中文字型显示,当写入显示资料RAM时,可以分别显示CGROM,HCGR
26、OM 与CGRAM 的字型;本系列模块可以显示三种字型,分别是半宽的HCGROM 字型、CGRAM 字型及中文CGROM 字型,三种字型的选择,由在DDRAM 中写入的编码选择,在0000H0006H 的编码中将选择CGRAM 的自定字型,02H7FH 的编码中将选择半宽英数字的字型,至于A1 以上的编码将自动的结合下一个字节,组成两个字节的编码达成中文字型的编码BIG5(A140D75F) GB(A1A0F7FF),详细各种字型编码如下:1. 显示半宽字型:将8 位资料写入DDRAM 中,范围为02H7FH 的编码。2. 显示CGRAM 字型:将16 位资料写入DDRAM 中,总共有0000
27、H,0002H,0004H,0006H 四种编码。3. 显示中文字形:将16 位资料写入DDRAM 中,范围为A140HD75FH 的编码(BIG5) , A1A0HF7FFH 的编码(GB)。将16 位资料写入DDRAM 方式为透过连续写入两个字节的资料来完成,先写入高字节(D15D8)再写入低字节(D7D0)。2.2. 数模与模数转换部分方案的设计能将模拟量转换为数字量的电路称为模数转换器,简称A/D转换器或ADC;能将数字量转换为模拟量的电路称为数模转换器,简称D/A转换器或DAC。ADC和DAC是沟通模拟电路和数字电路的桥梁,也可称之为两者之间的接口。将输入的每一位二进制代码按其权的大
28、小转换成相应的模拟量,然后将代表各位的模拟量相加,所得的总模拟量就与数字量成正比,这样便实现了从数字量到模拟量的转换。本课设使用ADC0809 模数转换器,ADC0809 是8 通道8 位CMOS 逐次逼近式A/D 转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D 转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。芯片的引脚如图2-10,各引脚功能如下:IN0IN7:八路模拟信号输入端。 ADD-A、ADD-B、ADD-C:三位地址码输入端。CLOCK:外部时钟输入端。CLOCK 输入频率范围在101280KHz,典型值为640KHz,此时A/D 转换时间为10
29、0us。51 单片机ALE 直接或分频后可与CLOCK 相连。D0D7:数字量输出端。 OE:A/D 转换结果输出允许控制端。当OE 为高电平时,允许A/D 转换结果从D0D7端输出。ALE:地址锁存允许信号输入端。八路模拟通道地址由A、B、C 输入,在ALE 信号有效时将该八路地址锁存。START:启动A/D 转换信号输入端。当START 端输入一个正脉冲时,将进行A/D 转换。EOC:A/D 转换结束信号输出端。当 A/D 转换结束后,EOC 输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。图2-10 0809 引脚D/A装换:DAC0832 是
30、8 位D/A 转换器,它采用CMOS 工艺制作,具有双缓冲器输入结构,其引脚排列如图2-11所示,DAC0832 各引脚功能说明:DI0DI7:转换数据输入端。 CS:片选信号输入端,低电平有效。ILE:数据锁存允许信号输入端,高电平有效。 WR1:第一写信号输入端,低电平有效, Xfer:数据传送控制信号输入端,低电平有效。 WR2:第二写信号输入端,低电平有效。Iout1:电流输出1 端,当数据全为1 时,输出电流最大;数据全为0 时,输出电流最小。Iout2:电流输出2 端。DAC0832 具有:Iout1+Iout2=常数的特性。 Rfb:反馈电阻端。Vref:基准电压端,是外加的高精
31、度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V+10V。DAC0832 内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1 控制,DAC 寄存器由WR2、Xref 控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A 转换。单缓冲方式使DAC0832 的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2 和Xfer 相连在接到地上,并把WR1 接到51 的WR 上,ILE 接高电平,CS 接高位地址或
32、地址译码的输出端上。双缓冲方式把DAC0832 的输入寄存器和DAC 寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。三种工作方式区别是:直通方式不需要选通,直接D/A 转换;单缓冲方式一次选通;双缓冲方式二次选通。图2-11DAC0832引脚3 各硬件部分的连接与接口3.1 单片机与直流电机接口部分电机控制系统组成框图见图3-1图3-1电机控制系统组成原理图由于本系统主要由主控开关,电机励磁电路、调速电路、测速电路、整流滤波电路、平波电抗器、制动电路组成,系统采用闭环PI 调节器控制。当开关闭合后,交流电经晶闸管调速电路控制后,又经过桥式整流、滤波、平波电抗器后,获得脉冲
33、小、连续的直流电提供给电机,同时,交流电通过励磁电路使电机获得励磁,开始工作。调节速度经过调节变阻器进行,当变阻器阻值变化时,单片机输出的控制角也相应变化,晶闸管导通角随之变化,进而由主电路输出电压调节电机转速,同时测速电路输出电压也相应变化,经PI 调节器作用后,电机在设定的速度范围内稳定运转。其主控电路与触发电路具体结构如下:由于其主控电路示意图见图3-2。按下启动按钮后,接触器KM线圈通电, KM 常开触点闭合,常闭触点打开,启动按钮自锁,主电路导通, 晶闸管调速电路通过改变双向晶闸管控制角的大小来控制交流电输出,再经桥式整流,滤波后,得到直流, 同时,电机通过激磁电路整流后,获得励磁,
34、开始工作。为了限制直流电流脉冲,电路中接入平波电抗器,其并联电阻在主电路突然断电时,为平波电抗器提供放电回路。电动机激磁由单独整流电路供电。触发电路部分,触发电路示意图见图3-3。电压经变压器变压后,得到的电压经过桥式整流电路的整流,由R1 和R2 分压后,经过三极管得到过零点的跳变电压。此跳变电压经过51 单片机的P1. 2引脚输入单片机。51 单片机通过检测跳变电压计算出跳变周期,作为直流电机转速的预设值。单片机根据预设值发出脉冲信号,经过51 单片机的P1. 1口输出,控制晶闸管的关断。图中单片机P1. 0接受由测速电机回馈的电压脉冲信号,经计算后与预设值比较,再经PI 算法后,把结果经
35、P1. 1输出,控制晶闸管。图3-2主控电路原理图3-3触发电路原理根据以上电机的各部分电路的构造原理,我们接下来再考虑电机与单片机接口的通信连接。在构思设计的同时也要考虑硬件的最大利用率,本次课设可以先在电脑上进行模拟仿真这样就能提高设计的效率以及电路的可行性。而且在仿真的过程中非常方便进行电路修改又可以达到很好的效果。因此通过使用Protues对硬件电路精心设计并对该电路进行仿真调试,用脉冲形式代替光电耦合管测取转速,再与单片机进行通信连接,可如下图3-4所示。图3-4光电耦合器与电机连接3.2单片机与LCD显示模块通信接口部分本次课程设计只用到了串行方式进行转速显示。但是在与单片机相连接
36、线的时候依然把其他的数据引脚连接在单片机的P1端口,具体的接线法可以在P2端口体现如图3.5所示。仿真的接线法在仿真软件中能够很好的模拟出来,而课设所用的实验箱却是天皇教仪内部已经有固定的焊接点。对系统进行调试时只有接P1口就行具体接法为引脚CS连接 P1.0、引脚STD连接单片机的P 1.1、引脚SCLK连接P1.2、引脚PSB连接P1.3、引脚RES 连接P1.4。图3-5显示器引脚与单片机连接3.各部分硬件结合原理及构造各部分硬件连接按照以下原理图3-6图3-6硬件连接原理图其实际的连接接口图如下图3-7 图3-7各部分硬件结合电路图4 软件程序设计4.1系统软件设计的总体概述软件部分可
37、由1个主程序、3个中断子程序和1个P ID算法子程序组成。主程序是一个循环程序,其主要思路是,先设定好速度初始值,这个初始值与测速电路送来的值相比较得到一个误差值,然后用P ID 算法输出控制系数给PWM发生电路改变波形的占空比,进而控制电机的转速。其程序流程图如图4-1所示。系统的软件控制算法主要采用了PI 控制算法。其增量式控制算法为:Td ( k) = Td ( k - 1) + a0 e ( k) - a1 e ( k - 1) = Td ( k - 1) + 0. 84 e ( k) - 0. 63 e ( k - 1)a0= Kp (1 +TI / Ti)其中a1 = Kp , K
38、p 为控制器比例系数, TI 为积分时间常数, Ti 为采样周期。程序流程图见图4-2。PI算系法统的控制算法主要采用了PI控制算法。其控制算法为:u ( t) = Kp e ( t) +1/Ti t0e( t) dt 其中: Kp 为比例系数, Ti 为积分系数。若单片机的采样周期为T,则上式可近似为:u ( k) = Kp e ( k) +T/Ti(k)e ( j) = Kp e( k) + Ki(k)e(j)T上式即为位置式P I控制算法。这里我们采用其增量式控制算法,根据递推原理可得:u ( k - 1) = Kp e ( k - 1) + Ki (k-1)e ( j) T则增量式控制
39、算法为:u ( k) = u ( k) - u ( k - 1) = Kp e ( k) - e ( k - 1) + Ki e ( k)其中: Kp 为控制器比例系数, Ki 为积分时间常数。由于系统采用了比例积分调节器(简称PI调节器) ,使系统在扰动的作用下, 通过P I调节器的调节作用使电动机的转速达到静态无差,从而实现了静态无差。无静差调速系统中,比例积分调节器的比例部分使动态响应比较快(无滞后) ,积分部分使系统消除静差。INT0服务子程序该程序首先清软件计数器,然后判断T0 是否进入定时状态,如果是则对光电编码盘发出有脉冲进行计数,否则起动T0 后再对PLG进行计数。如图4-3所
40、示。T0 中断服务程序在外部中断服务程序中,当T0 定时时间到了以后,就进入此程序。具体流程如图4-4所示。INT1服务程序在T0 服务程序中,当INT1端子接受下降沿时就进入此程序。关掉外部中断1,并且使定时器1停止计数,保存计数值。如图4-5所示。在单片机的设计过程中,只有知道现有的硬件连接才能进行软件设计与调试。没有硬件的程序是毫无意义的。因此为了达到课程设计所需的要求,又根据硬件的条件及接线法进行了如图4-6所示的编写程序步骤。图4-1主程序流程 图4-2中断程序图4-3中断程序 图4-4PI算法调用程序图 4-5中断程序初始化用电位器控制转速光电耦合测取速度LCD显示速度设定时间是否
41、到NYBCD码转换速度换算 图4.1 软件总体设计流程图4.2系统各部分软件设计的思路PWM软件实现方式:方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围,故采用方案二。键盘向单片机输入相应控制指令,由单片机通过P2.0与P2.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。电动机的运转状态通过L
42、ED显示出来。电动机所处速度级以速度档级数显示。正转时数字向右移动,反转时数字向左移动。移动速度分7档,快慢与电动机所处速度级快慢一一对应。每次电动机启动后开始计时,停止时LED显示出本次运转所用时间,时间精确到0.1s。在本次课设所用程序中需要使用到速度测取和计算问题。因此为了能更加准确测得直流电动机的旋转速度,特意运用了我们所了解数字测速法来换算速度。在此对在这几种测速方法进行比较。这样就可以得到此次课程设计所要选择的最佳方案。本系统编程部分工作采用汇编语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和LCD显示等部分的
43、设计。PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:void delay(unsigned char dlylevel) int i=50*dlylevel; while(-i);此函数为带参数DLYLEVEL,约产生DLYLEVEL*400us的延时,因此一个脉冲周期可以由高电平持续时间系数hlt和低电平持续时间系数llt组成,本设计中采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hlt/(hlt+llt),因此要实现定频调宽的调速方式,只需通过程序改变全局变量hlt,llt的值,该子程序流程图如图四。中断处理子程序:采用中断方式,按下键,单片
44、机P3.2脚产生一负跳沿,响应该中断处理程序,完成延时去抖动、键码识别、按键功能执行。调速档、持续加/减速:调速档通过(0-6)共七档固定占空比,即相应档位相应改变hlt,llt的值,以实现调速档位的实现。而要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少1%占空比(即hlt+/-;llt-/+),其程序流程图如图五。显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个LED管要显示的值。显示子程序为一带参子程序,参数为显示缓存的数组名,通过for(i=0;i8;i+)方式对每位加上位选码,送到P0口并进行一两毫秒延时。该显示子
45、程序只对各个LED管分别点亮一次,因此在运行过程中,每秒执行的次数不应低于每秒24次。定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值3CB0H可定时50ms,即系统时钟精度可达0.05s。当50ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。 对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:dodispbuffbcd_p=bechange%10; /dispbuff为显示缓冲区数组 bcd_p+;while(bechange/=10) /disp_p为数组指针软件
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922