课程设计(论文)-基于AT89C51单片机的温度测控系统设计.doc_第1页
课程设计(论文)-基于AT89C51单片机的温度测控系统设计.doc_第2页
课程设计(论文)-基于AT89C51单片机的温度测控系统设计.doc_第3页
课程设计(论文)-基于AT89C51单片机的温度测控系统设计.doc_第4页
课程设计(论文)-基于AT89C51单片机的温度测控系统设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宜宾职业技术学院宜宾职业技术学院 项目设计 降温系统的设计降温系统的设计 系系 部部 电电子子信信息息工工程程 系系 专专 业业 名名 称称 电子信息工程技术电子信息工程技术 班班 级级 电电 子子1 1 0 0 9 9 1 1 班班 组组 员员 李玉恒李玉恒 徐海深徐海深 组组 员员 王秀王秀 曹富连曹富连 指指 导导 教教 师师 罗罗 德德 雄雄 20112011 年年 1212月月 1818日日 基于基于 at89c51 单片机的温度测控系统设计单片机的温度测控系统设计 摘要摘要 设计一款基于 at89c51 单片机的温度测控系统,介绍该系统的工作原理和设计方 法。该系统温度信号由数字温度传感器 ds18b20 采集,送 at89c51 单片机进行处理, 并通过数码管显示。控温部分使用 44 矩阵按键进行温度上限和下限的设定,当温度 超过设定值范围后,单片机将发出控制信号启动升温装置或降温装置,使温度保持在 一定的范围。实验测试证明,设计的样机系统测温控温精度均为 01,测温控温的 范围可达-55+125,可应用于家用电器、汽车、冷库等领域。 关键词:at89c51;ds18b20;数码管;温度测控 引言引言 温度的测量和控制在日常生活和工业领域中具有广泛的应用,随着人们生活水平 的大幅提高,对温度测量控制的精度和范围也有着更高的要求。在工业企业中,如何 提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题, 这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学 模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控等现象。pid 控制方 式控制稳定且精度高,但是控制对象的模型难以建立,并且当扰动因素不明确时,参 数调整较复杂。本文采用 ds18b20 数字温度传感器,该传感器具有微型化、封装简单、 低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,可使系统测量更加 精确,电路更加简单。实验测试证明,设计的样机系统测温控温精度均为 01,测 温控温的范围可达-55+125,可应用于家用电器、汽车、冷库等领域。 1 系统总体方案系统总体方案 该系统将检测点的温度采集之后发送到单片机进行处理,并通过 44 矩阵按键进 行温度上限和下限的设定。当温度超过设定值范围后,单片机将发出控制信号启动升 温装置或降温装置,使温度恒定在一定的范围。系统主要包括温度采集模块、44 行 列式矩阵按键模块、主控模块、温度控制模块、测温控温显示模块等,其结构框图如 图 1 所示。 2 系统硬件设计系统硬件设计 2.1 温度检测模块温度检测模块 该系统温度测量部分采用 dallas 公司生产的一线式数字温度传感器 ds18b20, 它具有微型化、低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点, ds18b20 可直接将温度转化成串行数字信号给单片机处理,它具有三引脚 to-92 小体 积封装形式,温度测量的范围为-55+125,测温分辨率可达到 0062 5。 2.2 44 行列式按键模块行列式按键模块 该系统采用 44 行列式矩阵按键输入,其中除了 09 这 10 个相应数字温度按键 外,还设计了温度重设按键、确定按键、零下温度选择按键和小数点按键等用来控制 温度。该系统采用的是非编码式键盘,按键的识别采用的是全局扫描法。 2.3 主控模块主控模块 该设计采用 at89c51 单片机作为主控芯片。该芯片是一款高性能的 cmos 8 位微 处理器,自带 4 kb 闪存,产品性价比高,满足系统的设计需求。该系统中主控芯片 at89c51 不断的对采集到的温度信号与输入的控制温度进行比较,若超出设定范围则 启动升温或降温装置,直至温度到达设定的范围区间内。 2.4 温度控制模块温度控制模块 该系统温度控制电路中,单片机通过三极管的通断控制继电器,达到控制电热器的 目的。当温度低于设定温度下限时,单片机发送低电平信号经过 74ls04 非门电路后 变为高电平,使 npn 型三极管导通,继电器使电源与电热器接通,电热器加热,温度 慢慢升高。当温度高于设定温度上限时,单片机发送高电平信号经过 74ls04 非门电 路后变为低电平,使 npn 型三极管截止,继电器使电源与制冷系统接通,制冷系统工 作,温度慢慢降低。当继电器突然断电时,会产生很大的反向电流,反接在三极管两 端的二极管可将反向电流分流,达到保护三极管的作用。 25 测温控温显示模块测温控温显示模块 该设计显示部分采用 2 个 4 位 8 段共阳极数码管 7seg-mpx4-ca。一个数码管用 于显示当前环境温度,另外一个数码管用于显示设定温度。为了节省 io 口,本设 计通过 74ls04 双 2 线-4 线译码器连接两个数码管的位码。 3 系统软件设计系统软件设计 该设计软件部分采用模块化设计,通过 keil 公司开发的 vision3 编译器用 c51 语 言编写,主要包括温度检测,按键驱动和温度控制等。其中温度检测包括 ds18b20 初 始化子程序、ds18b20 读取子程序、ds18b20 写子程序、ds18b20 转换温度子程序、 ds18b20 温度采集子程序、采集温度数码管显示子程序等;按键驱动包括矩阵按键驱 动子程序、按键显示子程序等;温度控制包括输入键值处理子程序、温度对比控制子 程序等。主程序流程图如图 2 所示。 4 结语结语 本文设计的温度测控系统,采用 ds18b20 数字温度传感器实时采集环境温度,采 用 44 矩阵按键自由设定温度上限和下限,采用 at89c51 单片机处理采集的温度数 据和发送控制温度信号,将环境温度和设定温度通过数码管 7seg-mpx4-ca 实时显 示。设计的样机系统经实验表明,测温精度和控温精度均高达 01,测温范围为- 55125,并可在-55128范围内进行温度控制。温度控制系统在工业生产和日常 生活中,主要是要求在一定的温度范围内保证温度恒定,并要求一定的精度,因此该 系统可应用于家用电器、工业、汽车、冷库等许多领域。 附件附件 at89c51 单片机系统简介单片机系统简介 at89c51 是一种带 4k 字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能 cmos8 位微处理器, 俗称单片机。该器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 ? 指令集和输出管脚相兼容。由于将多功能 8 位 cpu 和闪烁存储器组合在单 个芯片中,atmel 的 at89c51 是一种高效微控制器,为很多嵌入式控制系统提供了 一种灵活性高且价廉的方案。 1主要特性:主要特性: 与 mcs-51 兼容 4k 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0hz-24hz 三级程序存储器锁定 128*8 位内部 ram 32 可编程 i/o 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2管脚说明:管脚说明: vcc:供电电压。 gnd:接地。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。当 p1 口的 管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据存储器,它可以被 定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进 行校验时,p0 输出原码,此时 p0 外部必须被拉高。 p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入,p1 口被外部下拉 为低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作为第八位地址接收。 p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可接收,输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此 作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址的 高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行 读写时,p2 口输出其特殊功能寄存器的内容。p2 口在 flash 编程和校验时接收高八 位地址信号和控制信号。 p3 口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可接收输出 4 个 ttl 门电流。 当 p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下 拉为低电平,p3 口将输出电流(ill)这是由于上拉的缘故。 p3 口也可作为 at89c51 的一些特殊功能口,如下表所示: 口管脚 备选功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断 0) p3.3 /int1(外部中断 1) p3.4 t0(记时器 0 外部输入) p3.5 t1(记时器 1 外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3 口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字 节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率 周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或 用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ale 脉冲。 如想禁止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略微拉高。如果微处理器在 外部执行状态 ale 禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期 两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。 /ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h-ffffh) ,不管 是否有内部程序存储器。注意加密方式 1 时,/ea 将内部锁定为 reset;当/ea 端保 持高电平时,此间内部程序存储器。在 flash 编程期间,此引脚也用于施加 12v 编 程电源(vpp) 。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 3振荡器特性:振荡器特性: xtal1 和 xtal2 分别为反向放大器的输入和输出。该反向放大器可以配置为片 内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2 应不 接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽 无任何要求,但必须保证脉冲的高低电平要求的宽度。 4芯片擦除:芯片擦除: 整个 perom 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ale 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非 空存储字节被重复编程以前,该操作必须被执行。 此外,at89c51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件 可选的掉电模式。在闲置模式下,cpu 停止工作。但 ram,定时器,计数器,串口 和中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结振荡器,禁止所用 其他芯片功能,直到下一个硬件复位为止。 ds18b20 简介简介 ds18b20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式, 磁铁吸附式,不锈钢封装式,型号多种多样,有 ltm8877,ltm8874 等等。主要根 据应用场合的不同而改变其外观。封装后的 ds18b20 可用于电缆沟测温,高炉水循环 测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限 温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备 数字测温和控制领域。 1: 技术性能描述技术性能描述 、 独特的单线接口方式,ds18b20 在与微处理器连接时仅需要一条口线即可 实现微处理器与 ds18b20 的双向通讯。 、测温范围 55+125,固有 测温分辨率 0.5。 、支持多点组网功能,多个 ds18b20 可以并联在唯一的三 线上,最多只能并联 8 个,实现多点测温,如果数量过多,会使供电电源电压过低, 从而造成信号传输的不稳定。 、工作电源: 35v/dc 、在使用中不需 要任何外围元件 、 测量结果以 912 位数字量方式串行传送 、不锈 钢保护管直径 6 、适用于 dn1525, dn40dn250 各种介质工业管道和狭 小空间设备测温 、 标准安装螺纹 m10x1, m12x1.5, g1/2”任选 、pvc 电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 应应用用范范围围 2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温 和控制领域 2.2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 2.4 供热/制冷管道热量计量, 中央空调分户热能计量和工业领域测温和控制 产产品品型型号号与与规规格格 型 号 测温范围 安装螺纹 电缆长度 适用管道 ts-18b20 -55125 无 1.5 m ts-18b20a -55125 m10x1 1.5m dn1525 ts-18b20b -55125 1/2”g 接线盒 dn40 60 接接线线说说明明 特点 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感 应用 无需外部元件 可用数据总线供电,电压范围为 3.0 v 至 5.5 v 无需备用电源 测 量温度范围为-55 c 至+125 。华氏相当于是-67 f 到 257 华氏度 -10 c 至+85 c 范围内精度为0.5 c 温度传感器可编程的分辨率为 912 位 温度转换为 12 位 数字格式最大值为 750 毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温 控制,工业系统,消费电子产品温度计,或任何热敏感系统 描述该 ds18b20 的 数字温度计提供 9 至 12 位(可编程设备温度读数。信息被发送到/从 ds18b20 通过 1 线接口,所以中央微处理器与 ds18b20 只有一个一条口线连接。为读写以及温度转换 可以从数据线本身获得能量,不需要外接电源。 因为每一个 ds18b20 的包含一个独 特的序号,多个 ds18b20s 可以同时存在于一条总线。这使得温度传感器放置在许多不 同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行 过程监测和控制。 8 引脚封装 to-92 封装 用途 描述 5 1 接地 接地 4 2 数字 信号输入输出,一线输出:源极开路 3 3 电源 可选电源管脚。见“寄生 功率“一节细节方面。电源必须接地,为行动中,寄生虫功率模式。 不在本表中 所有管脚不须接线 。 概况框图图 1 显示的主要组成部分 ds18b20 的。ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非挥发的温度报警触发 器 th 和 tl、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由 1 线 通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充 电。 ds18b20 的电源也可以从外部 3v-5 .5v 的电压得到。 ds18b20 采用一线 通信接口。因为一线通信接口,必须在先完成 rom 设定,否则记忆和控制功能将无 法使用。主要首先提供以下功能命令之一: 1 )读 rom, 2 )rom 匹配, 3 ) 搜索 rom, 4 )跳过 rom, 5 )报警检查。这些指令操作作用在没有一个器件的 64 位光刻 rom 序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也 可以知道总线上挂有有多少,什么样的设备。 若指令成功地使 ds18b20 完成温 度测量,数据存储在 ds18b20 的存储器。一个控制功能指挥指示 ds18b20 的演出测 温。测量结果将被放置在 ds18b20 内存中,并可以让阅读发出记忆功能的指挥,阅读 内容的片上存储器。温度报警触发器 th 和 tl 都有一字节 eeprom 的数据。如果 ds18b20 不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载 有配置字节以理想的解决温度数字转换。写 th,tl 指令以及配置字节利用一个记忆功 能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。 ds18b20 有 4 个主要的数据部件: (1)光刻 rom 中的 64 位序列号是出厂前被 光刻好的,它可以看作是该 ds18b20 的地址序列码。64 位光刻 rom 的排列是:开始 8 位(28h)是产品类型标号,接着的 48 位是该 ds18b20 自身的序列号,最后 8 位是 前面 56 位的循环冗余校验码循环冗余校验码(crc=x8+x5+x4+1) 。光刻 rom 的作 用是使每一个 ds18b20 都各不相同,这样就可以实现一根总线上挂接多个 ds18b20 的目的。 (2) ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为 例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/lsb 形式表达,其中 s 为符号位。 程序程序 #include #include #define uchar unsigned char #define uint unsigned int sbit dq = p26 ; /定义 ds18b20 端口 dq sbit beep=p24 ; sbit k1=p34; sbit k2=p35; sbit k3=p36; sbit k4=p37; sbit d0=p17; bit presence ;/定义初始化成功标志位 sbit lcdrs = p20 ; sbit lcdrw = p21; sbit lcden = p22 ; uchar code cdis1 = “shezhi: . c“ ; uchar code cdis2 = “wenduz: . c “ ; unsigned char keyval; /储存按键值 unsigned int k=10; unsigned char data temp_data2 = 0x00,0x00 ; /存放 18b20 送来的数据 unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ; unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; / 这是温度 18b20 小数位转换处理 unsigned char code mytab8 = 0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00 ; void delay(unsigned int num) /*us 精确延时 while( -num ) ; void delay2(unsigned char z) /*ms 延时 unsigned i,k; for(i=z;i0;i-) for(k=110;k0;k-); void xie_com(unsigned char com) /*lcd 写指令函数 lcdrs=0; /rs=0 写指令 com=(com p0=com; delay2(5); lcden=1; delay2(5); lcden=0; void xie_date(unsigned char date) /*lcd 写数据 函数 lcdrs=1;/rs=1 写数据 date=(date p0=date; delay2(5); lcden=1;/资料上说 e 端有一个高脉冲时候执行一次指令,实际应用中他内部 delay2(5);/检测到 e 端有一个电平跳变就可以执行指令 lcden=0; void into()/ *led 初始化此函数中写入一些显示前的准 备数据 lcden=0;/写指令之前为 e 为低电平, xie_com(0x38);/8 为数据传送,显示 2 行,5x7 点阵显示字符 xie_com(0x0c);/开显示,有光标且闪动 0f 光标闪烁,0e 光标不闪烁 0c 开显示, 不闪烁 xie_com(0x06);/写入一个字符后光标+1,指针也+1。字符整屏不移动 xie_com(0x80);/数据指针初始化即在第一行最左边,后面每个字符地址就加一, 第二行首地址是 c0 xie_com(0x01);/清屏指令 void writetab() /*自定义字符写入 unsigned char i ; xie_com(0x40) ; /0x40 为向 1602 的 cgram 中的 0x00 地址中写自 定义字符 for (i = 0 ; i 0 ; i-) dq = 0 ; / 给脉冲信号 dat = 1 ; dq = 1 ; / 给脉冲信号 重要,创造一个下降沿,在下降沿出现后的 15us 内 必须将数据读走 if(dq) dat |= 0x80 ; /当 dq 送来的是 1.则执行这一句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论