版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、生物医学工程设计课程设计 题目名称:温度报警器 学生学院:电信学院 专业班级:生物1201 学 号:1210950110 学生姓名:刘少杰 2014年1月12日1 概 述1系统概述本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。其输出温度采用LCD显示,主要用于对测温比较准确的场所。随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,该设计控制器使用的是51单片机AT89S52,AT89S52单片机在工控、测量、仪器仪
2、表中应用还是比较广泛的。测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可温度测量电路变得简单、可靠。显示是用LCD实现温度和时间的显示,蜂鸣器用来实现当测量温度超过设定的上限时的报警功能。2系统总体方案2.1系统总体设计框图温度计电路设计总体设计框图如图2-1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用LCD报警采用蜂鸣器、LED灯实现,键盘用来设定报警上下限温度。1602液晶显示电路AT89S52单片机温度传感器时钟,复位电路图2-1 温度计电路总体设计框图
3、2.1.2各模块简介1.控制模块AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程的Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另
4、外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3.单片机系统 AT89C52单片机引脚介绍 AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89C52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有
5、:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接11.0592MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件编程定义。 图4 晶振电路图 图5 复位电路图 4.温度传感器模块 DS18B20性能l 独特的单线接口仅需一个端口引脚进行通信l 简单的多点分布应用l 无需外部器件l 可通过数据线供电l 零待机功耗l 测温范围-55+125,以0.5递增l 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.
6、25、0.125和0.0625l 温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字l 应用包括温度控制、工业系统、消费品、温度计和任何热感测系统l 负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作DS18B20的操作流程 5.1602液晶显示电路 LCD1602引脚功能说明第1脚:VSS为电源地 第2脚:VDD接5V电源正极 7第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选
7、择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极 图13 1602液晶显示电路6.DS1302介绍与应用1、DS1302引脚排列:如下图2.引脚说明:1) Vcc1:后备电源,VCC2:主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1
8、供电。2)X1、X2:振荡源,外接32.768kHz晶振。3)RST:复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。4)I/O为串行数据输入输出端(双向)。5)SCLK为时钟输入端。3、数据输入
9、输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见数据手册。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个R
10、AM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 7.软件设计 7.1 主程序模块 主程序需要调用3个子程序,分别为:l 实时温度显示子程序:驱动液晶1602把实时温度值送出在液晶屏显示l 中断定时及显示子程序:驱动液晶1602把定时时钟送出在液晶屏显示l 温度设定、报警子程序:设定报警温度值,当温度超过或者低于该值时产生报警,即驱动液晶屏显示不同的界面主程序流程图:返回开始显示温度时钟,温度报警数据处理转化对温度
11、传感器进行设置,读取温度,对中断定时开始 7.2读温度值模块读温度值模块需要调用4个子程序,分别为: DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作 DS18B20写字节子程序:对DS18B20发出命令 DS18B20读字节子程序:读取DS18B20存储器的数据延时子程序 DS18B20操作时的时序控制7.3中断模块中断入口中断采用T0定时器方式1,初始值定时为50ms,并不断计数。来模拟时钟,中断模块流程图:定时器重置初值计数值加11秒?1分?1时?否,返回计数 是,显示时钟 中断返回8. 调试与结果分析本次实验我们采用LCD实现温度和时间的显示,蜂鸣器用来实现
12、当测量温度超过设定的上限时的报警功能。当温度值显示27摄氏度左右时报警电路开始发出滴滴的低沉声音,但是可惜的是我没法拿键盘设定报警上下限温度。本来是这样设想的当温度低于下限(15)值时二极管发光,当室温高于上限(27)时蜂鸣器报警,发出有规律的声音。通过按键调节温度上下限,使当前外界温度的范围包含在温度传感器的上下限内,从而使得蜂鸣器关闭和二极管光灭,但是这部分功能没得到实现。/* * 普中科技-* 实 验 名 : DS1302时钟显示试验* 实验说明 : LCD1602显示时钟信息* 连接方式 : 见连接图* 注 意 : */#include#includelcd.h#includeds13
13、02.h#includetemp.hvoid LcdDisplay();void LcdDisplaytemp(int);void buzzer(void);sbit Beep = P10 ;sbit LED1 = P11 ;/* 函数名 : delay* 函数功能 : 延时函数* 输入 : 无* 输出 : 无*/void delay(unsigned int i) char j; for(i; i 0; i-) for(j = 200; j 0; j-);/* 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无*/*- ?,? unsigned int t,? un
14、signed int ?,? 065535-void DelayPWM(unsigned int t) while(-t);*/void main()float tempwendu=0;LED1=1;LcdInit();Ds1302Init();LcdWriteCom(0xcf);LcdWriteData(C);while(1)Ds1302ReadTime();LcdDisplay();tempwendu=Ds18b20ReadTemp();LcdDisplaytemp(tempwendu);tempwendu=tempwendu*0.0625*100+0.5;if(tempwendu2700
15、)buzzer();/* 函数名 : LcdDisplay()* 函数功能 : 显示函数* 输入 : 无* 输出 : 无*/void LcdDisplay()LcdWriteCom(0xc0);/1602第二行显示/LcdWriteCom(0x80+0X40);/0b1000 0000+0b0100 0000LcdWriteData(0+TIME2/16);/时LcdWriteData(0+(TIME2&0x0f); LcdWriteData(-);LcdWriteData(0+TIME1/16);/分LcdWriteData(0+(TIME1&0x0f);LcdWriteData(-);Lc
16、dWriteData(0+TIME0/16);/秒LcdWriteData(0+(TIME0&0x0f);/LcdWriteData( );LcdWriteCom(0xcd);LcdWriteData(0+(TIME5&0x07);/显示温度 0b0000 0111LcdWriteCom(0x80);/1602第一行显示LcdWriteData(2);LcdWriteData(0);LcdWriteData(0+TIME6/16);/年LcdWriteData(0+(TIME6&0x0f);LcdWriteData(-);LcdWriteData(0+TIME4/16);/月LcdWriteD
17、ata(0+(TIME4&0x0f);LcdWriteData(-);LcdWriteData(0+TIME3/16);/日LcdWriteData(0+(TIME3&0x0f);LcdWriteCom(0x8D);/0b1000 1101LcdWriteData(0+(TIME5&0x07);/星期 /* 函数名 : LcdDisplay()* 函数功能 : LCD显示读取到的温度* 输入 : v* 输出 : 无*/void LcdDisplaytemp(int temp) /lcd显示 unsigned char datas = 0, 0, 0, 0, 0; /定义数组float tp;
18、if(temp 0)/当温度值为负数 LcdWriteCom(0xc9);/写地址 80表示初始地址 LcdWriteData(-); /显示负/因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=temp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5;/留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点/后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就/算由?.5,还是在小数点后面。 else LcdWriteCom(0xc9);/写地址 80表示初始地址 Lcd
19、WriteData(+); /显示正tp=temp;/因为数据处理有小数点所以将温度赋给一个浮点型变量/如果温度是正的那么,那么正数的原码就是补码它本身temp=tp*0.0625*100+0.5;/留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点/后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就/算加上0.5,还是在小数点后面。datas0 = temp / 10000;datas1 = temp % 10000 / 1000;datas2 = temp % 1000 / 100;datas3 = temp % 100 / 10;datas4 = temp % 10; LcdWriteCom(0x82); /写地址 80表示初始地址LcdWriteData(0+datas0); /百位 LcdWriteCom(0xca); /写地址 80表示初始地址LcdWriteData(0+datas1); /十位LcdWriteCom(0xcb);/写地址 80表示初始地址LcdWriteData(0+datas2); /个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 避雷针市场环境与对策分析
- 04版车位共享合同:基于物联网技术的车位共享协议
- 2024年度智能交通信号控制系统设计合同
- 2024年度广告发布及合作推广合同
- 2024年度环保项目技术研发与咨询合同
- 行李箱用便携式数字秤市场发展预测和趋势分析
- 2024年度体育赛事代理合同
- 2024年度医院厨房设施维修保养服务合同
- 2024年度城市轨道交通电气安装合同
- 胡须露市场发展现状调查及供需格局分析预测报告
- 第六章具体行政行为行政合同
- 企业并购的财务风险分析及防范的任务书
- 慢阻肺健康知识宣教
- 道路监控系统项目施工重点难点及施工方案
- 出国签证户口本翻译模板
- 烧伤病患者的护理-烧伤病人的护理
- 教务主任竞争上岗面试答辩题(精心整理)
- 对话理论与阅读教学
- 【医疗题材纪录片兴起与其传播价值6900字】
- 色环电阻识别方法
- 第三单元(知识清单)- 高二语文选择性必修下册同步备课系列(统编版)
评论
0/150
提交评论