基于89C51单片机太阳能水温水位控制系统(5)

2019-03-28 11:13

很高,需要解决大量的逻辑控制问题。

1.2 温度检测系统

1.2.1 系统流程图

开CPU初参数是是否否采样显示实时数据处理子控制电机启

图6.1.2.1 系统流程图

1.2.2 程序编写

程序的功能是:启动DS18B20测量温度,将测量值与给定值进行比较,若测得温度小于设定值,则进入加热阶段,置P1.1为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置P1.1为高电平断开可控硅, 关闭加热器,等待下一次的启动命令。当测得温度大于设定值,则进入降温阶段,则置P1.2为低电

平,这期间继续对温度进行监测,直到温度在设定范围内,置P1.2为高电平断开,关闭风扇,等待下一次的启动命令。

WR1:CLR P1.0 MOV R3,#6 DJNZ R3,$ RRC A MOV P1.0,C MOV R3,#23 DJNZ R3,$ SETB P1.0 NOP DJNZ R2,WR1 RET; 读DS18B2

1.3 水位检测系统

1.3.1系统主程序流程图

系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及键盘扫描如图6.1.3.1所示

图6.1.3.1 主程序流程图

1.3.2 显示与A/D转换的数据处理

系统中,显示输出的要求为压缩BCD码,而A/D转换输入的数据是8位16进制码,因此在实现显示之前需要编码的转换。对8位A/D转换器而言,其十六进制、相对满偏电压比率、相对电压幅值的关系对应如表6.1.3.2:

满刻度比率 十六进二进制 制 F E 1111 1110 高四位 15/16 14/16 低四位 电压 15/256 14/256 4.800 4.480 电压 0.320 0.280 高四位低四位相对电压幅值Vref=2.5V

D C B A 9 0 7 6 5 4 3 2 1 0 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 13/16 12/16 11/16 10/16 9/16 8/16 7/16 6/16 5/16 4/16 3/16 2/16 1/16 0/16 13/256 12/256 11/256 10/256 9/256 8/256 7/256 6/256 5/256 4/256 3/256 2/256 1/256 0/256 4.160 3.840 3.520 3.200 2.880 2.560 2.240 1.920 1.600 1.280 0.960 0.640 0.320 0.000 0.260 0.240 0.220 0.200 0.180 0.160 0.140 0.120 0.100 0.080 0.060 0.040 0.020 0.000 表6.1.3.2 A/D转换幅值数据关系对照表

显示转换部分程序简略如下: uchar dis_transform(uchar num) {

uchar ac, quotient, play, mid ; ac = num%5;

quotient = (num-ac)/5; if(ac>2) quotient++; ac=quotient; mid=(quotient-ac)/10; play=ac+mid*16; return play; }

1.3.3 系统主程序

ORG 0000H AJMP MAIN ORG 0060H

MAIN: MOV P1, #FFH ; P1 P3口初始化置1 MOV P3,#FFH

JNB P1.3 , AVT ; 若手动在自动位置,跳到自动模式程序 AJMP MEN ; END

AUT: NOP(空命令)

JNB P1.2 , LG ; JB P1.1 LD , ; CLR P3.1 ; JB P1.0, LDD ; CLR P3.0 ; JNB 3.1 P1.6, Y1 ; M1CLR P1.4 ; Y1:JNB P1.7 ,Y2 ; M2 CLR P1.5 ; Y2:ACALL DELAY ; AJMP AUT ; LDD: JNB P1.6 ,Y3 ; CLR P1.4

Y3: JB P1.7 Y2 SETB P1.5 AJMP Y2

LG:CLR P3.2 ; LD: AJMP MAIN ; 否则转到手动模式子程序 水位高—LG 水位没低---LD 水位低报警 水位未低低---LDD 水位低低报警 已启动—Y1 否则启动M1 已启动---Y2 否则启动M2 延时1分钟 返回自动模式

单独运行M1(LDD〈水位〈LD) 水位高报警 返回主程序

1.4 DS18B20主程序

#include

#define uchar unsigned char #define uint unsigned int

sbit DQ=P3^7;//ds18b20与单片机连接口 sbit RS=P3^0; sbit RW=P3^1; sbit EN=P3^2;

unsigned char code str1[]={%unsigned char code str2[]={%uchar fCode[8]; uchar data disdata[5]; uint tvalue;//温度值 uchar tflag;//温度正负标志

七.结论

本文详细介绍了基于单片机89C51的温度控制系统的设计方案与软硬件实现。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务,达到了预期的目标。系统具有如下特点:

⑴.采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;

⑵.89C51单片机的采用,有利于功能扩展; ⑶.电路设计充分考虑了系统可靠性和安全性。

本课题软件和硬件相结合,有相当的难度,同时也有很大的实用性。

八.参考文献

[1] 马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1998

[2] 李晓荃.单片机原理与应用[M].北京:电子工业出版社,2000年8月 [3] 何立民 AVR单片机原理与接口技术[M].北京:北京航空航天大学出版社,


基于89C51单片机太阳能水温水位控制系统(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:论文5

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: