8路温度传感器采集系统

合集下载

具有RS485通信功能的8路温度检测仪软件设计毕业设计

具有RS485通信功能的8路温度检测仪软件设计毕业设计

具有RS485通信功能的8路温度检测仪软件设计毕业设计摘要温度是工业生产和自动控制中最常见的工艺参数之一,生产过程需要对温度进行检测和控制。

为了满足对温度采集和测量要求,实现对各个支路温度的检测,本系统就是采用了AT89S52为主控的8路温度检测的系统。

该系统可以实现多个点的温度检测和数值显示并且具有RS-485通信功能。

该系统包括的模块主要有温度的采集,单片机的控制,AD转换,温度值的显示,RS-485通信。

它主要使用的是热敏电阻Pt100温度传感器实现温度检测,并通过AD转换对采集到的数值进行转换,随后将温度显示在液晶屏上,并对温度设置上下阈值来实现温度报警功能。

论文首先简单介绍了该系统的基本原理及整体结构,接着分硬件、软件两部分对整个系统进行阐述,其中软件部分详细描述。

最后是系统的调试与分析,对系统的功能进行了验证。

关键词:AT89S52, RS-485,AD转换, PT100温度传感器ABSTRACTTemperature is one of the most common parameters in industrial production and automatic control of technological, there is the need of the detection and control in the productive process. In order to meet the requirement of temperature acquisition and measurement to detect eight-channel`s temperature, so we will design a simply temperature detection system which focus on the AT89S52.This system can detect the temperature, display the values of number with RS-485 communication function. This system includes the collection of temperature, the control of the single chip microcomputer, AD conversion, display the temperature value and RS-485 communication. It detect temperature and transfer the temperature which is mainly use a PT100 temperature sensor. Then display the temperature on the Liquid Crystal Display. And set up the top and the bottom temperature value. If the temperature doesn`t reach the range of the top and bottom ,the system will give an alarm.This paper first introduces the basic principle and the massive structure of the system. Then it is divided into two parts to the whole system hard ware and software are described, the software part will give a detail description. Finally there is a need to debug and analyze the system to testify the system.KEY WORDS:AT89S52, RS-485 communication, AD conversion,Pt100 temperature sensor目录前言 (1)第1章绪论 (3)1.1基本原理 (3)1.1.1传感器部分 (3)1.1.2 主控制部分 (4)1.1.3 AD转换模块 (4)1.1.3.1 ADC0809简介 (4)1.1.3.2 ADC0809原理 (5)1.1.4 485通信模块 (6)1.2系统方案 (6)1.2.1系统的整体结构 (6)1.2.2 软件介绍 (7)1.3 章节安排 (8)第2章硬件设计 (9)2.1 总体设计 (9)2.2 系统主要器件的介绍 (10)2.2.1 单片机AT89S52 (10)2.2.2 A/D转换芯片 (11)2.2.3 温度传感器 (12)2.2.4 显示LCD 1602 (12)2.2.5 MAX485芯片 (12)2.3 总体电路图 (13)第3章软件设计 (15)3.1 主程序的设计 (15)3.2 AD转换子程序设计 (17)3.3 LCD温度显示程序设计 (19)3.4 报警子程序设计 (22)3.5 按键设置程序设计 (22)3.6 RS-485通信模块程序设计 (24)第4章调试与仿真 (26)4.1 软件仿真 (26)4.1.1 建立程序文件 (26)4.1.2 加载目标代码文件 (29)4.1.3 进行调试与仿真 (29)4.2 硬件调试 (31)4.3 产生的问题与分析 (33)第5章结论与展望 (34)5.1 结论 (34)5.2 展望 (34)参考文献 (35)附录系统程序 (38)前言在人类的生产生活之中,温度扮演着极其重要的角色,温度对工业的发展有着及其重要的影响,因此传感器也有着飞速的发展,来适应这种对温度的检测要求。

项目十8路温度采集监控系统

项目十8路温度采集监控系统

