课程设计(论文)-基于单片机的温度计及万年历设计

上传人:aa****6 文档编号:29271545 上传时间:2018-01-23 格式:DOC 页数:35 大小:591KB
返回 下载 相关 举报
课程设计(论文)-基于单片机的温度计及万年历设计_第1页
第1页 / 共35页
课程设计(论文)-基于单片机的温度计及万年历设计_第2页
第2页 / 共35页
课程设计(论文)-基于单片机的温度计及万年历设计_第3页
第3页 / 共35页
课程设计(论文)-基于单片机的温度计及万年历设计_第4页
第4页 / 共35页
课程设计(论文)-基于单片机的温度计及万年历设计_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《课程设计(论文)-基于单片机的温度计及万年历设计》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于单片机的温度计及万年历设计(35页珍藏版)》请在金锄头文库上搜索。

1、第 1 页物理与电气工程学院课程设计报告基于单片机的温度计及万年历设计作者 专业 电气工程及其自动化 年级 2008 级 指导教师 成 绩 日期 2009.12.6 第 2 页基于单片机的温度计及万年历设计(安阳师范学院 物电学院, 河南 安阳 )摘要:本系统是一个基于单片机AT89C52的液晶温度计的设计,用来测量环境温度,测量范围为-55+125度。设计系统分为4部分:单片机控制、温度传感器、液晶显示、以及监测系统,实现了温度测量的功能。整个设计是以AT89C52为核心,通过温度传感器DS18B20来实现环境温度的采集和A/D转换,构成了一个带温度显示的电子万年历。单片机把采集到的温度进行

2、相应的转换后,使之能够方便地在液晶上输出。LCD采用的是LCD12864,它具有功耗低、体积小、显示内容丰富、超薄轻巧,加入了汉字库,可现实八千多个中文汉字的优点,应用越来越广泛。整个设计的重点在于编程,因为其外围电路相对比较简单,实现容易。在本论文中附带了软件实现的流程图以及部分子程序以及各种硬件电路图。关键词:STC89C52单片机 TB1602温度传感器 LCD12864液晶显示器1引言:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便

3、的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机STC89C52,测温传感器使用DS18B20,同时把数据显示到液晶显示屏上。2方案论证: 2.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.2

4、方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。3 结果与讨论第 3 页3.1 AT89C52 介绍 3.1.1 单片机主控电路的主要元件是 AT89c51,其外型如图AT89c51 是一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RAM

5、) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,内置功能强大的微型计算机的 AT89c51 提供了高性价比的解决方案。 AT89c51 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全双工串行通信口,AT89c51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89c52 与 AT8

6、9c5 相比较最大的优点是片内含 8k bytes 的可反复擦写的只读程序存储器(PEROM).且内部各部件之前性能进一步得到强化。3.1.2 管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓

7、冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存第 4 页储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,

8、它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,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

9、 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 ST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每

10、当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;

11、当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出3.2 单总线温度传感器 DS18B20 简介 3.2.1 DS18B20 是 DALLAS 公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供 9 位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有 3 引脚 TO92 小体积封装形式,温度测量范围

12、为55125,可编程为 9 位12 位 A/D 转换精度,测温分辨率可达 0.0625,被测温度用符号扩展的 16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与多个 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使 DS18B20 非常适用于远距离多点温度检测系统第 5 页3.2.2 DS18B20 外形及引脚说明外形及引脚如图 2 所示:图 2 管脚排列图在 TO-92 和 SO-8 的封装中引脚有所不同,具体差别请查阅 PDF 手册,在 TO-9

13、2 封装中引脚分配如下:1(GND):地2(DQ):单线运用的数据输入输出引脚3(VDD):可选的电源引脚3.2.3 DS18B20 工作过程及时序DS18B20 内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1 提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器 2 提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55,每当计数器 1 从预置数开始减计数到 0 时,温度寄存器中寄存的温度值就增加 1,这个过程重复进行,直到计数器 2 计数到 0 时便停止。初始时,计数器 1 预置的是与-55相对应的一个预置值。以后计数器

14、 1 每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器 1 的预置数也就是在给定温度处使温度寄存器寄存值增加 1计数器所需要的计数个数。DS18B20 内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2 停止计数后,比较器将计数器 1 中的计数剩余值转换为温度值后与 0.25进行比较,若低于 0.25,温度寄存器的最低位就置 0;若高于 0.25,最低位就置 1;若高于 0.75时,温度寄存器的最低位就进位然后置 0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表 0.5,四舍五

15、入最大量化误差为1/2LSB,即 0.25。第 6 页温度寄存器中的温度值以 9 位数据格式表示,最高位为符号位,其余 8 位以二进制补码形式表示温度值。测温结束时,这 9 位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8 位温度数据占据第二字节。DS18B20 测量温度时使用特有的温度测量技术。DS18B20 内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20 进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应

16、该为 9 位,但因符号位扩展成高 8 位,所以最后以 16 位补码形式读出。DS18B20 工作过程一般遵循以下协议:初始化ROM 操作命令存储器操作命令处理数据 初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道 DS1820 在总线上且已准备好操作。 ROM 操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件 ROM 操作命令之一。所有 ROM操作命令均为 8 位长。这些命令列表如下:Read ROM(读 ROM)33h此命令允许总线主机读 DS18B20 的 8 位产品系列编码,唯一的 48 位序列号,以及 8 位的 CRC。此命令只能在总线上仅有一个 DS18B20 的情况下可以使用。如果总线上存在

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号