版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I电 子 系 统 设 计 学院: 矿业技术学院 班级: 自单招 13-1 班 姓名: 刘田梁 学号: 1326630120 I电 子 系 统 设 计 学院: 矿业技术学院 班级: 自单招 13-1 班 姓名: 郝小杭 学号: 1326630109 I目录目录摘摘 要要.I第第 1 章章 前言前言.- 1 -第第 2 章章 数字温度计总体设计方案数字温度计总体设计方案 .- 1 -2.1 数字温度计设计方案.- 1 -2.2 总体设计框图 .- 1 -第第 3 章章 数字温度计硬件设计数字温度计硬件设计.- 2 -3.1 主控制器 AT89C51.- 2 -3.1.1 AT89C51 的特点及特
2、性:.- 2 -3.1.2 管脚功能说明:.- 3 -3.1.3 片内振荡器:.- 4 -3.1.4 芯片擦除:.- 5 -3.2 单片机主板电路.- 5 -3.3 温度采集部分的设计.- 6 -3.3.1 温度传感器 DS18B20.- 6 -3.3.2 DS18B20 温度传感器与单片机的接口电路 .- 10 -3.4 显示部分电路设计.- 10 -3.4.1 74LS164 引脚功能及特性.- 10 -3.4.2 温度显示电路.- 11 -3.5 报警系统电路.- 12 -第第 4 章章 数字温度计的软件设计数字温度计的软件设计.- 13 -4.1 系统软件设计的流程图.- 13 -附录
3、:附录: .- 16 -附录一丶设计原理图.- 16 -附录二丶数字温度计部分程序清单.- 17 -结束语结束语 .- 23 -参考文献参考文献.- 24 -I摘摘 要要随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示。该设计控制器使用单片机AT89C51,测温传感器使用 DS18B20,用 3 位共阳极 LED 数码管以串口传送数据,实现温度显示。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置
4、范围内时,可以报警。此外本文还介绍了数字温度计的硬件设计和软件设计,硬件设计主要包括主控制器、单片机的主板电路、温度采集部分电路、显示电路以及报警系统电路。 软件设计包括系统软件的流程图和数字温度计的部分程序清单。关键词:关键词:AT89C51 单片机,数字控制,测温传感器,多功能温度计 - 1 -第第 1 章章 前言前言随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。现代信息技术的飞速发展和传统工业改造的逐步实现。能
5、够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,所以传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。本文是以单片机 AT89C51 为核心,通过 DALLAS 公司的单总线数字温度传感器 DS18B20 来实现环境温度的采集和 A/D 转换,用来测量环境温度,温度分辨率为 0.0625,并能数码显示。因此本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽其电路简单,软硬件结构模块化,易于实现等特点。数字式温度计的设计将
6、给人们的生活带来很大的方便,为人们生活水平的提高做出了贡献。数字温度计在以后将应用于我们生产和生活的各个方面,数字式温度计的众多优点告诉我们:数字温度计将在我们的未来生活中应用于各个领域,它将会是传统温度计的理想 的替代产品。第第 2 章章 数字温度计总体设计方案数字温度计总体设计方案2.1 数字温度计设计方案数字温度计设计方案方案 一:采用热敏电阻器件,利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,利用单片机进行数据的处理,然后在显示电路上,将被测温度显示出来。 方案 二:利用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以
7、采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换就可以满足设计要求。分析上述两种方案可以看出方案一是使用热敏电阻之类的器件利用其感温效应,进行 A/D 转换后,利用单片机进行数据的处理,在显示电路上被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦。方案二是利用温度传感器直接读取被测温度,读数方便,测温范围广,测温精确,适用范围宽而且电路简单易于实现。 综合方案一和方案二的优缺点,我们选择方案二。2.2 总体设计框图总体设计框图- 2 -温度计电路设计总体设计方框图如图 2-1 所示,控制器采用单片机AT89C51,温度传感器采用 DS1
8、8B20,用 4 位 LED 数码管以串口传送数据实现温度显示。图 2-1总体设计方框图第第 3 章章 数字温度计硬件设计数字温度计硬件设计3.1 主控制器主控制器 AT89C513.1.1 AT89C51 的特点及特性:的特点及特性:40 个引脚,4K Bytes FLASH 片内程序存储器,128 Bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51 在空闲模式下,CPU 暂停工作,而 RAM 定时计数器
9、,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。主要功能特性: 兼容 MCS-51 指令系统 4k 可反复擦写(1000 次)ISP FLASH ROM 32 个双向 I/O 口 4.5-5.5V 工作电压2 个 16 位可编程定时/计数器 时钟频率 0-33MHZ全双工 UART 串行中断口线 主 控 制 器LED显示温度传感器单片机复位时钟振荡报警点按键调整- 3 -128X8 BIT 内部 RAM2 个外部中断源 低功耗空闲和省电模式
10、中断唤醒省电模式 3 级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的 ISP 字节和分页编程 双数据寄存器指针3.1.2 管脚功能说明:管脚功能说明:AT89C51 管脚如图 3-1 所示:图 3-1 AT89C51 管脚图(1)VCC:供电电压。(2)GND:接地。(3)P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外
11、部必须被拉高。(4)P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。(5)P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可- 4 -接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外
12、部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。(6)P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)
13、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 口同时为闪烁编程和编程校验接收一些控制信号。(7)RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。(8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器
14、频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。(10)/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFF
15、H),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加 12V 编程电源(VPP)。(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(12)XTAL2:来自反向振荡器的输出。- 5 -3.1.3 片内振荡器:片内振荡器:该反向放大器可以配置为片内振荡器,如图 3-2 所示。图 3-2 片内振荡器3.1.4 芯片擦除:芯片擦除:整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,
16、代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。单片机AT89C51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。单片机 AT89C51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计
17、需要,很适合便携手持式产品的设计使用系统可用二节电池供电。3.2 单片机主板电路单片机主板电路单片机 AT89C51 是数字温度计的核心元件,单片机的主板电路如图 3-3 所示,包括单片机芯片、报警系统电路、晶振电路、上拉电阻以及与单片机相连的其他电路。- 6 -图 3-3 单片机的主板电路3.3 温度采集部分的设计温度采集部分的设计3.3.1 温度传感器温度传感器 DS18B20DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。
18、TO92 封装的 DS18B20 的引脚排列见图 3-4,其引脚功能描述见表 3-1。表 3-1DS18B20 详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄电源下,也可以向器件提供电源。3VDD可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。图 3-4 DS18B20 引脚排列DS18B20 的性能特点如下:- 7 -独特的单线接口仅需要一个端口引脚进行通信;多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为 3.05.5V;零待机功耗;温度以 9 或 12 位数
19、字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,其内部结构框图如图3-5 所示。图 3-5 DS18B20 内部结构64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。温度报警触发器 TH 和 TL,可通过软件写入户报警上下限。DS18B20 温度传感器的内部存储器还包括
20、一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 3-6 所示。头 8 个字节包含测得的温度信息,第 8 和第 8 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 8 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 3-6 所示。低 8 位一直为,TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,I/OC64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器 TH低温触发器 T
21、L配置寄存器 8 位 CRC 发生器Vdd- 8 -DS18B20 出厂时该位被设置为 8,用户要去改动,R1 和 R0 决定温度转换的精度位数,来设置分辨率。TM R11R01111.图 3-6DS18B20 字节定义由表 3-2 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表 3-2 DS18B20 温度转换时间表R1R0分辨率(位)温度最大转向时间(ms)00993.750110187.510113751112750高速暂存 RAM 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节
22、读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 0.0625LSB 形式表示。温度 LSB温度 MSBTH 用户字节 1TL 用户字节 2配置寄存器保留保留保留CRC- 9 -当符号位 S0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位 S1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表 3
23、-3 是一部分温度值对应的二进制温度数据。DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。若 TTH 或 TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行报警搜索。在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC) 。主机ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的 ROM 数据是否正确。DS18B20 的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲
24、信号送给减法计数器 1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器 1、温度寄存器中,计数器 1 和温度寄存器被预置在55所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振
25、产生的脉冲信号进行计数,如此循环直到减法计数器计数到 0 时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表 3-3 一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 00
26、00 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 FE6FH- 10 -1111-551111 1100 1001 0000FC90H另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为:初使化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。3.3.2 DS18B20 温度传感器与单片机的接口电路温度传感器与单片机的接口电路DS18B
27、20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源;另一种是寄生电源供电方式,如图 3-7 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。图 3-7 DS18B20 与单片机的接口电路当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于 DS18B20 是在一根I/O 线上读写数据,因此,对
28、读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。3.4 显示部分电路设计显示部分电路设计3.4.1 74LS164 引脚功能及特性引脚功能及特性74LS164 是一个串入并出的 8 位移位寄存器,他常用于单片机系统中,下面总结一下这个元件的基本知识如图 3-10 为 74LS164 引脚图, 图 3.11 为74LS164 内部功能图。- 11 -图 3-10 74LS164 引脚图 3-11 74LS164 内部功能图 串行输入带锁存 时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达 36MHZ 功耗:10mW/bit 74 系列工作
29、温度: 0C 70C Vcc 最高电压:7V 输入最高电压:7V 高电平:-0.4mA. 低电平:8mA.3.4.2 温度显示电路温度显示电路温度显示电路(如图 3-12)采用 4 位共阳 LED 数码管,从 P3 口RXD,TXD 串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,该显示电路只使用单片机的 3 个端口:- 12 -P1.7,P3.0,P3.1,并配以 4 片串入并出移位寄存器 74LS164(LED 驱动)四只数码管采用 74LS164 右移寄存器驱动,显示比较清晰。其工作过程如下:1.串行数据由 P3.0 发送,移位时钟由 P3.1 送出。2.
30、在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74LS164 中。3.四片 74LS164 串级扩展为 4 个 8 位并行输出口,分别连接到 4 个 LED 显示器的段选端作静态显示。图 3-12 温度显示电路3.5 报警系统电路报警系统电路在图 3-13 中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时 LED 数码管将没有被测温度值显示。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时 LED 数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图中的按健复位电路是上电
31、复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。- 13 -图 3-13 报警系统电路第第 4 章章 数字温度计的软件设计数字温度计的软件设计4.1 系统软件设计的流程图系统软件设计的流程图系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值,温度测量每 1S 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图 4-1 所示。图 4-1 主程序流程图初始化调用显示子程序1S 到?初次上电读出温度值温度计
32、算处理显示数据刷新发温度转换开始命令NYNY- 14 -发 DS18B20 复位命令发跳过 ROM 命令发温度转换开始命令 结束温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图 4-2 所示。图 4-2 温度转换流程图计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 4-3 示。图 4-3 计算温度流程图开始温度零下?温度值取补码置“”标志计算小数位温度 BCD 值 计算整数位温度 BCD 值 结束置“+”
33、标志NY- 15 -显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为 0 时将符号显示位移入下一位。程序流程图如图 4-4。图 4-4 显示数据刷新流程图温度数据移入显示寄存器十位数 0?百位数 0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NNYY- 16 -附录:附录:附录一丶设计原理图附录一丶设计原理图- 17 -附录二丶数字温度计部分程序清单附录二丶数字温度计部分程序清单(1)初始化程序S1OK EQU 5FHTEMPUTER EQU 39HTEMPH EQU 5EHTEMPLEQU 5DHMS50 EQU 5CHSIGN EQU 5BHS1
34、 BIT P1.0S2 BIT P1.1S3 BIT P1.2S4 BIT P1.3ORG 0000HLJMP MAINORG 000BHLJMP TOITORG 0030HMAIN: MOV SP, #60HMOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HSETB ET0SETB TR0SETB EAMOV TEMPH, #30MOV TEMPL, #9MOV TEMPUTER, #15 MOV S1OK, #00HMOV 38H, #0BHMOV 37H, #0CHMOV 36H, #0BHACALL DISPACALL T1S(2)主程序START: J
35、B S1, NET1ACALL T12MSJB S1, NET1JNB S1, $INC SIGNMOV A, SIGNCJNE A, #1, TIAO- 18 -ACALL TIAOTLTIAO:CJNE A, #2, NET1MOV SIGN, #0ACALL TIAOTHNET1: MOV A, S1OKCJNE A, #1, STARTMOV A, TEMPUTERSUBB A, TEMPHJNB ACC.7, ALEMMOV A, TEMPUTERSUBB A, TEMPLJB ACC.7, ALEMSETB P2.1ACALL WENDUACALL DISPMOV S1OK, #0
36、0HAJMP STARTALEM: MOV 36H, #0CHMOV 37H, #0CHMOV 38H, #0CHCLR P2.1ACALL DISPACALL T1SLCALL WENDULCALL DISPMOV S1OK, #00HSJMP START(3)温度总子程序ACALL INIT_1820ACALL RE_CONFIGACALL GET_TEMPERACALL TEMPER_COVRET(4)DS18B20 初始化程序INIT_1820:SETB P2.0NOPCLR P2.0MOV R0,#06BHMOV R1,#03HTSR1:- 19 -DJNZ R0,TSR1 ; 延时
37、MOV R0,#6BHDJNZ R1,TSR1SETB P2.0NOPNOPNOPMOV R0,#25HTSR2:JNB P2.0,TSR3DJNZ R0,TSR2LJMP TSR4 ; 延时TSR3:SETB 20H.1 ; 置标志位,表示 DS1820 存在LJMP TSR5TSR4:CLR 20H.1 ; 清标志位,表示 DS1820 不存在LJMP TSR7TSR5:MOV R0,#06BHMOV R1,#03HTSR6:DJNZ R0,TSR6 ; 延时MOV R0,#6BHDJNZ R1,TSR6TSR7:SETB P2.0RET(5)读出转换后的温度值GET_TEMPER:SET
38、B P2.0 ; 定时入口LCALL INIT_1820JB 20H.1,TSS2RET ; 若 DS18B20 不存在则返回TSS2:MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820LCALL INIT_1820MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820- 20 -MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200MOV 37H,A ; 将读出的温度数据保存RET(6)写 DS18B20 的程序WR
39、ITE_1820:MOV R2,#8CLR CWR1:CLR P2.0 NOPNOPNOPNOPRRC AMOV P2.0,CMOV R3,#35DJNZ R3,$SETB P2.0NOPDJNZ R2,WR1SETB P2.0RET读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数据READ_18200:MOV R4,#2 ; 将温度高位和低位 DS18B20 中读 RE00:MOV R2,#8RE01:CLR CSETB P2.0NOPNOPCLR P2.0NOPNOPNOPSETB P2.0NOPNOPMOV C,P2.0MOV R3,#35RE20:- 21 -DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET将从 DS18B20 中读出的温度数据进行转换TEMPER_COV:MOV A,#0F0HANL A,36H ; 舍去温度低位中小数点SWAP AMOV 37H,AMOV A,36HNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC 37HTEMPER_CO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发电秸秆出售合同范本
- 动车轮椅租赁合同范本
- 关于卖茶叶的合同范本
- 北京土地流转合同范本
- 2025-2030智慧工厂行业市场发展前景动态分析规划研究报告
- 2025-2030智慧家庭硬件产品投资周期分析及高频资本快速迭代策略审理
- 2025-2030智慧家居行业市场布局及投资评估规划分析研究文档
- 2025-2030智慧城市项目投资规划与融资策略报告
- 2025-2030智慧城市规划行业市场现状产品分析及投资评估规划发展策略分析研究报告
- 2025-2030智慧城市行业基础设施供需调研及投资机会规划分析研究报告
- 井道施工电梯施工方案
- 枫桥夜泊文件王崧舟课件
- 电商品牌代理分销合同范本
- 沪科版数学八年级上册全册单元测试卷
- 乳牙的解剖形态
- 大数据处理的基本思想与架构 课件 高中信息技术必修1
- GB/T 507-2002绝缘油击穿电压测定法
- 2023年洞口县水利系统事业单位招聘笔试题库及答案
- 幼儿园食品安全舆情监测和处置机制制度
- 物料与产品管理规程
- 环保领导组组织机构及工作职责
评论
0/150
提交评论