您的当前位置:首页正文

基于单片机的水箱控制系统设计

来源:个人技术集锦


目录:

摘要 ................................................................................................................................... 2 引言 ................................................................................................................................... 3 第一章 AT89C51单片机系统简介 ............................................................................... 4

1.1 AT89C51单片机说明 ......................................... 4 1.2时序 ....................................................... 5 1.3引脚极其功能 ............................................... 7 第二章 水箱给水设备的系统构成 .............................................................................. 11

2.1外部硬件结构 .............................................. 11 2.2本系统采用8051单片机控制部分结构........................... 12 第三章 本系统的工作原理......................................................................................... 14

3.1工作原理 .................................................. 14 3.2 主程序框图 ............................................... 14 3.3 自动模式子程序: ......................................... 15 3.4 手动模式子程序: ......................................... 16 总结 .................................................................................................... 错误!未定义书签。 致谢 ................................................................................................................................. 18 参考文献: ....................................................................................................................... 18 附录: ............................................................................................................................. 19

本系统程序清单 ............................................... 19 系统电路示意图 ............................................... 21

摘要

本单片机系统设计的目的是应用单片机控制技术,以AT89C51单片机为核心控制工厂的水箱的水位,并实现了报警和手动、自动切换功能。该系统操作方便、性能良好,比较符合工厂生厂用水系统控制的需要。本毕业论文还详细的给出了相关的硬件框图和软件流程图,并编制了该汇编语言程序。

关键词:单片机 系统控制 核心 精度

ABSTRACT

The purpose of single-chip system design is the application of single-chip control technology, to AT89C51 as the core to control the water level in water tank factory, and the realization of the alarm and manual, automatic switching function. The system is easy to operate, good performance, more in line with Health Works plant needs water system control. This article also gives a detailed diagram of the related hardware and software flow chart, and the preparation of the assembly language program.

KEYWORDS: MCU、system control 、coer、precision

2

引言

漫步在繁华的现代化的大都市的大街上,随时都可以看到街上有很多可以用卡取钱的机器(ATM自动柜员机),十字路口的交通灯。我们的手机,我们家里数码电视机、数码音响、遥控器、空调、智能玩具..... 随着我国的国民经济与生活水平的发展,工厂对自动化的需求也日益增加,为减少污染、节约能源,单片机控制技术得到了广泛的应用。在工业生产里,很多都用到大水箱,水箱里的水位控制就是问题了,以前有专门的人看着,既浪费人力,又不能准确的判断水位高低。所以单片机控制水箱水位就在工厂得到广泛的应用。一般工业里用到的水箱,体积都比较大,所以对水位的控制需求就相应的大了,工厂里对水位的控制精度要求也高。

第一章 AT89C51单片机系统简介

1.1 AT89C51单片机说明

目前,8051单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。89C51是Intel公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个256K的片内数据存储器RAM;片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接。下面简单介绍下其各个部分的功能。

中央处理器CPU是单片微型计算机的指挥、执行中心,由它读人用户程序,并逐条执行指令,它是由8位算术/逻辑运算部件(简称ALu)、定时/控制部件,若干寄存器A、B、B5w、5P以及16位程序计数器(Pc)和数据指针寄存器(DM)等主要部件组成。算术逻辑单元的硬件结构与典型微型机相似。它具有对8位信息进行+、-、x、/ 四则运算和逻辑与、或、异或、取反、清“0”等运算,并具有判跳、转移、数据传送等功能,此外还提供存放中间结果及常用数据寄存器。控制器部件是由指令寄存器、程序计数器Pc、定时与控制电路等组成的。

指令寄存器中存放指令代码。枷执行指令时,从程序存储器中取来经译码器译码后,根据不同指令由定时与控制电路发出相应的控制信号,送到存储器、运算器或I/o接口电路,完成指令功能。程序计数器Pc 程序计数器Pc用来存放下一条将要执行的指令,共16位.可对以K字节的程序存储器直接寻址c指令执行结束后,Pc计数器自动增加,指向下一条要执行的指令地址。

CPU功能,总的来说是以不同的方式,执行各种指令。不同的指令其功自略异。有的指令涉及到枷各寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件如外部程序存储器发生联系。事实上,cRJ是通过复杂的时序电路完成不同的指令功能。所谓cRJ的时序是指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动一部分逻辑电路,完成某种操作。[2] 1.2时序

