单片机课程设计温度控制器1

上传人:子 文档编号:47457567 上传时间:2018-07-02 格式:PDF 页数:23 大小:560.97KB
返回 下载 相关 举报
单片机课程设计温度控制器1_第1页
第1页 / 共23页
单片机课程设计温度控制器1_第2页
第2页 / 共23页
单片机课程设计温度控制器1_第3页
第3页 / 共23页
单片机课程设计温度控制器1_第4页
第4页 / 共23页
单片机课程设计温度控制器1_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机课程设计温度控制器1》由会员分享,可在线阅读,更多相关《单片机课程设计温度控制器1(23页珍藏版)》请在金锄头文库上搜索。

1、1计算机系统与接口课程设计计算机系统与接口课程设计设计名称设计名称:温度控制器姓姓名:名:班班级:级:学学号:号:指导教师:指导教师:2010 年 01 月 08 日一、温度控制器的原理及功能如图 11 所示此多点温度测量电路主要由以下几部分组成:两个温度传感器 DS18B20 及其2选择开关电路,控制器单片机 AT89S52、扫描驱动电路、数码管 LED 显示器、报警电路、报警温度控制电路及电源电路等。图 11 多点温度计组成方框图温度传感器从测试点采集温度,然后把温度转换成电压(或电流) ,温度传感器输出电压的大小随温度的高低变化而变化,电压值的变化范围从几个微伏到几个毫伏,不同的温度传感

2、器,输出电压的范围也差别很大。 单片机 AT89S52 是多点温度测量电路的控制核心, 它将采集到的数字温度电压值,经过计算处理,得到相应的温度值,经扫描驱动送到 LED 显示器以数字形式显示测量的温度。LED 显示器用于显示测量温度的结果。报警温度控制电路用于在不同应用中灵活设定报警温度,在超过设定范围时,报警电路进行报警。二、系统硬件电路的设计2.1 多点温度测量电路多点温度测量电路如图 21 所示由主控器单片机 AT89S52 作为多点温度测量电路的核心,温度传感器 DS18B20 负责从测量点采集温度,四位共阳 LED 数码管以动态扫描法实现温度显示。2.1.1 DS18B20单线智能

3、温度传感器的工作原理(1) DS18B20 单线智能温度传感器的性能特点DS18B20 温度传感器是美国DALLAS 半导体公司最近推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 9-12 位的数字值读数方式。DS18B20 的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能;无须外接部件;DS18B20DS18B20LED 显示器扫描驱动报警电路单片机AT89S52温度控制电路电 源3可通过数据供电,电压范围为 3.05.5V;零待机功耗;温度以

4、9 或 12 位数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧坏,但不能正常工作.(2) DS18B20 的内部结构框图如图 24 所示,它采用 3 脚 PR35 封装或 8 脚 SOIC 封装其管脚封装如图 25 所示。(3) DS18B20 单线智能温度传感器的工作原理64 位 ROM 的位结构如图 26 所示。 开始 8 位是产品类型的编号, 接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通

5、信的原因。非易失性温度报警触发器 TH 和 TL,可通过软件写入户报警上下限。DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EEPRAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 37 所示。图 24 DS18B20 内部结构64位 ROM 和单 线接 口高 速 缓 存存储器与控制器温度传感器高温触发器 TH低温触发器 TL配置寄存器8 位 CRC 发生器I/OVDDC4图 25 DS18B20 的引脚排列头 2 个字节包含测得的温度信息,第 3 和第 4 字节是 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。 第 5 个

6、字节为配置寄存器, 它的内容用于确定温度值的数字转换分辨率。 DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。 该字节各位的定义如图 38 所示。低 5 位一直为 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在DS18B20 出厂时该位被设置为 0,用户不要改动,R1 和 R0 决定温度转换的精度位数,即用来设置分辨率,方法见表 33 。MSBLSB MSBLSBMSBLSB图 26位 64 位 ROM 结构图由表 33 可见,DS18B20 温度转换时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨

7、率和转换时间权衡考虑。高速暂存 RAM 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。表 23DS18B20 分辨率的定义规定8 位检验 CRC48 位序列号8 位工厂代码(10H)51 字节2 字节3 字节4 字节5 字节6 字节7 字节EEPROM8 字节9 字节图 37高速暂存 RAM 结构图图 2-8 配置寄存器当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通过单总线接口读出

