您的位置:首页电路图专栏充电器电路图
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

数字式温度控制器

[日期:2008-03-30 ] [来源:东哥开发网(www.picavr.com) 作者:佚名] [字体: (投递新闻)
温度控制在某些领域应用十分广泛,然而现有的温度传感元件大多为模拟器件(热电耦)体积大、应用复杂、而且不容易实现数字化等缺点,阻碍了应用领域的扩展。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件作为温度采集,单片机作为主控芯片,LCD作为显示输出。实现了对温度的实时测量与控制。本设计可以显示时间和现有环境温度,并可随意设定上下限温度报警数值,也可以根据需要定时进行温度控制。       本电路设计是单片机的综合应用。它包含了LCD显示接口,人机交流的键盘接口,单总线的温度传感器芯片。其中LCD显示屏幕选用NOKIA  3310手机屏幕作为显示输出,该手机屏幕在国内有大量现货,且性价比较高,应用也很方便。本电路新颖、实用,是单片机初学者很好的入门课题。   一、工作原理          如图1所示,本电路选用市面上最常用的8位单片机AT89C52作为主控芯片,通过P2.0,P2.1,P2.2,P2.3口软件模拟SPI口的方式与LCD模块的主控芯片LPH7366进行串行通讯。通过P0.0与DS18B20进行单总线通讯。P1.5,P1.6,P1.7为输出控制端口,分别控制压电陶瓷片,LED发光二极管和继电器。本数值温度计的设计的基本思路:是把DS18B20作为温度传感元件,将环境温度数据转换成数字信号发送给AT89C52,AT89C52通过程序内部的运算将转换好的温度数值发送给LCD显示出来。本设计能在LCD上实时显示温度和时间等数据,通过显示使用者能准确的知道当时的环境温度和时间等实时信息,通过这些信息使用者能方便对负载进行控制。程序中添加了时间定时功能通过定时控制可以实现定时控制负载在一定温度范围内工作。另外程序还增加了温度报警的功能,首先使用者通过键盘接口设置温度的上下限数值,设定完毕后程序会实时查询当时的环境温度是否超出设置的上下限温度数值。如果超出会报警或将负载切断,停止其工作。这样实现了温度和时间的双重控制。能应用于一般温度控制领域:大篷蔬菜种植、鸡蛋恒温孵化也可作为家庭用的数字体温计。另外本设计还剩余了多个I/O口,用户还可以根据自己的需要自行进行系统扩充。        U2:NOKIA 3310手机显示屏幕,其中集成了显示控制模块。控制模块为PHILIPS公司的LPH7366,由于显示屏幕在加工出厂时就将这一模块集成捆绑在了显示屏幕中,所以对于使用者只要知道LPH7366的控制命令就可以方便控制LCD显示。用户通过对屏幕的少许加工就能方便应用,图2为新买来的手机屏幕及其管脚图,图3为自行加工好的状况图,而且该LCD屏幕在国内有巨量现货,且价格便宜容易购得。所以作为一般手持设备的显示输出很适合。     U5:DS18B20是美国DALLAS公司推出的一种单片集成温度传感器如图4。它具有体积小,接口简单和使用方便等特点。该传感器采用单总线接口,测量的温度范围为:-55℃~+125℃,精度可以达到0.0675℃(采用12位采样数值),最大的温度转换时间为200ms。图5是本设计中应用图。   上电运行后,LCD会显示开机界面。如图6所示,该运行画面包含了多个信息。其中温度显示为当前环境温度数值,该值会根据环境温度的变化而变化,最下面的显示为时间显示,用户可以根据当前时间重新对其设定,初始化时间为00:00:00。时间显示的后面的星号(*)表示是否有闹铃设置,有则其显示,无则不显示。在画面的右面是一温度计图形,它以动画的显示方式显示当前温度数值,温度条显示范围设定在+37℃~ -37℃。另外在界面的左上方还添加了人脸图形,通过程序设定用户可随意修改人脸表情。其它具体功能设定时的画面如图8所示。     键盘的硬件电路设计采用独立式键盘电路,在软件编写上采用多级菜单的方式进行键盘控制。键盘的具体操作如图7所示。首先上电后,键盘功能为①主菜单功能:KEY1:空、KEY2:时间功能的设定、KEY3:温度功能的设定、KEY4:背光控制、KEY5:闹铃控制。通过KEY2和KEY3可以分别进入时间功能设定和温度功能设定。按KEY2后键盘功能为②时间功能:KEY1:空、KEY2:空、KEY3:时间功能的切换、KEY4:背光控制、KEY5:确定。按KEY3后键盘功能为③温度功能:KEY1:空、KEY2:空、KEY3:温度功能的切换、KEY4:背光控制、KEY5:确定。如果在功能切换时选择了需要设定的功能后按确定键就能对该功能进行重新设定。对于时间功能或温度功能键盘的设定操作都是一样的,时间设定操作和温度设定操作④、⑤:KEY1:数值+、KEY2: 数值-、KEY3:功能位的切换、KEY4:背光控制、KEY5:确定并返回主菜单功能。   二、软件设计          软件采用可读性强的C语言编写,经过KeilC编译通过,程序编写采取模块化、结构化设计。各个器件都有其独立的驱动程序,方便读者理解。其主程序工作流程如图9所示。   本制作的C语言程序可以分为几个主要功能模块程序:        1.DS18B20驱动程序:包含了DS18B20各种操作和命令        2.LPH7366驱动程序:包含了LPH7366各种操作和命令        3.时间程序:主要完成时间控制功能。        4.键盘扫描程序:主要完成键盘扫描和判断功能。        程序中每个函数都有其详细的参数介绍,方便读者应用和学习。 /************主函数***************/ /*函数原型:void main() /*函数功能:程序起始 /*输入参数:无 /*输出参数:无 /*调用模块:LPH7366_init(),LPH7366_clr(),time_init(),LPH7366_write_str(), LPH7366_write_han(),LPH7366_write_han()pic_temp_face_move(), time_move(),temp_move(), temp_bar_move(),key_main(), tick_time_temp() /*建立时间:2005/11/16 /*****************************************/ void main() {    LPH7366_init();  //显示屏幕初始化    LPH7366_clr();  //屏幕白屏    time_init();   //定时器0初始化    pic_temp();    //温度主画面    LPH7366_write_str(1,4,'D');  //设计标题 DX Temp    LPH7366_write_str(1,5,'X');    LPH7366_write_str(1,6,' ');    LPH7366_write_str(1,7,'T');    LPH7366_write_str(1,8,'e');     LPH7366_write_str(1,9,'m');     LPH7366_write_str(1,10,'p');     LPH7366_write_han(2,1,0); //显示气温: C     LPH7366_write_han(2,2,1);     LPH7366_write_doc(4,25,0x36);     LPH7366_write_doc(4,26,0x36);     time_init();  //定时器0初始化        while(1)  //温度图动画部分    {      data_flag=1;//动画显示 影响LPH7366_write_str()函pic_temp_face _move();  //人脸表情      time_move();  //时间部分动画  temp_move();  //温度部分动画 temp_bar_move();  //温度条部分动画  key_main();  //主键盘 tick_time_temp();  //查询各个参数是否到了设定数值  if(temp_TL { LED=1;       face_flag=1;  //笑脸 }    } }
阅读:
录入:petta

推荐 】 【 打印
本文评论
      全部评论
    花瓣飘落会员 于31日评论道: 查看全部评论  
还没有细心看过
    zhangxiangru0394会员 于31日评论道: 查看全部评论  
此设计太妙了.
发表评论


点评: 字数
姓名:
站长推荐