温度报警器仿真
- 格式:docx
- 大小:725.50 KB
- 文档页数:14
信息职业技术学院毕业设计报告(论文)系别:班级:学生姓名:学生学号:设计(论文)题目:基于Proteus的温度检测与报警的仿真设计指导教师:起讫日期:2012.9.3~2012.11.16信息职业技术学院毕业设计(论文)成绩评定表信息职业技术学院毕业设计(论文)任务书学生(签名)2012年9月10日指导教师(签名)2012年9月10日教研室主任(签名)2012年9月10日系主任(签名)2012年9月10日信息职业技术学院毕业设计(论文)开题报告信息职业技术学院毕业设计(论文)中期检查表基于Proteus的温度检测与报警的仿真设计摘要:温度是与人们生活息息相关的环境参数,许多情况下都学要进行温度测量及报警,温度测量报警系统在现代日常生活.科研.工农生产中已经得到了越来越广泛的应用。
所以对温度的测量报警方法及设备的研究也变得极其重要。
随着人们生活的不断提高以及应对各种复杂测量环境的需要,我们对温度测量报警的要求也越来越高,利用单片机来实现这些控制无疑使人们追求的目标之一,它带给我们的方便时不可否定的,其中温度检测报警器就是一个典型的例子。
要为现代人工作,科研,生活,提供更好的设施,就需要从单片机技术入手,向数字化,智能化控制方向发展。
本设计所介绍的温度报警器,可以设置上下限报警温度,当温度不在设置围时,可以报警。
与传统温度测量系统相比,本设计中的数字温度测量报警系统具有很多前者没有的优点,如测温围广而且准确,采用LED数字显示,读数方便等。
关键词:单片机,温度检测,AT89C51,DS18B20目录1 绪论11.1课题背景12系统的具体设计23 硬件电路设计33.1单片机主控设计43.1.1主要特性43.1.2系统时钟电路53.1.3 复位电路63.2温度信号采集设计63.2.1 DS18B20的特性83.2.2 DS18B20的测温原理93.2.3 DS18B20与单片机接口电路10 3.4按键电路设计133.5报警电路设计144 温度控制系统的软件设计154.1主程序设计154.3温度采集设计174.4温度显示设计194.5按键开关设计204.6温度处理及蜂鸣器报警设计225 温度检测系统调试仿真23致27附录281 绪论1.1 课题背景随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、食品、石油等各个行业。
基于单片机的温度报警器的设计与仿真
陈峰
【期刊名称】《电脑知识与技术》
【年(卷),期】2010(006)027
【摘要】该文介绍了温度报警器的一种设计方法,用DS18820作为温度传感器来检测温度,通过单片机与传感器进行通信并进行控制.设计中利用Keil软件和Proteus软件对温度报警器进行了仿真.
【总页数】2页(P7540-7541)
【作者】陈峰
【作者单位】江苏省南通商贸高等职业学校,江苏,南通,226007
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于单片机的弱势人群车内温度与气体检测报警器 [J], 王禅同;任志英
2.基于51单片机的数字温度报警器制作详解 [J], 冯逸扬
3.基于单片机的温度报警器 [J], 刘鹏远
4.基于单片机的温度报警器 [J], 柳文静
5.基于AT89C51单片机的轮胎过热温度报警器 [J], 刘鑫;刘浩;王昊;王嘉雯;何依婷;马羿杨;龚浩然
因版权原因,仅展示原文概要,查看原文内容请购买。
XXXXXXXXXXXX学院实训报告项目温度报警器系别电气系班级检测与质量控制学号 XXXXXXXXXXX姓名 XXXXXXXX ~ XXXX 年第 X 学期项目一:温度报警器一、实训目的熟悉DS18B20温度传感器的使用,掌握一线式数据传输的控制原理。
二、实训内容读取温度传感器的温度值并用7段发光数码管显示温度值,当温度值高于50度时红色发光二极管亮,温度值低于5度时黄色发光二极管亮,其它情况两个发光二极管都是灭的。
当测试不到温度时显示‘ER-1’。
三、实训器材安装有Proteus软件的计算机 1 台。
四、实训步骤1)在Proteus仿真环境下,绘制实现功能的原理图,原理图及仿真图如下图所示。
2)编写程序,程序实现的功能为: 每个数码管显示一个数字,并且黄色发光二极管和红色发光二极管是灭的。
3)编写程序。
程序实现的功能为: 读取温度传感器的温度值并在显示温度值,当温度值高于50度时红色发光二极管亮,温度值低于5度时黄色发光二极管亮,其它情况两个发光二极管都是灭的。
当测试不到温度时显示‘ER-1’。
实训中所要用到的元件如表所示。
元件名称搜索关键词元件序号数值备注电阻Resistor R1 10k电阻Resistor R1-12 0.5K电解电容器MINELECT1U63V C1 4.7μ陶瓷电容器CERAMIC22P C2、C3 22p晶振CRYSTAL X1 12MHz单片机AT89C2051 U14位八段数码管7seg-mpx4-cc VFD1温度传感器DS18B20 DS1发光二极管LED-RED D1发光二极管LED-GREEN发光二极管LED-YELLOW五、DS18B20简介DS18B20是DALLAS半导体公司最新单线式数字温度传感器,具有测温系统简单、测温精度高、连接方便、占用口线少、系统的抗干扰能力强等优点,适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。
R11.0kΩR21.0kΩR32kΩKey=A30%R42kΩKey=A70%R5510ΩR6510ΩR85kΩKey=A 32%C10.1µF V112 VR95.1kΩR103.3kΩR11220kΩR12100kΩC34.7µFU1OPAMP_5T_VIRTUALU2OPAMP_5T_VIRTUALU3OPAMP_5T_VIRTUALLED1LED2R75kΩKey=A82%C20.1µFXLV1Input探针1V: I:探针2V: I:1.电路设计及原理分析1.1设计任务通过Multisim 软件仿真精密双限温度报警仪设计,在老师点拨我们自学的基础上了解了运放的作用,用了比较器,震荡电路等知识,根据找到的电路图进行仿真,调试电路,明白了温度报警的意义。
1.2技术指标a.当温度在设定范围内时报警电路不工作;b.当温度低于下限值或高于上限值时,声光报警;c.上下限低于报警led 用不同颜色;d.上下限可调;e.控温精度度 1℃f.监测范围 0.5℃1.3电路原理图图表 1 电路原理图1.4基本原理本课设选用热敏电阻作为温度感应元件。
热敏电阻的基本特性是温度特性。
由于热敏电阻是由半导体材料制成的,其中的载流子数目是随温度的升高按指数规律迅速增加的。
载流子数目越多,导电能力越强,其电阻率也就越小,因此热敏电阻的电阻值随着温度的升高将按指数规律迅速减小。
这和金属中自由电子的导电机制恰好相反,金属中的电阻值是随着温度的上升而缓慢增大的。
热敏电阻有正温度系数,临界温度系数与负温度系数之分,本实验所用的为负温度系数的热敏电阻,在较小的温度范围内,其电阻-温度特性曲线是一条指数曲线,可表示为RT=αeTβ式中,RT 为温度为T 时的电阻值,α与β为与半导体性能有关的常数,T 为热敏电阻的热力学温度。
本课设用的比较器器件是LM324,这是一个带有四个运算放大器的芯片,其管脚如图所示。
模拟温度报警器课程设计一、课程目标知识目标:1. 学生能理解温度报警器的基本原理和模拟电路的组成。
2. 学生能掌握温度传感器的工作原理及其在报警器中的应用。
3. 学生能了解数字温度计的读数原理及其与模拟信号的转换方法。
技能目标:1. 学生能够运用所学知识,设计并搭建一个简单的模拟温度报警器电路。
2. 学生能够通过实验,熟练使用多用电表进行电路测试,并准确读取温度计数据。
3. 学生能够通过小组合作,进行电路调试和故障排查,提高问题解决能力。
情感态度价值观目标:1. 学生能够通过课程学习,培养对物理学科的兴趣,增强探究和实践的科学精神。
2. 学生在小组合作中,培养团队协作意识,学会相互尊重和倾听他人意见。
3. 学生能够认识到科技发明对生活的意义,培养创新意识和社会责任感。
课程性质:本课程为物理学科实验课,结合理论知识与动手实践,提高学生的综合运用能力。
学生特点:学生处于八年级,对物理现象有一定的好奇心,具备基本的电路知识和动手能力。
教学要求:通过本课程,教师应引导学生将理论知识与实际应用相结合,注重培养学生的动手实践能力和创新思维。
在教学过程中,关注学生的个体差异,鼓励学生积极参与,充分调动学生的学习积极性。
二、教学内容本课程教学内容主要包括以下三个方面:1. 理论知识:- 介绍温度传感器的基本原理,如热敏电阻的工作特性。
- 讲解模拟电路的组成,包括运算放大器、比较器等。
- 分析数字温度计的读数原理及与模拟信号的转换方法。
参考教材章节:第二章第三节“传感器及其应用”。
2. 实践操作:- 设计并搭建模拟温度报警器电路,包括温度传感器、运算放大器、比较器、指示灯等。
- 使用多用电表进行电路测试,学习测量温度传感器阻值、电压等参数。
- 小组合作进行电路调试和故障排查,确保温度报警器正常工作。
参考教材章节:第四章第二节“模拟电路的设计与搭建”。
3. 教学进度安排:- 第一课时:理论知识学习,介绍温度传感器和模拟电路原理。
模电课程设计之温度报警器引言:温度报警器是一种用于检测和报警高温或低温的装置。
它在工业领域、实验室等环境中被广泛应用,用于保护设备和实验样品,并确保温度在安全范围内。
本设计将使用模拟电路设计一个简单的温度报警器。
设计目标:本设计的目标是通过一个模拟电路实现一个简单的温度报警器,能够检测环境温度,并在温度超过预设阈值时产生报警信号。
设计原理:本设计使用一个温度传感器LM35来感知环境温度,并将温度值转换成电压值。
LM35是一款精确的温度传感器,它的输出电压与摄氏温度成线性关系,每摄氏度变化10mV。
设计步骤:1.选择合适的操作电源:根据LM35的工作电压要求,选择一个合适的操作电源,例如12V。
2.选取电压比较器:本设计使用一款电压比较器来比较温度信号和预设阈值,选择一款合适的电压比较器。
3. 连接电路:根据原理图连接电路。
将 LM35 的 Vcc 连接到操作电源的正极,GND 连接到操作电源的负极。
将输出信号接入电压比较器的正输入端。
4.设置阈值:通过调节电压比较器的阈值电压,设置温度报警器的触发温度。
根据实际需求设置触发温度。
5.校准和测试:通过提供不同的温度环境并检查输出信号来校准和测试电路。
可以使用热风枪或温度控制箱来模拟不同的温度。
6.连接报警装置:根据需要,将比较器的输出信号连接到报警装置,例如蜂鸣器或提示灯,以产生报警信号。
7.优化和调整:根据实际需求优化和调整电路,以提高性能和可靠性。
设计实例:下面是一个简单的温度报警器的模拟电路设计实例:LM35的供电电压:5V电压比较器:LM358预设阈值:25℃根据上述设计原理和步骤,可以进行以下电路设计和连接:在实际电路上,可以使用面包板进行连接。
根据实际元件的引脚定义,将元件逐一连接和焊接。
最后,将蜂鸣器或提示灯连接到比较器的输出信号上。
测试电路的性能和功能。
结论:通过以上的模拟电路设计步骤和实例,我们可以设计一个简单的温度报警器。
该报警器能够检测环境温度,并在温度超过预设阈值时产生报警信号。
模拟电子课程设计题目名称:温度报警器姓名:学号:班级:温度报警器1.设计题目。
2,设计任务与要求.(1)用压电陶瓷蜂鸣器作为电声元件;(2)当温度在10℃至30℃范围内(允许误差±1℃)时报警器不发声响,当温度超过这个范围时,报警器发出声响,并根据不同音调区分温度的高低,即:①当温度高与30℃时,报警器发出两种频率交换的“嘀—嘟”声响; ②当温度低于10℃时,报警器发出单频率声响;③温度传感器输出电压可由直流信号源模拟,以0℃为0mv ,温度每上升1℃,递增2mv ;2)可用5~15V 直流稳压电源供电。
3)在保证性能的前提下,昼减少功耗,降低成本。
3.总体方案根据任务要求,所设计电路分为四个模块:多输出电源、放大器、窗口比较器和蜂鸣器。
其中放大器的设计,既可以采用三极管放大,也可以采用集成运放放大,考虑到电路检测的方便,采用集成运放设计放大电路。
对于比较器的选择还是比较定向的,我们就选择了窗口比较器,可以模拟实现高温低温。
蜂鸣器有单双频之分,亦有两种设计方法:三级管构建单双频电路或555构建单双频电路,为使电路简单易检测,决定采用555构建单双频电路。
4.详细设计所需仪器设备温度模拟信号 直流电源放大比较电路 音频报警器多输出 电源放大器 窗口 比较器 蜂鸣器1、模拟电子试验箱 一台2、数字万用表 一块3、双踪示波器 一台4、直流稳压电源 一台5、剪刀、镊子 各一把6、面包板 两块5.整体电路1、多输出电源电路直流稳压5V-15V,电源的设计 (1)集成稳压器集成稳压器的输出电压Uo 应与稳压电源要求的输出电压的大小及范围相通。
稳压器的最大允许电流Icm<Iomax ,稳压器的输入电压Ui 的范围为 Uomax+(Ui-Uo )min ≤Ui ≤Uomin+(Ui-Uo )max 式中,Uomax —最大输出电压; Uomin —最小输出电压;(Ui-Uo )min —稳压器的最小输入输出压差 (Ui-Uo )max —稳压器的最大输入输出压差。
本系统的设计思路1.2.1 本系统的设计思想和工作原理设计思想:随着时代的发展人们的生活水平越来越高,对生活的要求也越来越高,单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片机芯片上集成多种功能部件和大容量存储器的方法。
因而,整个应用系统不需要扩展,而体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。
同时随着现代信息技术的飞速发展,温度测量采集以及报警系统在工业、农业、军事及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集报警系统的设计与研究有十分重要的意义。
设计原理:本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LCD进行显示。
本系统可以实现多路温度信号采集与显示,可以使用程序来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和LED进行报警。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ =P2^0; //一号ds18b20与单片机连接口sbit DQ1=P2^1; //二号ds18b20与单片机连接口sbit D1=P2^3;sbit D2=P2^4;sbit RS=P2^5; //LCD控制脚sbit RW=P2^6;sbit EN=P2^7;sbit key0=P3^3;sbit key1=P3^4; //按键定义sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;sbit bell=P1^7;uchar code str1[]={"wendu1:"};uchar code str2[]={"wendu2:"};uchar code str3[]={"set high "};uchar code str4[]={"set low "};uchar data disdata [5];uchar data disdata1[5];uchar data disdata2[4];uchar data disdata3[4];unsigned char temphigh=40,templow=5; //温度设定初始值uint flag0,flag1,flag2,flag3,flag4; //按键标志uint high,low; //高温和低温设置值uint tvalue,tvalue1; //温度值uchar tflag,tflag1; //温度正负标志/*******************lcd1602程序**********************/void delay1ms(uint ms) //延时1毫秒{unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<110;j++);}void wr_com(uchar com) //LCD写指令{RS=0;RW=0;P0=com;delay1ms(5);EN=1;delay1ms(5);EN=0;}void wr_dat(uchar dat) //LCD写数据{RS=1;RW=0;P0=dat;delay1ms(5);EN=1;delay1ms(5);EN=0;}void lcd_init() //LCD初始化设置{wr_com(0x38); //设置16×2显示,5×7点阵,8位数据接口wr_com(0x0c); //设置开显示,不显示关标wr_com(0x06); //写一个字符后地址指针加1wr_com(0x01); //显示清0,数据指针清0}void display(uchar *p) //显示{while(*p!='\0'){wr_dat(*p);p++;delay1ms(5);}}init_play() //1号初始化显示{lcd_init();wr_com(0x80);display(str1);}/******************二号初始化***********************/ init_play1() //2号初始化显示{wr_com(0x80+0x40);display(str2);}/******************温度设定初始化******************/ /*init_wendusheding(){ if(flag1==1){lcd_init();wr_com(0x80);display(str3);}}*//****************1号DS1820程序*********************/void delay_18B20(uint i) //延时1微秒{while(i--);}void ds1820rst() //ds1820复位{uchar x=0;DQ = 1; //DQ复位delay_18B20(4); //延时DQ = 0; //DQ拉低delay_18B20(100); //精确延时大于480usDQ = 1; //拉高delay_18B20(40);}uchar ds1820rd() //读数据{uchar i=0;uchar dat = 0;for (i=8;i>0;i--){DQ = 0; //给脉冲信号dat>>=1;DQ = 1; //给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);}return(dat);}void ds1820wr(uchar wdata) //写数据{uchar i=0;for (i=8; i>0; i--){DQ = 0;DQ = wdata&0x01; // 数据放在数据线上被读走 delay_18B20(10);DQ = 1;wdata>>=1;}}read_temp() //1号读取温度值并转换{uchar a,b;ds1820rst();ds1820wr(0xcc); //跳过读序列号ds1820wr(0x44); //启动温度转换ds1820rst();ds1820wr(0xcc); //跳过读序列号ds1820wr(0xbe); //读取温度a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x07ff)tflag=0;else{tvalue=~tvalue+1;tflag=1;}tvalue=tvalue*(0.625); //温度值扩大10倍,精确到1位小数return(tvalue);}/**********************1号温度值显示**********************/void ds1820disp(){uchar flagdat;disdata[0]=tvalue/1000+0x30; //百位数disdata[1]=tvalue%1000/100+0x30; //十位数disdata[2]=tvalue%100/10+0x30; //个位数disdata[3]=tvalue%10+0x30; //小数位if(tflag==0)flagdat=0x20; //正温度不显示符号elseflagdat=0x2d; //负温度显示负号:- if(disdata[0]==0x30){disdata[0]=0x20; //如果百位为0,不显示if(disdata[1]==0x30)disdata[1]=0x20; //如果百位为0,十位为0也不显示}wr_com(0x80+0x0a);wr_dat(flagdat); //显示符号位wr_com(0x80+0x0b);wr_dat(disdata[0]); //显示百位wr_com(0x80+0x0c);wr_dat(disdata[1]); //显示十位wr_com(0x80+0x0d);wr_dat(disdata[2]); //显示个位wr_com(0x80+0x0e);wr_dat(0x2e); //显示小数点wr_com(0x80+0x0f);wr_dat(disdata[3]); //显示小数位}/*******************二号DS18B20程序**************************/void delay_18B201(unsigned int i) //延时1微秒{while(i--);}void ds1820rst1() //ds1820复位{uchar x=0;DQ1 = 1; //DQ复位delay_18B20(4); //延时DQ1 = 0; //DQ拉低delay_18B201(100); //精确延时大于480us DQ1 = 1; //拉高delay_18B201(40);}uchar ds1820rd1() //读数据{uchar i=0;uchar dat1 = 0;for (i=8;i>0;i--){DQ1 = 0; //给脉冲信号dat1>>=1;DQ1 = 1; //给脉冲信号if(DQ1)dat1|=0x80;delay_18B201(10);}return(dat1);}void ds1820wr1(uchar wdata1) //写数据{uchar i=0;for (i=8; i>0; i--){DQ1 = 0;DQ1 = wdata1&0x01;delay_18B201(10);DQ1 = 1;wdata1>>=1;}}read_temp1() //2号读取温度值并转换{uchar a1,b1;ds1820rst1();ds1820wr1(0xcc); //跳过读序列号ds1820wr1(0x44); //启动温度转换ds1820rst1();ds1820wr1(0xcc); //跳过读序列号ds1820wr1(0xbe); //读取温度a1=ds1820rd1();b1=ds1820rd1();tvalue1=b1;tvalue1<<=8;tvalue1=tvalue1|a1;if(tvalue1<0x07ff)tflag1=0;else{tvalue1=~tvalue1+1;tflag1=1;}tvalue1=tvalue1*(0.625); //温度值扩大10倍,精确到1位小数return(tvalue1);}/********************************************************** *********/void ds1820disp1() //2号温度值显示{uchar flagdat1;disdata1[0]=tvalue1/1000+0x30; //百位数disdata1[1]=tvalue1%1000/100+0x30; //十位数disdata1[2]=tvalue1%100/10+0x30; //个位数disdata1[3]=tvalue1%10+0x30; //小数位if(tflag1==0)flagdat1=0x20; //正温度不显示符号elseflagdat1=0x2d; //负温度显示负号:-if(disdata1[0]==0x30){disdata1[0]=0x20; //如果百位为0,不显示if(disdata1[1]==0x30)disdata1[1]=0x20; //如果百位为0,十位为0也不显示}wr_com(0x80+0x4a);wr_dat(flagdat1); //显示符号位wr_com(0x80+0x4b);wr_dat(disdata1[0]); //显示百位wr_com(0x80+0x4c);wr_dat(disdata1[1]); //显示十位wr_com(0x80+0x4d);wr_dat(disdata1[2]); //显示个位wr_com(0x80+0x4e);wr_dat(0x2e); //显示小数点wr_com(0x80+0x4f);wr_dat(disdata1[3]); //显示小数位}void temphighdisplay(int i) //显示设定的最高温度{disdata2[0]=i/100+0x30; //百位disdata2[1]=i%100/10+0x30; // 十位disdata2[2]=i%10+0x30; // 个位if(disdata2[0]==0x30){disdata2[0]=0x20; //如果百位为0,不显示if(disdata2[1]==0x30)disdata2[1]=0x20; //如果百位为0,十位为0也不显示}wr_com(0x80+0x45);wr_dat(disdata2[0]); //显示百位wr_com(0x80+0x46);wr_dat(disdata2[1]); //显示十位wr_com(0x80+0x47);wr_dat(disdata2[2]); //显示个位}void templowdisplay(int j) //显示设定的最低温度{disdata3[0]=j/100+0x30; //百位disdata3[1]=j%100/10+0x30; // 十位disdata3[2]=j%10+0x30; // 个位if(disdata3[0]==0x30){disdata3[0]=0x20; //如果百位为0,不显示if(disdata3[1]==0x30)disdata3[1]=0x20; //如果百位为0,十位为0也不显示}wr_com(0x80+0x4d);wr_dat(disdata3[0]); //显示百位wr_com(0x80+0x4e);wr_dat(disdata3[1]); //显示十位wr_com(0x80+0x4f);wr_dat(disdata3[2]); //显示个位}/*******************按键处理程序*****************************/void keyscan(){ if(key0==0) //按键1{delay1ms(2);if(key0==0){ lcd_init();flag0=1;while(!key0);}}if(key1==0) //按键1{delay1ms(2);if(key1==0){ lcd_init();flag1=1;while(!key1);}}if(key2==0) //按键2 {delay1ms(2);if(key2==0){flag2=1;while(!key2);}}if(key3==0) //按键3 {delay1ms(2);if(key3==0){flag3=1;while(!key3);}}if(key4==0) //按键4{delay1ms(2);if(key4==0){ lcd_init();flag4=1;flag1=0;while(!key4);}}}void displaymain(){read_temp(); //读取温度ds1820disp(); //显示read_temp1(); //读取温度ds1820disp1(); //显示}void wendubaojing(void) //温度报警 {if((tvalue/10)>=temphigh||(tvalue/10)<=templow){ D1=0;bell=1;delay1ms(5);bell=0;delay1ms(100);}else{D1=1;bell=0;}if((tvalue1/10)>=temphigh||(tvalue1/10)<=templow){ D2=0;bell=1;delay1ms(1000);bell=0;delay1ms(1000);}else{D2=1;bell=0;}}void jia1() //加一{if(flag2==1&&flag0==1) {temphigh++;flag2=0;}if(flag2==1&&flag1==1){templow++;flag2=0;}}void jian1() //减1{ if(flag3==1&&flag0==1){ temphigh--;flag3=0; }if(flag3==1&&flag1==1){ templow--;flag3=0; }}void wendusheding(){if(flag0==1||flag1==1) //设定温度报警的上下限 {if(flag0==1){ wr_com(0x80);display(str3);jia1();jian1();temphighdisplay(temphigh);}if(flag1==1){ wr_com(0x80);display(str4);jia1();jian1();templowdisplay(templow);}}}/********************主程序***********************************/void main(){lcd_init();init_play(); //1号初始化显示init_play1(); //2号初始化显示while(1){if(flag0==0&&flag1==0)displaymain(); //显示两路温度keyscan();wendubaojing(); //温度报警wendusheding(); //设定温度上下限if(flag4==1) //按键4 退出 { flag0=0;flag1=0;init_play(); //1号初始化显示init_play1(); //2号初始化显示displaymain(); //显示两路温度flag4=0;}}}。
模拟电路基础课程设计报告温度报警电路的设计与仿真姓名:FD学号:-----背景与简介:本项目的目标是设计一个温度监测与报警电路。
人们的生活与坏境温度息息相关,物理、化学、生物等科学都离不开温度,太阳能热水器、电力、石油、农业大棚经常需要对环境温度进行检测,并根据实际的要求对温度进行控制。
例如,在醋和酒等的酿造生产中必须对发酵过程的温度进行检测与控制;许多太阳能热水器中,需要通过温度检测来控制其水泵运作;在农业大棚中,通过温度检测来判断是否合适农作物种植与生长;许多电子设备都有额定温度单位, 合适的温度会使电子产品造成故障等等。
已知条件:温度为25C时,所有电阻的阻值为400Q温度每上升1C, Rt的阻值下降0.01 Q2.数字电压表:2V满量程,3位半3.发光二极管:正常发光时正向电流为2~10mA设计要求:1.温度为0C时,数字电压表的指示为0.000V2.温度为100C时,数字电压表的指示为1.000V3.温度低于30C或高于40C时,点亮发光二极管报警4 .温度监测与报警误差<士2C分析:1.由已知条件知:Rt与温度T的关系为:Rt=400.25Q -0.01T ;没有由于Multisim12.0软件里面没有热敏电阻,根据上面的关系式,把Rt 替换成一只399.25 Q与一个1 Q的电位器串联,从而模拟由于温度改变引起的Rt的阻值变化。
2.根据设计要求1和2:温度为0C时,数字电压表的指示为0.000V,即Rt=400.25 Q时, 电压表示数为0.000V;温度为100C时,数字电压表的指示为1.000V, 即Rt=399.25 Q时,电压表示数为1.000V;3.根据设计要求3:温度低于30C或高于40C时,点亮发光二极管报警,即电压小于0.3V或大于0.4V时,输出逻辑高电平,使发光二极管应导通;则此时显然因选用的比较器为窗口比较器。
4.根据设计要求4:温度监测与报警误差<士2C,则所选用运放应具有低失调。
系统方案设计与仿真:一:系统框图:单元电路1.传感器分析得到:热敏电阻的阻值:用一只399.25 Q 与一个1 Q 的电位器串联来代替,从而模拟由于温度 改变引起的Rt 的阻值变化。
传感器部分2.信号放大电路由于采样信号为双端输入,共模量大,差模量小的信号,而 系统需要的信号为差模信号,所以应采取CMR 高的差分放大电路,并且应具有低失调,零点漂移,放大倍数稳定精确的特点。
经查阅多种运放芯片手册以及做电子设计竞赛中用过的常用运 放,先选用了 OP07,但仿真发现误差最大时超过 1.5mV ,虽然 也能满足项目+-2 C 的指标要求(即要求到+-20mV),但为了追求更高 的精度和指标。
最终选择了Rt=400.25 Q-0.01T ;399-250 W0,1pF5VR3%INA163 , INA163是一种低噪声,低失真的仪表放大器。
经仿真发现误差最大时也不超过0.2mV,下为INA163数据手册的部分资料特征_q 世噪声:在InY/VHi 7kHzq ftTHD-ffl: 0-DD2%在IkH巧G 二100q 宽带宽:在800kHz G = 100q宽电兼范国:专•刊到H8Vq HIGH CMR: > 100dBq增益谡蛊外部电阻q S0-14*面站装包装应用q专业丢克风MSBk大器q动圈式换範盍放大器q 差q桥式传感器旅大器放大器元件参数分析与计算:要使0C时为0V, 100C时为1.000V;而在25C时差模输入信号为0,分析知放大部分的输出与输入差模信号不是直接的K倍关系,而应叠加一个直流偏移。
设放大部分放大倍数为a,放大直流偏移b mV ;建立方程组0C时差模信号为:-781uV; 贝心-781a/1000mV+b=0; (1)100 C时差模信号为:2.346mV;贝心方案一:lcl7107,ICL7107是一块应用非常广泛的集成电路。
它包 含31/2位数字A/D 转换器,可直接驱动LED 数码管,从而显示电 压值,且精度能达到设计要求。
方案二:用数字万用表直接显示,显然也能达到设计指标。
由于multisim 里面没有icl7107系列芯片,icl7107是功能复杂的 专用芯片,因此没有可以替换的单个芯片,只得选取方案二。
2.346amV+b=1000mV; (2)联立(1)( 2)式解得:a=319.795倍;b=249.76mV;根据 INA163 的芯片手册:增益:6000RG式中Rg 为3和12直接的外接反馈电阻;(图3)4. 比较器电路采用两个LM311组成窗口比较器,输出端通过 10K 的上拉 电阻接到Vcc 。
通过外部电压设定门限值,使当输入电压ui 在0.3到0.4V 之间时输出逻辑低电平(mV 级别),ui 低于0.3或 高于0.4V 时,输出高电平(约为 4.5V ,二2~10mA 先设定LED 的正常工作电流为5mA.由于比较器的输出的驱动能力较弱,采用一只常用NPN 型管2N3904对发光二极管进行驱动。
当 Uo=0时,三极管截止,LED 不亮; 当Uo输出高电平时,三极管工作,LED 亮;从而实现报警。
极管有一点压降)。
经仿真,发现门限值和输出效果十分 准确。
5.报警电路采用发光LED 报 警,项目要求正常发 光时正向电流为600 00Q -WV —.V - - - ■LM311D U2 .,U3 =S1 LM311D1144148 R10::::■占^I U U Uvcct5V::.D2::1 R730D1M311DiL .B/STEW^-0kQ R9R13500Q5V..r D2..1N4148r-^rLED1Q1 ]■—2N39044报警部分6•温度报警器全局电路图k'IH+- ■■■■■■B1F初工..........■■h」«思仿真结果:即::249.76hi VR7ao:pooDRB-ego.pd-R1--goop温度报警器全局电路图YT+- E ■'&TBini::::-VA—tGkp R^Oii::-F-1N414BR1U '''vcd2NJA04 ............@o—w\5000由于对整体进行仿真,已经相当于对每个单元进行仿真了, 就没有把每个单元单独隔离出来仿真了 (设计每个单元时已经验证过其正确性)。
对电压表显示和发光报警部分的仿真:(1) 温度为0C 时,调节滑动变阻器 使Rt=400.25 Q结果为:数字万用表示数697.593uV, led 亮(温度低于30C,报警);(2) 温度为100C 时,调节滑动变阻器 使Rt=399.25 Q结果为:数字万用表示数1.001V, led 亮(温度高于40C ,报警);(3) 温度为10C 时,调节滑动变阻器 使Rt=400.15 Q盯 400DR2400V? •丄.•—7.fi VINA163UAVIHl---- 7PZ ■ •!:!WSSh.--V01. R ::lffl Br)5V (2)R T 400DM 4000 -_Lory? - -J —-..........V J I-^7^¥|NA1K4JA;二丨:XMM1S0.00DL<^<—真Q.lulF24&.7EH1V...U.1 T :—REF ----涵_虫■ •■VCCLM311D■ ■ ■fil會iVS-1N4USR1Q :D1637 593 uV1M414SLED1WVR.12V4W+- BA.L BirSTfe■-■SK L M3110^'Ol- -P51-VI if-■ V - ULF--述.lfflBn.'I'H1.001 V昭L-WV — IQkO 弱LM311D-wv500Q2N-3904*结果为:数字万用表示数900.758mV, led 亮(温度低于30C,报警);(4)温度为25C 时,调节滑动变阻器 使Rt=400Q750.607mV, led 亮(温度低于30C,报警);(5)温度为31C 时,调节滑动变阻器 使Rt=399.94 Q结果为:数字万用表示数350.48mV, led 不亮(温度在30到40C 之间,不报警);.a …_w _1N414& LM311D;00pVINA163UA:I . .U1....jd-.二;-U-F ------ •-「油 _■ill:P :: RS ■ ■ ■ 10:::Key-A 75% -03 :::750.607 mV结果为:数字万用表示数 R2400D l-350.48 mVR1-I.5ZDR ....... I I ........§ ••.LJ1..V :3I-o〜 —300.758 mVJ-7 6V(NftU3UA10Kvyg 50%^SSS-XMMi VCC6<00 •R2frsoH14QQLM511Do■ ■R1L5MDT«TW414S■.•1N +•200a R^- ■■ s ■—701 ...uiu-::• V - - VGI叵I..... vr ■ ■一心249…7femV万用S-XMM1.M311DDi114414& RW ::vcc j■S;_LM3-11DoV?—7-5 VINA1S3UA-AAA, ---------iohO HD:;R13;'ll ——Wv soon管!■用申 .......................... RET....................... WEXR14—249H 7®mVXMM1 —£<cc.V+. .Vjp .v- - V«l - «C9-,r- LM311D'IF* e/STF.EM1N4148LEP1(6) 温度为35 C 时,调节滑动变阻器 使Rt=399.9 Qcc ■VR2-&00DLJDi..-►!-—_ ;i^KiLM311D,3" LM311DRl oko啦L<5—5V结果为:数子万用表示数300.493mV, led 不亮(温度在30到40 C之间,不报警); (7)温度为37 C 时,调节滑动变阻器 使Rt=399.88 Q蔭-s-p...... ■ T 卜249,7*mV万用S-XMMi 岳vcc -r::US :□ 1►<1144148 RiQ:::VGA'jj- LM311D叭」-5£口.vs**B1L J/£IE W RT SOODNIL §1—AAA ----------■ RT3:dll —v^v结果为:数字万用表示数390.475mV, led 之间,不报警);(8) 温度为41 C 时,调节滑动变阻器 使不亮(温度在30到40 CRt=399.84 QR1§T4 一35.师.PL-5-.VEJH ............ ............... R IF TOZ. ・・・“・・”$£JfVIH-.W 、 Vai U G LI \ U2-- zr ~300.493 mV■ ■ ■ VIT |I 卜」249.7 6 mi V 万見表・XMM102::F5M51N4148― ------------- lOkp :^ ::::二;迟译:「-|||—904 …7.S VINAU3UA.e<*. M. 3RG .REF6亠®蛊 R-■ ■ ■邓M 1V5* -BAfc 1/5T173-*11D390 475 mVLED1<00 GQ'PDO D结果为:数字万用表示数960.834mV, led>>a:. r. :r ::::::———lOkQ R&:::::;卫盼:|||—wv亮(温度咼于 VC(t .40C,报警);结果为:数字万用表示数420.474mV, led 亮(温度咼于40C,报警);(9)温度为80C 时,调节滑动变阻器 使Rt=399.45 Q结果为:数字万用表示数840.691mV, led 亮(温度咼于40C,报警);(10)温度为90C 时,调节滑动变阻器 使Rt=399.35 Qcc KT 莒口cr w o«v.v ? ■ -J- ■ .........—^7,5 VINA1B3UA::T.8Jt*. .VA.肛■.Ftr :SEHYg ,-7I&-- •420.474 mVij~i i * 11 耳i-W\-10kft R*■ ■ ■ ■Rn- ::'l|—-wv- soonifV2' ■ _■^3—7.S VINA163UAuTl-J 」IL<<<—VO :.SEKVTN- ..............V- - VOL- W31-R6=^!亍VI249 J 6 mV 万用^XMMlJ R14H3P呂p^C«TLM511D f vsA>>Dl :::~^N\ ---------i«ta™ ::::;;卫空III —WV-::创0£2R12uig:o.■7- - y$ji-爭GL 2«76mVR8万用兼:>U2 ::::■VG* BU.@pR101N4148rn ■■a;…LM31HD1N414BJT 営口cc 旷V L«<S40.691 mVLIZ ....W41481N41482N3«04■ ■ ■ VI T 4J«.76mVXMM1•比 L"LM311D=;_ LM311D旨-H-rin日舸mVR1C'.ui '''1N4148分析:仿真结果均达到设计要求。