1.2.1 时钟电路 M田—51片内设有一个由反向放大器所构成的振荡电路,XTALI和XTAL2分别为振荡电路的输入端和输出端。时钟可以由内部方式产生或外部方式产生。采用内部方式时,在C1和C2引脚上接石英晶体和微调电容可以构成振荡器, 振荡频率的选择范围为1.2—12MHZ在使用外部时钟时,XTAL2用来输入外部时钟信号,而XTALI接地。

1.2.2 时序 MGL5l单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2个接荡周期,分为P1和P2两个节拍。这样,

5

一个机器周期由12个振荡周期组成。若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为1/6us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。对于单周期指令,当指令操作码读人指令寄存器时,使从S1P2开始执行指令。如果是双字节指令,则在同一机器周期的s4读人第二字节。若为单字节指令,则在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。在加结束时完成指令操作。多数Mcs—51指令周期为1—2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。 对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。下面是51单片机的振荡电路图:

图1-1振荡电路图

6

1.3引脚极其功能

MCS—51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。

1.3.1 电源引脚Vcc和Vss

Vcc(40脚):接+5V电源正端; Vss(20脚):接+5V电源正端。

1.3.2 外接晶振引脚XTAL1和XTAL2

XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。

7

1.3.3 控制信号或与其它电源复用引脚

控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

(A).RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。

(B).ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低 (C).PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。

(D).EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。

8

1.3.4 输入/输出(I/O)引脚P0口、P1口、P2口及P3口

(A).P0口(39脚~22脚):P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。