存储器操作命令
Copy Scratchpad[48h] 这条命令把暂存器的内容拷贝到DS18B20的EEPROM里,即把温度报警触发字节存入非易失性存储器里。
02
03
04
Convert T[44h]
温度转换命令被执行,而后DS18B20保持等待状态。
这条命令启动一次温度转换而无需其他数据。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。
-55℃
1111 1100 1001 0000
FC90h
存储器
配置寄存器
配置寄存器字节各位的意义如下: 低五位一直都是1。 TM用于设置DS18B20在工作模式还是在测试模式。出厂时该位被设置为0,用户不要去改动。 R1和R0用来设置分辨率,出厂时被设置为12位。
R1
R0
分辨率
温度最大转换时间
温度采集电路设计
DQ引脚电路
供电方式选择
监控电路设计
键盘电路设计 8路温度采集监控系统有两种工作模式。 用MODE按键进行工作模式切换,在手动模式下按UP键通道加1,按DOWN键通道减1。 这3个按键分别接到P3口的P3.0、P3.1和 P3.2引脚。 显示电路设计 数码管动态扫描显示电路由6个共阴极数码管、74 LS 245及电阻组成。 P0口输出显示段码,经由一片74LS245驱动输出给数码管,P1口输出位码(片选)。
主要包括: 寄生电源、温度传感器、64位ROM和单总线接口、存放中间数据的高速暂存器RAM、用于存储用户设定温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码(CRC)产生器、配置寄存器等部分。

YAV RTD8 PT100铂电阻温度8路采集卡

YAV RTD8  PT100铂电阻温度8路采集卡

YAV RTD8串口八通道温度采集卡技术手册V1801武汉亚为电子科技有限公司采用9~24V供电,包含8路信号采集。

YAV RTD8温度模拟量采集模块可以采集8路PT100信号,支持PT100(PT1000)温度传感器的三线接法,采用对称驱动方式设计,可以完全消除铂电阻导线电阻对温度测量的影响。

在模块内部完成对温度计算,通过通讯接口直接读出温度值,单位为摄氏度。

模块采用16位AD设计,测温范围大,精度高,测温范围-40℃~220℃,精度为0.1℃。

模拟量采集部分可以实现对各种模拟量信号的测量,模块预留2种通讯接口(232和485)供客户选择。

模块采用标准modbusRTU协议,可以直接与PLC、DCS和组态王软件通讯。

采集卡上预留多种通信接口,只可用其中一种,以实际选购确定的某一种为准。

技术指标输入输出功能指标⏹温度采集●采集8路PT100或者PT1000(定制)输入信号。

●.温度采集部分采用16位高速高精度△-∑模数转换器,采集数据精度高稳定性好。

●温度测量分辨率:0.1℃。

●.测温范围:-40℃~+220℃。

●采集速度:0.1s更新一次●精度:0.1摄氏度●非线性:0.05%FS●系统测量精度:0.1%●零漂:±3με/4h●抗混滤波:截止频率为采样频率的1/2.56,阻带衰减大于-80dB/oct●低通滤波器(特殊定制):◆截止频率:10、30、100、300、PASS程控切换⏹通信总线(三选一)●通信接口串口RS232或485、或USB●标准Modbus-RTU协议●波特率:可设定,2400、4800、9600、19200BPS。

●检验方式:可设定,无校验、奇校验、偶校验。

●停止位:可设定,1个停止位、2个停止位。

●传输距离:485 1500米。

●隔离性:过压过流保护,防雷设计,隔离3000VDC。

⏹供电●电源电压:DC9-24V●电源电流:>1A●额定功率:0.3W⏹温度参数●工作温度范围:-30~70℃●存储温度范围:-40~80℃⏹其他参数●温度漂移:±0.015%/℃。

AT45xxx多路温度测试仪用户手册说明书

AT45xxx多路温度测试仪用户手册说明书

AT45xxx多路温度测试仪用户手册2安全须知当你发现有以下不正常情形发生,请立即终止操作并断开电源线。

立刻与安柏科技销售部联系维修。

否则将会引起火灾或对操作者有潜在的触电危险。

l仪器操作异常。

l操作中仪器产生反常噪音、异味、烟或闪光。

l操作过程中,仪器产生高温或电击。

l电源线、电源开关或电源插座损坏。

l杂质或液体流入仪器。

安全信息为避免可能的电击和人身安全,请遵循以下指南进行操作。

免责声明用户在开始使用仪器前请仔细阅读以下安全信息,对于用户由于未遵守下列条款而造成的人身安全和财产损失,安柏科技将不承担任何责任。

仪器接地为防止电击危险,请连接好电源地线。

不可在爆炸性气体环境使用仪器不可在易燃易爆气体、蒸汽或多灰尘的环境下使用仪器。

在此类环境使用任何电子设备,都是对人身安全的冒险。

