数字温度计设计实训报告_第1页
数字温度计设计实训报告_第2页
数字温度计设计实训报告_第3页
数字温度计设计实训报告_第4页
数字温度计设计实训报告_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、1 / 47 文档可自由编辑 西安航空职业技术学院西安航空职业技术学院 小系统设计实训报告小系统设计实训报告 论文题目:论文题目: 智能温度计 所属系部:所属系部: 电子工程系电子工程系 指导教师:指导教师: 潘晶莹潘晶莹 学生姓名:学生姓名: 谭晓辉谭晓辉 学学号号: : 0920212609202126 程程 创创 学学号号: : 0920220409202204 专专业:业: 电子信息工程技术电子信息工程技术 西安航空职业技术学院制西安航空职业技术学院制 西安航空职业技术学院西安航空职业技术学院 2 / 47 文档可自由编辑 小系统设计实训任务书小系统设计实训任务书 题目:题目: 智能温

2、度计智能温度计 任务与要求:任务与要求: 1、查阅数字温度计设计相关资料,熟悉数字温度 计设计的原 理, 查阅A/D转换及传感器相关知识,画出数字温度计原理图, 并编写相应 的源程序。 2、使用8051单片机作为处理器,设计数字温度计设计, 设定温 度最高值和最低值,若采集到的温度超过设定值,发出不同声音 的报警。位 数码管进行循环显示,显示实际温度值。 3、使用传感器采集室内温度参数,并进行A/D转换后, 送给单片 机进行处理。 4、可用按键设定上下限,当设定时显示设 定状态,设定完成,即显示实时温度值。 3 / 47 文档可自由编辑 5、并用喇叭报警。 时间:时间: 2010 年 12 月

3、 19 日 至 2010年 12 月 31 日 共 2周 所属系部:所属系部: 电子工程系电子工程系 学生姓名:学生姓名: 谭晓辉谭晓辉 学学 号:号: 0920212609202126 程程 创创 学学 号:号: 0920220409202204 专业:专业: 电子信息工程技术电子信息工程技术 指导教师:潘晶莹指导教师:潘晶莹 西安航空职业技术学院制西安航空职业技术学院制 摘要摘要 温度的检测与控制是工业生产过程中比较典型的应用之一,随 着传感器在生活中的更加广泛的应用,利用新型数字温度传感器实 现对温度的测试与控制得到更快的开发,本文设计了一种基于 80C51 的温度检测及报警系统。该系统

4、可以方便的实现温度采集和 显示,并可根据需要任意设定上下限报警温度,它使用起来相当方 便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适 合于我们日常生活和工、农业生产中的温度测量,也可以当作温度 处理模块嵌入其它系统中,作为其他主系统的辅助扩展。该系统设 计和布线简单,结构紧凑,抗干扰能力强,在大型仓库、工厂、智 能化建筑等领域的温度检测中有广泛的应用前景。 关键字:关键字:单片机;数字滤波; 80C51;辅助扩展。 4 / 47 文档可自由编辑 目录目录 摘要摘要 关键字关键字 1 1 前言前言 .1 1 1.1 课程设计的目的和意义.1 1.2 任务及要求.1 2 2 系统总体方

5、案及硬件设计系统总体方案及硬件设计.2 2 2.1 系统总体方案设计.2 2.1.1 原理论述.2 2.1.2 原理框图.2 2.1.3 功能模块连接简介 .3 5 / 47 文档可自由编辑 2.2 系统硬件电路设计.3 2.2.1 单片机的选择 .3 2.2.2 时钟电路设计 .5 2.2.3 复位电路设计 .6 2.2.3 报警电路.7 2.2.4 温度显示电路.7 2.2.5 温度传感器 .7 3 3 软件设计软件设计.1010 3.1 系统总体方案设计.10 3.2 程序设计.11 3.2.1 主程序.11 3.2.2 读出温度子程序.12 3.2.3 二进制转换 BCD 码命令子程序

