1、目录第1章 引言11.1 研究背景11.2 基本理论11.2.1 直流电机调速原理11.2.2 PWM基本原理及其实现方法2第2章 总体方案设计52.1 设计思想52.2 硬件介绍52.2.1 AT89C5162.2.2 L298N芯片7第3章 硬件电路的设计83.1 单片机的外部时钟电路83.2 单片机的复位电路83.3 键盘控制电路93.4 电机驱动电路9第4章 软件设计114.1 编程思想114.1.1 键盘扫描程序114.1.2 定时器中断计数程序114.2流程图114.2.1 总体流程图114.2.2 定时器进行PWM流程图12第5章 系统调试和结果分析145.1 系统调试145.2
2、 结果分析15第6章 总结166.1结论166.2心得体会16参考文献17附录I 总电路图18附录II 源程序19沈阳航空航天大学课程设计说明书 第1章 引言第1章 引言1.1 研究背景 随着科学技术的发展,人们的生活水平不断提高,空调就像旧时王谢的堂前燕,已经飞入了千千万万的普通家庭,空调已成为我们在严寒酷暑中生活的必不可少的电器。空调的进风量控制技术是空调的基本技术,已经经过了很多年的研究。当前空调的进风量控制主要是基于嵌入式系统的PWM控制,控制的元器件是电机,多是交流电机。PWM控制是近些年兴起的一种电机控制方法,它适应于各种电机,伴随着晶闸管的快速发展,高性能晶闸管的大规模生产,PW
3、M控制技术快速发展,在生活中也得到了广泛应用。本文采用的是单片机的PWM对直流电机的控制,通过对直流电机转速的控制,来实现对空调的进风量控制。1.2 基本理论1.2.1 直流电机调速原理 根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电机来说,机械特性方程式为: (1.1) 式中 , 额定电枢电压、额定磁通量; ,与电机有关的常数;,电枢外加电阻、电枢内电阻; ,理想空载转速、转速度;分析式(1.1)可得当分别改变、和时,可以得到不同的转速,从而实现对速度的调节。由于,当改变励磁电流时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由
4、于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流和磁通量只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻时,会使机械特性变软,导致电机带负载能力减弱。对于他励直流电机来说,当改变电枢电压时 ,分析机械特性方程式,得到特性曲线。 如图1.1所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。如图1.2所示,改变电枢电压可通过多种途径实现,如晶闸管供电
5、速度控制系统、大功率晶体管速度控制系统、直流发电机供电速度控制系统及晶体管直流脉宽调速系统等。 图1.1 直流电动机机械特性曲线 图1.2 电枢电压“占空比”与平均电压关系1.2.2 PWM基本原理及其实现方法1.2.2.1 PWM基本原理 PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的
6、转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。如图1.2所示,设电机始终接通电源时,电机转速最大为 ,设占空比为,则电机的平均速度为: (1.2) 式中, 电机的平均速度;电机全通电时的速度最大; 由式(1.2)可见,当我们改变占空比时,就可以得到不同的电机平均速度 ,从而达到调速的目的。严格地讲,平均速度与占空比并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。1.2.2.2 PWM的实现方法 PWM调速工作方式有两种:第一种为单极性工作制,单极性工作制是
7、单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。第二种为双极性工作制,双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。PWM调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。1.2.2.3 PWM信号的产生方法 PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍利
8、用单片机对PWM信号的软件实现方法。软件实现有两种方法:延时法和计数器法。 软件延时法的原理是:首先求出占空比,再根据周期分别给电机通电个单位时间,所以。然后,再断电个单位时间,所以。改变和的值,而的值不变,从而也就改变了占空比。计数器法的原理与延时法一样,只是实现方法不同,计数法的基本思想是:设计几条毫无意义的循环语句,使它们占据单片机的机器周期,从而达到延时的目的。当单位延时个数求出之后,将其作为给定值存放在某存储单元中。在通电过程中,对通电单位时间的次数进行计数,并与存储器的内容进行比较。若不相等,则继续输出高电平的控制脉冲,直到计数值与给定值相等,输出低电平的控制脉冲,使电机断电。这就
9、是电机的一个通电脉冲,重复这个脉冲,控制电机转速。这样,我们可以通过设定不同的定时初值,从而改变占空比,进而达到控制电机转速的目的。 采用软件延时方式,在引入中断之后,将有一定的误差。采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个,综合考虑我们采用计数器法。20沈阳航空航天大学课程设计说明书 第2章 总体方案设计第2章 总体方案设计2.1 设计思想空调进风量控制的模拟电路由四个部分组成:键盘,AT89C51单片机,L298 驱动器和直流电机。键盘上有四个按钮,一个停止按钮和三个档位按钮,控制电机的停止与三个转速。由于实验室硬件的缺乏,我们用四个开关构成一个键盘来
10、替代空调的遥控器,这样替换既简化了电路设计,又不会对设计产生影响。键盘向单片机输入相应控制指令,由单片机通过P1.0到P1.3读取,并在P3.4口输出与控制指令相应的PWM脉冲,单片机输出的高电平只有5V,不能直接驱动电机,因此接一个L298驱动芯片,由L298驱动电机转动或停止。PWM 控制电机的旋转,采用的是控制电机的通电时间,电机通电不是连续的,会影响直流电机转速的平稳,因此单片机输出脉冲的频率必须比较高,以保证电机的稳定。 单片机控制直流电机电路的基本组成如图2.1 所示。AT89C51电源模块外部时钟与复位电路直流电机驱动模块键盘控制电路图2.1 系统硬件框图 2.2 硬件介绍本次设
11、计的主要硬件有单片机,L298驱动芯片和直流电机。直流电机比较常见,下面介绍AT89C51和L298驱动芯片。 2.2.1 AT89C51AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。AT89C51与MCS-51兼容具有如下特性:4K字节可编程FLASH存储器、1000写/擦循环、数据保留10年、全静态工作:0Hz-24MHz、三级程序存储器锁定、1288位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡
12、器和时钟电路。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻
13、的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
14、作为输入,由于外部下拉为低电平,P3口将输出电流ILL,这是由于上拉的缘故。2.2.2 L298N芯片 L298N为双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。L298有Mutiwatt15和PowerSO20两种封装。MW.15的1、15和PowerSO的2、19用法一样,SEN1、SEN2分别为两个H桥的电流
15、反馈脚,不用时可以直接接地;(MW.15)2、3=(PowerSO)4、5,OUT1、OUT2输出端,与对应输入端(如IN1与OUT1);同逻辑4=6,VS驱动电压,最小值须比输入的低电平电压高2.5V;5、7=7、9,IN1、IN2输入端,TTL电平兼容;6、11=8、14,ENA、ENB使能端,低电平禁止输出;8=1、10、11、20,GND地9=12,Vss逻辑电源,4.5-7V;10、12=13、15,IN3、IN4 输入端,TTL电平兼容;13、14=16、17,OUT3、OUT4 输出端;PowerSO的3、18管脚,NC,无连接;沈阳航空航天大学课程设计说明书 第3章 硬件电路的
16、设计第3章 硬件电路的设计3.1 单片机的外部时钟电路 如图3.1所示。单片机的外部时钟电路主体是X1,即晶振,晶振的类型有很多,我选择12MHz 的,单片机的定时时间与所选的晶振有关,本次设计采用的是定时器T0 的方式2,每次计数为256,单片机的机器周期为12MHz分之一的12倍,即1us。对定时器T0赋初值9C,因此一个定时周期为100us,本次设计采用了100个定时周期为一个脉冲周期,即脉冲周期为10ms,脉冲频率为100Hz能够满足电机的平稳工作。 图3.1 时钟电路3.2 单片机的复位电路 单片机是一种高速处理芯片,难免会出现死机情况,这时需要把单片机复位,复位电路如图3.2所示,
17、单片机正常工作时,开关是断开的,一旦它出现错误,只需按一下开关,它就能复位,恢复正常工作。一般单片机复位时RST引脚需要2个机器周期的高电平,即5ms高电平,而平时人为按复位按钮,时间绝对大于5ms,因此复位电路能正常工作。图3.2 复位电路3.3 键盘控制电路 键盘控制电路是整个电路的控制部分,它主要是给单片机一个脉冲,单片机读取之后,按照一个预先设定的程序,输出一个相应占空比的脉冲,此电路是低电平有效。按下低风档键后,在 P1.1 给了单片机一个低电平脉冲,此时单片机会在P3.5输出一个占空比为0.33,周期为10ms的脉冲。按下中风档键后,在P1.2给了单片机一个低电平脉冲,此时单片机会
18、在P3.5输出一个占空比为0.66的脉冲。按下高风档键后,在P1.3给了单片机一个低电平脉冲,此时单片机会在P3.5输出一个占空比为1.0的脉冲。按下停止键后,在P1.0给了单片机一个低电平脉冲,此时单片机会在P3.5输出一个持续的低电平。键盘控制电路图如图3.3所示。 图3.3 键盘电路 3.4 电机驱动电路 单片机输出的高电平,只有5V,不能直接驱动电机旋转,因此需要一个驱动电路,本设计采用了L298驱动芯片,如图3.4所示。单片机的P3.0口接 L298 的IN1口,P3.1口接L298的IN2口,PWM信号从P3.5输出,接L298的ENA口,控制直流电机电压占空比。另由于L298芯片
19、通过H桥运行,故接四个二极管。由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用双电源供电。一组5V电源给单片机和控制电路供电,另外一组5V、9V电源给L298N的 VSS、 VS供电。在控制部分和电机驱动部分之间用光耦隔开,以免影响控制部分电源的品质。图3.4 电机驱动电路 L298芯片功能强大,不仅可以通过使能端ENA、ENB控制直流电机的电压,还可以通过双输入双输出控制直流电机正反转。由于本设计不需要直流电机进行反转,故将输入锁定为正转状态,即INI=1,IN2=0。沈阳航空航天大学课程设计说明书 第4章 软件设计第4章 软件设计4.1 编程思想根据方案
20、设计,程序只要需要实现两个功能,第一个功能是通过扫描按键选择相应的占空比,从而控制电机转速;第二个功能是通过定时器定时输出PWM脉冲。故该程序主体为键盘扫描程序,通过定时器子程序完成对PWM脉冲的输出,达到设计要求。4.1.1 键盘扫描程序四个按键接在P1.0P1.3口,通过单片机对P1口赋值“1”,使得低电平触发有效。再将P1口值取反,通过扫描到特定值选取相应的子程序。每一个子程序都有不同的占空比赋值,从而实现通过按键控制电机转速。4.1.2 定时器中断计数程序通过定时器中断计数,定时器每中断一次计数hus加一,与经按键选择赋值的占空比数值drv比较。当计数hus小于占空比赋值drv时,引脚
21、P3.5输出高电平;当计数大于或等于占空比赋值时,引脚P3.5输出低电平,从而控制高低电平的输出,以达到对电机电压的改变。4.2流程图4.2.1 总体流程图总体流程图如图4.1所示。开始开始 扫描键盘 电机停止停止键是否按下? Y N电机低速运行低速档是否按下? Y N电机中速运行中速挡是否按下? Y N电机高速运行高速档是否按下? Y 返回 N 图4.1 总体流程图4.2.2 定时器进行PWM流程图定时器中断计数进行PWM控制流程如图4.2所示。开始hus=0hus=0或drv=100? Y Nhusdrv? Y NPWM=1PWM=0hus=100? Y Nhus=hus+1返回沈阳航空航
22、天大学课程设计说明书 第5章 系统调试和结果分析第5章 系统调试和结果分析5.1 系统调试按下低速档,直流电机运行如图5.1所示。图5.1 直流电机低速运行按下中速档,直流电机运行如图5.2所示。图5.2 直流电机中速运行 按下中速档,直流电机运行如图5.3所示。图5.3 直流电机高速运行5.2 结果分析经过调试可以发现,四个档位对电机速度的控制明显,由于没有加入反馈控制,使得直流电机的转速不能精确控制,但能对进风量进行三档控制,较好地完成了设计要求。沈阳航空航天大学课程设计说明书 第6章 总结第6章 总结6.1结论本次设计采用AT89C51单片机控制、L298芯片驱动直流电机,从而模拟空调进
23、气量的控制。通过定时器中断计数进行实现PWM的输出,从而控制L298芯片的使用,达到对直流电机的电压控制,完成对空调进风量的控制。根据系统调试和结果分析,本设计基本实现了“按键A、B、C为空调进风量的三个风速,分别表示最大、中速和低速,通过按键控制直流电机的速度”的设计要求。本设计采用的硬件少,纯软件控制,使得成本低,操作性和灵活性也更大;实用性强,且能广泛适用于小型直流电机调速应用。但由于本设计采用开环控制,不能根据直流电机的期望转速对其进行实时修正,导致对电机转速控制精度不高,且长时间运行容易产生较大误差。6.2心得体会这次课设让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习
24、从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在课设中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中,对单片机还需要好好的
25、深入研究,学好了单片机也就多了一项生存的本钱。最后感谢老师对我的精心指导和帮助,感谢同学们对我的帮助。 沈阳航空航天大学课程设计说明书 参考文献参考文献1邹久朋.80C51单片机实用技术,M北京:北京航空航天大学出版社,2008:042郭天祥.新概念51单片机C语言教程,M北京:电子工业出版社,20093赵文博.刘文涛.单片机语言C51程序设计 ,M北京:人民邮电出版社,2005:104陈涛.单片机应用及C51程序设计,M北京:机械工业出版社,2011:25张毅刚.单片机原理及接口技术(C51编程),M北京:人民邮电出版社,2011:8 沈阳航空航天大学课程设计说明书 附录 I附录I 总电路图
26、 图附-1 总电路图沈阳航空航天大学课程设计说明书 附录II附录II 源程序#include#define uchar unsigned char#define uint unsigned intsbit PWMOUT=P34;sbit IN1=P30;sbit IN2=P31;uchar hus;uchar drv;void Delay_ms(uint x) uchar i; while(x-) for (i=0;i120;i+);void T0INT() interrupt 1 hus+; if(hus%100=0|drv=100) PWMOUT=1;else if(hus=drv|drv
27、=0) PWMOUT=0;else if(hus=100) hus=0;else ; void main(void) Delay_ms(500); TMOD=0x02;TH0=0x9c;TL0=0x9c;IE=0x82;TR0=1;drv=0;hus=0; unsigned char keyvalue; do P1=0xff; keyvalue=P1; keyvalue=keyvalue; switch(keyvalue) case 1:drv=0;IN1=0;IN2=0; break; case 2:drv=33;IN1=1;IN2=0; break; case 4:drv=66;IN1=1;IN2=0; break; case 8:drv=100;IN1=1;IN2=0; default: break; while(1) ;
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922