嵌入式设计—供暖水压水温的检测老冯_第1页
嵌入式设计—供暖水压水温的检测老冯_第2页
嵌入式设计—供暖水压水温的检测老冯_第3页
嵌入式设计—供暖水压水温的检测老冯_第4页
嵌入式设计—供暖水压水温的检测老冯_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、供暖水压水温的检测系统1设计的缘由:供暖站的热水供暖系统需要时刻对热水进行水温和水压的实时监控,才能保证供暖的有效性和稳定性。这就需要有一个可靠地水温、水压数据采集的监控系 统来实现这样的需求。2 .系统功能的流程图:如图所示:3 .检测系统的硬件设计3.1 单片机 AT89C51单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处 理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O 口和 中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、 模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的 计算机系统。设计用到的 A

2、T89C51是一种带4K字节FLASH存储器的低电压、 高性能CMOS 8位微处理器,其主要特性有:128 X8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和 掉电模式、片内振荡器和时钟电路。图1 51单片机引脚接线图本设计用到定时器/计数器的功能,在时间计数设置时,用定时器/计数器0 的计数功能,外部以脉冲形式输入作为计数器的计数脉冲,这里外部脉冲间隔约为1s,计数实现时间计数功能。3.2 数字温度传感器ds18b20数字温度传感器就是能把温度物理量,通过温度敏感元件和相应电路转换成 方便计算机、plc、智能仪表等数据采集设备直接读取得

3、数字量的传感器。设计 用到的ds18b20数字温度传感器耐磨耐碰,体积小,使用方便,封装形式多样, 适用于各种狭小空间设备数字测温和控制领域。其主要性能描述:1 .独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;2 .测温范围 一55C+125C,固有测温分辨率0.5C;DALLAS 1AB201 2 33 .支持多点组网功能,多个DS18B20可以并联在BOTTOM 陈财唯一的三线上,最多只能并联8个,实现多点测温;4 .工作电源:35V/DC ;5 .在使用中不需要任何外围元件;6 .测量结果以912位数字量方式串行传送。本设计

4、中,用ds18b20来采集供暖水的水温数 据,以单线串口形式将数据输送给单片机处理。图2 ds18b20引脚图PORT OPTIONCASE 367B-04, STYLE 13.3压力传感器mpx4250压力传感器是工业实践中最为常用的 一种传感器,而我们通常使用的压力传感器 主要是利用压电效应制造而成的,这样的传 感器也称为压电传感器。压电传感器结构简 单、体积小、质量累世、功耗小、寿命长, 特别是它具有良好的动态特性,因此适合有 很宽频带的周期作用力和高速变化的冲击 力。mpx4250的主要性能指标:图3 mpx4250引脚功能图1 .工作压力0 36.3 PSI;2 .输出 0.2 4.

5、9V;3 .精确度土 .4%;4 .电源电压 4.85 V 5.35 V;5 .工作温度-40 C 125 Co本设计中,用mpx4250来采集供暖水压数据,1端口输出采集的水压数据到 adc0808模数转换芯片。3.4模数转换芯片adc0808ADC0808是美国国家半导体公司生产的 CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个 8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行 A/D转换adc0808主要特性:1.8路输入通道,8位A/D 转换器,即分辨率为8位;2 .具有转换起停控制端;3 .转换时间为100仙s(时 钟为640kH

6、z时),130卜s (时 钟为500kHz时);4 .单个+5V电源供电;5 .模拟输入电压范围0 +5V,无需零点和满刻度校 准;6 .工作温度范围为-40一4丁孙诂乒。721 .05加'CM 18 一口3 g却1适FOO 17U3,匚 LQCKSTARTEOCUT2QUT3QU74DUT5DLT6 0UT7 0UT80EADC0U80 12 3 4 5 6 7 N N N N N N N NADDAADDBAD"ALEVREF(+)VREF(-)2512图5数码管引脚定义图4 adc0808引脚接线图+85摄氏度;7.低功耗,约15mW本设计中,adc0808模数芯片用于