(B).P1口(1脚~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。

(C).P2口(21脚~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。

(D).P3口(10脚~17脚):P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见表1-1

9

引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第2功能 RXD(串行口输入端0) TXD(串行口输出端) INT0(部中断0请求输入端,低电平有效) INT1(中断1请求输入端,低电平有效) T0(时器/计数器0计数脉冲端) T1(时器/计数器1数脉冲端) WR(部数据存储器写选通信号输出端,低电平有效) RD(部数据存储器读选通信号输出端,低电平有效) 表1-1第2功能表

综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点: 1).单片机功能多,引脚数少,因而许多引脚具有第2功能; 2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。89C51的管脚图

图1-2 89C51的管脚图

10

第二章 水箱给水设备的系统构成

2.1外部硬件结构

水箱由两台给水泵机组、水箱和三只浮球开关组成,其系统结构如图2-1:

图2-1 系统结构图

其中M1、M2为给水泵机组,LG、LD、LDD分别为水位高、水位低、水位低低浮球开关,当水位高(大于90%)时,LG闭合,当水位低(小于75%)时,LD闭合,当水位低低(小于50%)时,LDD闭合。

水箱的控制器由8051系统构成。为避免电机的起停和电源波动时对电路的影响,输入输出均采用光电隔离。输出通过继电器,控制水泵机组的起停和报警,其电路图2-2:

图2-2 起停和报警

给水泵电机主控回路图:

图2-3主控回路图

2.2本系统采用8051单片机控制部分结构 本系统采用8051单片机,引脚具体控制如下:

P1口和P3口为输入输出检测信号和控制信号。下面是8051芯片引脚具体分配:

P1.0:水位低低输入信号。(低0 高1) P1.1:水位低输入信号。(低0 高1) P1.2:水位高输入信号。(高1,低0)

12

P1.3:手动与自动转换输入信号。(手动1,自动0) P1.4:M1起动KM1控制输出信号。(手动1,自动0) P1.5:M2起动KM1控制输出信号。(手动1,自动0) P1.6:M1开关状态输入信号。(开0,关1) P1.7:M2开关状态输入信号。(开0,关1) P3.0:水位低低报警输出信号。 P3.1:水位低报警输出信号。 P3.2:水位高报警输出信号。

P3.4:手动起动M1输入信号,低电频有效动作。 P3.5:手动起动M2输入信号,低电频有效动作。 P3.6:手动停M1输入信号,低电频有效动作。 P3.7:手动停M2输入信号,低电频有效动作。

13

第三章 本系统的工作原理

3.1工作原理

当水箱水位低时,起动M1、M2给水,水位上升到90%,停M1。当水箱水位低低(小于50%)时,同时起动M1、M2,当水位上升到50%以上70%以下时,停M2,M1继续运行到水位上升到90%以上才停止工作。经过调试系统,测得以下数据:水位从50%--70%,两台泵运行需要约10分钟;水位从70%--90%,一台泵运行需要约15分钟。水箱的水位一般保持在70%--90%。报警控制如下:

当水位高于90%的时候,由传感器经变送器发送信号,浮球LG闭合,系统水位高报警。当水位低于75%的时候,由传感器经变送器发送信号,浮球LD闭合,系统水位低报警。当水位低与50%的时候,由传感器经变送器发送信号,浮球LDD闭合,系统水位低低报警。手动/自动模式转换控制如下:全自动模式下,系统自动判断水位的状况,选择不同的工作状态。在手动的模式下,两台给水泵的运行控制可由人工操作。 3.2 主程序框图

图3-1 主程序框图

3.3 自动模式子程序:

图3-2 自动模式子框图

15

3.4 手动模式子程序:

图3-3 手动模式框图

16

致谢

本毕业论文是老师的精心指导下完成的。在整个课题的设计、编写过程中,王海峰老师和尹海昌老师给予了细致的指导和帮助,使我能够点面结合,设计过程环环相扣。在此,谨对他们致以衷心的感谢。同时也对本毕业论文做出认真审阅的老师们给以深深的敬意!

参考文献:

[1]林立,张俊亮,刘得军.单片机原理及应用[M].电子工业出版社. [2]陶希平.模拟电子技术[第二版] [M].化学工业出版社 [3]刘勇.数字电路[M].机械工业出版社. [4]陈忠.电子制作[M].电子制作杂志社. [5]杨志忠.数字电子技术[M].高等教育出版社. [6]胡宴如.模拟电子技术[M].高等教育出版社. [7]王秀珍,姜林.电子技术基础[M].中国电力出版社. [8]韩伟.数字电子技术及其应用[M].国防工业出版社.

附录:

本系统程序清单

主程序: 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 ;水位高—LG

JB P1.1 LD , ;水位没低---LD CLR P3.1 ;水位低报警

JB P1.0, LDD ;水位未低低---LDD CLR P3.0 ;水位低低报警 JNB 3.1 P1.6, Y1 ;M1已启动—Y1 CLR P1.4 ;否则启动M1

Y1:JNB P1.7 ,Y2 ; M2已启动---Y2 CLR P1.5 ;否则启动M2 Y2:ACALL DELAY ;延时1分钟 AJMP AUT ;返回自动模式

LDD: JNB P1.6 ,Y3 ; 单独运行M1(LDD〈水位〈LD) CLR P1.4

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

LG:CLR P3.2 ;水位高报警 LD:AJMP MAIN ;返回主程序

手动控制子程序 MEN:NOP

JNB P1.1 , MAIN ; ACALL KEY

CJNE A ,#FOH,NN ; AJMP MEN

NN:JNB ACC.4 ,HM1 JNB ACC.5, HM2 JNB ACC.6 ,DM1 JNB ACC.7 ,DM2 AJMP MEN

HM1: JNB P1.6 ,MEN CLR P1.4 AJMP MEN

HM2:JNBP1.7, MEN CLR P1.5 AJMP MEN

DM1:JB P1.6, MEN SETB P1.4 AJMP MEN

DM2:JB P1.7, MEN SETB P1.5 AJMP MEN RET

延时1S主程序

T1M1: MOV R1, #F0H L4: MOV R2, #08H L1: MOV R3, #FAH L2: MOV R4, #FAH L1: DJNZ R4, L1 DJNZ R3, L2 DJNZ R2, L3 DJNZ R1, L4 RET

延时6ms子程序

T1M3: MOV R4, #12 MM: MOV R5, #248 DJN2 R5, $

20

DJN2 R4, D3 RET

有无键合子程序:

KEY:ACALL KS1 ;有无闭合 JNZ LK1 ACALL TIM

AJMP KEY ;无键闭合返回 LK1:ACALL TIM ACALL TIM ACALL KS1 JNZ LK2 ACALL TIM AJMP KEY LK2:RET

KS1:MOV A , P3 ;扫描

ANL A , #FOH ;屏蔽低4位 RET

系统电路示意图

21

因篇幅问题不能全部显示,请点此查看更多更全内容