单片机家用水流量设计.docx

上传人:b****6 文档编号:5804575 上传时间:2023-01-01 格式:DOCX 页数:52 大小:1.46MB
下载 相关 举报
单片机家用水流量设计.docx_第1页
第1页 / 共52页
单片机家用水流量设计.docx_第2页
第2页 / 共52页
单片机家用水流量设计.docx_第3页
第3页 / 共52页
单片机家用水流量设计.docx_第4页
第4页 / 共52页
单片机家用水流量设计.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

单片机家用水流量设计.docx

《单片机家用水流量设计.docx》由会员分享,可在线阅读,更多相关《单片机家用水流量设计.docx(52页珍藏版)》请在冰豆网上搜索。

单片机家用水流量设计.docx

单片机家用水流量设计

 

毕业教学环节成果

(2011届)

题目基于51单片机的

家用水流量设计

学院信息工程学院

专业应用电子技术

班级应电082

学号******************

姓名*******

指导教师******

 

2011年5月10日

金华职业技术学院毕业教学成果

摘要1

引言2

1任务设计3

2系统硬件电路的设计4

2.1主芯片STC89C524

2.2时钟电路6

2.3复位电路7

2.4电源电路8

2.5液晶显示电路8

3.3水流量程序模块37

3.4显示程序39

3.5小结29

4调试结果记录30

4.1温度测量30

4.2流量测量30

5总结30

附件3仿真图36

附件4元件清单37

附件5程序清单38

基于51单片机的家用水流量设计

信息工程学院应用电子技术刘海清

摘要:

文以智能家居系统中的水流量模块为课题,以水流量计传感器和数字温度传感器DS18B20实时采集水流量状态和水温的数据,并根据主控器STC89C52的程序指令处理后计算出水费价格,用液晶屏LCD1602分当前温度、水价和水流总量三种状态动态显示。

另外,本课题设计了上下限报警,使查看更为直观,使用更加方便。

关键词:

单片机DS18B20温度传感器水流量传感器

HouseholdWater-FlowDetectionCircuitDesignBasedon51MCU

(MajorofAppliedElectronicTechnology,InformationandEngineeringcollege,JinHuaCollegeofVocationAndTechnology,LIUHai-qing)

Abstract:

TakingthesmarthomesysteminthewaterflowmoduleissubjecttowaterflowsensoranddigitaltemperaturesensorDS18B20real-timeacquisitionstatewaterflowandwatertemperaturedataandprograminstructionsaccordingtomasterSTC89C52calculatedafterthepriceofwater,withLCDTX-1602pointsthecurrenttemperature,waterflowvolumeanddynamicdisplayofthreestates.Inaddition,theprojectdesignoftheupperandloweralarm,soviewismoreintuitive,easiertouse.

Keyword:

microprocessorDS18B20temperaturesensorwaterflowsensor

引言

随着现代社会的进步,经济的发展,人们对精神领域的追求更高,对生活水平的要求更高。

现代的家居生活是一种高品位、高质量、个性化、智能化的方式。

本系统就是基于STC89C52单片机控制的智能家居系统,可以实际监控室内各种不同的家电设备,并能通过液晶屏动态显示当前工作状态。

该系统与传统的智能家居系统相比,具有功能多样化、成本造价低等优点,且符合当今社会智能、节能、环保的发展观念,并在人们享受高品位、高质量、个性化、智能化生活的同时提高人们的节约意识。

由于智能家居系统有众多模块,本课题只采取其中的水流量模块进行单独设计。

1 任务设计

当打开水龙头时,根据单片机STC89C52的指令、水流量计传感器和数字温度传感器DS18B20实时采集水流量状态和水温的数据。

当单片机STC89C52扫描到水流量计传感器的脉冲数,经过单片机STC89C52处理,计算出所采集的水流量后,通过液晶屏LCD1602能动态显示当前水流量、水费及水温。

根据设计过程,可以将的本课题划分为8个电路模块如图1所所示:

图1-1电路总框图

 

2 系统硬件电路的设计

2.1 主芯片STC89C52

2.1.1 主要性能

1与MCS-52单片机产品兼容、8K字节在系统可编程Flash存储器

21000次擦写周期

3全静态操作:

0Hz~33Hz

