基于单片机温度控制直流电动机转速系统设计.docx
《基于单片机温度控制直流电动机转速系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机温度控制直流电动机转速系统设计.docx(57页珍藏版)》请在冰点文库上搜索。
![基于单片机温度控制直流电动机转速系统设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/5546833f-bbfc-4ca6-ab2e-b9328ed73fa1/5546833f-bbfc-4ca6-ab2e-b9328ed73fa11.gif)
基于单片机温度控制直流电动机转速系统设计
设计总说明
在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。
据资料统计,现在有的90%以上的动力源自于电动机,电动机与人们的生活息息相关,密不可分。
随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机控制向更复杂的控制发展。
近年来由于微型机的快速发展,国外交直流系统数字化已经达到实用阶段由于以微处理器为核心的数字控制系统硬件电路的标准化程度高,制作成本低,且不受器件温度漂移的影响,且单片机具有功能强、体积小、可靠性好和价格便宜等优点,现已逐渐成为工厂自动化和各控制领域的支柱之一。
其控制软件能够进行逻辑判断和复杂运算,可以实现不同于一般线性调节的最优化、自适应、非线性、智能化等控制规律。
所以微机数字控制系统在各个方而的性能都远远优于模拟控制系统且应用越来越广泛。
现在市场上通用的电机控制器大多采用单片机和DSP。
但是以前单片机的处理能力有限,对采用复杂的反馈控制的系统,由于需要处理的数据量大,实时性和精度要求高,往往不能满足设计要求。
近年来出现了各种单片机,其性能得到了很大提高,价格却比DSP低很多。
其相关的软件和开发工具越来越多,功能也越来越强,但价格却在不断降低。
现在,越来越多的厂家开始采用单片机来提高产品性价比。
本论文要求使用单片机进行电路设计,同时单片机部分应带有显示功能。
单片机对某个位置进行温度监控,当外部温度≥45℃时,电动机加速正转,当温度≥75℃时,电动机全速正转;当外部温度≤10℃时,电动机加速反转,当温度≤0℃时,电动机全速反转;当温度回到10℃~45℃之间时电动机逐渐停止转动。
AT89C51是美国ATMEL公司生产的低电压高性能CMOS8位单片机,片内含4Kbytes的可反复檫写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
温度采集模块可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
利用单片机的一个I/O口的引脚,通过软件对这个引脚不断地输出高低电平来实现PWM波的输出,51系列单片机无PWM输出功能,可以采用定时器配合软件的方法输出。
对精度要求不高的场合,非常实用。
MCS-51系列典型产品8051具有两个定时器T0和T1。
通过控制定时器初值T0和T1,,从而可以实现从8051的任意输出口输出不同占空比由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。
温度是一种最基本的环境参数,在工农业生产及日常生活中对温度的测量及控制具有重要意义。
本设计将介绍一种基于单片机的温度控制直流电机转速系统。
该系统采用AT89C51单片机为核心,通过AT89C51单片机驱动数字温度传感器DS18B20,进行温度数据采集,通过温度的比较和温度范围设定的程序控制产生PWM(脉宽调制)信号;通过L298驱动芯片来控制直流电机的启动、速度、方向的变化;通过LM016L显示温度。
所谓脉冲宽度调制是指用改变电机电枢电压接通与断开的时间的占空比来控制电机转速的方法,称为脉冲宽度调制(PWM)。
PWM驱动装置是利用全控型功率器件的开关特性来调制固定电压的直流电源,按一个固定的频率来接通和断开,并根据需要改变一个周期内“接通”与“断开”时间的长短,改变直流电动机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
因此,这种装置又称为“开关驱动装置”。
对于直流电机调速系统,其方法是通过改变电机电枢电压导通时间与通电时间的比值(即占空比)来控制电机速度。
本次设计可以作为简单控制向复杂控制的过度,实现直流电机启动、正反转控制和顺序控制外,还要进行转速控制。
为以后复杂控制设计做基础。
关键词:
PWM;单片机;温度;控制
1.1引言
在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用,无论在工业农业生产、交通运输、国防航空航天、医疗卫生、商务与办公设备,还是在日常生活中的家用电器,都在大量地使用着各式各样的电动机。
据资料统计,现在有的90%以上的动力源来自于电动机,我国生产的电能大约有60%用于电动机。
电动机与人们的生活息息相关,密不可分。
随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机控制向更复杂的控制发展。
1.2研究意义
对电动机的控制可分为简单控制和复杂控制两种,简单控制是对电动机进行启动、制动、正反转控制和顺序控制,复杂控制是对电动机的转速转速、转角、转矩、电压、电流等物理量进行控制。
本次设计可以作为简单控制向复杂控制的过度,实现直流电机启动、制动、正反转控制和顺序控制外,还要进行转速控制。
为以后复杂控制做为基础学习。
直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。
随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。
采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率,可以实现复杂的控制,控制灵活性和适应性好,无零点漂移,控制精密高,可提供人机界面,多机联网工作。
采用智能功率电路驱动比传统的分立功率器件组成的驱动体积小,功能强;减少了电路元器件数量,提高了系统的可靠性;监控更容易实现;集成化使电路的连线减少,减少了布线电容和电感以及信号传输的延时,增加了系统抗干扰的能力;集成化使系统成本大大降低。
1.3系统设计内容
本设计将介绍一种基于单片机的温度控制直流电机转速系统。
该系统采用AT89C51单片机为核心,通过AT89C51单片机驱动数字温度传感器DS18B20,进行温度数据采集通过温度的比较和温度范围设定的程序控制产生PWM(脉宽调制)信号;通过L298驱动芯片来控制直流电机的启动、速度、方向的变化;通过LM016L显示温度。
论文包括对单片机的功能及各个管脚和晶振复位电路的介绍,整个电路设计包括温度采集模块,单片机控制模块,温度显示模块,和电机及电机驱动模块。
2系统方案设计
2.1系统的设计要求及主要技术指标
本论文要求使用单片机进行电路设计,同时单片机部分应带有显示功能。
单片机对某个位置进行温度监控,当外部温度≥45℃时,电动机加速正转,当温度≥75℃时,电动机全速正转;当外部温度≤10℃时,电动机加速反转,当温度≤0℃时,电动机全速反转;当温度回到10℃~45℃之间时电动机逐渐停止转动。
2.2系统总体方案
系统总体方案设计,如下图2.1
图2.1系统总体方案图
2.3总体方案论述
该系统采用AT89C51单片机为核心,通过DS18B20进行温度采集,送入单片机,经过软件编程进行温度的比较和范围划定,然后通过程序控制由单片机产生不同的PWM(脉冲宽度调制)信号,送给电机驱动芯片L298的使能端口,通过L298驱动芯片来控制直流电机的启动、速度、方向的变化;单片机将温度数据传送给LM016L显示温度。
整个电路设计包括温度采集模块,单片机控制模块,温度显示模块,和电机及电机驱动模块。
3硬件电路设计
3.1.1AT89C51单片机
AT89C51是美国ATMEL公司生产的低电压高性能CMOS8位单片机,片内含4Kbytes的可反复檫写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
89C51单片机基本组成包括有:
●一个8位的微处理器;
●片内数据存储器RAM有128B,21个特殊功能寄存器SFR;
●片内程序存储器FlashROM有4KB;可寻址片内外统一编址的64KB的ROM,
●可寻址片外64KB的RAM;
●4个8位并行I/O接口(P0—P3);
●一个全双工通用异步串行接口UART;
●两个16位的定时器/计数器;
●五个中断源、两个优先级的中断控制系统;
●具有位操作功能的布尔处理机及位寻址功能;
●片内振荡器和时钟产生电路。
图1单片机管脚图
3.1.2管脚介绍
如图1所示:
(1)电源引脚:
Vcc(40脚):
电源端,接+5V电源。
Vss(20脚):
接地端,接+5V电源地端。
(2)时钟振荡器外接晶体引脚:
XTAL1和XTAL2
AT89C51内部有一个振荡器和时钟产生电路。
XTAL1(19脚):
片内振荡电路反相放大器输入。
XTAL2(18脚):
片内振荡电路反相放大器输出。
(3)控制信号引脚:
RST、ALE、PSEN、EA
RST(9脚):
复位信号输入端,高电平有效。
保持两个机器周期高电平时,完成复位操作。
ALE/PROG(30脚):
地址锁存允许输出端/编程脉冲输入端,正常时,连续输出振荡器频率的1/6正脉冲信号。
访问片外存储器时:
作为锁存P0口低8位地址的控制信号。
对89C51片内ROM编程写入时:
作为编程脉冲输入端。
PSEN(29脚):
外部程序存储器读选通输出信号访问片外ROM时,输出负脉冲作为读ROM选通常连接到片外ROM芯片的输出允许端(OE)作外部ROM的读选通信号。
EA/Vpp(31脚):
外部程序存储器地址使能输入/编程电压输入端。
平常,接“1”时,CPU访问片内4KB的ROM,当地址超4KB时,自动转向片外ROM中的程序。
当接“0”时,CPU只访问片外ROM。
第2功能Vpp对8751编程时,编程电压输入端。
(4)输入/输出端口引脚P0、P1、P2、P3
4个8位的并行输入/输出端口,共32个引脚。
作为通用输入/输出端口,P0、P2和P3端口又各自有第2功能。
通用输入/输出端口
准双向口:
作输入时要先对锁存器写“1”。
P0端口(P0.0—P0.7,第39—32脚):
漏极开路的准双向口,输出能驱动8个74LS类型的负载。
P1端口(P1.0—P1.7,第1—8脚):
内部带上拉电阻的准双向口,输出能驱动4个74LS负载。
P2端口(P2.0—P2.7,第21—28脚):
内部带上拉电阻的准双向口,输出能驱动4个74LS负载。
P3端口(P3.0—P3.7,第10—17脚):
内部带上拉电阻的准双向口,输出能驱动4个74LS负载。
P0、P2、P3端口的第二功能
P0端口:
在CPU访问外部存储器或I/O接口时,P0口分时提供低8位地址(A0-A7)和8位数据(D0-D7)总线。
这时,需要一个8位锁存器,利用ALE(地址锁存允许)来锁存P0口低8位地址信号。
P2端口:
在CPU访问外部存储器或I/O接口时,P2口提供高8位地址(A8-A15)的总线信号。
P3端口:
在CPU访问外部存储器或I/O接口时,P3口提供读、写控制总线信号。
还提供串行通信、外部中断、计数器的外部计数输入信号等。
如表1所示。
表1P3口的第二功能
口线
信号
功能
P3.0
RXD
串行口数据输入(接收数据)
P3.1
TXD
串行口数据输出(发送数据)
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
定时器0的外部输入(计数输入)
P3.5
T1
定时器1的外部输入(计数输入)
P3.6
WR
外部数据存储器写选通控制输出
P3.7
RD
外部数据存储器读选通输出控制
3.1.3单片机晶振电路
单片机系统里都有晶振,如图2所示(左图为内部振荡方式,右图为外部振荡方式)在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
图2晶振电路
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
当采用内部时钟时,片外连接石英晶体(或陶瓷振荡器)和微调电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2起稳定振荡频率、快速起振的作用。
虽然没有十分严格的要求但电容容量的大小会轻微影响振荡频率的高低、振荡工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,推荐使用30pf±10pf,而如使用陶瓷振荡器最好选择40pf±10pf,产生原始的振荡脉冲信号。
采用外部时钟时,XTAL1输入即内部时钟发生器的输入端外部时钟脉冲信号,XTAL2悬空。
仿真如图3所示。
3.1.4单片机复位电路
复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和手动复位。
上电复位:
上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。
手动复位:
首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作,仿真如图3所示。
图3Protues仿真的晶振及复位图
3.2温度采集模块设计
温度是一种最基本的环境参数,在工农业生产及日常生活中对温度的测量及控制具有重要意义。
本模块的功能是进行温度采集,获取温度数据然后经过单片机处理,由单片机来控制PWM的输出。
3.2.1方案论证:
方案一
由于本模块是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
DS18B20的主要特征:
●全数字温度转换及输出。
●先进的单总线数据通信。
●最高12位分辨率,精度可达土0.5摄氏度。
●12位分辨率时的最大工作周期为750毫秒。
●可选择寄生工作方式。
●检测温度范围为–55℃~+125℃(–67°F~+257°F)
●内置EEPROM,限温报警功能。
●64位光刻ROM,内置产品序列号,方便多机挂接。
●多样封装形式,适应不同硬件系统。
该模块通过AT89C51单片机驱动数字温度传感器DS18B20,进行温度数据采集、读取、处理,并通过LCD显示出来。
温度传感器是该模块的关键器件,本系统选用的是美国Dallas半导体公司生产的数字化温度传感器DS18B20。
DS18B20支持“一线总线”接口,测量温度范围为-55℃~+125℃,被测温度用符号扩展的16位数字量方式串行输出,在-10~+85℃范围内,精度为±0.5℃。
DS18B20采集到的现场温度直接以先进的单总线数据通信方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
DS18B20可程序设定9~12位的分辨率,精度可达±0.5℃。
DS18B20具有内置的EEPROM,用户设定的分辨率和报警温度都可存储在其中,且掉电后依然存在。
3.2.2DS18B20的内部结构
DS18B20内部结构由64bit闪速ROM、温度传感器、非易失性温度报警触发器TH和TL配置寄存器等4个数字器件组成,如图4。
温度传感器DS18B20是通过温度对振荡器的频率影响来测量温度,如图5。
DS18B20内部有2个不同温度系数的振荡器,低温度系数振荡器输出的时钟脉冲信号在高温度系数振荡器产生的门周期内进计数。
计数初值被预置-55℃相对的基数值,如计数器在高温度系数振荡器输出的门周期结束前计数为零,表示测量温度值高于-55℃,被预置在-55℃的温度寄存器的值加1,重复该过程,直到高温度系数振荡器门周期结束止,温度寄存器中的值就是被测的温度值。
该值由主机通过发读存储器命令读出,经取补和十进制转换,得到实测的温度值。
斜率累加器用于补偿和修正温度振荡器的非线性,以产生高分辨率的温度测量。
通过改变温度每升高1℃,计数器须经计数值实行补偿。
为获得所需分辨率,必须知道该数值及在给定温度处每1℃的计数值(斜率累加器的值)。
图4DS18B20的内部结构
图5DS18B20测温原理图
DS18B20的管脚排列如下图6所示:
图6管脚及实物图
DQ为数字信号输入/输出端;GND为电源地;VCC为外接供电电源输入端(在寄生电源接线方式时接地)。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
图7DS18B20的RAM
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中如图7所示,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H,温度代码对照如图8所示。
图8温度代码对照
3.2.3DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E
RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节如图7所示,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
图9DS18B20的寄存器
该字节各位的意义如下:
TMR1R0
低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表2所示:
(DS18B20出厂时被设置为12位)分辨率设置表:
表2DS18B20分辨率设置表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
CPU只需一根端口线就能与DS18B20进行通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
与前一代产品(DS1820温度传感器)不同,DS18B20支持3.0V~5.5V的电压范围,使系统设计更灵活、方便,而且DS18B20价格更便宜,体积更小。
(1)DS18B20芯片存储器操作指令表:
WriteScratchpad(向RAM中写数据)[4EH]
这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。
写入过程中可以用复位信号中止写入。
ReadScratchpad(从RAM中读数据)[BEH]
此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。
芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。
CopyScratchpad(将RAM数据复制到EEPROM中)[48H]
此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。
此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。
ConvertT(温度转换)[44H]
收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。
此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。
R