6、 .12 3.2.4 计算温度子程序.13 3.2.5 温度数据显示子程序 .13 4 4 实验仿真实验仿真.1313 5 5 系统调试系统调试 .1414 5.1软件调试 .14 6 6 课程设计体会课程设计体会 .1414 参考文献参考文献.1616 附附 1 1 源程序代码源程序代码 .1717 6 / 47 文档可自由编辑 附附 2 2 系统电路图系统电路图 .2 2 元器件清单元器件清单.1 1 使用说明使用说明.1 1 1 / 47 文档可自由编辑 1 1 前言前言 最早的温度计是在 1593 年由意大利科学家伽利略(15641642)发 明的。他的第一只温度计是一根一端敞口的玻璃

7、管,另一端带有核 桃大的玻璃泡。后来,法国人布利奥在 1659 年制造的温度计,他把 玻璃泡的体积缩小,并把测温物质改为水银,这样的温度计已具备 了现在温度计的雏形。荷兰人华伦海特在 1709 年利用酒精,在 1714 年又利用水银作为测量物质,制造了更精确的温度计。 随着科学技术的发展和现代工业技术的需要,测温技术也不断 地改进和提高。由于测温范围越来越广,精度要求越来越高,根据 不同的要求,又制造出满足不同需要的测温仪器。本设计采用的是 温度传感器 DS18B20,能直接读出被测温度,并且可根据实际要求 通过简单的编程实现 912 位的数字值读数方式。 1.11.1 课程设计的目的和意义课

8、程设计的目的和意义 通过课程设计使我进一步熟悉了单片机的内部结构和工作原理, 掌握了单片机应用系统设计的基本方法和步骤;通过利用 MCS-51 单 片机,理解单片机在自动化装置中的作用以及掌握单片机的编程调 试方法;通过设计一个简单的实际应用输入控制及显示系统,掌握 protues 和 keil 以及各种仿真软件的使用。 目前温度计的发展很快,从原始的玻璃管温度计发展到了现在 的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等, 温度计中传感器是它的重要组成部分,它的精度、灵敏度基本决定 了温度计的精度、测量范围、控制范围和用途等。传感器应用极其 广泛,目前已经研制出多种新型传感器。但是

9、,作为应用系统设计 2 / 47 文档可自由编辑 人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连 接起来,从而构成性能优良的监控系统。 1.21.2 任务及要求任务及要求 1、设计一个简单数字温度计,能够测量通常环境下的温度,能 够实现零下温度的测量,能够测量小数。 2、使用传感器采集室内温度参数,并进行A/D转换后,送给单 片机进行处理。 3、可用按键设定上下限,当设定时显示设定状态,设定完成, 即显示实时温度值。 4、并用喇叭报警。 2 2 系统总体方案及硬件设计系统总体方案及硬件设计 2.12.1 系统总体方案设计系统总体方案设计 2.1.12.1.1 原理论述原理论述 由于

10、本设计是测温电路,可以使用一只温度传感器 DS18B20,此 传感器,可以很容易直接读取被测温度值,进行 A/D 转换,将数据 传入 80C51 单片机中,单片机处理后,通过 LED 显示出当前实测温 度。通过长按按键 K1 时,可显现温度上限,通过按键 K2,K3 分别实 现对上限温度的加减;再次长按按键 K1 时,可显示下限温度,通过 K2,K3 实现对下限温度的调整。当实测温度超过上限温度值时,亮 红灯并报警;当实测温度低于下限温度值时,黄灯亮并报警。 3 / 47 文档可自由编辑 2.1.22.1.2 原理框图原理框图 温度计电路设计总体设计框图如图 2-1 所示,控制器采用单片 机

11、80C51,温度传感器采用 DS18B20,用四位 LED 数码管以并口传送 数据实现温度显示。 图 2-1 原理框图 2.1.32.1.3 功能模块连接简介功能模块连接简介 温度传感器的接口 2 连接单片机 P3.4,用于传送数据,接口 3 连接电源,接口 1 接地;数码管的段码输入端连接单片机的 P1 端口, 公共端接 P3.0-P3.1,单片机的 P0 端口接上拉电阻,时钟电路连接 XTAL,复位电路连接 RST。 2.22.2 系统硬件电路设计系统硬件电路设计 2.2.12.2.1 单片机的选择单片机的选择 单片 80C51 具有低电压供电和体积小等特点,四个端口只需要 两个口就能满足

