基于单片机的PWM控制的温度控制器的研究

2013-12-19 12:02张春来
宿州学院学报 2013年2期
关键词:服务程序直流电机流程图

张春来

安徽水利水电职业技术学院,安徽合肥,230601

单片机在电子产品中的应用越来越广泛,很多电子产品用到温度检测时都由单片机控制。温度传感器的种类有很多,其中DALLS公司生产的DS18 B20是一种数字温度传感器,它只需一个引脚即可读取数据,可以直接与单片机采用“单总线”的数据传输方式,具有接口简单,只占单片机一个I/O端口,无需任何外部器件就可读取温度[1]。

1 温度控制器构成

本系统由单片机芯片AT89C51、温度传感器DS18B20、时钟芯片DS1302、液晶显示屏160128LCD、直流电动机及报警器等构成,设计方案如图1所示。

图1 温度控制系统的设计方案

本控制器控制过程如下:用温度传感器DS18B20检测环境温度,并根据温度的高低来调节直流电动机的转速,当外部温度大于等于45℃时,直流电动机在L298驱动下加速正转(转速与温度成正比),当温度达到75℃并大于75℃时,直流电动机全速正转;当外部温度小于等于10℃时,加速反转(转速也与温度成正比),当温度小于等于0℃时,直流电动机全速反转;当温度介于10℃~45℃时,直流电动机逐渐停止工作[2]。液晶显示屏160128LCD主要显示时间、日期、测量温度及直流电机的工作状态。

2 系统硬件

2.1 控制系统

本系统的核心控制部件是AT89C51单片机,AT89系列单片机由ATMEL公司生产,其中AT89C51是一种低功耗、高性能、内含4 K字节闪电存储器(Flash Memory)的8位CMOS微控制器。单片机工作的时间基准由时钟电路提供,单片机的XTAL1和XTAL2两个引脚间接一只晶振及两只电容,构成了单片机的时钟电路,其电容器C1和C2取值22 pF,石英晶体选择12 MHZ。

2.2 温度传感器

(1)GND:地信号,接地。

(2)DQ:数据输入/输出引脚,与AT89C51的P3.5相连。

(3)VDD:可选择的VDD引脚。

2.3 时钟芯片

时钟芯片DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS18B20的引脚排列如下。

(1)RST:复位信号,与AT89C51的P1.2相连。(2)I/O:数据输入/输出引脚,与AT89C51的P1.0相连。(3)SCLK:串行时钟,与AT89C51的P1.1相连。(4)SCLK:X1、X2晶振引脚,接32.768 KHz晶振。

2.4 液晶显示屏

PG160128是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及格160×128全点阵液晶显示器组成。可完成图形显示,也可以显示点阵汉字。PG160128的引脚功能及与单片机的接口见表1。

表1 PG160128的引脚功能及与单片机的接口

2.5 PWM控制

51系列单片机无PWM输出功能,可采用定时器配合软件的方法输出。PWM脉冲驱动直流电机的电路如图2所示。直流电机通过L298直流电机驱动芯片驱动,电机的转向通过L298的引脚IN1、IN2来控制,电机的转速大小由PWM输出的调宽脉冲的占空比来决定[3]。AT89C51的引脚P2.4与L298的IN1相连,P2.5与L298的IN2相连,只要P2.4=1,P2.5=0,直流电机就正转;P2.4=0,P2.5=1,直流电机就反转;P2.4=0,P2.5=0,直流电机停止。

AT89C51单片机的P2.6引脚输出占空比不等的调宽脉冲,当检测到温度大于等于75℃或小于等于0℃时,直流电机全速转动,此时要求引脚P2.6=1,输出占空比为100%,电机转速方向通过L298直流电机驱动芯片的输入口IN1、IN2控制。当检测到温度大于等于45℃时,直流电机开始加速正转,加速转速与检测到的温度有关,假设检测到的温度为Temp≥45℃,此时的转速与(Temp-45)成正比,当Temp≥75℃,则全速,所以只要PWM输出占空比α=(Temp-45)/30,就可以实现此功能,当检测到温度Temp≤0℃,直流电机加速反转原理一样。本文中,通过单片机的T0定时器输出不同的占空比PWM信号,从而控制直流电机的不同转速。T0定时器设置如下[4]:TMOD=0x11,TH0=-50000/256,TL0=-50000%256,IE=0x82,TR0=1。