4三级加密程序存储器

532个可编程I/O口线

6三个16位定时器/计数器八个中断源

7全双工UART串行通道

8低功耗空闲和掉电模式

9掉电后中断可唤醒

10看门狗定时器

11双数据指针

12掉电标识符

2.1.2 芯片功能特性简述:

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程Flash。

图2-1单片机引脚

2.1.3 引脚功能

表2-1STC89C52引脚介绍说明

引脚

功能介绍

VCC

+5V电源电压

VSS

电路接地端

P0.0~P0.7

8位漏极开路的双向I/O通道

P2.0~P2.7

8位拟双向I/O通道

P3.0

RXD,串行输入口

P3.1

TXD,串行输出口

P3.2

INT0,外部中断0输入口

P3.3

INT1,外部中断1输入口

P3.4

定时器/计数器0外部事件脉冲输入端

P3.5

定时器/计数器1外部事件脉冲输入端

P3.6

外部数据存贮器写脉冲

P3.7

外部数据存贮器读脉冲

RST/VpD

复位输入信号

ALE/PROG

地址锁存有效信号

PSEN

程序选通有效信号

EA/VPP

当保持TTL高电平,执行内部EPROM的指令,当使TTL为低电平,从外部程序存贮器取出所有指令,在内的EPROM编程时,此端为21V编程电源输入端

XTAL1

内部振荡器外接晶振的一个输入端

XTAL2

内部振荡器外接晶振的一个输入端

2.2 时钟电路

单片机的最小系统有三部分组成,即电源,时钟电路和复位电路。

其中单片机的电源引脚与5V电源连通即可,而时钟电路和复位电路还需接口扩展,这也是单片机的基本电路操作。

时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的相互关系。

单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

在STC89C52单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。

在STC89C52芯片内部有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容。

在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。

STC89C52单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。

在实际应用中通常还需要在晶振的两端和地之间各并上一个小电容。

图2-2时钟电路

用晶振和电容构成谐振电路。

电容大小与晶振频率和工作电压有关。

但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用20pF的电容作为微调电容。

在设计电路板时,晶振、电容等均应尽可能靠近芯片,减小分布电容,以保证振荡器振荡的稳定性。

2.3 复位电路

复位是单片机的初始化操作,其目的是使CPU和系统中各部分处于一个确定的状态,并从这一状态开始工作。

系统上电路或死机后都要进行复位操作。

单片机的RST引脚为复位引脚,振荡电路正常工作后,RST端加上持续两个机器周期的高电平后,单片机就被复位。

复位电路有3种基本方式:

上电复位,开关复位和看门狗复位。

图2-3复位电路

本课题采用按键开关复位是指通过接通按钮开关,使单片机进入复位状态。

开关复位电路一般不单独使用。

在应用系统设计中,若需使用开关复位电路,一般的做法是将开关复位与上电复位组合在一起形成组合复位电路,上电复位电路完成上电复位功能,开关复位电路完成人工复位。

图2-3中C7与R1构成了上电复位电路。

上电复位后,电源经R1对C7充满电源,C7等效于开路,RST端为低电平;单片机正常工作。

按开关K1后,C7两端电荷经R1迅速放电,K1断开后,由C7、R1及电源完成对单片机的复位操作。

在上述电路中C7、R1按上电复位电路的设计而取值。

复位电路的作用非常重要,能否成功复位关系但单片机系统能否正常运行的问题。

如果振荡电路正常而单片机系统不能正常运行,其主要原因是单片机没有完成正常复位,程序计数器的值没有回0,特殊功能寄存器没有回到初始状态。

这时可以适当地调整上电复位电路的阻容值,增加其充电时间常数来解决问题。

 

2.4 直流电源滤波电路

单片机对于直流电源电压非常敏感,但是一般直流电源都存在一些杂波,通常是直流电压中的高频交流成分,消除电源中的高频交流成分对增强电路的性能具有较大作用。

因而,我们设计了滤波电路,起到滤波的作用,从而更好的避免不必要的故障发生。

滤波电路的基本原理是利用电容或电感的滤波特性,图2-4电源电路采用电容滤波。

图中LED是用来指示电源接通的情况。

图2-4电源电路

2.5  液晶显示电路