12、电路系统的设计需要,很适合便携手持式产品的设 计使用系统可用二节电池供电。 主主 控控 器器 件件 复位电路 温度采集 按键电路 驱动电路 LED 显示 报警电路 时钟电路 4 / 47 文档可自由编辑 80C51主要特性 与 MCS-51 单片机产品兼容 4K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态工作:0Hz 33MHz 32 个可编程 I/O 口线 2 个 16 位定时器/计 数器 6 个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 灵活的 ISP 编程 4.0-5.5V 电压工作 范围 单片机 80C5

13、1 的内部结构总框图。它可以划分为 CPU、存储器、 并行口、串行口、定时/计数器和中断逻辑几个部分。 80C51 外部引脚功能如图 2-2 所示 5 / 47 文档可自由编辑 图 2-2 80C51 引脚图 本次设计需要注意的几个端口: P0 口(3932):是一组 8 位漏极开路行双向 I/O 口,也既地 址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式 驱动 8 个 TTL 逻辑电路,对端口写“1”可作为高阻抗输入输入端用。 在访问外部数据存储器时,这组口线分时转换地址(低 8 位)和数 据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,PO 口接收指令字节,而

14、在程序校验时,输出指令字节,校验时,要求 接上拉电阻。 P3 口(1017):是一组带有内部上拉电阻的 8 位双向 I/O 口, ,P1 的输入缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。 对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。 作输出端口时,被外部拉低的 P3 口将用上拉电阻输出电流。P3 口 除可作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 2.2.1-1 所示: 6 / 47 文档可自由编辑 表 2.2.1-1 引脚功能表 /Vpp(31):内部和外部程序存储器选择线。=0 时访问外部EAEA ROM 0000HFFFFH;=1

15、时,地址 0000H0FFFH 空间访问内部EA ROM,地址 1000HFFFFH 空间访问外部 ROM。本次设计接高电平。EA XTAL1(19)和 XTAL2(18):使用内部振荡电路时,用来接石 英晶体和电容;使用外部时钟时,用来输入时钟脉冲。 RST/VPD(9):复位信号输入端。AT89S51 接能电源后,在时钟 电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。 第二功能是 VPD,即备用电源输入端。当主电源 Vcc 发生故障,降低 到低电平规定值时,VPD将为 RAM 提供备用电源,发保证存储在 RAM 中的信号不丢失。 7 / 47 文档可自由编辑 2.2.22.2

16、.2 时钟电路设计时钟电路设计 80C51 时钟有两种方式产生,即内部方式和外部方式。 (如图 2- 4 所示)80C51 中有一个构成内部震荡器的高增益反向放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与 作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电 路如图。外接石英晶体(或陶瓷震荡器)及电容 C1、C2 接在放大器 的震荡回路中构成并联震荡电路。对外接电容 C1、C2 虽然没有非常 严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作 的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推 荐使用 30pF10pF,而如果使用陶

17、瓷谐振器建议选择 40pF10pF。 用户还可以采用外部时钟,采用外部时钟如图所示。在这种情况下, 外部时钟脉冲接到 XTAL1 端,既内部时钟发生器的输入端,XTAL2 悬空。由于外部时钟信号是通过一个 2 分频的触发器后作为内部时 钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续 的时间和最大低电平持续的时间应符合产品技术条件的要求。本次 设计采用内部震荡电路,瓷片电容采用 30P,晶振采用 12MHZ。 图 2-4 震荡电路 2.2.32.2.3 复位电路设计复位电路设计 容采用电容值为 10 的电解电容。具体连接电路如图 2-5 所示: 单片机系统的复位电路在这里采用的是上电

