温度采集与显示系统

上传人:ji****72 文档编号:37985068 上传时间:2018-04-25 格式:DOCX 页数:25 大小:939.28KB
返回 下载 相关 举报
温度采集与显示系统_第1页
第1页 / 共25页
温度采集与显示系统_第2页
第2页 / 共25页
温度采集与显示系统_第3页
第3页 / 共25页
温度采集与显示系统_第4页
第4页 / 共25页
温度采集与显示系统_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《温度采集与显示系统》由会员分享,可在线阅读,更多相关《温度采集与显示系统(25页珍藏版)》请在金锄头文库上搜索。

1、光电与通信工程学院课程设计报告书课课 设设 名名 称:称: 温度采集与显示系统年级专业及班级:年级专业及班级:11 级电子信息工程 1 班姓姓 名:名: 彭秀华、刘娇玲 学学 号:号: 1106012148、1110012149 指指 导导 老老 师:师:潘可贤、林峰评评 定定 成成 绩:绩: 教教 师师 评评 语:语:指导老师签名:20 年 月 日摘要摘要 单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片 机芯片上集成多种功能部件和大容量存储器的方法。因而,整个应用系统不需要扩展,而 体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。 本设计是基于 STC89

2、C52 单片机和 DS185B20 实现温度的测量系统,单片机在本系统中作为温度输入和 显示控制器件,DS18B20 被用作温度数据的采集和温度输出器件。本系统采用单总线操作, 线路简单,测量值精确,可实现多点测量,并对温度超过限制值,产生报警和数据采集。 本系统被广泛应用于温度控制、温度检测、温度采集、消防等系统中。一、一、系统功能介绍系统功能介绍1、能正确检测温度;2、在 1602 上实时显示温度;3、每隔 10 秒采集一次温度数据并保存到 AT24C02;4、温度超过设定值,蜂鸣器报警;5、按键按下,重新开始采集温度等等。二、主要器件介绍二、主要器件介绍1、STC89C52 STC89C

3、52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了 很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统 提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash,512 字 节 RAM, 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位 电路,3 个 16 位定时器/计数器,4 个外部中断,一个 7

4、向量 4 级中断结构(兼 容传统 51 的 5 向量 2 级中断结构) ,全双工串行口。另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工 作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位 为止。最高运作频率 35MHz,6T/12T 可选。2、DS18B20 DS18B20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁 铁吸附式,不锈钢封装式,型号多种多样,有 LTM8877,LTM8874 等等。主要根据

5、应用 场合的不同而改变其外观。封装后的 DS18B20 可用于电缆沟测温,高炉水循环测温,锅 炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐 磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领 域。DS18B20 工作原理 DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温 度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理如图 3 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频 率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率

6、明显改变,所产生的信 号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。 计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时, 温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数 晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的 累加,此时温度寄存器中的数值即为所测温度。图 3 中的斜率累加器用于补偿和修正测温 过程中的非线性,其输出用于修正计数器 1 的预置值。 3、AT24C02AT24C02 是一个 2K 位串行 CMOS E2PROM,

7、 内部含有 256 个 8 位字节, CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗。AT24C02 有一个 8 字节页 写缓冲器。该器件通过 IIC 总线接口进行操作,有一个专门的写保护功能。4、LCD16021602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD 是指显示的内容为

8、16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。三、硬件电路原理描述三、硬件电路原理描述工作原理工作原理 1、温度采集器通过感应温度输入 P2.2,还有两个脚接入正负极。 2、采用蜂鸣器报警电路,它由晶体管、电阻和蜂鸣器组成。当温度的测量值超出给定 的上下限时,由单片机的 P2.7 口输出信号控制晶体管导通,则蜂鸣器报警。 3、左边电路由电容和电阻组成复位电路。 4、LCD 显示把 D0 到 D7 脚分别接到 CP

9、U 的 P0.0 到 PO.7 同时接入排阻。 在实际电路中我们组还加入了串口设计如下图。四、软件设计四、软件设计程序程序 1 DS18B20#include #include #include sbit ds=P22; /温度传感器信号线 /sbit beep=P23; /蜂鸣器 uint temp; float f_temp; void dsreset(void) /18B20 复位,初始化函数 uint i;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i-; bit tempreadbit(void) /读 1 位函数 uint i;bit dat;

10、ds=0;i+; /i+ 起延时作用ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return (dat); uchar tempread(void) /读 1 个字节 uchar i,j,dat;dat=0;for(i=1;i1); /读出的数据最低位在最前面,这样刚好一个字节在 DAT 里 return(dat); void tempwritebyte(uchar dat) /向 18B20 写一个字节数据 uint i;uchar j;bit testb;for(j=1;j1;if(testb) /写 1 ds=0;i+;i+;ds=1;i=8;while(i0)i

11、-; else ds=0; /写 0i=8;while(i0)i-;ds=1;i+;i+; void tempchange(void) /DS18B20 开始获取温度并转换 dsreset();delay(1);tempwritebyte(0xcc); / 写跳过读 ROM 指令tempwritebyte(0x44); / 写温度转换指令 uint get_temp() /读取寄存器中存储的温度数据 uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); /读低 8 位b=tempre

12、ad(); /读高 8 位temp=b;tempwarn_l2)else if(t=warn_h2) /大于 32 度 warn(10,0x0c);else i=40;while(i-) dis_temp(get_temp(); */程序 2 LCD #include #include sbit rs=P35; sbit lcden=P34; uchar code tablenum= “0123456789“; uchar code table= “Now00.0 keep00.0“; uchar code table1=“TIME00:00:00“; void delay(uint z) u

13、int x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_date(uchar dat) rs=1; lcden=0; P0=dat; delay(5); lcden=1; delay(5); lcden=0; void init() uchar num; lcden=0; /fen=59; /miao=53; /shi=23; write_com(0x38); write_

14、com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num0x0190) buzzer=1; delay(1000); buzzer=0; /keyscan(); void int_0() interrupt 0 EA=0;IRcvStr(0xa0, n , /mm=pDat10;/mm8) /pDat1=(uchar)(tt pDat0=tt/100; pDat1=(tt%100)/10; pDat2=tt%10; ISendStr(0xa0, m, /存温度 m=m+3; /*pDat0=0; pDat1=0; pDat2=0; */ count+;if(count=60) count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; /write_sfm(4,shi); /write_sfm(7,fen); /write_sfm(10,miao); 程序 4 STARTUP.A51 ;- ; This file is part of the C51 Compiler package ; Copyright (c) 1988-2005 Keil

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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