水箱单片机控制系统设计

摘     要

本单片机系统设计的目的是应用单片机控制技术,以8051单片机为核心控制

庆丰热电公司的800立方米的水箱的水位,并实现了报警和手动、自动切换功能。

该系统操作方便、性能良好,比较符合电厂生产用水系统控制的需要。本文还详

细的给出了相关的硬件框图和软件流程图,并编制了该汇编语言程序。

关键词 单片机    水位 

          控制     报警

目      录

摘    要………………………………………………………………………………1

目    录………………………………………………………………………………2

  • 单片机的说明……………………………………………………………………3

1、8051单片机简介……………………………………………………………3

2、单片机的时序………………………………………………………………5

3、引脚极其功能…………………………………………………………………6

二、水箱给水设备系统的构成………………………………………………………10

三、本系统8051单片机控制部分……………………………………………………12

四、本系统的工作原理………………………………………………………………13

五、主程序框图………………………………………………………………………14

六、本系统程序清单…………………………………………………………………17

七、附录:本系统电路图……………………………………………………………21

一   8051单片机系统说明

1. 8051单片机简介

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

    2.时序  MGL5l单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2

个接荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。若采用

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

3.引脚极其功能

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

下面按引脚功能分为4个部分叙述个引脚的功能。

  1. 电源引脚Vcc和Vss

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

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

  1. 外接晶振引脚XTAL1和XTAL2

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

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

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

    控制信号或与其它电源复用引脚有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。

    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功能见下表

                 单片机P3.0管脚含义

引脚

第2功能

P3.0

RXD(串行口输入端0)

P3.1

TXD(串行口输出端)

P3.2

INT0(部中断0请求输入端,低电平有效)

P3.3

INT1(中断1请求输入端,低电平有效)

P3.4

T0(时器/计数器0计数脉冲端)

P3.5

T1(时器/计数器1数脉冲端)

P3.6

WR(部数据存储器写选通信号输出端,低电平有效)

P3.7

RD(部数据存储器读选通信号输出端,低电平有效)

综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:

1).单片机功能多,引脚数少,因而许多引脚具有第2功能;

2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。

附:89C51的管脚如图

二 800立方米水箱给水设备系统的构成

800立方米由两台给水泵机组、水箱和三只浮球开关组成,其系统结构如图:

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

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

给水泵电机主控回路图如下:

三  本系统8051单片机控制部分结构

本系统采用8051单片机,引脚具体控制如下:

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

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

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

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

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输入信号,低电频有效动作。

四  本系统的工作原理

当水箱水位低时,起动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闭合,系统水位低低报警。手动/自动模式转换控制如下:全自动模式下,系统自动判断水位的状况,选择不同的工作状态。在手动的模式下,两台给水泵的运行控制可由人工自己操作。

五  主程序框图

1 主程序框图

2 自动模式子程序:

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          ;水位高—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, $

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

七   系统电路示意图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值