1、智能仪器工程设计课程设计汇报姓 名 学 号: 学 院: 系(专业): 题 目: 智能温度测控仪 05月10日温度控制系统设计摘要: 本设计以AT89S51单片机为关键温度控制系统工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号方法传送给单片机。文中介绍了该控制系统硬件部分,包含:温度检测电路、温度控制电路、PC机和单片机串口通讯电路和部分接口电路 。单片机经过对信号进行对应处理,从而实现温度控制目标。文中还着重介绍了软件设计部分,在这里采取模块化结构,关键模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程序。目 录1 引言12 设
2、计说明13 工作原理14 方案设计和论证24.1 主控制部分 34.2 测量部分 35 各单元设计 85.1 键盘单元85.2 温度控制及超温和超温警报单元 105.3 温度控制器件电路115.4 温度测试单元 115.5七段数码管显示单元115.6 接口通讯单元 136 电源输入单元147 程序设计157.1 概 述157.2 程序结构分析 167.3 主程序 178. 测试分析 17结论 18附录A使用说明 19附录B程序清单 191 引言温度控制系统广泛应用于社会生活各个领域 ,如家电、汽车、材料、电力电子等 ,常见控制电路依据应用场所和所要求性能指标有所不一样 , 在工业企业中,怎样提
3、升温度控制对象运行性能一直以来全部是控制人员和现场技术人员努力处理问题。这类控制对象惯性大,滞后现象严重,存在很多不确定原因,难以建立正确数学模型,从而造成控制系统性能不佳,甚至出现控制不稳定、失控现象。传统继电器调温电路简单实用 ,但因为继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采取传统PID控制方法,但PID控制对象模型难以建立,而且当扰动原因不明确时,参数调整不便仍是普遍存在问题。而采取数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构愈加简单,而且降低了温度测量转换时精度损失,使得测量温度愈加正确。数字温度传感器DS18B20只用一个引脚即可和
4、单片机进行通信,大大降低了接线麻烦,使得单片机愈加含有扩展性。因为DS18B20芯片小型化,愈加能够经过单跳数据线就能够和主电路连接,故能够把数字温度传感器DS18B20做成探头,探入到狭小地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行范围温度检测。2 设计说明 设计基于单片计算机温度控制器,用于控制温度。具体以下: 1. 温度连续可调,范围为0-40 2. 超调量%20% 3. 温度误差0.5 4. 人-机对话方便 3 工作原理温度传感器 DS18B20 从设备环境不一样位置采集温度,单片机 AT89S51 获取采集温度值,经处理后得到目前环境中一个比较稳定温度值,再依据目
5、前设定温度上下限值,经过加热和降温对目前温度进行调整。当采集温度经处理后超出设定温度上限时,单片机经过三极管驱动继电器开启降温设备 (压缩制冷器) ,当采集温度经处理后低于设定温度下时 , 单片机经过三极管驱动继电器开启升温设备 (加热器) 。 当因为环境温度改变太猛烈或因为加热或降温设备出现故障,或温度传感头出现故障造成在一段时间内不能将环境温度调整到要求温度限内时候,单片机经过三极管驱动扬声器发出警笛声。 系统中将经过串口通讯连接PC机存放温度改变时历史数据,方便观察整个温度控制过程及监控温度改变全过程。PC机加热器继电器2DS18B20 温度芯片数据传输键盘电路MAX232电平转换芯片
6、片AT89S518BIT CPU数据显示超温报警输入电源压缩制冷器继电器1 N3-1工作原理图4 方案设计4.1 温度测量部分方案DS18B20是DALLAS企业生产一线式数字温度传感器,它含有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,尤其适适用于组成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上能够挂接多个传感器芯片,它含有三引脚TO-92小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展16位数字量方法串行输出,其工作电源既可在远端引入,业可采取寄生电源方法产生
7、,多个DS18B20能够并联到三根或两根线上,CPU只需一根端口线就能和多个DS18B20通信,占用微处理器端口较少,可节省大量引线和逻辑电路。从而能够看出DS18B20能够很方便被用于远距离多点温度检测系统。综上,在本系统中我采取温度芯片DS18B20测量温度。该芯片物理化学性很稳定,它能用做工业测温元件,且此元件线形很好。在0100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。图4-1温度芯片DS18B204.2 主控制部分方案AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system progr
8、ammable)可反复擦写1000次Flash只读程序存放器,器件采取ATMEL企业高密度、非易失性存放技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存放单元,功效强大微型计算机AT89S51可为很多嵌入式控制应用系统提供高性价比处理方案。AT89S51含有以下特点:40个引脚,4k Bytes Flash片内程序存放器,128 bytes随机存取数据存放器(RAM),32个外部双向输入/输出(I/O)口,5个中止优先级2层中止嵌套中止,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。另外,
9、AT89S51设计和配置了振荡频率可为0Hz并可经过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中止系统可继续工作,掉电模式冻结振荡器而保留RAM数据,停止芯片其它功效直至外中止激活或硬件复位。同时该芯片还含有PDIP、TQFP和PLCC等三种封装形式,以适应不一样产品需求。因为系统控制方案简单 ,数据量也不大 ,考虑到电路简单和成本等原因 ,所以在本设计中选择 A TMEL 企业 A T89S51单片机作为主控芯片。主控模块采取单片机最小系统是因为 A T89S51芯片内含有4 kB E2PROM ,无需外扩存放器 ,电路简单可靠 ,其时钟频率为 024 MH
10、z ,而且价格低廉 ,批量价在 10元以内。其关键功效特征: 兼容MCS-51指令系统 4k可反复擦写(1000次)ISP Flash ROM 32个双向I/O口 4.5-5.5V工作电压 2个16位可编程定时/计数器 时钟频率0-33MHz 全双工UART串行中止口线 128x8 bit内部RAM 2个外部中止源 低功耗空闲和省电模式 中止唤醒省电模式 3级加密位 看门狗(WDT)电路 软件设置空闲和省电功效 灵活ISP字节和分页编程 双数据寄存器指针 能够看出AT89S51提供以下标准功效:4K字节Flash闪速存放器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针
11、,两个16位定时器/计数器,一个5向量两级中止结构,一个全双工串行通信口,片内振荡器立即钟。同时, AT89S51可降至0Hz静态逻辑操作,并支持两种软件可选节电工作模式。空闲方法停止CPU工作,但许可RAM,定时/计数器,串行通信口及中止系统继续工作。掉电方法何在RAM中内容,但振荡器停止工作并严禁其它全部部件工作直接到一个硬件复位。AT89S51引角功效说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存放器或程序存放器时,这组口线分时转换
12、地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻8位双向I/O口,P1输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,经过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。表4-1为P1口第二功效。表4-1 P1口第二功效端口引脚第二功效P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)P2口:P2是一个
13、带有内部上拉电阻8位双向I/O口,P2输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,经过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问位地址外部数据存放器(如实施:MOVX Ri 指令)时,P2口线上内(也即特殊功效寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。)P3口:P3口是一组带有内部上拉电阻8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部
14、拉低P3口将用上拉电阻输出电流I。P3口除了作为通常I/O口线外,更关键用途是它第二功效,P3口第二功效以下表4-2。 表4-2 P3口第二功效 端口功效第二功效端口引脚第二功效RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中止0WR(P3.6)外部数据存放器写选通INT1(P3.3)外中止1RD(P3.7)外部数据存放器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该引脚输出高电平,设置SFR AUXR DISRTO 位(地址8E
15、H)可打开或关闭该功效。DISRTO 位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存放器或数据存放器时,ALE(地址锁存许可)输出脉冲用于锁存地址低8位字节。即使不访问外部存放器,ALE仍以时钟振荡频率1/6输出正脉冲信号,所以它可对外输出时钟或用于定时目地,要注意是:第当访问外部数据存放器时将跳过一个ALE脉冲。如有必需,可经过对特殊功效寄存器(SFR)区中8EH单元D0位置位,可严禁ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。另外,该引脚伎被微弱拉高,单片机实施外部程序时,应设置ALE无效。PSEN:程序储存许可(PSEN)输出是外部
16、程序存放器读选通信号,当AT89S51由外部程序存放器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存放器,高有两次有效PSEN信号。EA/VPP:外部访问许可。欲使CPU公访问外部程序存放器(地址0000HFFFFH),EA端必需保持低电平(接地)。需注意是:假如加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则实施内部程序存放器中指令。Flash存放器编程时,该引脚加上12V编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器输入端。XTAL2:振荡器反相放大器输出端。AT89S51单片机内部结构及功效:特殊功
17、效寄存器:特殊功效寄存器片内空间分存以下图3-2所表示。这些地址并没有全部占用,没有占用地址不可使用,读这些地址将得到一个随意数值。而写这些地址单元将不能得到预期结果。中止寄存器:各中止许可控制在IE寄存器,5个中止源中止优先级控制在IP寄存器。图4-2为AUXR辅助寄存器。图4-2 AUXR辅助寄存器双时钟指针寄存器:为方便地访问内部和外部数据存放器,提供了两个16位数据指针寄存放器:PD0在SFR区块中地址82H、83H和DP1在地址84H、85H,当SFR中位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。图4-3 双时钟指针寄存器电源空闲标志:电源空闲标志(PO
18、F)在特殊功效寄存放器SFR中PCON第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。存放器结构:MCS-51单片机内核采取程序存放器和数据存放器空间分开结构,均含有64KB外部程序和数据寻址空间。程序存放器:假如EA引脚接地(GND),全部程序均实施外部存放器。在AT89S51,假如接至Vcc(电源),程序首先实施从地址0000H0FFFH(4KB)内部程序存放器,再实施地址为1000HFFFFH(60KB)外部程序存放器。数据存放器:在AT89S51含有128字节内部RAM,这128字节可利用直接或间接寻址方法访问,堆栈操作可利用间接寻址方法进行,
19、128字节均可设置为堆栈区空间。看门狗定时器(WDT):WDT是为了处理CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)组成。外部复位时,WDT默认为关闭状态,要打开WDT,必按次序将01H和0E1H写到WDTRST寄存器,当开启了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平复位脉冲。引脚图详见图4-4 图4-4 AT89S51单片机引脚图 5 各单元设计 5.1键盘单元单片机应用系统中除了复位按键有专门复位电路,和专一复位功效外,其它按键或键盘全部是以
20、开关状态来设置控制功效或输入数据。 键开关状态可靠输入 :为了去抖动我采取软件方法,它是在检测到有键按下时,实施一个10ms延时程序后,再确定该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确定为真正键按下状态,从而消除了抖动影响在这种行列式矩阵键盘非编码键盘单片机系统中,键盘处理程序首先实施等候按键并确定有没有按键按下程序段。当确定有按键按下后,下一步就要识别哪一个按键按下。对键识别通常有两种方法:一个是常见逐行扫描查询法;另一个是速度较快线反转法。对照图示4*4键盘,说明线反转法工作原理。首先分辨键盘中有没有键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判定。方法是:向行
21、线输出全扫描字00H,把全部列线置为低电平,然后将列线电平状态读入累加器A中。假如有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判定键盘中哪一个键被按下是经过将列线逐列置低电平后,检验行输入状态来实现。方法是:依次给列线送低电平,然后查全部行线状态,假如全为1,则所按下键不在此列;假如不全为1,则所按下键必在此列,而且是在和零电平行线相交交点上那个键。键盘共有16个按键,用于方便设定温度。90 , 数字按键,输入数字0-9;确定 , 设置确实定,修改设置温度时进行确定;清除 设置清除,修改设置温度时进行删除;开启 开启电源关闭 关闭电源F1 显示及设置转换到温度点1,按此按键后
22、,显示预设置温度数码管闪烁;F2显示及设置转换到温度点2,按此按键后,显示预设置温度数码管闪烁;表5-1键盘按键分布P2.00123P2.14567P2.289F1F2P2.3清除开启关闭确定P2.4P2.5P2.6P2.75.2温度控制及超温和超温警报单元当采集温度经处理后超出要求温度上限时,单片机经过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1 开启降温设备 ( 压缩制冷设备 ) :当采集温度经处理后低于设定温度下限时,单片机经过 P1.5 输出控制信号驱动三极管 D2 ,使继电器 K2 开启升温设备 ( 加热器1) 。当因为环境温度改变太猛烈或因为加热或降温设备出现故障,或
23、温度传感头出现故障造成在一段时间内不能将环境温度调整到要求温度限内时候,单片机经过三极管驱动扬声器发出警笛声。具体电路连接图 5-1 所表示。 图5-1具体电路连接图5.3温度测试单元采取温度芯片DS18B20。使用集成芯片,能够有效减小外界干扰,提升测量精度,简化电路结构。5.4 温度控制器件电路单片机经过三极管控制继电器通断,最终达成控制电热器目标。当温度未达成要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源和电热器接通,电热器加热。温度慢慢升高。当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器弹片打到另一侧,使电热器和电源断开,电热器停止加热。继电器电路中
24、有一个三极管8050保护电路,立即一个二极管反向接到三机管两端。连接方法图5-2所表示。图5-2 单片机控制信号其原理是:当继电器忽然断电时,继电器产生很大反向电流。二极管作用是将反向电流分流,使流过三级管8050电流比较小,达成保护三极管8050作用。5.5七段数码管显示单元 本部分电路关键使用七段数码管和移位寄存器芯片74LS164。单片机经过I2C总线将要显示数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码管显示,从而实现移位寄存点亮数码管显示。因为单片机时钟频率达成12M,移位寄存器移位速度相当快,所以我们根本看不到数据是一位一位传输。从人类视觉角度上看,就仿佛是
25、全部数码管同时显示一样。具体见实际连线图图5-3。当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则严禁新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就许可输入数据,并在 CLOCK 上升沿作用下决定 Q0 状态,逻辑封装图图5-3:图5-3逻辑封装图引出端符号:CLOCK 时钟输入端;CLEAR 同时清除输入端(低电平有效);A,B 串行数据输入端;QAQH 输出端。真值表:表5-2表5-2 真值表图5-4 实际连线图5.6接口通讯单元 max232资
26、料介绍:该产品是由德州仪器企业(TI)推出一款兼容RS232标准芯片。因为电脑串口rs232电平是-10v +10v,而通常单片机应用系统信号电压是ttl电平0 +5v,max232就是用来进行电平转换,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。关键特点 :1、单5V电源工作2、 LinBiCMOSTM工艺技术3、 两个驱动器及两个接收器4、 30V输入电平5、
27、低电源电流:经典值是8mA6、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.287、ESD保护大于MIL-STD-883(方 法3015)标准V5 1单片机有一个全双工串行通讯口,所以单片机和电脑之间能够方便地进行串口通讯。进行串行通讯时要满足一定条件,比如电脑串口是RS232电平,而单片机串口是TTL电平,二者之间必需有一个电平转换电路,我采取了专用芯片MAX232进行转换,即使也能够用多个三极管进行模拟转换,不过还是用专用芯片更简单可靠。在本设计中采取了三线制连接串口,也就是说和电脑9针串口只连接其中3根线:第5脚GND、第2脚RXD、第3脚TXD。这是最简单连接
28、方法,不过对我来说已经足够使用了,电路以下图所表示,MAX232第10脚和单片机11脚连接,第9脚和单片机10脚连接,第15脚和单片机20脚连接,串口通讯具体图5-5图5-5 通讯接口连线图6 电源输入部分 控制系统主控制部分电源需要用5V直流电源供电,其电路图6-1所表示,把频率为50Hz、有效值为220V单相交流电压转换为幅值稳定5V直流电压。其关键原理是把单相交流电经 过电源变压器、整流电路、滤波电路、稳压电路转换成稳定直流电压。 因为输入电压为电网电压,通常情况下所需直流电压数值和电网电压有效值相差较大,所以电源变压器作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流
29、电压转换成直流电压。因为经整流电路整流后电压含有较大交流分量,会影响到负载电路正常工作。需经过低通滤波电路滤波,使输出电压平滑。稳压电路功效是使输出直流电压基础不受电网电压波动和负载电阻改变影响,从而取得稳定性足够高直流电压。本电路使用集成稳压芯片7805处理了电源稳压问题。图6-1电源部分连线图7 程序设计7.1 程序结构分析主程序调用了5个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、单片机和PC机串口通讯程序。键盘扫描电路及按键处理程序:实现键盘输入按键识别及进入对应程序。温度信号处理程序:对温度芯片送过来数据进行处理,进行判定和显示。数码管显示
30、程序:向数码显示送数,控制系统显示部分。继电器控制程序:控制继电器动作串口通讯程序:实现PC机和单片机通讯,将温度数据传送给PC机。图7-1程序结构图7.2主程序程序开始时候先设置初始化,然后就控制数码管显示目前温度。接着就判定F1、F2按键是否被按下。按下F1进入温度控制点1程序、按下F2进入温度控制点2程序。程序控制设置温度两个数码管闪烁,此时键盘输入有效。有按键按下时候进入按键处理程序。按下“确定”按键后,程序进入判定程序和继电器控制程序。继电器动作后,程序回到显示目前途序,并开始循环。7.3 程序代码(详见附录 程序清单)8. 测试分析1、测试环境环境温度28摄氏度,室内面积20平方米
31、测试仪器:数字万用表,温度计0-100摄氏度2、测试方法使系统运行,采取温度计同时测量室内度改变情况,得出系统测量温度。3、测试结果设定温度由0摄氏度到40摄氏度标定温差=1摄氏度 调整时间 15s(具体视现场情况)静态误差=0.5摄氏度 最大超调量1摄氏度4、经过测试分析,对于实际室内温度控制,能够再提出以下 2 点方法 :增加传感器个数,对各个温度传感器采集数据进行求算术平均,可得到较为正确温度值。 对实际室内温度控制,可采取功率较大电炉,而且经过风扇对箱内温度进行充足搅和,降温设备可采取空气压缩机等制冷设备。 5、经过试验测试和分析,发觉即使传感器温度采集精度最高可得到 0.06 ,但测
32、试得到数据最小间隔为 0.03 。经过分析,当对浮点数求平均处理时,碰到同一时刻两个传感头采集温度相差不大,使 0.06 时求出平均温度变为 0.03 为了解该数据是否真实,可采取一个高精度数字温度计测试,发觉读出值和其基础一致,由此推断假如在同一时间增加采集温度个数,则能够深入提升温度精度。 结 论在工业生产和日常生活中,对温度控制系统要求,关键是确保温度在一定温度范围内改变,稳定性好,不振荡,对系统快速性要求不高。在论文中简单分析了单片机温度控制系统设计过程及实现方法。本系统测温范围为-1040,温度检测系统依据用户设定温度范围完成一定范围温度控制。89S51时钟最高可达12M,I/O口可
33、达32个,高时钟频率和丰富I/O,全部为我们实现电路功效提供了很有利条件。同时也因为开发环境友好,易用,方便,大大加紧本系统设计开发。本制作设计中使用了继电器控制只是插座电路,所以,该系统可扩展性很强。伴随插入插座电器不一样,能够实现很多其它功效电路。附录A:使用说明1、将温度控制箱上开关全部打到“关”位置2、将温度芯片插到温度控制箱指定位置3、用串口线将温度控制箱和计算机相连,打开对应应用程序4、将用电器插头插到温度控制箱插座5、接上温度控制箱电源、并打开开关。在温度控制箱上数码管显示出目前温度6、按F1键,进入温度点1设置。经过键盘设置所需要温度,然后按“确定”键。系统会将设置值和目前值进
34、行比较,经过温度芯片反馈,单片机控制加热或冷却水温度,使水温度稳定在设置温度上。从而达成控制温度作用。7、 按F2键则对应进入温度点2 设置。和F1键使用方法相同。8、 当要关闭系统时,先关掉开关,然后再拔掉电源。框图表示:系统开始工作,直至工作结束,关闭电源按F1或F2进行温度点1或温度点2设定确定温度控制箱上开关全部打到关状态接上温度芯片,连接好电路,接上电源,打开开关 附录B:程序清单主程序:ORG 0000H ;DS18B20.ASM DS18SL EQU 41H ;用于保留读出温度低8位 DS18SH EQU 40H ;用于保留读出温度高8位DS18FIG EQU 8H ;是否检测到
35、DS18B20标志位A_BIT1 EQU 31H ;数码管个位数存放内存位置B_BIT1 EQU 32H ;数码管十位数存放内存位置D_BIT1 EQU 35H;数码管百位数存放内存位置DS18CD1 EQU 42H ;DS18CD1-DS18CD8暂存64位ROMDS18CD2 EQU 43H ;从低到高DS18CD3 EQU 44HDS18CD4 EQU 45HDS18CD5 EQU 46HDS18CD6 EQU 47HDS18CD7 EQU 48HDS18CD8 EQU 49HDS1864B EQU 4AHDS18ADS EQU 4BHDS18DQ EQU P1.0 ;30H,31H,3
36、2H,33H: X 个位 十位 XMOD7: MOV SP,#60HLCALL GET_TEMPER ;调用读温度子程序LCALL READCODEAJMP MOD7INIT_1820: ;DS18B20初始化SETB DS18DQCLR DS18DQ;延时,500US低MCMOV R7,#250DJNZ R7,$MOV R7,#150DJNZ R7,$SETB DS18DQ ;释放总线LCALL DELAY60US ;15-60US等候时间MOV R6,#4SETDSDQ:LCALL DELAY60USJNB DS18DQ,SETDSDQFH ;60-240US内是否有返回信号,为0跳DJN
37、Z R6,SETDSDQMOV R7,#250DJNZ R7,$CLR DS18FIGRETSETDSDQFH:SETB DS18FIGMOV R7,#250DJNZ R7,$MOV R7,#100DJNZ R7,$RET;数据处理程序:TEMP0: INC AAJMP TEMP1TEMPCOV: MOV A,DS18SL ;数据处理子程序TEMPCOVMOV B,#16DIV ABJB B.3,TEMP0TEMP1: MOV 34H,A ;将DS18SL高四位右移四位,存入34H中(温度值)MOV A,B ;将DS18SL低四位X10/16得小数后一位数.MOV B,#10MUL ABMOV B,#16DIV ABMOV 30H,A ;将小数后一位数.存入30H中MOV A,DS18SH ;DS18SH中存放高8位数,权重16MOV B,#16MUL ABADD A,34H ;34H中存入温度值整数部分MOV B,#10DIV ABMOV 31H,B ;个位存入31H中MOV B,#10 ;DIV AB ;MOV 32H,B ;十位存入32H中MOV B