数字温度计设计精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字温度计实验报告 一, 实验目的 1. 学习80C52单片机的内部的定时器及各接口的功能及应用。 2. 设计任务及要求利用实验平台上LED数码管和蜂鸣器设计具有最低、最高温度查询,实时显示和报警功能的数字温度器。 二,实验要求 基本要求: 1:能够实时显示环境温度。 2:能够保存使用时间内的最大值和最小值,能够查阅。 3:有温度报警功能,能够设置报警温度。用绿灯表示正常温度,红灯表示报警同时发声。 扩展功能: 查询最低和最高温度时,指示灯蓝灯和黄灯分别表示当前先显示的是高温还是低温。 三,实验基本原理 利用单片机定时器完成报警检测功能。每隔一段时间定时器0对当前温度值进行检测,当超过设定温度30度时红灯亮并发生报警。 为了将时间在LED数码管上显示当前温度,采用动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 该设计采用四按键输入,当按键1(2)按下,可分别查看当前最低(最高)温度。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机和ds18b20温度传感器进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,它有以下特点: 1、拥有灵巧的8位CPU和在系统可编程Flash 2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程序存储器(ROM)为 8KB 4、内部数据存储器(RAM)为 256字节 5、32 个可编程I/O 口线 6、8 个中断向量源 7、三个 16 位定时器/计数器 8、三级加密程序存储器 9、全双工UART串行通道 Ds18b20管脚图为: ds18b20管脚图 DS18B20的引脚: DQ为数字信号输入/输出端GND为电源地VDD为外接供电电源输入端(在寄生电源接线方式时接地 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为温度获取程序,中断程序,显示程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要蜂鸣器,led灯和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能! 五,实验要求实现 A.电路设计 1. 整体设计 此次设计主要是应用单片机来设计数字温度计,硬件部分主要分以下电路模块:输出电路用8个共阴数码管、四个led灯和蜂鸣器显示,键盘进行温度设置报警温度。电路的总体设计框架如下: 2. 分块设计 模块电路主要分为:输入部分、输出部分、及温度读取电路。 2.1 输入部分 输入部分 外电路输入部分主要用于查询当前最低和最高温度。KEY1\KEY2分别控制最低和最高温度的显示。 2.2 输出部分 输出部分 本电路的输出信号为7段数码管的位选和段选信号,蜂鸣器信号,提示灯信号。 本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入。 程序将获得的温度实时地显示在数码管上;当温度超过设定的数值时,红灯亮,蜂鸣器响。当查询最低温度时,蓝灯亮,最高温度时绿灯亮。 晶振与复位电路 本实验单片机时钟用内部时钟,模块如下: 温度检测模块: DQ接P1.0,用于单总线传送。温度读取模块主程序如下: sendChangeCmd(); tempValue1 = getTmpValue(); temp = abs(tempValue1); tempL=(tempL temp ? temp :tempL ); tempH=(tempH temp ? temp :tempH ); if(KEY1==0){temp= tempL; test1=0; EA=0; while(j--)display();

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档