不可打开仪器外壳非专业维护人员不可打开仪器外壳,以试图维修仪器。

仪器在关机后一段时间内仍存在未释放干净的电荷,这可能对人身造成电击危险。

不要使用已经损坏的仪器如果仪器已经损害,其危险将不可预知。

请断开电源线,不可再使用,也不要试图自行维修。

不要使用工作异常的仪器如果仪器工作不正常,其危险不可预知,请断开电源线,不可再使用,也不要试图自行维修。

不要超出本说明书指定的方式使用仪器超出范围,仪器所提供的保护措施将失效。

声明:!, $, #,安柏标志和文字是常州安柏精密仪器有限公司的商标或注册商标。

QQ:285480356 55178055AT45xxx多路温度测试仪用户手册User’s Manual简体中文Simplified ChineseRev.A2 2009/11 @Instruments 常州安柏精密仪器有限公司©2005-2009 Applent Instruments, Inc.目录 5目录安全须知 (2)安全信息 (2)有限担保和责任范围 (4)1.安装和设置向导 (9)1.1装箱清单 (9)1.2电源要求 (9)1.3操作环境 (9)1.4清洗 (9)1.5仪器手柄 (11)2.概述 (12)2.1引言 (12)2.2测量功能 (12)2.2.1测量参数 (12)2.2.2测试速度 (12)2.2.3基本准确度 (12)2.2.4测量显示范围 (13)2.3主要功能 (13)2.3.1比较器功能 (13)2.3.2用户校正功能 (13)2.3.3文件功能 (13)2.3.4系统设置 (13)2.3.5接口 (13)3.开始 (14)3.1认识前面板 (14)3.1.1前面板描述 (14)3.1.2认识后面板 (15)3.2上电启动 (15)3.2.1开机 (15)3.2.2开机值 (15)4.[Meas] 测量主页面 (16)4.1<测量显示>页 (16)4.1.1【型号】 (16)<测量显示>页的信息栏 (17)4.2<曲线图>页 (17)5.【Setup】设置主页面 (18)5.1功能设置 (18)5.1.1【比较器】 (18)5.1.2【速度】 (19)5.1.3【讯响】 (19)5.1.4【音量】 (19)5.1.5【通讯】 (19)5.1.6【波特率】 (20)5.1.7【字体】 (20)5.1.8【巡检】 (20)5.2分选设置 (21)6AT45xxx系列多路温度测试仪用户手册5.2.1【001】 (21)5.3用户校正 (22)5.3.1【001】 (22)5.4U盘设置 (23)5.4.1【创建文件】 (23)5.4.2【采样时间】 (23)5.4.3【文件操作】 (23)6.系统配置 (24)6.1系统配置页 (24)6.1.1更改系统语言【LANGUAGE】 (24)6.1.2修改日期和时间 (25)6.1.3帐号设置 (25)6.2系统信息页 (26)7.文件操作 (27)7.1文件管理 (27)7.1.1【自动保存】开关 (27)7.1.2文件操作 (28)7.1.3快捷操作文件 (28)8.规格 (29)8.1技术指标 (29)8.2一般规格 (29)8.3外形尺寸 (30)目录7插图目录图1-1仪器手柄(示意图,面板图形与实际不符) (11)图3-1 前面板 (14)图3-2后面板 (15)4-1 <测量显示>页 (16)图5-1<设置>页 (18)图6-1<系统配置>页 (24)图6-2<系统信息>页 (26)图7-1<文件管理>页 (27)8AT45xxx系列多路温度测试仪用户手册表格目录表3-1 前面板功能描述 (14)表4-1参数描述 (16)安装与设置向导91.安装和设置向导感谢您购买我公司的产品!使用前请仔细阅读本章。

8路PT100温度模块8路4-20ma电流采集

8路PT100温度模块8路4-20ma电流采集

