水温加热控制系统_第1页
水温加热控制系统_第2页
水温加热控制系统_第3页
水温加热控制系统_第4页
水温加热控制系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

水温加热控制系统

本系统采用以单片机(Atmega16)为核心的定时

控制,实现水温从室温到100℃之间任意设定温度的

恒温控制,并能把实时温度和设定温度,实时时间

和设定时间显示出来。项目任务

1.从键盘设定加热温度,启动系统;2.系统能显示规定的加热温度;3.系统能够检测到实时温度并同步显示。基本要求

1.恒温控制系统的基本控制原理与系统构成 2.了解学习DS18B20的使用方法及其工作原理,编程调试DS18B20。3.键盘的基本应用知识知识目标

根据项目基本要求,设计任务主要完成对壶内的水温进行控制,在加热的过程当中对有关的数据进行处理显示。所以我们采用了DS18B20温度传感器和BC7281,采用DS18B20温度传感器是因为测量精度高,能把测到的数据直接传送给单片机而不需要传送装置,BC7281可以实现键盘控制.项目的理解与设计显示温度

单片机键盘控制DS18B20温度传感器输入温度总体方案简图Atmega16单片机

可控硅BC7281

DS18b20

4123【Atmega16单片机】

(1)ATmega16的概述

ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。所有的寄存器都直接与运算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。

可控硅(1)概述可控硅是可控硅整流原件的简称,是一种具有3个PN结的四层结构的大功率半导体器件,一般由两晶闸管反向连接而成。(2)可控硅的主要功用

1.可控整流普通可控硅最基本的用途就是可控整流,大家熟悉的二极管可控整流电路,属于不可控整流电路。

2.无触电开关可控硅一个关键用途在于无触点开关。在自动化设备当中,用无触点开关代替通用继电器已被逐步应用,其显著特点是,无噪音、寿命长。可控硅和其他半导体器件一样,有体积小、效率高、稳定性好、工作可靠等优点。它的出现,使半导体技术从弱电领域进入了强电领域,成为工业、农业。交通运输、军事科研以至商业、民用电器等方面争相采用的元件。可控硅的优点【DS18B20温度传感器】1)DS18B20概述

DS18B20是Dallas半导体公司推出的单线数字式测温芯片,它的体积小适用电压更宽。他能实现采集温度数据,并将数据直接转换成数字量输出。

DS18B20的管脚排列如下:(2)DS18B20的内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

1.光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

2.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例,以16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

3.DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL的结构寄存器。.配置寄存器

低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置成0,(用户不要去改动)。R1和R0用来设置分辨率,如下表所示,(DS18B20出厂时被设置为12位)该字节各位的意义完成温度转换及复位

根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功之后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16—60微秒左右,后发出60—240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序#include<iom16v.h>#include<macros.h>#include<delay.h>#include"BC7281.h"#define port PORTA//定义A口为port#define ddrt DDRA//定义ddrt#define D0 0x20//定义D0#define pin PINA//定义PINunsignedinttemprter;temprter1;/*******************************************************//******函数名称:init_1820()******//******功能:复位18B20******//******参数:无******//******返回值:无******//*******************************************************/voidinit_1820(void){ ddrt|=D0; //设置端口输出

port|=D0; //输出一个脉冲

port&=~D0; delay_nus(600); //延时480us以上

port|=D0; //输出一个脉冲

ddrt&=~D0; delay_nus(60); //15~60us while(pin&D0); //等待应答

ddrt|=D0; //设置输出

port|=D0; //输出高电平

delay_nus(200); //60~240us}voidwrite_1820(unsignedcharx){ unsignedcharm; for(m=0;m<8;m++){ port&=~D0; //写数据,从低位开始

if(x&(1<<m)) //判断数据极性

port|=D0; else port&=~D0; delay_nus(60); //延时15~60us port|=D0; }port|=D0; //结束写数据,置高总线}unsignedcharread_1820(void){unsignedchartemp=0,k,n;for(n=0;n<8;n++){ port&=~D0; //输出一个起始脉冲

port|=D0; ddrt&=~D0; //设端口为输入

k=(pin&D0); //读数据,从低位开始

if(k) //判断数据极性

temp|=(1<<n); else temp&=~(1<<n); delay_nus(80); //延时60~120us ddrt|=D0; //设端口为输出

} return(temp); //返回读出的数据}unsignedintRead_1820_temprter(void){ unsignedintcount; unsignedchartemh,teml;

init_1820(); //复位18b20 write_1820(0xcc); //发出转换命令

write_1820(0x44); delay_nus(400); init_1820();

delay_nus(400); write_1820(0xcc); //发出读命令

write_1820(0xbe); teml=read_1820(); //读数据

temh=read_1820();

count=(temh*256+teml)*6.25;//计算具体温度

returncount; //返回温度数据}voidmain(void){ INT0_Init(); BC7281_init();DDRB=0xff;

while(1) { temprter=Read_1820_temprter(); //读取温度

a=(temprter%10000)/1000; b=((temprter%10000)%1000)/100; c=(((temprter%10000)%1000)%100)/10; d=(((temprter%10000)%1000)%100)%10; if(flag6==1) { write7281(0x15,(0x00+(d&0x0f))); write7281(0x15,(0x10+(c&0x0f))); write7281(0x15,(0x20+(b&0x0f))); write7281(0x15,(0x30+(a&0x0f))); } temprter1=a*10+b; if(temprter1>(zhi-4)) {

PORTB=0x00; } if(temprter1<(zhi-4)) {PORTB=0xff;

}/*write7281(0x15,(0x70+shi)); write7281(0x15,(0x60+ge));*/ }}遇到的问题 1.下不进程序以为芯片坏了,经过检查是芯片被锁,对芯片进行解锁。

2.在加热的过程中,开始水温总是达不到预定的值,当达到加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论