18、+按钮复位电路形式,其 8 / 47 文档可自由编辑 中电阻 R 采用 10K 的阻值,电 图2-5复位电路 2.2.32.2.3 报警电路报警电路 如图 2-6 所示 图 2-6 报警电路 2.2.42.2.4 温度显示电路温度显示电路 9 / 47 文档可自由编辑 I/O C 64 位 ROM 和 单 线 接 口 高 速 缓 存 存储器与控制逻辑 温度传感 器 高温触发器 TH 低温触发器 TL 配置寄存 器 8 位 CRC 发生 器 Vdd 图 2-7 显示电路 四位共阳极数码管,能够显示小数和负温度。零下时,1 显示负 号。 2.2.52.2.5 温度传感器温度传感器 DS18B20

19、温度传感器是美国 DALLAS 半导体公司最新推出的一种 改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能 直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。DS18B20 的性能特点如下: 独特的单线接口仅需要一个端口引脚进行通信; 多个 DS18B20 可以并联在惟一的三线上,实现多点组网功 能; 无须外部器件; 可通过数据线供电,电压范围为 3.05.5V; 零待机功耗; 温度以 9 或 12 位数字; 用户可定义报警设置; 报警搜索命令识别并标志超过程序限定温度(温度报警条 件)的器件; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,

20、但不能正常工作; DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,其内部结构框 图如图 2-6 所示。 10 / 47 文档可自由编辑 图 2-6 DS18B20 原理图 64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件 的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码, 这也是多个 DS18B20 可以采用一线进行通信的原因。温度报警触发 器 TH 和 TL,可通过软件写入户报警上下限。 DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一 个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为

21、 8 字节的 存储器,结构如图 2.3 所示。头 2 个字节包含测得的温度信息,第 3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。 第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换 分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度 数值。该字节各位的定义:低 5 位一直为 1,TM 是工作模式位,用 于设置 DS18B20 在工作模式还是在测试模式,DS18B20 出厂时该位 被设置为 0,用户要去改动,R1 和 R0 决定温度转换的精度位数,来 设置分辨率 DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度 数据转

22、换时间越长。因此,在实际应用中要将分辨率和转换时间权 衡考虑。温度传感器 18B20 汇编程序,采用器件默认的 12 位转化,最 大转化时间 750 微秒 ,可以将检测到的温度直接显示到 80C51 的两 个数码管上 表 2.2.5-1 DS18B20 温度转换时间表 R1R0分辨率/位温度最大转换时间 /MS 00993.75 0110187.5 11 / 47 文档可自由编辑 1011375 1112750 高速暂存 RAM 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证 通信数据的正确性。 当 DS18B20

23、接收到温度转换命令后,开始启动转换。转换完成 后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存 存储器的第 1、2 字节。单片机可以通过单线接口读出该数据,读数 据时低位在先,高位在后,数据格式以 0.0625LSB 式表示。 当符号位 S0 时,表示测得的温度值为正值,可以直接将二进 制位转换为十进制;当符号位 S1 时,表示测得的温度值为负值, 要先将补码变成原码,再计算十进制数值。表 2 是一部分温度值对 应的二进制温度数据。 DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。若 TTH 或 TTL,则将该器件内的报警 标志位置

24、位,并对主机发出的报警搜索命令做出响应。因此,可用 多只 DS18B20 同时测量温度并进行报警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC) 。 主机 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比 较,以判断主机收到的 ROM 数据是否正确。 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的 时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作按协 议进行。操作协议为:初使化 DS18B20(发复位脉冲)发 ROM 功 能命令发存储器操作命令处理数据。 分别说明如下: 1、初始化 单总线的所有