课题任务要求以LCD1602芯片显示单片机处理后的温度、水费和水流量,在此有必要详尽的介绍LCD1602的特性和用法。

2.5.1  显示特性

1只需5V电源电压,低功耗、长寿命、高可靠性

2内置192种字符(160个5×7点阵字符和32个5×10点阵字符)

3具有64个字节的自定义字符RAM

4显示方式:

STN、半透、正显

5驱动方式:

1/16DUTY,1/5BIAS

6视角方向:

6点

7背光方式:

底部LED

8通讯方式:

4位或8位并口可选

9标准的接口特性:

适配MC51和M6800系列MPU的操作时序。

2.5.2  引脚说明

表2-2液晶1602引脚说明

管脚号

符号

功能

1

Vss

电源地(GND)

2

Vdd

电源电压(+5V)

3

V0

LCD驱动电压(可调)寄存器选择输入端,输入MPU选择模块内部寄存器类型信号:

RS=0,当MPU进行写模块操作,指向指令寄存器;

4

RS

当MPU进行读模块操作,指向地址计数器;RS=1,无论MPU读操作还是写操作,均指向数据寄存器

5

R/W

R/W=0读操作;R/W=1写操作

6

E

使能信号输入端,输入MPU读/写模块操作使能信号:

4位方式通讯时,不使用DB0-DB3

7

DB0

数据输入/输出口,MPU与模块之间的数据传送通道

8

DB1

数据输入/输出口,MPU与模块之间的数据传送通道

9

DB2

数据输入/输出口,MPU与模块之间的数据传送通道

10

DB3

数据输入/输出口,MPU与模块之间的数据传送通道

11

DB4

数据输入/输出口,MPU与模块之间的数据传送通道

12

DB5

数据输入/输出口,MPU与模块之间的数据传送通道

13

DB6

数据输入/输出口,MPU与模块之间的数据传送通道

14

DB7

数据输入/输出口,MPU与模块之间的数据传送通道

15

A

背光的正端+5V

16

K

背光的负端0V

2.5.3 接口时序

图2-5时序图

表2-3液晶1602时序图标号说明

时序参数

符号

极限值

单位

测试条件

最小值

典型值

最大值

E信号周期

tc

400

ns

引脚E

E脉冲宽度

Tpm

150

ns

E上升沿/下降沿时间

Tr,tf

25

ns

地址建立时间

Tsp1

30

ns

引脚E、RS、R\W

地址保持时间

Thd1

10

ns

数据建立时间(读操作)

Td

100

ns

引脚DB0~DB7

数据保持时间(读操作)

Thd2

20

ns

数据建立时间(写操作)

Tsp2

40

ns

数据保持时间(写操作)

Thd2

10

ns

程序实现如下:

/************************写指令程序************************/

voidwr_com(unsignedcharcom)//写指令

{

delay

(1);//延时1ms

RS=0;//写命令设置

RW=0;//并行数据的读写

EN=0;//使能为0

P2=com;//输入命令

delay

(1);//延时1ms

EN=1;//使能为1

delay

(1);//延时1ms

EN=0;//使能为0

}

/**********************写数据程序***********************/

voidwr_dat(unsignedchardat)//写数据

{

delay

(1);//延时1ms

RS=1;//写数据设置

RW=0;//并行数据的读写

EN=0;//使能为0

P2=dat;//输入数据

delay

(1);//延时1ms

EN=1;//使能为1

delay

(1);//延时1ms

EN=0;//使能为0

}

2.5.4  初始化指令:

表2-4清屏指令

指令功能

指令编码

执行时间/ms

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

清屏

0

0

0

0

0

0

0

0

0

1

1.64

功能:

1.清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;

2.光标归位,即将光标撤回液晶显示屏的左上方;

3.将地址计数器(AC)的值设为0。

表2-5光标归位指令

指令功能

指令编码

执行时间/ms

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

光标归位

0

0

0

0

0

0

0

0

1

X

1.64

功能:

1.把光标撤回到显示器的左上方;

2.把地址计数器(AC)的值设置为0;

3.保持DDRAM的内容不变

表2-6进入模式设置指令

指令功能

指令编码

执行时间/ms

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

进入模式设置

0

0

0

0

0

0

0