六、接线图说明 1、版面示意图
2、接口说明 2.1 电源接口 PGND :大地 VCC:24V+ GND:24V2.1 RS485 接口 A+ :接 RS485 的正 B- :接 RS485 的负
485_G:接 485 的地,这根线,短距离通信,可以不接。 2.1 RS232 接口 RS232 接口 2.2 传感器接口 A1,C1,B1 :第 1 路接入。A1,C1,为 PT100 的同一个脚的出线。B1 为另一个脚。 A2,C2,B2 :第 2 路接入。A2,C2,为 PT100 的同一个脚的出线。B2 为另一个脚。 A3,C3,B3 :第 3 路接入。A3,C3,为 PT100 的同一个脚的出线。B3 为另一个脚。 A4,C4,B4 :第一路接入。A4,C4,为 PT100 的同一个脚的出线。B4 为另一个脚。 A5,C5,B5 :第一路接入。A5,C5,为 PT100 的同一个脚的出线。B5 为另一个脚。 A6,C6,B6 :第一路接入。A6,C6,为 PT100 的同一个脚的出线。B6 为另一个脚。 A7,C7,B7 :第一路接入。A7,C7,为 PT100 的同一个脚的出线。B7 为另一个脚。 A8,C8,B8 :第一路接入。A8,C8,为 PT100 的同一个脚的出线。B8 为另一个脚。
2.1 RS232 接口 RS232 接口 2.2 传感器接口 A1,C1,B1 :第 1 路接入。A1:4-20mA 电流输入;C1:为 24V 电源;B1 为 GND。 A2,C2,B2 :第 2 路接入。A2:4-20mA 电流输入;C2:为 24V 电源;B2 为 GND。 A3,C3,B3 :第 3 路接入。A3:4-20mA 电流输入;C3:为 24V 电源;B3 为 GND。 A4,C4,B4 :第一路接入。A4:4-20mA 电流输入;C4:为 24V 电源;B4 为 GND。 A5,C5,B5 :第一路接入。A5:4-20mA 电流输入;C5:为 24V 电源;B5 为 GND。 A6,C6,B6 :第一路接入。A6:4-20mA 电流输入;C6:为 24V 电源;B6 为 GND。 A7,C7,B7 :第一路接入。A7:4-20mA 电流输入;C7:为 24V 电源;B7 为 GND。 A8,C8,B8 :第一路接入。A8:4-20mA 电流输入;C8:为 24V 电源;B8 为 GND。 说明: 如果 4-20mA 变送器为两线制设备, 如有线温度、 有线压力等, 将 C 24V 变送器正极、将变送器负极接入 A 就行。 如果 4-20mA 变送器为两线制设备,如有涡街流量计等,将 C 24V 接变 送器电源、将 4-20mA 输出接入 A 就行。将 B 接变送器地。 2.3 运行指示

modbus温度采集模块温度曲线

modbus温度采集模块温度曲线

8温度采集解决淘宝地址:/item.htm?spm=a1z10.1.w4004.8.qJoXn9&id=20918792912100元需要温度传感器的请连接地址:/item.htm?spm=686.1000925.1000774.5.eUb7D3&id=16431117630温度曲线数据纪录软件连接地址:/item.htm?spm=686.1000925.1000774.25.eUb7D3&id=16418677925 Modbus RTU 485组网8路温度采集模块模块功能:8路18B20温度采集标准Modbus RTU协议,485通讯接口,能与PLC连接。

其中一路探头短路或断路故障,不影响其他探头工作。

软件修改波特率和从机号,掉电能保存。

485通信距离可达1000米DS18B20温度传感器到采集模块的距离>100米模块特性:模块输入电压:~220V8位数据位,1位停止位,无效验探头数:8路测温范围: -55~+125℃测温精度:±0.5℃测温分辨率:12位(0.0625℃)测温速度: 1s第1路温度寄存器地址:00 00 H第2路温度寄存器地址:00 01 H第3路温度寄存器地址:00 02 H第4路温度寄存器地址:00 03 H第5路温度寄存器地址:00 04 H第6路温度寄存器地址:00 05 H第7路温度寄存器地址:00 06 H第8路温度寄存器地址:00 07 H波特率寄存器地址:00 10 H从机号寄存器地址:00 11 H支持以下6种波特率设置1:12002:24003:48004:96005:144006:1920019200 十进制如写入19200波特率:010600 104B 00 十六进制BE FF从机号支持1-255支持以下功能码:读多个寄存器功能码03H从机号功能码寄存器起始地址读寄存器个数 CRC效验发送:010300 0000 0844 0C从机号功能码返回字节数返回数据 CRC效验返回:01031001 81 01 27 01 20 01 1E 01 2B 01 28 01 24 01 226D 4E写单一个寄存器功能码06H从机号功能码寄存器地址写寄存器数据 CRC效验发送:010600 104B 00BE FF返回:原文写多个寄存器功能码10H从机号功能码写寄存器起始地址写寄存器个数数据字节数数据1 数据2 。