25、处理均从初始化开始。初始化过程是 主机通过向作为从机的 DS18B20 芯片发一个有时间宽度要求的初始 化脉冲实现的。初始化后,才可进行读写操作。 2 、ROM 操作命令 总线主机检测到 DS18B20 的存在 便可以发 出 ROM 操作命令之一 这些命令表 2.2.5-2: 表 2.2.5-2 ROM 操作命令 指指 令令代代 码码 12 / 47 文档可自由编辑 Read ROM(读 ROM) 33H Match ROM(匹配 ROM) 55H Skip ROM(跳过 ROM CCH Search ROM(搜索 ROM) F0H Alarm search(告警搜索) ECH 3、存储器操作

26、 命令如表 2.2.5-3: 表 2.2.5-3 存储器操作命令 指令代码 Write Scratchpad(写暂存存储 器) 4EH Read Scratchpad(读暂存存储 器) BEH Copy Scratchpad(复制暂存存 储器) 48H Convert Temperature(温度变 换) 44H Recall EPROM(重新调出) B8H Read Power supply(读电源) B4H 3 3 软件设计软件设计 3.13.1 系统总体方案设计系统总体方案设计 本次课程设计采用的是 protues 软件仿真,用 Keil 软件进行 编译。Protues 软件是英国 La

27、bcenter electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能 13 / 47 文档可自由编辑 仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件 的工具。 软件部分由主程序,读出温度子程序,温度转换命令子程序, 计算温度子程序,显示数据刷新子程序等。 3.23.2 程序设计程序设计 3.2.13.2.1 主程序主程序 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值,温度测量每 1s 进行一次。这样可以在一秒之 内测量一次被测温度,其程序流程见图 3-1 所示。 图 3-1 主程序流程 14 /

28、 47 文档可自由编辑 3.2.23.2.2 读出温度子程序读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需 进行 CRC 校验,校验有错时不进行温度数据的改写。其程序流程图 如图 3-2 所示 15 / 47 文档可自由编辑 图 3-2 读出温度子程序流程 3.2.33.2.3 二进制转换二进制转换 BCDBCD 码命令子程序码命令子程序 二进制转换 BCD 码命令子程序主要是发温度转换开始命令,当 采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。二进制转换 BCD 码命令子程序流 程图,如图 3-3

29、图 3-3 二进制转换 BCD 码流程图 3.2.43.2.4 计算温度子程序计算温度子程序 将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定。 3.2.53.2.5 温度数据显示子程序温度数据显示子程序 显示数据子程序主要是对显示缓冲器中的显示数据进行刷新操 作,查表送段码至 LED,开位码显示,采用动态扫描方式。 发 DS18B20 复位命令 发跳过 ROM 命令 发温度转换开始命令 结束 16 / 47 文档可自由编辑 4 4 实验仿真实验仿真 实验仿真在 Protuse 仿真软件中进行,电路总图详见附图 。 5 5 系统调试系统调试 5.15.1软件调试软件调试

30、本系统的软件系统较大,全面采用汇编语言编写,除语法和逻辑 差错外,当确认程序没问题时,直接下载到单片机仿真调试。采取 自下而上的方法,单独调好每一个模块,最后完成一个完整的系统 调试。 6 6 结束语结束语 本系统的设计,是为了保证某特定环境温度维持在设定的范围 内,以保证工作系统在稳定的状态下工作。本系统的设计成本很低。 如果采用大批量生产的话,生产成本会更低。在市场上的温度自动 控制系统的价格在百元人民币以上。对于本系统的使用者来说,本 系统能够很稳定的控制温度而且稳定性很高。只要配上适当的温度 传感器,这个系统便还可以实现很多领域的温度自动控制。这对于 提高系统的利用率,避免重复设计有很

31、大的帮助的。在本系统的作 用下,可以为工作系统提供一个良好的环境,使产品的数量和质量 有很大的提高。使得产品的生产成本降低,从而使系统的使用者获 17 / 47 文档可自由编辑 得的利润提高了。 通过分析表明:本系统是一个性价比比较好的系统,不论对于 生产者还是使用者来说,它都可以带来好的经济效益。 本次的课程设计使我们进一步巩固了书本上的知识,做到了学 以致用。这是我们第二次自己动手设计的电路,通过系统仿真软件 protues 和编译软件 keil,使我们进一步了解了单片机的设计制作 过程,其中最为困难的是软件部分,即编程部分,我们上网找了好 多资料,虽然经过自己的修改,但还是有很多功能不能

32、实现,如报 警和温度上下限设置。由于 protues 并不是很熟练,在使用的过程 中有很多原件的名称不知道,从而花费了大量的时间在网上查找, 今后应该在这方面多多努力。最后一步的焊接硬件也遇到了不少麻 烦,P0 端口没有加上拉电阻,P1 端口没有加电阻导致数码管不亮或 者亮度不够。总结经验的时候我们得出这样的结论,学习应该学以 致用,有目的的去学习,如果学了不用等于没学。其次,要学以致 用,理论联系实际,这样才会取得事半功倍的效果。 这次设计基本的完成了任务书的要求,实现了温度的控制。通过 测试表明系统的设计是正确的,可行的。但是由于设计者的设计经 验和知识水平有限,系统还存在许多不足和缺陷

33、18 / 47 文档可自由编辑 参考文献参考文献 1 康华光,陈大钦,张林.电子技术基础 模拟部分(第五版).高等 教育出版社.2006.103-108 2余发山.单片机原理及应用技术.中国矿业大学出版社,2003.31- 32 3 51 单片机学习网 4张洪润 张亚凡编著. 单片机原理及应用. 清华大学出版社. 2003 年.。 5楼然苗 李光飞编著. 单片机课程设计指导书. 北京航空航天 大学出版社 19 / 47 文档可自由编辑 附附 1 1 系统电路图系统电路图 20 / 47 文档可自由编辑 附图 1-1 电路总图 、 21 / 47 文档可自由编辑 附附 2 2 源程序代码源程序代

34、码 ; * * ; TIMEL EQU 0E0H TIMEH EQU 0B1H TEMPHEAD EQU 36H ; ;* * * ; 工作内存定义 ;* * * BITST DATA 20H TIME1SOK BIT BITST.1 TEMPONEOK BIT BITST.2 TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H ; ; ;* * * ; 引脚定义 ;* * * ; TEMPDIN BIT P3.4 TH BIT 2 / 47 文档可自由编辑 P1.3 TL BIT P1.4 ; ;* * * ; 中断向量

35、区 ;* * * ORG 0000H LJMP START ORG 00BH LJMP T0IT ;* * * ; 系统初始化 ;* * * ORG 0100H START: MOV SP,#60H CLSMEM: MOV R0,#20H MOV R1,#60H CLSMEM1: MOV R0,#00H INC R0 DJNZ R1,CLSMEM1 ; MOV TMOD,#00100001B MOV TH0,#TIMEH MOV TL0,#TIMEL SJMP INIT ; ERROR: NOP LJMP START ; NOP INIT: NOP SETB ET0 SETB TR0 SETB

36、 EA 3 / 47 文档可自由编辑 MOV PSW,#00H CLR TEMPONEOK MOV 80H,#00H MOV 79H,#28H MOV 78H,#0BH MOV 77H,#01H MOV P1,#00H LJMP MAIN ; ;* * * ; 定时器 0 中断程序 ;* * * T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R7,#32H,TOIT1 MOV R7,#00H SETB TIME1SOK TOIT1: POP PSW RETI ; ; ; ;* * * ; 主程序 ;*

37、 * * MAIN: LCALL DISP1 JNB TIME1SOK,MAIN CLR TIME1SOK JNB TEMPONEOK,MAIN2 LCALL READTEMP1 LCALL CONVTEMP 4 / 47 文档可自由编辑 LCALL DISPBCD LCALL DISP1 MAIN2: LCALL READTEMP SETB TEMPONEOK LCALL KEY LCALL SHENGJIANG LCALL SHENGJIANG1 ;LCALL BAOJING LJMP MAIN ;* * ; 数值比较子程序 ;* * SHENGJIANG:CLR C CLR TH MOV

38、 A,#0AH CJNE A,73H,MAN MOV A,#0AH CJNE A,72H,MAN4 LJMP MAN1 MAN4: JNC MAN2 LJMP SS MAN: JNC MAN2 ;C=0 跳转 LJMP SS MAN3: CLR C MOV A,80H ANL A,#0FH CJNE A,73H,MAX MAN2: CLR C MOV A,79H SWAP A ANL A,#0FH CJNE A,72H,MAX MAN1: CLR C MOV A,79H ANL A,#0FH CJNE A,71H,MAX CLR TH JMP SS MAX: JC BJ CLR TH JMP

39、SS 5 / 47 文档可自由编辑 BJ: SETB TH LCALL DELAY10 ret SS: RET ;* * SHENGJIANG1:CLR C CLR TL MOV A,78H ANL A,#0FH CJNE A,73H,MAX1 CLR C MOV A,77H SWAP A ANL A,#0FH CJNE A,72H,MAX1 CLR C MOV A,77H ANL A,#0FH SUBB A,71H CJNE A,71H,MAX1 JC BJ CLR TL JMP SS MAX1: JC BJ1 CLR TL JMP SS1 BJ1: setb TL LCALL DELAY1

40、0 ret SS1: RET DELAY10:MOV R5,#200 DEL:MOV R6,#123 NOP DJNZ R6,$ DJNZ R5,DEL RET ;* * ; 报警子程序 ;* 6 / 47 文档可自由编辑 * ; BAOJING:JB TH, TEMPERTURE ; JB TL, TEMPERTURE0 ; RET ;TEMPERTURE: SETB P1.7 ;TEMPERTURE0: LCALL DELAY10 ; CLR P1.7 ; LCALL DELAY10 ; RET ; DELAY10:MOV R5,#200 ; DEL:MOV R6,#123 ; NOP ;

41、 DJNZ R6,$ ; DJNZ R5,DEL ; RET ;* * ; 按键 ;* * KEY: MOV P1,#0E7H KEY0: JB P1.0, KEE ;设 置 MOV 75H,#01H CALL D10MS JNB P1.0,$ KKK:MOV A,80H ;上限 ANL A,#0FH MOV 73H,A MOV A,79H SWAP A ANL A,#0FH MOV 72H,A MOV A,79H ANL A,#0FH MOV 71H,A MOV A,#00H 7 / 47 文档可自由编辑 ANL A,#0FH MOV 70H,A LCALL DISP1 LCALL KEY1

42、 JB P1.0,KKK MOV 75H,#01H CALL D10MS JNB P1.0,$ KYY:MOV A,78H;下限 ANL A,#0FH MOV 73H,A MOV A,77H SWAP A ANL A,#0FH MOV 72H,A MOV A,77H ANL A,#0FH MOV 71H,A MOV A,#00H ANL A,#0FH MOV 70H,A LCALL DISP1 LCALL KEEY1 JB P1.0,KYY MOV 75H,#01H CALL D10MS JNB P1.0,$ KEE: MOV P1,#00H RET ; ; KEY1: JB P1.1,KEY

43、2 ;加 CALL D10MS JNB P1.1,$ CLR C MOV 75H,#01H MOV A,79H ADDC A,75H DA A MOV 79H,A JNC LS MOV A,80H ADDC A,#00H DA A 8 / 47 文档可自由编辑 MOV 80H,A LS:JMP KYKK KEY2: JB P1.2,KYKK;减 CALL D10MS JNB P1.2,$ CLR C MOV 75H,#01H MOV A,79H SUBB A,75H MOV 76H,A CJNE A,#00H,LSAS MOV A,#09H ORL A,#09H LSAS: MOV 79H,A

44、 JNC LSS MOV A,80H SUBB A,#00H DA A MOV 80H,A LSS:JMP KYKK KYKK: RET ; ; KEEY1:JB P1.2,KEEY2 ;加 CALL D10MS JNB P1.2,$ CLR C MOV 75H,#01H MOV A,77H ADDC A,75H DA A MOV 77H,A JNC LS1 MOV A,78H ADDC A,#00H DA A MOV 78H,A LS1:JMP KYKK KEEY2:JB P1.1,KYKKK; 减 CALL D10MS JNB P1.1,$ MOV 75H,#01H MOV A,76H 9 / 47 文档可自由编辑 SUBB A,75H MOV 76H,A JMP KYKKK KYKKK:RET ;* ;* ; 子程序区 ;* ; RESET DS18B20 ;* INITDS1820:SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6,#0A0H DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SETB TEMPDIN MOV R6,#32H

温馨提示

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

评论

0/150

提交评论