首页 上下限报警数字温度计

上下限报警数字温度计

举报
开通vip

上下限报警数字温度计 毕业设计(论文)正文 题    目:____ 基于51单片机温度报警器的设计    英文题目:__ 51 MCU-based design of a temperature alarm        系      : __      信息工程系            专    业: ___    电子信息工程_________    班    级: ____    _07电信本____________ 学    号: ____    8051107031________    姓    名: _____...

上下限报警数字温度计
毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (论文)正文 题    目:____ 基于51单片机温度报警器的设计    英文题目:__ 51 MCU-based design of a temperature alarm        系      : __      信息工程系            专    业: ___    电子信息工程_________    班    级: ____    _07电信本____________ 学    号: ____    8051107031________    姓    名: _______  滕  杰_________    指导老师: ______    谭 金 平______________ 填表日期: ____    2010.12.18________    目    录 摘  要    2 第一章  绪 论    4 1.1 系统背景    4 1.2 温度控制系统设计的意义    5 1.3 温度控制系统完成的功能    5 第二章 系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计    6 2.1 方案一    6 2.2 方案二    6 2.3 方案论证    8 第三章 硬件电路设计    8 3.1系统总体设计    8 3.2 各部分硬件电路设计    9 3.2.1时钟电路设计    9 3.2.2系统复位电路    10 3.2.3报警与控制电路设计    11 3.2.4 LED显示电路设计    12 3.2.4温度检测电路设计    14 3.2.5按键电路设计    17 第四章  软件设计    18 4.1 主程序方案    18 4.2 各个模块子程序设计    20 4.2.1温度采集程序    20 4.2.2数码管显示模块    25 4.2.3温度处理程序    26 第五章  系统调试    27 5.1测试环境及工具    27 5.2测试方法    27 5.3测试结果分析    27 结  论    28 致  谢    28 参考文献    29 附录一:系统原理图    30 附录二:程序代码    31 摘  要 随着现代信息技术的飞速发展,在生产中温度的准确测量是一个比较困难的事情从最初的酒精、水银温度计到现在的数字化、集成化的温度检测系统。可见传感器的发展是飞快的。它快速的发展必将带来新一轮的工业化的革命和社会发展的飞跃。 本文从硬软件两个方面介绍了基于AT89S52单片机温度自动检测系统的设计。系统硬件由控制电路、温度采集电路、键盘和LED显示电路组成。软件设计从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。最终通过DS18B20采集温度并显示出来,由此对周围环境的温度进行有效检测与报警。基本上满足了温度检测与报警的要求,具有超调量小,采样值与设定值基本一致,操作简单等优点。 本设计创新点在于采用数字式温度传感器DS18B20 作为感温元件, 占用单片机引脚少, 因而可以利用空余引脚通过软件模拟和温度显示。 关键词: 温度检测  AT89S52  LED显示器  DS18B20温度传感器 第一章  绪 论 1.1  系统背景 测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规范化、提高产品质量、降低成本,还确保了生产安全。所以,测量控制技术已经被广泛应用于炼油、化工、冶金、电力、电子、轻工和纺织等行业。 温度采集控制系统是在嵌入式系统设计的基础上发展起来的。嵌入式系统虽然起源于微型计算机时代,但是微型计算机的体积、价位、可靠性,都无法满足广大对象对嵌入式系统的要求,因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。 单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用,特别是单片机嵌入式技术的开发与应用,标志着计算机发展史上又一个新的里程碑。作为计算机两大发展方向之一的单片机,以面向对象的实时控制为己任,嵌入到如家用电器、汽车、机器人、仪器仪表等设备中,使其智能化。目前国内外各大电气公司,大的半导体厂商正在不断的开发、使用单片机,使其无论在控制能力,减小体积,降低成本,还是开发环境的改善等方面,都得到空前迅速的发展。 温度检测控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。温度检测系统应用十分广阔。 1.2 温度控制系统设计的意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。温度测试控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。 1.3 温度控制系统完成的功能 本器件以AT89S52单片机系统进行温度采集与控制 温度信号由模拟温度传感器DS18B20采集输入AT89S52,主控器能对各温度检测器通过LED进行显示。 本机实现的功能: 1. 当温度低于设定下限温度时,低温发光二极管闪烁,蜂鸣器报警; 2. 当温度上升到下限温度以上时,高温发光二极管闪烁,蜂鸣器报警; 3. 数码管即时显示温度。 第二章 系统方案设计 2.1 方案一 采用普通电阻式温度传感器,放大器,A/D转换器作为测量温度的电路。采用两种不同材质的导体,如在某点互相连接在一起,对这个连接点加热,在它们不加热的部位就会出现电位差。这个电位差的数值与不加热部位测量点的温度有关,和这两种导体的材质有关。这种现象可以在很宽的温度范围内出现,如果精确测量这个电位差,再测出不加热部位的环境温度,就可以准确知道加热点的温度。由于它必须有两种不同材质的导体,所以称之为“热电偶”。不同材质做出的热电偶使用于不同的温度范围,它们的灵敏度也各不相同。热电偶的灵敏度是指加热点温度变化1℃时,输出电位差的变化量。对于大多数金属材料支撑的热电偶而言,这个数值大约在5~40微伏/℃之间。 热电偶传感器有自己的优点和缺陷,它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响,因此不适合测量微小的温度变化。由于热电偶温度传感器的灵敏度与材料的粗细无关,用非常细的材料也能够做成温度传感器。也由于制作热电偶的金属材料具有很好的延展性,这种细微的测温元件有极高的响应速度,可以测量快速变化的过程。 2.2  方案二 采用数字可编程温度传感器作为温度检测元件。数字可编程温度传感器可以直接读出被测温度值。不需要将温度传感器的输出信号接到A/D转换器上,减少了系统的硬件电路的成本和整个系统的体积。 美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。 同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小 它还有很多特性:适应电压范围更宽,电压范围:3.0~5.5V,寄生电源方式下可由数据线供;独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2.3 方案论证 方案一硬件电路复杂,需要设计A/D转换电路,以及与其相关的编程,总体设计起来较困难,软件、硬件调试复杂,硬件成本较高。而且器传感器有以下缺点:它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响。所以总体来说,方案一在硬件、软件上的成本都比较高,而且易受外部环境的影响,系统工作不稳定。 方案二由于采用的是具有一总线特点的温度传感器,所以电路连接简单;而且该传感器拥有强大的通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,同过几个简单的操作就可以实现传感器与单片机的交互,包括复位传感器、对传感器读写数据、对传感器写命令。软件、硬件易于调试,制作成本较低。也使得系统所测结果精度大大提高。 经过对这两种方案的比较,本设计决定采用方案二。 第三章 硬件电路设计 3.1 系统总体设计 本次设计采用采样值和键盘设定值进行比较运算的方法来简单精确地控制温度。它的整体思想是先通过键盘输入设定温度的范围,保存在AT89S52的指定单元中,再利用温度传感器DS18B20进行信号的采集,送入单片机中,保存在采样值单元。然后把采样值与设定值进行比较运算,得出控制量,从而调节继电器触发端的通断,来实现将温度控制在一定的范围内。单片机控制系统是一个完整的智能化的集数据采集、显示、处理、控制于一体的系统。由传感器、LED显示单片机及执行机构控制部分等组成。系统结构框图如图3.1所示。 按键 图3.1 系统硬件结构框图 3.2 各部分硬件电路设计 3.2.1、时钟电路设计 时钟电路是用来产生AT89S52单片机工作时所必须的时钟信号,AT89C52本身就是一个复杂的同步时序电路,为保证工作方式的实现,AT89C52在唯一的时钟信号的控制下严格的按时序执行指令进行工作 ,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。 我们系统采用内部时钟方式来为系统提供时钟信号。AT89C52内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。 电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。本次系统的时钟电路设计如图3.2所示。 图3.2 时钟电路图 3.2.2系统复位电路 在图3.3 中复位开关K 被按下并松开,使端获得低电平,RST 端输出复位信号,单片机复位。或由于( VCC 加入并超过复位门限电压) 引起系统正常复位。 图3.3 复位电路图 3.2.3报警与控制电路设计 在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。同样室内的温度低高设定的温度范围内时当P1.4输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫,出报警声音;单片机的P1.1输出低电平,此时红色指示灯亮起并接通风降温设备,直到低于设定的最低温度时,P1.4输出低电平时,三极管截止,蜂鸣器停止发声,P1.1出高电平片机的P1.0为1,此时绿色指示灯灭并停止加温设备;外的警电路与控制电路如图3.4所示 图3.4  报警与控制电路与单片机的连接 3.2.4 LED显示电路设计 LED数码管是一种半导体发光器件,其基本单元是发光二极管,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字。可以显示:时间、日期、温度等可以用数字代替的参数。 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,通过由各自独立的I/O线控制,当单片机的P0口输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对P2.0-P2.3位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。 在本设计中采用了三位七段数码管,用动态驱动来显示温度的值,如图3.5所示。 图3.5 显示电路图 3.2.5温度检测电路设计 本次设计所采用的温度传感器为Dallas半导体公司的数字化温度传感器DS18B20,它是世界上第一片支持“一线总线”接口的温度传感器。“一线器件”体积更小、适用电压更宽、更经济。全部传感元件及转换电路集成在形如一只三极管的集成电路内。DS18B20可以程序设定9-12位的分辨率,精度为±0.5℃。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。 DS18B20与AT89S52单片机接口电路的设计 DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线,当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。 当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据[6]。 图3.6  DS18B20与AT89S52单片机的连接 DS18B20支持“一线总线”接口,测量温度范围为 -55°C--+125°C,在-10--+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 1.DS18B20产品的特点   (1)只要求一个端口即可实现通信。   (2)在DS18B20中的每个器件上都有独一无二的序列号。   (3)实际应用中不需要外部任何元器件即可实现测温。   (4)测量温度范围在-55°C- +125°C之间。   (5)数字温度计的分辨率用户可以从9位到12位选择。   (6)内部有温度上、下限设置。 2.DS18B20的引脚介绍 TO-92封装的DS18B20引脚功能描述见表1。 表1 DS18B20详细引脚功能描述 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先DS18B20提供以下功能命令之一:读ROM, ROM匹配,搜索ROM,跳过ROM,报警检查。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。所有的数据的读、写都是从最低位开始。 3.2.6按键电路设计 键盘共有三个键,判断K3~K5键是否按下,可采用软件查询和中断的方法,当某个键按下时,低电平有效。3个键K3~K5的功能定义如表所示。 K3~K5键的定义 按键 键名 功能 K3 功能转换键 此键按下,显示温度设定值,按键松开,显示当前温度 K4 加1键 设定温度值加1 K5 减1键 设置温度值减1 图3.7 按键电路 第四章  软件设计 4.1 主程序方案 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 本部分详细介绍了基于AT89S52单片机的多路温度采集控制系统的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,数据处理子程序、显示子程序、执行子程序。采用Kiel uVision3集成编译环境和汇编语言来进行系统软件的设计。本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。 并对温度进行实时显示。采用C语言编写代码, 鉴于篇幅限制及DS18B20 的应用已经规范和成熟, 本文仅就主程序流程图和显示子程序流程图及其代码进行说明。通过定时器T0 P3.4口的定时来实现, 在此不再赘述。主程序流程图主程序通过调用温度采集子程序完成温度数据采集, 然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据。 主程序(见附录2)调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。 温度采集程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 温度处理程序:对采集到的温度和设置的上、下限进行比较,做出判断,向继电器输出。 数据存储程序:对键盘的设置的数据进行存储。 否                 图 4.1  系统流程图 4.2 各个模块子程序设计 4.2.1温度采集程序 温度采集子程序流程图如下: 图4.2  温度采集子程序流程图     程序代码如下: void dsreset(void)            //DS18b20复位, 初始化函数 {   uint i;   ds=0;   i=103;                  //延时最短480us   while(i>0) i--;   ds=1;    //等待16-60us,收到低电平一个约60-240us则复位成功   i=4;   while(i>0) i--; } bit tempreadbit(void)        //读1位数据函数 {   uint i;   bit dat;   ds=0;i++;   ds=1;i++;i++;                    //i++起到延时作用   dat=ds;   i=8;   while(i>0)i--;   return(dat); } uchar tempread(void)            //读1字节的数据函数 { uint i,j,dat; dat=0; for(i=1;i<=8;i++) {   j=tempreadbit();   dat=(j<<7)|(dat>>1);   //读出的数据最低位在最前面,这样刚好一个字节在dat里 } return(dat); } void tempwritebyte(uchar dat) //向DS18B20写一个字节的数据函数 {   uint i;   uchar j;   bit testb;   for(j=1;j<=8;j++)   {   testb=dat&0x01;   dat=dat>>1;   if(testb)          //写1       {         ds=0;         i++;i++;         ds=1;         i=8;         while(i>0)         i--;       }   else                  //写0       {         ds=0;         i=8;         while(i>0) 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);          //写跳过读ROM指令 tempwritebyte(0xbe);          //写温度转换指令 a=tempread();                  //读低8位 b=tempread();                  //读高8位 temp=256*b+a; f_temp=temp*0.0625;    //温度在寄存器中为12位,分辨率为0.0625 temp=f_temp*10+0.5;          //乘以10表示小数点后面只取一位 return temp;                  //temp是整型 } 4.2.2数码管显示模块                    本系统采用共阳极数码管,用模拟串口的动态显示数据。其流程图如图4.3所示:                 图4.3  数码管显示流程图 4.2.3温度处理程序 系统通过DS18B20采集到温度和设置的上、下限进行比较得出结果,进行报警。 void hdidi() { beep=0; led1=0; delay(500); beep=1; led1=1; delay(500); } void ldidi()//断续报警闪烁 { beep=0; led2=0; delay(50); beep=1; led2=1; delay(50); }   第五章  系统调试 5.1测试环境及工具 测试温度:0-100摄氏度。(模拟不同温度值环境) 测试仪器及软件:数字万用表,温度计0-100摄氏度。 5.2测试方法 使系统运行,观察系统硬件检测是否正常(包括单片机控制系统,键盘电路,显示电路,温度测试电路等)。系统自带测试 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 数据,观察显示数据是否相符合即可。 采用温度传感器和温度计同时测量水温变化情况,目测显示电路是否正常。并记录温度值,与实际温度值比较,得出系统的温度指标。 5.3测试结果分析 自检正常,温度显示正常。 因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,需要一个很短的时间才能达到稳定。 结  论 经过设计和实践,本设计已经完成了一个比较完整的温度检测预与报警系统。它可以通过键盘输入温度上限、下限值,然后计算其上限和下限的中间值作为最适温度值。不断的采集温度值,显示温度值,如果发现采集的温度值高于上限值就通过相应的提示灯亮。如果采集的温度值低于下限值,那么也有相应的灯提示操作人员。如果并没有超过上下限则不会报警。致此本人设计基本完成了预期的目标,系统在温度采集、温度处理和键盘处理方面做的比较好,而在数据的存储和数码管的显示方面不够理想。主要存在以下几个方面: (1) 程序的代码不够精练,浪费AT89S52内的FLASH ROM; (2) 未对以前的温度数值进行存储,使以后不能利用这些数据; (3) 对数码管的控制考虑不周,以致出现闪烁现象; 致  谢 毕业设计就要结束了,在这一段时间里,我感到自己的收获是非常大的,使我在专业技能、动手能力多方面都有了很大的提高。 在整个设计过程中,受到了我们老师和同学的热切关注和耐心辅导,特别是对我进行了系统的讲解和指导,对设计提出了很多建设性的意见及建议,对我的设计起到了指导性和决定性的作用,还教给了我们遇到问题,如何去分析问题、解决问题的方法。使我受益匪浅。从接受课题到现在完成毕业设计论文,尤其是在课题设计的前期准备工作和设计的过程中,导师提出了许许多多宝贵的设计意见,在最后的论证修改过程中李老师还在百忙之中,抽出时间对我的论文提供了必要的指导和帮助。这使得我能够顺利的完成毕业设计工作。在这里我向他表示真诚的感谢!同时得到了同组同学的支持与帮助,使我深刻的体会到了良师益友给我带来的帮助,在此表示深深的感谢! 感谢母校的辛勤培育之恩!感谢它给我提供的良好学习及实践环境,使我学到了许多新的知识,掌握了一定的操作技能。感谢和我在一起进行课题研究的同学们,和他们在一起讨论、研究使我受益非浅。最后,我非常庆幸在三年的学习、生活中认识了很多可敬的老师和可亲的同学,并感激师友的教诲和帮助! 参考文献 【1】 胡  锦: 《数字电路与逻辑设计》 第二版.      高等教育出版社。 【2】 刘树林: 《低频电子线路》 第二版.            电子工业出版社 【3】 沈农: 《传感器及应用技术》.                化学工业出版社。 【4】 苟鸿娅: 《电工技术基础》.                  西南交通大学出版社。 【5】 廖  芳: 《电子产品生产工艺与管理》.        电子工业出版社 【6】 黄智伟: 《全国大学生设计竞赛训练教程》.    电子工业出版社。 【7】 白霞、孙艳秋: 《微机原理与接口技术》.    清华大学出版社。 【8】 张  伟: 《Protel 99SE实用教程》.          人民邮电出版社。 【9】 谭洁强: 《C程序设计》第三版.              清华大学出版社。 【10】刘守义、杨宏丽、王静霞:《单片机应用技术》.  西安电子科技大学出版社。 【11】The  research and design of temperature measuring instrument <>  2009年  第5期 【12】Development of the ISO standard for clinical thermometers <>  2007年 【13】<>V.AklimenkoN.P.Medvedev and A.F.Todurov 1983 Plenum publishing corporation 【14】LCD Liquid Crystal Display Control Based on SPMC75F2413A SCM,Instrumentation Technology  2010年03期。 , 附录一:系统原理图 附录二: 程序代码 #include           //52系列头文件 #include #define uchar unsigned char #define uint  unsigned int sbit ds=P3^4; sbit dula=P2^6; sbit beep=P1^4;                //定义蜂鸣器 uint temp,t,w;                    //定义整型的温度数据 uchar flag; float f_temp;                //定义浮点型的温度数据 uint low;            //定义温度下限值  是温度乘以10后的结果 uint high;            //定义温度的上限值 sbit led1=P1^0;                //控制发光二极管 sbit led2=P1^1;                //控制发光二极管 sbit s1=P3^5; sbit s2=P3^6; sbit s3=P3^7; uchar flag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge; uchar code table[]= {   0xc0,0xf9,0xa4,0xb0,0x99,   0x92,0x82,0xf8,0x80,0x90,0xc6   };    //共阳数码管段码表 uchar code table1[]= {0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10};//带小数点的编码 void delay(uchar z)              //延时函数 {   uchar a,b;   for(a=z;a>0;a--)   for(b=100;b>0;b--); } void init()//初始化 { EA=1; ET1=1; TR1=1; TMOD=0x10; TH1=(65536-4000)/256; TL1=(65536-4000)%256; flag=0; low=200; high=300; } void hdidi()短报警 { beep=0; led1=0; delay(500); beep=1; led1=1; delay(500); } void ldidi()//长报警 { beep=0; led2=0; delay(50); beep=1; led2=1; delay(50); } void dsreset(void)            //DS18b20复位, 初始化函数 {   uint i;   ds=0;   i=103;                  //延时最短480us   while(i>0) i--;   ds=1;                    //等待16-60us,收到低电平一个约60-240us则复位成功   i=4;   while(i>0) i--; } bit tempreadbit(void)        //读1位数据函数 {   uint i;   bit dat;   ds=0;i++;   ds=1;i++;i++;                    //i++起到延时作用   dat=ds;   i=8;   while(i>0)i--;   return(dat); } uchar tempread(void)            //读1字节的数据函数 { uint i,j,dat; dat=0; for(i=1;i<=8;i++) {   j=tempreadbit();   dat=(j<<7)|(dat>>1);   //读出的数据最低位在最前面,这样刚好一个字节在dat里 } return(dat); } void tempwritebyte(uchar dat) //向DS18B20写一个字节的数据函数 {   uint i;   uchar j;   bit testb;   for(j=1;j<=8;j++)   {   testb=dat&0x01;   dat=dat>>1;   if(testb)          //写1       {         ds=0;         i++;i++;         ds=1;         i=8;         while(i>0)         i--;       }     else                  //写0       {         ds=0;         i=8;         while(i>0) 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);          //写跳过读ROM指令 tempwritebyte(0xbe);          //写温度转换指令 a=tempread();                  //读低8位 b=tempread();                  //读高8位 temp=256*b+a; f_temp=temp*0.0625;          //温度在寄存器中为12位,分辨率为0.0625 temp=f_temp*10+0.5;          //乘以10表示小数点后面只取一位 return temp;                  //temp是整型 } void keyscan() {       if(s1==0)       {P2=0xff;       delay(5);       if(s1==0)       {                 while(!s1);         s1num++;         if(s1num==1)          {           flag=1;         }         if(s1num==2)         {           flag=2;         }         if(s1num==3)         {           s1num=0;           flag=0;         }       }           }           if(s1num==1)       {       flag=1;         if(s2==0)                          {             delay(5);             if(s2==0)             {               while(!s2);                 low+=10;                 if(low==1000)                 low=200;             }            }         if(s3==0)         {             delay(5);             if(s3==0)             {               while(!s3);               low-=10;               if(low==0)               low=200;             }            }     }     if(s1num==2)     {         flag=2;         if(s2==0)         {             delay(5);             if(s2==0)             {                 while(!s2);                 high+=10;                 if(high==1000)                 high=200;             }            }         if(s3==0)         {             delay(5);             if(s3==0)             {                 while(!s3);                 high-=10;                 if(high==0)                 high=300;             }            }     }   } void main()                    //主函数 {   init();   while(1)   {   tempchange();          //温度转换函数   //delay(5);   //temp=get_temp()/10;   if(temp>high)   {       hdidi();   }     if(temp
本文档为【上下限报警数字温度计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:293KB
软件:Word
页数:26
分类:生活休闲
上传时间:2017-09-19
浏览量:53