基于51的温度8路温度检测智能多路温度检测系统(可编辑)

基于51的温度8路温度检测智能多路温度检测系统(可编辑)

智能多路温度检测系统中国科学院感光化学研究所陶培德摘要本文详细地介绍了八路温度巡回检测/定点检测系统的硬件配置、误差分析和软件设计方法。

该系统特点有三:①采用铂热电阻测温,布线为三线制,不加补偿电阻,从电路模型中消除了连接导线电阻引进的测量误差。

②八路测温用用一套温度?电压变换电路,测温点间的切换采用廉价的CD4051八选一模拟开关,其开关的导通电阻及导通电阻路差均布引进测量误差。

③铂热电阻温度/电压变换电路的非线性由硬件电路校正,校正后的非线性误差在0~199.9℃范围内小于0.0045%。

整个系统采用89S51单片机控制键盘操作,实现检测温度的实时显示、打印、越线报警功能。

引言温度的精密测量是工业生产领域中的一个经典课题。

在温度检测系统中,测量变换电路起着至关重要的作用,而温度传感器又是该电路中的一个关键元件。

众所周知,在设计测量变换电路时,我们是从分析传感器性能(电阻型、电流型、电压型等)入手,通过适当的补偿、非线性校正及信号放大环节,最后综合处一个满足期望指标的测量变换电路来。

目前,使用比较广泛的温度传感器有四类:热电阻(如铂热电阻)、热电偶、热敏电阻及集成电路温度传感器(如AD590)。

本文介绍的检测系统,采用铂热电阻(以下简称铂电阻)元件测温。

铂电阻温度传感器具有精度高、性能稳定、互换性好(有分度表)、耐腐蚀及使用方便等一系列有点,移植是工业测控系统中广泛使用的一种比较理想的测温元件。

在温度大于0℃的条件下,铂电阻的电阻值R(t)与被测温度t之间呈如下关系:R(t)R(0)?(1+At+Bt2) (1)式中(对BA2分度号而言)R(0)100Ω(0℃时的电阻值)A3.96847×10-3/℃(一次温度系统数)B?5.847×10-7/℃2(二次温度系统数)由式(1)可见,铂电阻的不足之处是:温度比较率小(α≈0.391Ω/℃),存在Bt2二次飞线性项。

大家知道,铂电阻作为温度传感器使用时,必须把它放在测温现场。

基于ATmega16和AD7709的路基温度采集系统

基于ATmega16和AD7709的路基温度采集系统