21世纪是信息技术迅速发展的时代。信息技术对社会各领域产生了巨大的影响,也在教育领域引发了一系列的变革。信息化教学在现代化教学理念的指导下,重视现代信息技术在教学中的作用,充分利用现代教育技术手段,调动多种教学媒体、信息资源,充分发挥学生的主动性、积极性和创造性,从而达到良好的教学效果。

图2 PWM脉冲驱动直流电机的电路

2.6 温度控制系统的硬件电路图[5]

温度控制系统的硬件电路图如图3所示。

图3 温度控制系统的硬件电路图

3 温度控制系统的软件流程图

3.1 主程序

(1)调用读取温度的子函数模块,测量环境温度。

(2)根据测量的环境温度,在T0的中断服务程序里控制直流电机的不同转向及转速。

(3)调用读取日期的子函数模块,把日期、星期、时间送到相应的数组DataTime[ ]里。

(4)调用液晶显示的子函数模块,把日期、星期、时间、温度等相关参数送到液晶显示屏上,每隔1 s刷新显示。

其主程序的流程图如图4所示,主程序如下:

图4 主程序流程图

Void main( )

{

LCD_Initialise( );

Read_Temerature( );

Delay(50000);

TMOD=0x11;

IE=0x82;

TH0=-50000/256;

TL0=-50000%256;

TR0=1;

Display_Str_xy(16,88,"当前温度:");

while(1);

}

3.2 中断子函数程序

设置定时器T0、T1两个中断子函数,其中T0的中断服务程序的功能如下:根据读取的温度Temp判断电机的运行;在T1的中断服务程序中,每隔1 s先读取温度值及时间值,再刷新液晶显示屏的内容,两个中断服务程序的的流程图如图5、图6所示。

图5 T0中断服务程序流程图

4 结 论

本文基于单片机AT89C51的工业生产温度控制系统,采用DS18B20数字温度传感器测量温度,在液晶显示屏上实时显示检测温度,并根据具体温度值控制直流电机不同的转速。该控制器具有结构简单、测量精度高等优点,可以应用于工业生产温度监控领域。

图6 T1中断服务程序流程图

参考文献:

[1]杨庆文,翠海.基于AT89C51单片机的温度控制系统[J].中国科技信息,2010,23(6):154-155

[2]彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2009:299-301

[3]蓝厚荣.单片机的PWM控制技术[J].工业控制计算机,2010,23(3):97-98

[4]高卫东.51单片机原理与实践[M].北京:北京航空航天大学出版社,2011:203-209

[5]阎石.数字电子技术基础[M].北京:高等教育出版社,2006:105-109

[6]焦峰超.基于51单片机的小型温度测量系统[J].宿州学院学报,2008,23(2):104-106

[7]杨庆文.基于AT89C51单片机的温度控制系统[J].中国科技信息,2008,21(3):64-66

[8]李宁,汪日燕.利用单片机定时器实现信号采样和PWM控制[J].微型机与应用,2004,7:35-37

猜你喜欢
服务程序直流电机流程图
基于模糊PID的无刷直流电机速度控制系统的设计与仿真
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
UDP穿透NAT技术实现数据唤醒车联网T-Box设备的方案
基于FPGA的双绕组无刷直流电机软件设计
专利申请审批流程图
专利申请审批流程图
水利工程施工监理服务程序及质量控制
基于模糊神经网络PID的无刷直流电机控制系统研究
一种改进的无刷直流电机控制方法