7、压力传感器 mpx4250的水压模拟量串口输入的数据转化为数字量并口输出给单片机 P0 口的数据3.5 8个8段数码管与数码管显示驱动芯片 max7219led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各 个笔划,公共电极。led数码管根据LED的接法不同分 为共阴和共阳两类。8段led数码管分为8个显示段,分别是:a、b、c、d、e、f、g、dp, dp是小数点位段。根据数码管的驱动方式的不同,可以分为静态式 和动态式两类。静态驱动显示也称直流驱动。静态驱动是指每个数码管的每一个段码 都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-

8、十进制译码器 译码进行驱动。动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发 光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显小OMAX7221是一种集成化的串行输入 /输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。具上包括一个片上的 B型BCD编码器、多路扫描回路,段 字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。MAX7221显示驱动芯片的主要功能特点:1.10MHz连续用行口;2 .独立的LED段控制;3 .高电压中断显示;4 .共阴极LED显示驱动;5 .限制回转电流的段驱动来

9、减少EMI。c»pQO o oo q9.53k1,3DIG O-DIG 7niN MAX花19D,N MAX7221-3 0IGTS1213LOAD'CS>CLXSEG A-&SEG DPGN口gND& SEGMENTS图6 max7221的典型应用电路本设计中,8个8段共阴极数码管与max7221显示芯片配合驱动显示数据。显示方式为动态显示。前 4个数码管显示水温数据,精确到 0.1 C。后4个数码管显示水 压数据,精确到0.1kpa。同时可以切换显示计数的时间,即系统开启后运行时间的计时。3.6 继电器的工作原理继电器是一种电控制器件。它具有控制系统

10、(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。当输入量达到规定值时,继电器使被控制的输出电路导通或断开。继电器具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动 化、运动、遥控、测量和通信等装置中。本设计中,用了两个电磁继电器对报警灯回路进行接通或断开操作。图7本设计中的继电器和报警灯的电路图3.7 供暖水压水温系统的原理图前四位显示当前温度历四位显示当前水任0950 1590I门-4.供暖水压水温系统的软件设计4.1 系统硬件控制描述1 .控制器用at89c51,12M晶振

11、;2 .采集的水压数据输入P0 口;3 .采集的水温数据输入P2.7;4 .数码管、max7221 显示驱动 P2.0P2.2;5 .adc0808 模数芯片的控制 P2.3P2.5;6 .切换数码管显示的按钮端 P2.6;7 .继电器控制端 P3.0、 P3.1。4.2 c 程序语言设计自定义的h 文件:#ifndef _MAIN_H_#define _MAIN_H_#include<regx51.h>#include<intrins.h>#include<absacc.h>#define uchar unsigned char#define uint u

12、nsigned int#define addo (260.0/255.0)sbit DIN = P2A0;sbit CS = P2A1;sbit CLK = P2A2;sbit START = P2A3;sbit EOC = P2A4;sbit OE = P2A5;sbit KEY = P2A6;sbit DQ = P2A7;sbit NPN1 = P3A0;sbit NPN2 = P3A1;#endif#ifndef _DISPLAY_H_#define _DISPLAY_H_#include"main.h"extern uchar table8;extern uchar

13、 table18;extern uchar table28;void WriteByte(uchar dat);void MAX7221_WRITE(uchar addr,uchar dat);void MAX7221_Initial(void);void Display(uchar *str);void HEXTOBCD_One(void);void HEXTOBCD_Two(void);#endif#ifndef _DELAY_H_#define _DELAY_H_#include"main.h"void delay_us(uchar n);void delay_ms(

14、uint n);#endif#ifndef _ADC0808_H_#define _ADC0808_H_#include"main.h"uchar ADC0808_READ(void);#endif#ifndef _DS18B20_H_#define _DS18B20_H_#include"main.h"extern uchar flag;void DS18B20_RST(void);uchar DS18B20_READ(void);void DS18B20_WRITE(uchar dat);uint DS18B20_ReadTemp(void);#en