1

I/D

S

1.64

功能:

设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。

表2-7显示开关控制指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

显示开关控制

0

0

0

0

0

0

1

D

C

B

40

功能:

控制显示器开/关、光标显示/关闭以及光标是否闪烁。

表2-8设定显示屏或光标移动方向指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

设定显示屏或光标移动方向

0

0

0

0

0

S/C

R/L

40

功能:

使光标移位或使整个显示屏幕移位。

表2-9功能设定指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

功能设定

0

0

0

0

DL

S/C

R/L

40

功能:

设定数据总线位数、显示的行数及字型。

参数设定的情况如下:

表2-10设定CGRAM地址指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

设定CGRAM地址

0

0

0

CGRAM的地址(6位)

功能:

设定下一个要存入数据的CGRAM的地址。

表2-11设定DDRAM地址指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

设定DDRAM地址

0

0

CGRAM的地址(7位)

40

功能:

设定下一个要存入数据的CGRAM的地址。

(注意这里我们送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候要加上0x80的原因)

 

表2-12读取忙信号或AC地址指令

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

读取忙碌信号或AC地址

0

FB

AC内容(7位)

40

功能:

1.读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;

2.读取地址计数器(AC)的内容。

表2-13数据写入DDRAM或CGRAM指令一览

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

写数据到DDRAM或CGRAM

1

0

要写的数据D7~D0

40

功能:

1.将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;

2.将使用者自己设计的图形存入CGRAM。

表2-14从CGRAM或DDRAM读出数据的指令一览

指令功能

指令编码

执行时间/us

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

从CGRAM或DDRAM中读数据

1

1

要读的数据D7~D0

40

功能:

读取DDRAM或CGRAM中的内容。

单片机和LCD液晶显示器的连接

图2-6液晶显示电路

2.6 状态显示电路

电路设计若水流量开始技术则绿灯亮,水流量计数停止则绿灯灭。

温度超过40度或小于0度红灯报警。

由于发光二极管的需求电流为3mA~10mA,电压为3V所以计算

R=3V/(3~10)mA=(330~1000)欧

故我们在这采用R=330,以使经过发光二极管电流较大,发光更亮。

图2-7状态显示电路

2.7 温度测量电路

课题任务中需要测量水温,故先用温度传感器DS18B02的数据采集,再通过单片机数据处理,最后在液晶屏显示出来。

2.7.1DS18B20简介

DS18B20是DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,他它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。

DS18B20具有以下优点:

适应电压范围宽,电压范围在3.0V~5.5V,在寄生电源方式下可由数据线供电。

独特的单线接口方式,与微处理器连接时只需要一条口线即可实现微处理器与DS18B20的双向通信。

1支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

2在使用中不需要任何外围元件,全部传感元件以及转换电路集成在形如一直三极管的集成电路内。

3测温范围-55℃+125℃,在-10℃~+85℃时进度为±0.5℃,可编程分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。

4负压特性。

电源极性接反时,芯片不会因为过热而烧毁,但不能正常工作。

2.7.2 DS18B20结构及其工作原理

图2-8DS18B20的引脚和封装

图2-9DS18B20的内部结构

DS18B20组成:

64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列:

DQ为数字信号输入/输出端

GND为电源地

VDD为外接供电电源输入端,在寄生电源接线方式时接地。

DS18B20内部带有共9个字节的高速暂存器RAM和电可擦除EEPROM,起结构如表2-15所示。

表2-15DS18B20高速暂存器结构

寄存器内容

字节地址

温度值低位(LSB)

0

温度值高位(MSB)

1

高温限值(TH)

2

低温限值(TL)

3

配置寄存器

4

保留

5

保留

6

保留

7

CRC校验值

8

 

表2-16DS18B20操作指令

ROM操作指令

指令

约定代码

功能

读ROM

33H

读DS18B20温度传感器ROM中的编码(即64位地址)

匹配ROM

55H

发出命令后接着发出64位ROM编码,访问总线上与该编码对应的芯片

搜索ROM

F0H

用于确定挂接在同一总线上DS18B20的个数

跳过ROM

CCH

忽略64位ROM地址,直接向DS18B20发温度变换命令

告警搜索

ECH

执行后只有问多超过上限

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1