Ro a db e d Te mp e r a t u r e Ac q ui s i t i o n S y s t e m Ba s e d o n ATm e g a l 6 a nd AD7 7 0 9
P ANG B i n , ZHAN G Yi , YE Mi n, MAO Xu e — s o n g, Z HANG J u n
f o r S p e c i a l A r e a H i g h w a y E n g i n e e r i n g o f Mi n i s t r y o f E d u c a t i o n , C h a n g ’ a n U n i v e r s i t y , X i ’ a n 7 1 0 0 6 4 , C h i n a )
温度传感器 , 用7 4 L S 1 3 8和 7 4 H C 4 0 5 1 设计 了 1 2 8路 通道 切 换 电路 , 用A T m e g a l 6和 A D 7 7 0 9构 建 了温度 采 集 系统 , 并进行
了温度标定试验 。试验结果表 明: 系统 能实现 多通道温度采集功能 , 测量误差为 0 . 4 o C, 满足路基温度测量要求。
Ke y wor ds: t e mp e r a t u r e; mu l t i — c h a n n e l ; ATme g a l 6; AD7 70 9; Pt l 00
( Ke y L a b o r a t o r y f o r Hi g h w a y C o n s t r u c t i o n T e c h n o l o g y a n d E q u i p me n t o f Mi n i s t y r o f E d u c a t i o n : Ke y L a b o r a t o r y
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//mainn.c
#include <reg51.H>
extern showled();
extern void tmpchange(void);//声明引用外部函数
unsigned int idata wei=1;
void delaym(unsignedห้องสมุดไป่ตู้int i);
unsigned int idata weim[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
while(i>0)
i--;
DS=1;
i++;i++;
}
}
}
void tmpchange(void) //DS18B20 begin change开始获取数据并转换
{
dsreset();
delay(1);
tmpwritebyte(0xcc); // address all drivers on bus写跳过读ROM指令
case 3:LSA=0;LSB=0;LSC=0;LSD=1;LSE=0; break;
case 4:LSA=0;LSB=0;LSC=0;LSD=0;LSE=1; break;
}
P0 = LedOut[i] ;
delaym(100);
}
P0 =0xff;
}
void shub(uint temp)
{
uint fl,i;
DS=1;
i=4;
while(i>0)i--;
}
bit tmpreadbit(void) //read a bit读1位数据函数
{
uint i;
bit dat;
DS=0;i++; //延时
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return (dat);
}
uchar tmpread(void) //read a byte date读1字节函数
void main()
{
int i,j;
for(i=0;i<8;i++)
{
wei=i;
P1=weim[wei];
for(j=0;j<100;j++)
{
tmpchange();
showled();
}
}
}
//延时程序
void delaym(unsigned int i)
{
char j;
for(i; i > 0; i--)
void showled();
void shub(uint temp);
extern delaym(unsigned int i);
sbit LSA=P2^0; //管脚定义
sbit LSB=P2^1;
sbit LSC=P2^2;
sbit LSD=P2^3;
sbit LSE=P2^4;
unsigned char code Disp_Tab[] = {0x40,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
unsigned long LedOut[5],LedNumVal;
void showled()
{
/********以下将读18b20的数据送到LED数码管显示*************/
int i;
LedNumVal=tmp(); //把实际温度送到LedNumVal变量中
LedOut[0]=Disp_Tab[wei+1];
tmpwritebyte(0x44); // initiates a single temperature conversion写温度转换指令
}
uint tmp() //get the temperature读取寄存器中存储的温度数据
{
uchar a,b;
dsreset();
delay(1);
tmpwritebyte(0xcc);
else if(temp/100==0)LedOut[2]=Disp_Tab[10];
else if(temp/1000==0)LedOut[1]=Disp_Tab[10];
}
}
//wendu.c
/*************************此部分为18B20的驱动程序*************************************/
i--;
count--;
}
}
///////功能:串口初始化,波特率9600,方式1///////
void dsreset(void) //send reset and initialization command 18B20复位,初始化函数
{
uint i;
DS=0;
i=103;
while(i>0)i--;
tmpwritebyte(0xbe);
a=tmpread(); //读低8位
b=tmpread(); //读高8位
temp=b;
temp<<=8; //two byte compose a int variable两个字节组合为1个字
temp=temp|a;
return temp;
}
仿真
shub(LedNumVal);
for(i=0; i<5; i++)
{
switch(i)
{
case 0:LSA=1;LSB=0;LSC=0;LSD=0;LSE=0; break;
case 1:LSA=0;LSB=1;LSC=0;LSD=0;LSE=0; break;
case 2:LSA=0;LSB=0;LSC=1;LSD=0;LSE=0; break;
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //write 1
{
DS=0;
i++;i++;
DS=1;
i=8;
while(i>0)
i--;
}
else
{
DS=0; //write 0
i=8;
if(temp&0x8000)
{
temp=~temp;
temp+=1;
fl=0;
}
else fl=1;
i=temp*0.0625; //温度在寄存器中是12位,分辨率是0.0625
temp=i*10+0.5; //乘10表示小数点后只取1位,加0.5是四折五入
temp=temp/10;
LedOut[1]=Disp_Tab[temp%10000/1000];
LedOut[2]=Disp_Tab[temp%1000/100];
LedOut[3]=Disp_Tab[temp%100/10];//十位
LedOut[4]=Disp_Tab[temp%10]; //个位
if(fl==0)
{
if((temp/10)==0) LedOut[3]=Disp_Tab[10];
#include <reg52.H>
#define uchar unsigned char
#define uint unsigned int
void delay(uint count);
void dsreset(void);
bit tmpreadbit(void);
uchar tmpread(void);
for(j = 200; j > 0; j--);
}
//show.c
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
extern unsigned int idata wei;
extern unsigned int tmp();
void tmpwritebyte(uchar dat);
void tmpchange(void);
uint tmp();
sbit DS=P3^7;
uint temp;
void delay(uint count) //delay
{
uint i;
while(count)
{
i=200;
while(i>0)
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里
}
return(dat);
}
void tmpwritebyte(uchar dat) //write a byte to ds18b20向1820写一个字节数据函数
相关文档
最新文档