资源目录
压缩包内文档预览:(预览前20页/共23页)
编号:512578
类型:共享资源
大小:5.11MB
格式:ZIP
上传时间:2015-11-11
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计
- 资源描述:
-
张鹏单片机在小型开水锅炉控制系统中的应用,毕业设计
- 内容简介:
-
1 1 绪论 目前大多数工业锅炉仍处于能耗高、浪费大、环境污染严重的生产状态。所以开发研制自动化程度高、节能潜力大、提高安全系数、减轻环境污染、减轻劳动强度、价格低的新型测控装置 意义重大。 使用单片机实现供暖锅炉温度控制,具有较高的实用价值和优越性等特点。采用低功耗数字温度传感器进行温度测控,可大大简化设计方案,系统性能也更稳定 ;采用光电 管 测控水位,可有效保证水位的自动控制,保证水质无污染,能更好地对锅炉进行自动化控制;单片机不仅有体积小,安装方便,功能较齐全等优点, 不仅使控制系统大大的简化而且其强大的功能稳定 的输出都 将保证锅炉正常供气供暖,保证安全经济运行。 2 系统总体方案 2.1 系统框图 本系统主要有水位检测、温度检测、按键控制、水温控 制、水位控制、循环控制、显示部分、故障报警等几部分组成来实现自动化 控制,系统框图如图 1 所示。 2.2 系统具体实现方案 本系统采用 51 系列单片机 AT89S51 控制锅炉供暖,系统采用手动和自动两种。主要是单片机自动控制,设置有手动 /自动切换。包括 利用温度控制, 补水泵控制、循环泵控制、故障报警。 在温度控制部分,用数字温度传感器的值送入单片机与单片机内部设定 值进行比较。 设定温度 1 为低水位控制位,温度 2 为高水位控制位, 在当温度低于给定温度 1 时,蒸汽阀打开给水加热;当温度 高 于给定温度 2 时,系统报警。 在补水部分,用水位传感器来检测水位,当锅炉汽包水位低于规定的最低水单 片 机 按键控制部分 温度检测部分 水 位检测部分 故障报警部分 温度控制部分 补水控制部分 循环控制部分 LED 显示部分 图 1 系统框图 nts 2 位时系统发出报警,指示灯亮,继电器线圈得电,电磁阀打开,水泵开始注水;炉内的水位到达或超过规定的最高水位时系统发出报警,指示灯亮,线圈失电,电磁阀闭合,停止注水 。 故障报警部分,当发生故障时指示灯亮,报警零响。 在循环控制部分当水温值在设定值内,则开启循环泵。当循环泵 1 出现故障时,报警系统报警,单片机接收 到信号,备用的循环泵 2 开始代替循环泵 1 工作。 在故障报警部分,当温度控制部分、补水泵部分、循环泵部分出现故障时,报警系统报警。 3 系统硬件设计 本系统从经济性,电路结构,系统性能等多方面考虑。选用如下元器件,数字温度传感器 DS18B20, 压力传感器 PT125, 单片机 AT89S51, LED 数码管,变频器,光敏三极管 ,若干继电器用来控制风机,水泵循环泵等 。 3.1 单片机的配置 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 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)电路,片内时钟振荡器。 此外, AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模式下, CPU 暂停工作,而 RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、 TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。 AT89S51 具有以下特点: *与 MCS-51 微控制器产品系列兼容。 *片内有 4KB 可在线重复编程的快闪擦写 存储器。 *32 条可编程 I/O 线。 *程序存储器具有三级加密保护。 *可编程全全双工串行通道。 *空闲状态维持低功耗和掉电状态保存存储内容。 nts 3 *而且与 87C51 系列的引脚也完全兼容。 3.2 温度传感器 本系统采用的是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器 DS18B20,与传统的热敏电阻等测温元件相比,它能直接读出被测度数,并且可根据实际要求通过简单的编程实现 9-12 位的数字值读数方式。 DS18B20 的性能特点: *独特的单线接口仅需一个端口引脚进行通信; *多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能; *无须外部器件; *可通过数据线供电,电压范围为 3.0-5.5V; *零待机功耗; *温度以 9 或 12 位数字量读出; *用户还可定义的非易失性温度报警设置; *报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; *负电压特性,电源极性接反时,温度计不会因为发热而烧毁,但不能正常工作。 DSl8B20 的引脚如图 2 所示。 此外 DSl8B20 数字温度计提供 9 位 (二进制 )温度读数,指示器件的温度。信息经过单线接口送入 DSl8B20 或从 DSl8B20 送出,因此从主 机 CPU 到 DSl8B20 仅需一条线 (和地线 )。DSl8B20 的电源可以由数据线本身提供而不需要外部电源。因为每一个 DSl8B20 在出厂时已经给定了唯一的序号,因此任意多个 DSl8B20 可以存放在同一条单线总线上。这允许在许多不同的地方放置温度敏感器件。DSl8B20 的测量范围从 -55 摄氏度到 +125 摄氏度,增量值为 0.5 摄氏度,可在 ls(典型值 )内把温度变换成数字。每一个 DSl8B20 包括一个唯一的 64 位长的序号,该序号值存放在 DSl8B20 内部的 ROM(只读存贮器 )中。开始 8 位是产品类型编(DSl8B20 编码均为 10H)。接着的 48 位是每个器件唯一的序号。最后 8 位是前面 56 位的 CRC(循环冗余校验 )码。 DSl8B20 中还有用于存储测得的温度值的两个 8 位存贮器 RAM,编号为 0 号和 1 号。 1 号存贮器存放温度值的符号,如果温度为负 (摄氏度 ),则 1 号存贮器 8 位全为 1,否则全为 0。 0 号存贮器用于存放温度值的补码, LSB(最低位 )的 1 表示 0.5 摄氏度。 将存贮器中的二进制数求补再转换成十进制数并除以 2 就得到被测温度值 (-55 摄氏度 -125 摄氏度 )。 每只D518B20 都可以设置成两种供电方式,即数据总线供电方式和外部供电方式 。图 2 DS18B20 引角 图 nts 4 采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长,采取外部供电方式则多用一根导线,但测量速度较快 ,输出数据见下表 。 表 1 DS18B20 温度数据关系表 温度 数据输出(二进制) 数据输出(十六进制) +125 0000 0111 1101 0000 07D0 +85 0000 0101 0101 0000 0550 +25.0625 0000 0001 1001 0001 0191 +10.125 0000 0000 1010 0010 00A2 +0.5 0000 0000 0000 1000 0008 0 0000 0000 0000 0000 0000 -0.5 1111 1111 1111 1000 FFF8 -10.125 1111 1111 0101 1110 FF5E -25.0625 1111 1110 0110 1111 FE6F -55 1111 1100 1001 0000 FC90 3.3 显示部分 在单片机系统中,通常用 LED 数码显示模块来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、光电转换效能高、寿命长的特点,因此使用非常 广泛。 3.4 变频器 在本系统中我们选用 ABB 公司的 ACS600 变频器。 ACS600 变频器具有很宽的功率范围( 2.2 3000kw)可以满足本设计的要求 75kw 和 3kw,优良的速度控制和转矩控制,并具有完整的保护功能以及灵活的编程能力 。 其重要特性如下 : * 无与伦比的电机速度及转矩控制 , 电机辨识运行及速度自我微调功能。 * 内置 PID 控制器,降低了您的投资成本。 * 工具软件对传动的全方位支持 , ACS 600 SingleDrive 能在几毫秒内测出电机的实际转速和状态,所以在任何状态下都能立即起动,无 起动延时。 nts 5 * 零转速下,不需速度反馈就能提供电机满转矩。 * ACS 600 SingleDrive 能够提供可控且平稳的最大起动转矩 , 可达到 200%的额定转矩。 * 不需特殊硬件的磁通制动模式可以提供最大的制动力矩。 * 在磁通优化模式下,电机磁通自动适应于不同的负载以提高效率同时降低电机的噪音 , 变频器和电机的总效率可提高 1%-10%。 * DTC 直接转矩控制 , 从零速开始不使用电机轴上的脉冲码盘反馈就可以实现电机速度和转矩的精确控制。 * 开环转矩阶跃上升时间小于 5 毫秒,而不带速度传感器的磁通矢量控 制变频器的开环转矩阶跃上升时间却多于 100 毫秒 。 3.5 水位传感器 用 发光二极管和 光敏三 极管 3DU 组合 来 检测水位。 3.6 A/D 转换器 采用常见的 ADC0808。 ADC0808 是带有 8 位 A/D 转换器、 8 路多路开关以及与微型计算机兼容的控制逻辑的 CMOS 组件,其转换方法为逐次逼近型。在A/D 转换器内部含有一个高阻抗斩波稳定比较器,一个带有模拟开关树组的 256电阻分压器,以及一个逐次逼近型寄存器。 8 路的模拟开关由地址锁存器和译码器控制,可以在 8 个通道中任意访问一个通道的模拟信号。由于多路开关的地址输入部分能 够进行锁存和译码,而且三态 TTL 输出也可以锁存,所以它易于与微型计算机接口直接相连。 3.7 压 力 传感器 设计采用高温高压压力变送器 PT125 来采集蒸汽室气压, PT125 常应用于橡胶、塑料、涤纶锦纶、聚脂、蒸汽等高温的精确测量和控制。其常用参数如下: *量 程: 0 1-450MPa *综合精度: 0.1%FS 0.2%FS 0.5%FS 1.0%FS *输 出 : 0 5V *工作温度: -10 200-450 ; *供电电压: 9 36 V(24VDC) *长期稳定性: 0.1%FS/年 *负载阻抗:电流型最大 800 电压型 50K 以上 *绝缘电阻:大于 2000M 100VDC *振动影响:对于 20HZ-1KHZ 的机械振动,输出变化小于 0.1%FS nts 6 4 系统的具体设计与实现 4.1 系统的总体原理图 系统的总体原理图如图 3 所示。 4.2 单片机控制系统的流程图 单片机控制系统 模拟量处理子程序、温度控制部分子程序、循环系统控制子程序、补水泵选择子程序、故障诊断与报警处理。它 的流程图如图 4 所示。 4.3 电源电路 系统工作电压为 5V,电流 1.5A。采用原边交 流 220V 副边 10V 的变压器,经桥式整流 1000UF 电容滤波 7805 稳压可使电源满足求。其原理图如图 5 所示。 图 5 电源原理图 B C19 1000U/25V C20 1000U/25V 1 2 3 4 IN4007 C21 0.01 7805 MAX496 220V 5V 状态及 PID 初始化 模拟量处理子程序 温度控制部分子程序 循环系统控制子程序 补水泵选择子程序 故障诊断与报警处理 图 4 控制流程图 开始 nts 7 c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14V C C1 2 3 1 2 3SPQ49 01 51 0uC1D1 D2 D3R11KR21KR31KD S 18 B 2 0D S 18 B 2 0P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1. 5 /M O S I6P 1. 6 /M IS O7P 1. 7 /S C K8R E S T9P 3. 0 /R X D10P 3. 1 /T X D11P 3. 2 /IN T 012P 3. 3 /IN T 113P 3. 4 /T 014P 3. 5 /T 115P 3. 6 /W R16P 3. 7 /R D17X T A L 218X T A L 119GND20P 2. 021P 2. 122P 2. 223P 2. 324P 2. 425P 2. 526P 2. 627P 2. 728P S E N29A L E / P R O G30E A /V P P31P 0. 732P 0. 633P 0. 534P 0. 435P 0. 336P 0. 237P 0. 138P 0. 039V C C40A T 89 S 5 1K M 1K M 2 K M 31KS1S2S3S4Q1Q2Q3C3S5R5R6R7R8R9 R 1 0R 1 4R 1 5 R 1 8IN-026msb2-1212-2202-3192-4182-582-6152-714lsb2-817EOC7ADD-A25ADD-B24ADD-C23ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10ADC0808GNDPT125D C 2 4V5VC41 2M H zK M 4R 1 1R 1 2R 1 3D5D6D7D8D9D 1 05 .1 K1K4 .7 K4 .7 K4 .7 K1K1K3 0P 3 0PGNDK M 5K M 65 .1 KK M 8K M 7Q 1 29 01 5Q 1 19 01 5Q 1 09 01 5Q99 01 5Q89 01 5Q79 01 5Q69 01 5Q59 01 5图 3 系统原理图 nts 8 4.4 温度控制系统 温度传感器 DS18B20 将检测到的温度数据由单片机的 P2.7 口送入。由单片机 AT89S51 进行运算,换算出测量温度,即水温。它与设定温度相比较,从而控制继电器的通断即及报警系统的开闭。当水温高于设定温度时蒸汽阀关,水温刚低于设定 温度时,蒸汽阀并不会立即导通,只有当水温底于设定温度 1 时,蒸汽阀才会导通,给水加热。若水温继续下降,低于设定温度 2 时,报警系统报警。温度控制部分。将检测到室外温度、出水温度、回水温度与设定温度相比较,从而控制继电器的通断及报警系统的开闭。系统框图如 6 所示。 4.5 循环泵控制部分 本系统用两台循环,一台工作一台备用。 循环泵部分的子程序部分当出水温度和回水温度在规定范围之内,开启循环泵 1,有变频器控制。当循环泵 1 出现故障时,用备用的循环泵 2。循环泵 1 出现故障即是出水温度与回水温度的差值非常大即设定的最大温差时 ,循环泵故障报警,改用循环泵 2 来替代循环泵 1 工作。被替代的泵在循环顺序中可以自动跳过 ,顺沿循环 , 循环框图如图 7 所示。 图 7 循环控制流程图 循环泵有故障吗 ? 温差为设定值吗? 开启循环泵 1 温度检测 Y N N 循环泵 2 工作 Y 开始 返回 检测温度在设定值 1? 开蒸汽阀 检测温度在设定值 2? 故障报警 N Y N Y 图 6 温度控制流 图图 程 图 ) 开始 返回 nts 9 4.6 水位控制系统 水位检测是通过 3 对高亮二极管和光敏三极管分别安装在 3个不同的位置,由上至下四个输出端口分别接单片机的 P0.0、 P0.1、 P0.2 口,实时对锅炉里的水位进行检测, 3DU实用电路图如图 8 所示。 当水位到达某一光敏三极管的位置时,其输出端口就向单片机输出高电平;当 水位低于此光敏三极管的位置时,其输出端口就向单片机输出低电平。由上至下的第一个位置为水位上限报警线,即当水位高于此位置时,控制系统就会自动报警,加水电磁阀有可能出故障;第二个位置是自动停止加水线,即当水位高于此位置时, 控制系统会自动关闭加水电磁阀,停止加水;第三个位置是自动加水线,即当水位低于此位置时,控制系统会自动接通加水电磁阀,开水加水; 单片机输出控制端 P2.3 和 P0.4 分别接继电器 KM3 和 KM4线圈,继电器触点的动作受单片机控制,从而对变频器和补水泵形成自动控制。当一台补水泵出现故障时,系统报警,另一 台备用的补水泵开始工作, 水位控制流程框图如图 9 所示。 补水泵 1 有故障吗? 水位下限水位吗? 开启补水泵 1 进行补水 水位检测 Y N N 补水泵 2 工作 Y 开始 返回 检测水位为上限水位吗? 补水泵 1 停止补水 Y N 检测水位为上限水位吗? 补水泵 2 停止补水 Y N 图 9 水位控制流程图 故障报警 nts 10 4.7 压力控制系统 当压力传感器检测到的压力值比单片机内部设定的压力值大时,停止补水系统和关闭鼓风机。 设计中将 ADC0808 作为一个外部扩展的并行 I/O 口,直接由单片机的 P2.0 脉冲启动其 A/D 转换, PT125 输出的模拟信号送入 IN.0 端。而其他输入口端均无效,所以将 ADDA-B-C 端均置零。收发数据则由中断处理程序来完成,所以除将 EOC 状态端的状态信号送至外部 中断口 1 端以共向 CPU 提出中断请求。如果压力值超出预设值时,单片机 P2.2 输出信号控制继电器 KM8 从而控制泄压阀动作,保证锅炉正常安全运行,控制电路如图。 图 10 压力控制系统电路图 4.8 键盘部分 按键控制电路由 4 个开关组成,分别接在单片机 P1.0 P1.3 口。它由 4 个常开按键构成,直接与单片机 I/O 口相连,另一端与地相接。当按键闭合时,单片机与之相连的端口变为低电平。 S1 作为多功能键由软件设置可用于多种功能的转换。 当用于温度调节时, 4 个开关分别用于调整温度的上下限值,以及控制温度的输出。其中 S1 为多功能键,有软件设置,长按 S1 后可对两个温度设置的设定。选定设置目标后,第一次按下用于显示采集的温度,第二次按下则进行温度的上限调整,第三次按下进行温度的下限调整,第四次按下则进行采集温度的显示构成循环。 S2 可以进行移位调整,第一次显示个位,第二次显示十位。 S3 用于增加一个数,按下一次在原基础之上加 1,这个值在 0-9-0 之间变化。 S4 用于减少IN - 026m s b 2 -1212 -2202 -3192 -4182 -582 -6152 -714ls b 2 - 817E O C7A D D -A25A D D -B24A D D -C23A L E22re f( -)16E N A B L E9S T A R T6re f( + )12C L O C K10ADC0808GNDP T 1 2 5D C 2 4 V5VP 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 5 /M O S I6P 1 . 6 /M IS O7P 1 . 7 /S C K8R E S T9P 3 . 0 /R X D10P 3 . 1 /T X D11P 3 . 2 /IN T 012P 3 . 3 /IN T 113P 3 . 4 /T 014P 3 . 5 /T 115P 3 . 6 /W R16P 3 . 7 /R D17X T A L 218X T A L 119GND20P 2 . 021P 2 . 122P 2 . 223P 2 . 324P 2 . 425P 2 . 526P 2 . 627P 2 . 728P S E N29A L E / P R O G30E A /V P P31P 0 . 732P 0 . 633P 0 . 534P 0 . 435P 0 . 336P 0 . 237P 0 . 138P 0 . 039V C C40A T 8 9 S 5 1GNDQ99 0 1 5nts 11 一个数,按下一次在原基础之上减 1,这个值在 9-0-9 之间变 化 ,对压力的调节也是如此 。 4.9 驱动部分 电路 继电器的驱动用 8550PNP 型三极管。因 AT89S51 上电复位时, P0, P1, P2,P3 口 为高电平,此时 PNP 型三极管基极接高电平,三极管截止,继电器处于断开状态,可使单片机正常复位。在 PNP 型三极管发射极接二级管 4007,可防止三极管断开瞬间,继电器电流不能突变,使三极管造成损坏。 4.10 显示部分电路 由单片机 AT89S51 控制,移位寄存器 74LS164 和共阳 7 段 LED 组成。 89S51的串行口 RXD 和 TXD 为一个全双工串行通信口,但工作在方式 0 下可作同步移位寄存器,其数据由 RXD( P3.0)串行 输出或输入;而同步移位时钟由 TXD( P3.1)端串行输出,在同步时钟作用下,实现同串行到并行的数据通信。在不需要使用串行通信的场合,利用串行口加芯片 74HC164 就可构成一个并行输入输出口。 数据显示采用共阳数码管,其共阳端接高电平,三个二极管起到限流作用 。可通过软件按键等设置显示温度、压力等数值 , 显示原理图如图 11 所示。 图 11 显示原理图 c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98c1d2g10e4dp5b6a7f98A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14P 3. 1 P 3. 0 V C CGNDnts 12 4.11 自动报警电路 锅炉上限极限水位报警,炉内的水位到达上限极限水位时系统发出报警,指示灯亮 。 锅炉下限极限水位报警,炉内的水位到达下限极限水 位时系统发出报警,指示灯亮。 锅炉内压力过高报警,压力传感器检测到锅炉内压力高于 设定值时发出报警后。循环泵故障报警,当循环泵开启后,出水与回水温度的差值很大,认为循环泵故障,报警系统报警 。 5 结束语 本系统介绍了单片机在水暖锅炉中的应用,采用数字温度传感器、光敏三极管、压力传感器使硬件系统大为简化。系统精度高,具有良好的人机交互功能。并设有超温、超水位、循环泵失灵等故障报警,有问题立即就能发现。通过自动调节控制温度并实现锅炉内温度和水位的自动控制。保护温度控制在设定值上正常运行不需要人工干预,操作人员劳动强 度小 。 致谢 本文是在指导老师的悉心指导下完成的。指导老师具有严谨的治学态度,丰富的实践经验,在治学及做人方面使我受益匪浅。衷心感谢老师对我的关心指导和帮助。 nts 13 参考文献 1 谢自美,电子线路设计 实验 测试 J.华中科技大学出版社, 2003, 2 2 杨国志,王立峰,杨东光,王辉林等 . 实用电子制作实例 M.福建科学技术出版社, 2000 3 金伟正 .单线数字温度传感器的原理及用 M.电子工业出版社 , 2000 4 王永平,陈建华 .基于 S7 200PLC 的高性能电热锅炉控制系统 J.仪表技术与传感器, 2002, 7 5 潘新民,王艳芳。微型计算机控制技术 M.高等教育出版社, 2002 6 谈振藩 .自动控制专业英语 M.哈尔滨工程大学出版社, 1999 7杨 智 ,明丽萍 .21 世纪燃气锅炉在中国的发展前景 J.锅炉制造 , 2001, 7 8袁希光等 .传感器技术手册 M.北京国防工业出版社 ,1986 9 张洪润,张亚凡。传感技术与应用教程 M.清华大学出版社, 2005 10 松井邦彦 日 著, 梁瑞林 译 。传感器实用电路设计一制作 M科学出版社, 2005 11 李光飞,楼然苗 .单片机课程设计实例指导 M.北京航空航天大学出版社,2004 12 李明,徐向东 .用容错技术提高锅炉控制系统的可靠性 J清华大学学报 1999, 10 13 吴春旺,陈霞。锅炉汽包水位调节控制系统设计 J.电工技术, 2006.3 14 刘星平。基于 PLC 及其网络的智能炉温控制系统 J.电气应用, 2006.3 nts 14 附 录 单片机源程序 ORG 0000H AJMP MAIN ORG 0003h AJMP MAIN ORG 000bh AJMP MAIN ORG 0013h AJMP MAIN ORG 001bh AJMP MAIN ORG 0023H AJMP MAIN ORG 0030H MAIN: CLR p3.6 MOV p0,#0ffh ACALL QL; MOV 3BH ,#95 MAIN1: MOV 3bh,#95 ACALL WENDU ;温度转换子程序 ACALL DISP ACALL WENCPM ;温度比较子程序 ACALL SHUICPM ;水位检测子程序 ACALL BAOJING ;报警子程序 ACALL DELAY2 AJMP MAIN1; WENCPM: MOV A,37H ;温度比较子程序 CLR C SUBB A,3BH JC BBB1 SETB P2.1 ;关蒸气阀 CLR 20H.0 ACALL ok2 BBB1: MOV A,37H nts 15 ADD A,#10 CLR C SUBB A,3BH JNC OK2; CLR P2.1;低与设定温度 10 度开蒸汽阀 MOV A,37H ADD A,#20 CLR C SUBB A,3BH JNC OK2 CLR P2.1;低与设定温度 20 度开蒸汽阀 SETB 20H.0 RET ok2: CLR 20H.0 RET ;水位检测子程序 SHUICPM:MOV A,P1 ANL A,#0FH MOV 30H,#0FH ;00001111 CJNE A,30H,AAA1 SETB P2.0 SETB 20H.1 ;setb 水位状态标志位 AJMP OUT2 AAA1: MOV 30H,#0EH ;00001110 CJNE A,30H,AAA2 SETB P2.0 CLR 20H.1 AJMP OUT2 AAA2: MOV 30H,#0CH ;00001100 CJNE A,30H,AAA3 CLR 20H.1 CLR p2.0 AJMP OUT2 AAA3: MOV 30H,#08H ;00001000 CJNE A,30H,AAA4 nts 16 CLR P2.0 CLR 20H.1 AJMP OUT2;70 AAA4: MOV 30H,#00H ;00000000 CJNE A,30H,AAA5 setb P2.0 SETB 20H.1 AJMP OUT2 AAA5: SETB 20H.2 RET OUT2: CLR 20H.2 RET BAOJING: JB 20H.3,OUT6 MOV A,20H MOV 30H,#00H CJNE A,30H,OUT5 AJMP OUT6 OUT5: SETB P3.6 JB 20H.4,OUT9 SETB P0.1 OUT10: JB 20H.2,OUT11 SETB P0.2 OUT12: JB 20H.1,OUT13 SETB P0.3 OUT14: JB 20H.0,OUT15 SETB P0.4 OUT16: RET OUT6: CLR P3.6 RET OUT9: CLR P0.1 AJMP OUT10 OUT11: CLR P0.2 AJMP OUT12 OUT13: CLR P0.3 AJMP OUT14 nts 17 OUT15: CLR P0.4 AJMP OUT16 ;总温度子程序 WENDU: ACALL INIT_1820 ACALL RE_CONFIG ACALL GET_TEMPER ACALL TEMPER_COV RET ; DS18B20 初始化程序 INIT_1820: SETB P1.7 NOP CLR P1.7 MOV R0,#06BH MOV R1,#03H TSR1: DJNZ R0,TSR1 ; 延时 MOV R0,#6BH DJNZ R1,TSR1 SETB P1.7 NOP NOP NOP MOV R0,#25H TSR2: JNB P1.7,TSR3 DJNZ R0,TSR2 LJMP TSR4 ; 延时 TSR3: CLR 20H.4 ; 清标志 ,表示 DSS18B20 存在 LJMP TSR5 TSR4: setb 20H.4 ; setb 标志位 ,表示 DSS18B20 不存在 LJMP TSR7 TSR5: nts 18 MOV R0,#06BH MOV R1,#03H TSR6: DJNZ R0,TSR6 ; 延时 MOV R0,#6BH DJNZ R1,TSR6 TSR7: SETB P1.7 RET ; 重新写 DS18B20 暂存存储器设定值 RE_CONFIG: JNB 20H.4,RE_CONFIG1 ; 若 DS18B20 存在 ,转 RE_CONFIG1 RET RE_CONFIG1: MOV A,#0CCH ; 发 SKIP ROM 命令 LCALL WRITE_1820 MOV A,#4EH ; 发写暂存存储器命令 LCALL WRITE_1820 MOV A,#00H ; TH(报警上限 )中写入 00H LCALL WRITE_1820 MOV A,#00H ; TL(报警下限 )中写入 00H LCALL WRITE_1820 MOV A,#1FH ; 选择 9 位温度分辨率 LCALL WRITE_1820 RET ; 读出转换后的温度值 GET_TEMPER: SETB P1.7 ; 定时入口 LCALL INIT_1820 JNB 20H.4,TSS2 RET ; 若 DS18B20 不存在则返回 TSS2: MOV A,#0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 nts 19 LCALL WRITE_1820 LCALL INIT_1820 MOV A,#0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 MOV 37H,A ; 将读出的温度数据保存 MOV A,#0ECH CALL WRITE_1820 RET ; 读 DS18B20 的程序 ,从 DS18B20 中读出一个字节的数据 READ_1820: MOV R2,#8 RE1: CLR C SETB P1.7 NOP NOP CLR P1.7 NOP NOP NOP SETB P1.7 NOP MOV C,P1.7 NOP NOP NOP NOP MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE1 RET nts 20 ; 写 DS18B20 的程序 WRITE_1820: MOV R2,#8 CLR C WR1: CLR P1.7 NOP
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。