8、该数据,读数据时低位在先,高位在后,数据格式以 0.0625/LSB 形式表示。温度值格式如图29 所示。当符号位 S=0 时,表示测得的温度值为正值,可以直接将二进制转换为十进制;当符号位S=1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。表 24 是一部分温度值对应的二进制温度数据。DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容做比较。若 TTH或 T #define uchar unsigned char #define uint unsigned int sbit DQ=P17;/ds18b20 与单片机连接口 sbit RS

9、=P24; sbit RW=P25; sbit EN=P26; sbit BEEP = P27;/蜂鸣器驱动线 sbit BEEP1 = P16;/小灯报警驱动线 sbit BEEP2 = P34; sbit key0=P30; sbit key1=P31; sbit key2=P36; sbit key3=P37;/加热驱动线 unsigned char code str1=“TH:TL:“ ; unsigned char code str2=“temp:“; unsigned char code str3=“design:wj “; unsigned char code str4=“err

10、or“; uchar data disdata5; uint tvalue,x=6,y=4,h,m=0x00,n=0x00;/温度值 uchar tflag,z;/温度正负标志 unsignedchar val;void delay(uint n)/延时 1us while (-n); void speak()/ 蜂鸣器响一声 unsigned chari; for (i=0;i20) break; BEEP=1;/喇叭停止工作,间歇的时间,可更改 delay(10) ; /if(temp20) break;14/*lcd1602 程序*/ void delay1ms(unsigned int

11、 ms)/延时 1 毫秒(不够精确的) unsigned int i,j; for(i=0;i0;i-) DQ = 0; /给脉冲信号 dat=1;16DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata)/*写数据*/ unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata delay_18B20(10); DQ = 1; wdata=1; read_temp()/*读取温度值并转换*/ uchar a,b; ds

12、1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0x44);/*启动温度转换*/ ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvaluex) speak(); BEEP1=0; BEEP2=1; else if(zy) speak(); BEEP1=0; BEEP2=0; elseBEEP1=1;18wr_com(0x85); wr_dat(flagdat);/显示符号位 wr_com(0x8

13、6); wr_dat(disdata0);/显示百位 wr_com(0x87); wr_dat(disdata1);/显示十位 wr_com(0x88); wr_dat(disdata2);/显示个位 wr_com(0x89); wr_dat(0x2e);/显示小数点 wr_com(0x8A); wr_dat(disdata3);/显示小数位 wr_com(0xc4); wr_dat(disdata4);wr_com(0xcb); wr_dat(disdata5);/*主程序*/ void main()/uchar a,b,c,temp,th=30,tl=20;init_play();/初始化

14、显示while(1) if(key0=0) while(key0=0); x+=1;m=m+1; if(key1=0)delay(200); while(key1=0); x=x-1; m=m-1; if(key2=0)19delay(200); while(key2=0); y+=1;n=n+1; if(key3=0) while(key3=0); y=y-1;n=n-1; if(x=y) speak(); wr_com(0xc0);display(str4); delay(100);wr_com(0xc0); display(str1);read_temp();/读取温度 ds1820di

15、sp();/显示附录二206结论由于本设计采用了集成温度传感器, 这样不仅减少了硬件电路的设计与调试, 并且此温度传感元件的集成性能比传统的元件要优越得多,这样简化了电路的设计难度还降低了产品的价格。如果我们采用传统的元件则在设计中还要加入 A/D 转换器和模拟开关, 这样就增加了电路的设计难度并且感温元件的精度和转换性能也是远不及集成的感温元件 DS18B20 的。 所以在以后的设计过程中应该尽量的采用集成元件。 另外, 本设计还可以实现高低温报警功能和多点温度测量功能,因此,能够适用于多种场合。21计算机系统与接口课程设计计算机系统与接口课程设计任务书任务书学院:信 电 学 院 专业:电子信息工程技术设计题目:温度控制器221、课程设计的内容和要求内容:1. 熟悉 AT89C51/52 单片机的硬件资源2. 掌握 Keil Vision 单片机集成开发环境的使用,掌握C/ASM 程序的编辑、编译、调试、仿真的方法。3. 掌握单片机常用温度传感器,液晶显示器的使用。4. 了解实际工业温度采集仪表的功能、工作方式和设计流程。要求:1. 在 Keil Vision 单片机集成开发环境下实现温度的采集、 和温度上下限的设定。2. 编写完整单片机 C51 程序,生成 HE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号