基于Proteus的电子体温计的设计与仿真
- 格式:doc
- 大小:907.00 KB
- 文档页数:18
信息职业技术学院毕业设计报告(论文)系别:班级:学生姓名:学生学号:设计(论文)题目:基于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 课题背景随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、食品、石油等各个行业。
电路综合Proteus ISIS 原理图设计-----单片机温度测量显示电路一、结果截图1.温度低于55°时,红绿灯都不亮2.温度高于55°低于85°时,绿灯亮,红灯不亮3.温度高于85°时,红灯亮,绿灯不亮二、PCB电路板#include <reg51.h>#define uint unsigned int#define uchar unsigned charuchar i;sbit lcdrs=P2^7; //数据命令选择控制sbit lcdrw=P2^6; //读/写选择控制sbit lcden=P2^5; //使能信号sbit DS=P1^0; //定义DS18B20端口sbit red=P2^3; //定义红色led,温度大于85度时发光sbit green=P2^0; //定义绿色led,温度大于55度时发光uchar code t0[]="The temperature ";uchar code t1[]=" is C";uchar code wendu[]="0123456789"; //利用一个温度表解决温度显示乱码void delay(uchar z){uchar x,y;for(x=1000;x>1;x--)for(y=z;y>1;y--);}void write_com(uchar com) //LCD写位置{lcdrs=0;P3=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date) //LCD写数据{lcdrs=1;P3=date;delay(5);lcden=1;delay(5);lcden=0;}void init_lcd() //初始化LCD{lcden=0;lcdrw=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);for(i=0;i<16;i++){write_date(t0[i]);delay(0);}write_com(0x80+0x40);for(i=0;i<13;i++){write_date(t1[i]);delay(0);}}/*************DS18B20温度读取模块*************/void tmpDelay(int num)//延时函数{while(num--) ;}void Init_DS18B20()//初始化ds1820{unsigned char x=0;DS = 1; //DS复位tmpDelay(8); //稍做延时DS = 0; //单片机将DS拉低tmpDelay(80); //精确延时大于480usDS = 1; //拉高总线tmpDelay(14);x=DS; //稍做延时后如果x=0则初始化成功x=1则初始化失败tmpDelay(20);}unsigned char ReadOneChar()//读一个字节{unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DS = 0; // 给脉冲信号dat>>=1;DS = 1; // 给脉冲信号if(DS)dat|=0x80;tmpDelay(4);}return(dat);}void WriteOneChar(unsigned char dat)//写一个字节{unsigned char i=0;for (i=8; i>0; i--){DS = 0;DS = dat&0x01;tmpDelay(5);dat>>=1;}}unsigned int Readtemp()//读取温度{unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //连续读两个字节数据//读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a; //两字节合成一个整型变量。
基于PROTEUS的单片机测温系统的仿真设计I.概述在现代工业生产中,温度的准确测量对于保证产品质量、确保生产安全至关重要。
因此,设计一套可靠的温度测量系统对于工程师来说是必要的。
本文将介绍一种基于PROTEUS仿真平台的单片机测温系统的设计方法,利用该系统可以实现对温度的准确测量和监控。
II.系统设计1.系统硬件设计系统硬件设计包括传感器、单片机和显示器等部件的选型和连接。
温度传感器选用DS18B20数字温度传感器,该传感器具有高精度和抗干扰能力。
单片机选用常用的51系列单片机,如STC89C52等。
显示器可以使用数码管或LCD液晶显示器。
2.系统软件设计系统软件设计包括单片机程序的编写和功能实现。
首先,需要编写初始化程序,初始化系统设置和连接传感器。
其次,编写温度测量程序,通过单片机与传感器进行通信,并获取温度值。
最后,编写温度显示程序,将测得的温度值显示在数码管或LCD显示器上。
III.仿真操作1.运行PROTEUS软件首先,打开PROTEUS软件,并创建一个新的工程文件。
2.添加单片机和传感器在PROTEUS的元件库中找到所需的单片机和传感器元件,并将其拖放到画布中。
然后,通过连线工具将它们连接起来。
3.编写单片机程序使用类似Keil C等开发工具编写单片机程序。
将编写好的程序导入到PROTEUS中的单片机元件中,然后设置程序的执行方式。
4.设置仿真参数设置仿真参数,如仿真时间、时钟频率等。
为了模拟真实环境下的测温系统,可以设置仿真时间较长,以确保系统的稳定性和可靠性。
5.运行仿真点击运行按钮,开始执行仿真。
在仿真过程中,可以观察温度传感器的输出、单片机的工作状态以及显示器的显示情况。
根据需要可以调整相关参数,进行优化和改进。
IV.仿真结果分析通过观察仿真结果,可以评估设计的温度测量系统的性能和稳定性。
根据实际需求,可以对系统参数进行调整和优化。
同时,可以根据仿真结果进一步完善系统设计和功能实现。
基于Proteus的液晶温度显示器仿真设计 (1)随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。
传统的温度检测和显示是基于模拟传感器和LED 显示技术的。
传感器输出的模拟信号易受干扰,在一些温度范围内线性不好,需要进行冷端补偿或引线补偿。
随着科学技术的发展,由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,数字温度传感器具有价格低、精度高,适于微型封装、能工作在宽温度范围内等优点,在很多应用中,数字温度传感器正开始替代传统的模拟温度传感器。
另外,液晶显示器体积小,便于携带、功耗低、抗干扰能力强、信息丰富等优点,已被广泛应用在仪器仪表和控制系统中。
现代电子设计手段的发展,已由传统的手工设计阶段发展到了EDA阶段,再到虚拟设计阶段,Proteus软件就是在这大背景下应运而生的。
Proteus软件是英国Labcenterelectronics公司研发的EDA工具软件,是目前最流行的嵌入式系统设计与仿真平台,它能完全脱离硬件平台进行嵌入式虚拟开发,通过各虚拟仪器构建硬件电路,调试Keil、ADS等集成开发环境中生成的软件程序,达到虚拟硬件调试系统程序的目的,为后续实际软硬件系统的设计提供实践理论依据。
1 硬件电路设计液晶温度显示器的硬件主要有以下部分:温度检测部分、单片机最小系统、显示电路和键盘电路,如图1所示。
单片机采用美国ATMEL公司生产的低电压、高性能CMOS的MCS-51系列单片机AT89C52,它片内含8 K字节可重复擦写Flash闪速存储器和256字节的RAM,片内程序存储器空间能满足本系统程序存储之需要,可省去片外EPROM程序存储器,简化系统的设计,使电路结构简洁。
时钟电路中的晶振频率采用12 MHz,系统复位采用上电复位方式。
系统的硬件电路如图2所示。
温度传感器采用美国Dallas公司生产的单总线(1-wire)数字温度传感器DS18B20。
课程设计二基于proteus的简单温度测量系统设计一、课程设计要求本课程设计的基本要使学生熟悉掌握51系列单片机的编程方法,学习应用proteus软件进行单片机应用系统设计与仿真。
要求同学们设计一款简易的温度测量装置,设计要求温度测量围为0-120度,测量精度为1度。
有精力的同学可以将测温通道扩展为8通道(不限测温通道数目)。
要求设计基于单片机的简单温度测量系统电路原理图,实现温度测量系统的仿真,并最终提交仿真结果。
设计的基本要求:(1)测量围为0℃~+120℃,精度为1℃;(2)利用温度传感器测量某一点环境温度;(3)利用A/D转换将温度信号转换成电压信号;(4)在LED数码管上显示;(5)Proteus软件进行仿真。
二、设计思路(仅供参考)根据系统的设计要求,温度传感器TC1输出信号经信号差动放大到0—5V,放大器的输出送ADC80C51进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。
图1 系统设计框图三、相关设计知识(一)硬件设计部分1、AT89C51单片机选择与特点由于此设计需要编写程序,需要将程序载入单片机中,因此单片机必须具有足够多的存储空间,其具有8K字节的Flash完全满足要求。
16位的定时计数器使得读取数据变得更加简单,同时其结构有利于晶振电路和复位电路的连接。
最重要的是,能够在掉电状态下保存RAM的数据。
因此,对于本设计来说,选择AT89C51是最有利的。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
本科毕业设计(论文)题目:基于PROTEUS的单片机测温系统的仿真设计学院:机械电子工程学院专业:测控技术与仪器学号:学生姓名:指导教师:职称:二O一二年五月十八日摘要随着人们生活水平的不断提高,单片机控制无疑是人们追求目标之一,它给人们带来了很大的方便,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作,科研,生活,提供更好的更方便的设施就需要从多数单片机技术入手,一切向着数字化控制,智能化控制方向发展,温度传感器适用范围广,数量多,居各种传感器之首。
本文从硬件和软件两方面来讲述温度测量过程,在控制过程中应用单片机AT89C52、数字温度传感器DS18B20、共阴极数码管、锁存器74HC573。
主要是通过DS18B20数字温度传感器采集温度,以单片机为核心控制部件,并通过存储器进行存储、共阴极数码管显示实时温度的一种数字温度计。
软件方面采用C语言来进行程序设计,使指令执行速度快,节省存储空间。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。
本设计主要做了如下几方面的工作:一是确定系统的总体设计方案,包括其功能设计、组成与工作原理、设计说明;二是进行硬件电路设计,包括硬件电路构成及测量原理、温度传感器的选择、单片机的选择;三是进行了调试和仿真,获得仿真结果。
经实验测试表明,该系统测量精度高、抗干扰能力强,具有一定的参考价值。
该系统设计和布线简单、结构紧凑、体积小、重量轻、性价比高、扩展方便,在大型仓库、工厂、智能化建筑等领域的温度检测中有广阔的应用前景。
关键词:温度测量;数字温度传感器DS18B20;AT89C52单片机;共阴极数码管显示。
AbstractAs people living standard rise ceaselessly, SCM control is undoubtedly one of the goals of the people to pursue, it brings convenience is not negative, including digital thermometer is one example, but people on its demand is higher and higher, to work for modern, scientific research, life, providing better more convenient facilities should be, from most of the single chip microcomputer, all to digital control system, intelligent control direction, the temperature sensor application scope. The number of sensors in the list.This article from two aspects of hardware and software to tell temperature measurement process, in the main process of single chip microcomputer control application AT89C52, digital temperature sensor DS18B20, cathode tube of digital, latches 74 HC573, mainly through digital temperature sensor DS18B20 collection temperature, with the single chip processor as the core to control components, and through the memory storage, liquid crystal display shows real-time temperature of a digital thermometer. Software using C language program to design, make the instruction execution speed, save storage space. In order to facilitate the expansion and the change, the software design using modular structure, make the program design logical relationship more concise and clear, make the hardware in the software under the control of the harmonious operation.This design is the major of the following aspects of work: one is sure the design of the whole system solutions, including the function design, composition and working principle, design descriptions; 2 it is hardware circuit design, including hardware circuit structure and measuring principle, the temperature sensor of choice, the choice of the single chip microcomputer; 3 it is the testing and simulation, get the simulation results.The test results show that the system measurement precision, strong anti-interference, concrete the certain reference value. The system design and wiring is simple, compact structure, small volume, light weight, high performance/price ratio, expansion of convenient, in the large warehouse, factory, intelligent building and other areas of temperature in detecting have broad application prospects.Keywords: temperature measurement; Digital temperature sensor DS18B20; AT89C52 single chip microcomputer; The cathode tube of digital display.目录摘要 (Ⅰ)Abstract (Ⅱ)第一章概述 (1)1.1 课题研究的背景 (1)1.2 课题研究的意义 (1)1.3 课题设计的目的 (2)1.4 课题设计的任务及要求 (2)第二章系统总体设计 (3)2.1 系统的功能设计 (3)2.2 系统的组成与工作原理 (3)2.3 系统设计说明 (4)第三章系统硬件电路的设计 (5)3.1 系统硬件电路构成及测量原理 (5)3.1.1 系统硬件电路构成 (5)3.1.2 系统工作原理 (6)3.2 单片机AT89C52 (7)3.2.1 AT89C52的主要性能参数 (7)3.2.2 功能特性概述 (7)3.2.3 引脚功能说明 (7)3.2.4 时钟振荡器 (9)3.2.5 AT89C52软件编程模式 (9)3.2.6 单片机最小系统设计 (10)3.2.7 关于单片机上拉和阻值选择的问题 (11)3.3 数字温度传感器DS18B20 (12)3.3.1 DS18B20技术性能描述 (12)3.3.2 数字温度传感器DS18B20的简单介绍 (13)3.3.3 AT89C52单片机与DS18B20的接口 (17)3.3.4 DS18B20使用中注意事项 (19)3.4 温度显示方式 (19)3.4.2 74HC573锁存器 (21)3.4.3 数码管显示 (24)3.4.4 数码管跟液晶显示的选择 (27)第四章系统的软件设计 (29)4.1 系统的总体设计思路 (29)4.2 系统的程序设计 (29)4.2.1 主程序 (29)4.2.2 读出温度子程序 (30)4.2.3 温度转化命令子程序 (30)4.2.4 计算温度子程序 (31)第五章PROTEUS软件仿真 (32)5.1 PROTEUS 仿真器与集成开发环境KEIL (32)5.1.1 PROTEUS 仿真器 (32)5.1.2 集成开发环境KEIL4 (32)5.2 绘制温度测量系统仿真电路图 (33)5.3 实现温度测量系统的仿真 (34)第六章结束语 (35)致谢 (36)参考文献 (37)附录1:程序清单 (38)附录2:设计图纸 (43)第一章概述1.1 课题研究的背景随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作,科研,生活,提供更好的更方便的设施就需要从多数单片机技术入手,一切向着数字化控制,智能化控制方向发展,温度传感器适用范围广,数量多,居各种传感器之首。
目录前言 (1)正文 (1)2.1 设计目的和意义 (1)2.1.1 设计目的 (1)2.1.2 设计意义 (1)2.2 设计方法和步骤 (1)3.1 单片机最小系统设计 (2)3.1.1 电源电路 (2)3.1.2 振荡电路与复位电路 (2)3.2 DS18B20与单片机的接口电路 (3)3.3 PROTEUS仿真电路图 (3)4.1 程序流程 (3)4.1.1 主程序流程图 (4)4.1.2 各子程序流程图 (4)4.2 汇编语言程序源代码 (8)5.1 DS18B20简单介绍 (10)5.1.1 DS18B20 的性能特点如下: (11)5.1.2 DS18B20使用中的注意事项 (11)5.1.3 DS18B20内部结构 (12)5.2 DS18B20测温原理 (14)总结 (15)参考文献 (16)前言随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
本设计选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器,通过LCD1602实现温度显示。
通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
正文2.1 设计目的和意义2.1.1 设计目的作为理工科的学生应该在学习与动手实践中提高自己的专业技能知识,通过课程设计使我进一步熟悉了单片机的内部结构和工作原理,掌握了单片机应用系统设计的基本方法和步骤;通过利用MCS-51单片机,理解单片机在自动化装置中的作用以及掌握单片机的编程调试方法;通过设计一个简单的实际应用输入控制及显示系统,掌握protues和Wave以及各种仿真软件的使用。
基于Proteus的电子体温计的设计与仿真专业:电子信息工程学号:08128001:施小飞摘要:体温计是现代人们日常家居生活的的必备品之一,而常见的体温计多为传统的水银体温计,该体温计是基于传统的热涨冷缩的性质制成的,该体温计在使用中存在着测温时间较长,读数不方便和水银外泄的不安全因数,因此十分有必要设计一款更加方便快速的电子体温计来解决这些问题。
本文将以 AT89C51 单片机为基础并结合数字温度传感器 DS18B20,以及数码管显示等,来实现电子体温计的设计。
关键词:电子体温计;AT89C51单片机;温度传感器DS18B20Proteus's microcontroller-based design and simulation ofelectronic thermometerAbstract:Thermometer is the home of modern daily life of essential goods, and more common for the traditional mercury thermometer thermometer, the thermometer is based on the traditional nature of the heating or cooling is made, and the thermometer in use there is a temperature a long time, reading is not convenient and safe mercury leakage factor, it is necessary to design a more convenient and fast electronic thermometer to solve these problems. This will be combined with AT89C51 microcontroller based digital temperature sensor DS18B20, and digital display, electronic thermometer designed to achieve.Keywords:Electronic thermometer;AT89C51 microcontroller;Temperature sensor DS18B20 1、绪论1.1 体温计的发展与现状体温测量的历史,可以追溯到l6世纪。
基于PROTEUS的温度控制电路设计与仿真学生姓名:赵殿锋指导教师:郭爱芳学号:联系方式:专业:机械电子工程基于PROTEUS 的温度控制电路设计与仿真关键词:AD590 运算放大器 电压跟随器 电压比较器 晶体管 0 引言温度控制在冶金、化工、建材、食品、机械、石油等工业中有举足轻重的作用。
对于不同场所、工艺、所需温度范围、精度等要求,则采用的测温元件、测温方法以及对温度的控制方法也将不同。
Proteus 是90年代英国Labcenter Electronics 公司开发的一款EDA 仿真工具软件,该软件可仿真数电、模电、单片机至ARM7等不同电路,仿真和调试时,能够很好地与Keil C51集成开发环境连接,仿真过程可从多个角度直接观察程序运行和电路工作的过程与结果,简化了理论上程序设计验证的过程。
由于Proteus 仿真过程中硬件投入少、设计方便且与工程实践最为接近等优点,本文采用Proteus 来设计与仿真以提高控制系统的开发效率。
1 控制系统基本原理系统中包含温度传感器,K —℃ 转换电路,控制温度设定装置、数字电压表、放大器、指示灯、继电器和电感(加热装置)等构成。
温度传感器的作用是将温度信号转换成电压或电流信号,K —℃ 转换电路将热力学温度转换成摄氏温度。
放大器起到信号放大的作用,因为传感器产生的信号很微弱。
系统中有运算放大器组成的比较器来使传感器产生的信号与设定的信号相比较,由比较器输出电平来控制执行机构工作,从而实现温度的自动控制。
2 AD590温度传感器AD590是美国ANALOG DEVICES 公司的单片集成两端感温电流源,其输出与绝对温度成比例。
在4V 至30V 电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1K A /μ.片内薄膜电阻经过激光调整,可用于校准器件,使该器件在(25℃)时输出A μ。
目前采用传统电气温度传感器的任何温度检测均可应用AD590,AD590无需支持电路,单芯片集成,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿。
基于Proteus的电子体温计的设计与仿真专业:电子信息工程学号:08128001姓名:施小飞摘要:体温计是现代人们日常家居生活的的必备品之一,而常见的体温计多为传统的水银体温计,该体温计是基于传统的热涨冷缩的性质制成的,该体温计在使用中存在着测温时间较长,读数不方便和水银外泄的不安全因数,因此十分有必要设计一款更加方便快速的电子体温计来解决这些问题。
本文将以 AT89C51 单片机为基础并结合数字温度传感器 DS18B20,以及数码管显示等,来实现电子体温计的设计。
关键词:电子体温计;AT89C51单片机;温度传感器DS18B20Proteus's microcontroller-based design and simulation of electronicthermometerAbstract:Thermometer is the home of modern daily life of essential goods, and more common for the traditional mercury thermometer thermometer, the thermometer is based on the traditional nature of the heating or cooling is made, and the thermometer in use there is a temperature a long time, reading is not convenient and safe mercury leakage factor, it is necessary to design a more convenient and fast electronic thermometer to solve these problems. This will be combined with AT89C51 microcontroller based digital temperature sensor DS18B20, and digital display, electronic thermometer designed to achieve.Keywords:Electronic thermometer;AT89C51 microcontroller;Temperature sensor DS18B20 1、绪论1.1 体温计的发展与现状体温测量的历史,可以追溯到l6世纪。
当时Saatorio用空气热膨胀的原理,制出了第一支测量口腔温度的体温计。
本世纪初,开始用水银来制作体温计,至今在临床上得到了广泛的应用。
根据1928年Ebstein的报告,当时除测量口腔及腋下的温度外,还可以测量直肠、颈部、大腿根部,外耳及尿温。
这些都是用被测皮肤温度与玻璃球内积存的水银温度相等的原理实现的。
由于水银体温计使用方便、精度高,因而应用很广。
再加上测温方法及其结构都已成熟,没多大改进余地,人们对它的研究失去了信心,至今几乎没有什么进展。
由于用水银体温计进行体温监测很不方便,水银的污染的可能也很严重等,为了正确测量人体局部温度,促使人们开发了各种不同的测温仪器和测温方法。
虽然水银体温计仍不愧是一个精度高、便宜、使用方便的测温仪器。
现在已有许多医院采用了电子体温计,用其它电子仪器测量体温也日益普及。
这一事实至少表明,电子测温仪器的性能已接近水银温度计的性能。
因此,鉴于传统的水银体温计汞的污染及其携带不方便易破碎,尤其是测量时间过长等缺点,本课题为解决此问题设计出一种数字式电子体温计。
它在稳定性及响应时间上比传统的水银体温计有着显著的优势,精度要求也能和传统的水银体温计相媲美。
1.2 可靠性需求与可用性需求:由于该设计应用于人体身体健康的体温测量,因此必须保靠性。
2.系统设计2.1 系统概述该设计是以AT89C51 芯片为核心,通过检DS18B20的工作与否,然后将其内部的数字量温度读到单片机,通过相应的数码管显示,当温度超出设定的温度时用蜂鸣器报警。
其外围电路包括复位电路、晶振电路。
系统方框图为:2.2 系统元件2.2.1 AT89C51 的简介AT89C51是一种带4K字节闪存可编程可擦只读存储器(F PEROM—Flash Program m able and Erasable Read Only Mem ory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS -51指令集和输出管脚相兼容.由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89 C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.3 DS18B20 的特性介绍(1)适应电压范围更宽,电压范围:3.0~5.5V,寄生电源方式下可由数据线供。
(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。
(3)DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测温。
一只三极管的集成电路内。
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
(6)可编程的分辨率为 9~12 位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(7)在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在750ms 内把温度值转换为数字,速度更快。
(8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。
(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2.4 DS18B20 的结构介绍DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和TL、配置寄存器。
引脚定义:(1)DQ 为数字信号输入/输出端;(2)GND 为电源地;(3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。
2.5 数码管常见的数码管由八个条状和一个点状发光二极管管芯制成,叫八段数码管。
根据其结构的不同,可分为共阳极数码管和共阴极数码管两种,发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的成为共阴显示器。
1位显示器由 8 个发光二极管组成,其中7 个发光二极管a~g 控制 7 个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画的八段显示器能显示的字符较少,字符的形状有些失真,但失控简单,使用方便。
如下图所示:LED 数码管引脚图3.详细设计字信号,采集模块如下图3.1.2 复位电路电路的功能是完成对单片机的复位,具有上电复位功能和按键复位功能。
本设计中采用自动复位的上电复位方式。
晶振为 12MHZ。
复位电路如图3.1.3 显示模块显示范围主要为 0℃-100℃,精度为 0.1℃,显示数码管即为 4 位 8 段显示的数码管,由于单片机资源有限,这里采用的是动态扫描的方法。
在该接法中,单片机的借口为 P0 口,作为输出口,需要上拉,图中的电阻均为 10K。
数码管采用共阳管。
显示接口电路图如下3.1.4 报警电路设计的安全温度为0℃—37℃当人体温度超过37℃时,就要求有所报警指示,该设计采用PNP 三极管 9015 进行驱动蜂鸣器,三极管工作在开关状态。
原理图如下3.1.5整体设计仿真3.2 软件设计3.2.1 设计流程该设计的主要思路为温度采样、数码管的显示以及报警电路的设置。
流程图如下:3.2.2 源程序:void init(void){num=0;alarm_flag=0;alarm_num=0;temp_max=36; //设置温度上限值temp_min=0; //设置温度下限值TMOD=0x01; //定时器T0工作于方式1TH0=(65536-50000)/256; //定时器T0赋初值TL0=(65536-50000)%256;EA=1; //开总允许中断ET0=1; //开定时器T0中断TR0=1; //启动定时器T0}/******1us的延时(12M)延时子程序*******/void delay_us(uchar x) //when crystal is 12M ,a*2+5 us , { // 子程序调用要5us,while 就等于DJNZ指令while (--x); //x取值1~255;}/******1ms的延时(12M)延时子程序*******/void delay_ms(uchar x){uchar i,j;for (i=0; i<x; i++)for (j=0; j<200; j++){_nop_(); //一个nop约1us_nop_();}}/*********dds18b20初始化*******/void init1820(void){DQ = 1; //复位_nop_(); //稍做延时DQ = 0; //拉低数据线,准备Reset OneWire Bus;delay_us(125); //延时要大于480us小于960us,延时510us,释放总线delay_us(125);DQ = 1; //提升数据线;delay_us(15); //延时35us;ds18b20要等待15-16us15while(DQ) //等待器件信号,检测应答脉冲信号{_nop_();}delay_us(60); //延时125us;DQ = 1; //提升数据线,准备数据传输;}/****写数据的一个字节,满足写1和些0的时隙要求****/void write1820(uchar a){uchar i;for(i=0;i<8;i++){if(a & 0x01) // 写1,低位在前;{DQ = 0; //拉低电平,结束Recovery time;_nop_(); //延时,使得15us以内拉高电平_nop_();_nop_();DQ = 1; //发送数据;}else //写0DQ = 0;_nop_();_nop_();_nop_();delay_us(30); //等待Slave Device采样;DQ = 1; //复位;_nop_(); //短延时;a >>= 1; //右移一位}}uchar read1820(void){uchar i;uchar temp=0;DQ = 1;_nop_(); //准备读;for(i=0;i<8;i++){temp >>= 1; //低位先发;DQ = 0; //读开始脉冲;_nop_(); //延时;16DQ = 1; //必须写1,否则读出来的将是不预期的数据;delay_us(2); //延时9us;_nop_();if(DQ) //在12us处读取数据;temp |= 0x80;delay_us(30); //延时65us;DQ = 1; //拉高电平_nop_(); //恢复总线;}return temp;}void Rdtemp(void){uchar k,tmp_int;uint tp;float m=1.0, tmp_float;init1820(); //初始化DS1820display();write1820(0xcc); //跳过ROM//delay_ms(2);write1820(0x44); //温度转换命令// _nop_();// DQ=1;// delay_ms(250); //多个1820时要延时,单个就不用// delay_ms(250);// delay_ms(250);init1820(); //初始化DS1820display();write1820(0xcc); //跳过ROMwrite1820(0xbe); //读占存器命令display();Temp_L=read1820(); //温度值低位字节(其中低4位为二进制的小数部分)Temp_H=read1820(); //高位值高位字节(其中5位为符号位)init1820();display();tp=Temp_H*256+Temp_L;/************ 正负号处理 **********/num=0;k=Temp_H>>4;if(k>0){tp=((~tp)+1);17Temp_L=tp%256;disp_ds18b20[num++]=LED_CODE[10];}/************ 正数处理 *************/display();tp=tp>>4;tmp_int=(tp&0x7f);if(tmp_int<10)disp_ds18b20[num++]=LED_POINT_CODE[tmp_int];else if(tmp_int<100){disp_ds18b20[num++]=LED_CODE[(tmp_int/10)];disp_ds18b20[num++]=LED_POINT_CODE[(tmp_int%10)];}else{disp_ds18b20[num++]=LED_CODE[(tmp_int/100)];disp_ds18b20[num++]=LED_CODE[((tmp_int%100)/10)];disp_ds18b20[num++]=LED_POINT_CODE[((tmp_int%100)%10)]; }/************ 负数处理 **************/display();tmp_float=ds18b20_float_date(Temp_L);display();disp_float(tmp_float);if(num>=6)num=0;}float ds18b20_float_date(uchar tmpl){uchar i,a,b,k;float m=1.0,p;p=0.0;b=0;k=(tmpl&0x0f);if( k==0 )return (p);for(i=0;i<4;i++){a=(k&0x01);b=(a|b);b=(b<<1);k=(k>>1);}18b=(b>>1);p=((m/b)/2);return (p);}/**********温度值小数显示部分处理函数**************/ void disp_float(float date){uchar g,s;uint b,q;g=(date*10); //个分位disp_ds18b20[num++]=LED_CODE[g]; //送个分位s=date*100;s=s%10; // 十分位disp_ds18b20[num++]=LED_CODE[s]; //送十分位b=date*1000;b=(b%100)%10; //百分位disp_ds18b20[num++]=LED_CODE[b]; //送百分位q=date*10000;q=((q%1000)%100)%10; //千分位disp_ds18b20[num++]=LED_CODE[q]; //送千分位}/**********显示函数**************/void display(void){uchar i;P2=0x01; //P2口赋初值控制数码管的位for(i=0;i<6;i++){P0=disp_ds18b20[i]; //数码管段显示delay_ms(1); //1ms延时P2=(P2<<1); //数码管位控制}}/**********温度比较函数******************/void Compare_Temp(char temp_min,char temp_max) //比较温度{uchar tl_temp; //定义变量uchar y;uint tp;init1820(); //初始化DS1820display();write1820(0xcc); //skip rom命令display();write1820(0x44); //convert T 命令19display();init1820(); //初始化DS1820display();write1820(0xcc);display();write1820(0xbe);display();Temp_L=read1820(); //温度值低位字节(其中低4位为二进制的小数部分)Temp_H=read1820(); //高位值高位字节(其中5位为符号位)init1820(); //初始化DS1820display();if(( Temp_H&0xf8)!=0x00) //温度为负温度时处理{Temp_L=~Temp_L; //低8位取反Temp_H=~Temp_H; //高8位取反tl_temp= Temp_L+1; //低8位加1Temp_L=tl_temp; //计算后重新存入数组if(tl_temp>255) Temp_H++; //如果低8位大于255,向高8位进1 tp=Temp_H*256+Temp_L; //将转换的温度放入到tp中间变量中y=tp>>4; //右移4位,除去小数部分if(y>((~temp_min)+1)) //与设定的警戒下限值比较alarm_flag=1; //低于下限值elsealarm_flag=0; //在下限值之上}else // 温度为正温度时处理{tp=Temp_H*256+Temp_L; //读取的温度为正温度tp=tp>>4; //除去小数部分y=(char)tp; //转为符号型if(y>temp_max) //比较与设定的上限警戒值alarm_flag=1; // 大于上限警戒值elsealarm_flag=0; //小于上限警戒值}}/**********主函数*************/void main(void){uchar i;20init(); //初始化while(1){Rdtemp(); //调读取温度函数display();Compare_Temp(temp_min,temp_max); //比较温度函数// delay_ms(200); //延时大约 200msfor(i=0;i<30;i++)display(); //显示函数}}/*****定时器T0中断子程序*******/void timer0() interrupt 1{TH0=(65536-50000)/256; //定时器T0赋初值TL0=(65536-50000)%256;//alarm_num++;if((alarm_flag==1))// && (alarm_num%2==0)){SPEAK=~SPEAK /*产生方波,驱动扬声器发出警报声音*/;motor=0 /*驱动电机工作*/;led=0 /*超出范围时,警报且红灯闪烁*/;}else{SPEAK=0;motor=1;led=1;}if(alarm_num>250)alarm_num=0;}4.结束语在本次《智能仪器》课程论文的撰写过程中,我学到了很多单片机的运用知识也遇到了许多困难,尤其是在刚接到课题时的茫然无措到后来的逐步攻坚的过程中,自己不仅学到了很多也得到了许多同学的人心帮助。