15、dif#ifndef _TIME0_H_#define _TIME0_H_#include"main.h"extern uchar secs;extern uchar minutes;extern uchar hours;void Time0_Initial(void);#endif程序正文:#include"main.h"#include"delay.h"#include"display.h"#include"adc0808.h"#include"ds18b20.h"#in

16、clude"time0.h"uchar ADC0808_READ(void)uchar temp;START = 0;START = 1;START = 0;while(EOC=0);OE = 1;temp = P0;return temp;void delay_us(uchar n)while(n-);void delay_ms(uint n)uchar i;while(n-)for(i=0;i<100;i+);uchar table9 = 15,15,15,15,15,15,15,15;uchar table18 = 1,2,3,4,5,6,7,8;uchar t

17、able28 = 1,2,3,4,5,6,7,8;void WriteByte(uchar dat)uchar i;for(i=0;i<8;i+)DIN = (dat<<i)&0x80)?1:0;CLK = 0;_nop_();CLK = 1;_nop_();void MAX7221_WRITE(uchar addr,uchar dat) CS = 0;WriteByte(addr);WriteByte(dat);CS = 1;void MAX7221_Initial(void)MAX7221_WRITE(0x0A,0x07);MAX7221_WRITE(0x0B,0

18、x07);MAX7221_WRITE(0x0C,0x01);MAX7221_WRITE(0x0F,0x00);MAX7221_WRITE(0x09,0xFF);void Display(uchar *str)uchar i;for(i=0;i<8;i+)MAX7221_WRITE(i+1,stri); void HEXTOBCD_One(void) table10 = hours/10;table11 = hours%10;table12 = 10;table13 = minutes/10;table14 = minutes%10;table15 = 10;table16 = secs/

19、10;table17 = secs%10; void HEXTOBCD_Two(void)uint temp1,temp2;temp1 = DS18B20_ReadTemp();temp2 = (int)(ADC0808_READ()*addo*10);if(temp1>1000)NPN1 = 1;elseNPN1 = 0; if(temp2>1600)NPN2 = 1;elseNPN2 = 0;if(flag=0)table20 = temp1/1000;elsetable20 = 10;table21 = temp1%1000/100;table22 = (temp1%100/

20、10)|0x80;table23 = temp1%10;table24 = temp2/1000;table25 = temp2%1000/100;table26 = (temp2%100/10)|0x80;table27 = temp2%10;uchar flag = 0;void DS18B20_RST(void)DQ = 1;delay_us(4);DQ = 0;delay_us(100);DQ = 1;delay_us(40);uchar DS18B20_READ(void)uchar i,temp = 0;for(i=0;i<8;i+)DQ = 0;temp >>=

21、 1;DQ = 1;if(DQ)temp |= 0x80;delay_us(10);return temp;void DS18B20_WRITE(uchar dat)uchar i;for(i=0;i<8;i+)DQ = 0;DQ = (dat&0x01)?1:0;delay_us(10);DQ = 1;dat >>= 1;uint DS18B20_ReadTemp(void)uchar temp_h,temp_l;uint temp = 0;DS18B20_RST();DS18B20_WRITE(0xcc);DS18B20_WRITE(0x44);DS18B20_RST();DS18B20_WRITE(0xcc);DS18B20_WRITE(0xbe);temp_h = DS18B20_READ();temp_l = DS18B20_READ();temp = temp_l;temp <<= 8;temp |= temp_h;if(temp<0x0fff)flag = 0;elseflag = 1;temp = temp+1;temp = temp*(0.625);return temp;uchar secs = 0;uchar minutes = 0;uchar

温馨提示

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

评论

0/150

提交评论