基于单片机的饮水机Word格式文档下载.docx

上传人:b****6 文档编号:19793763 上传时间:2023-01-10 格式:DOCX 页数:21 大小:29.92KB
下载 相关 举报
基于单片机的饮水机Word格式文档下载.docx_第1页
第1页 / 共21页
基于单片机的饮水机Word格式文档下载.docx_第2页
第2页 / 共21页
基于单片机的饮水机Word格式文档下载.docx_第3页
第3页 / 共21页
基于单片机的饮水机Word格式文档下载.docx_第4页
第4页 / 共21页
基于单片机的饮水机Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于单片机的饮水机Word格式文档下载.docx

《基于单片机的饮水机Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的饮水机Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

基于单片机的饮水机Word格式文档下载.docx

    

图1 

智能控制饮水机组成框图

  二、水位传感器的设计

  

(一)水位传感器的设计

水位传感器有接触型和非接触型之分。

由于该饮水机的水位测定的环境温度较高(100℃),如果采用接触型的水位传感器对测量的器件寿命和准确度都受影响。

所以,本设计采用非接触型水位传感器,其工作原理为:

根据连通器原理在小管内安装一个浮标,浮标上端连接一个V型反射镜,红外激光二极管发出激光光束垂直射到V型反射镜面上进行90°

角变换,光束分别对应地射到光敏二极管D1~D7上,有光束射到光敏二极管导通,输出为高电平(2.4V),相反的为低电平(0V)。

该电压加到AT89C52单片机芯用接触型的水位传感器对测量的器件寿命和准确度都产生影响。

所以,本设计采用非接触型水位传感器,其中用接触型的水位传感器对测量的器件寿命和准确度都受影响。

该电压加到AT89C52单片机芯片P11~P17端输入,水位传感器电路如图2所示:

图2 

光反射式水位高度测定电路原理图

  

(二)键盘阵列电路

键盘阵列S1~S7为用户所需开水量的地址码按键。

当选择S1~S7中的某一按键按下,信号从P10~P16端加入AT89C52单片机芯片内进行寻址,于是把原来存储在AT89C52单片机芯片寄存器的存储一单元上的对应数据调出。

从I/O端口P22输出加水信号,键盘阵列电路如图3所示:

                  

图3 

开水量确定电路原理图

  (三)加水控制电路工作原理

当用户需要烧开水时,只在键盘上选择一个相应数字键按下,从AT89C52单片机芯片的P10~P15端输入一个地址码(001)、(010)、…、(111),根据地址码由P22端输出高电平(1.4V),经R11和R12分压后使Q1三极管基极(电压约为0.7V)为高电平而导通,使集电极有电流通过,加水开关闭合,开始对开水容器加水。

加水量单片机内按下式确定:

 

          

(1)

  其中,D1、D2、…、D7为水位传感器对应刻度值,A0、A1、A2为用户所需开水量的对应码。

(1)式可知加水量控制是由水位传感器和地址码共同决定的。

当满足

(1)式后AT89C52单片机芯片I/O端口的P22由高电平输出变为为低电平(0.3V)输出,此时三极管Q1的基极电压约为0.1V,Q1截止,集电极没有电流通过,加水开关断,加水结束`。

加水控制电路原理如图4所示:

  (四)加热控制工作原理

  由于为了快速烧水,把开水容器水位达到1位置设定开始加热信存储于AT89C52单片机芯片的存储器2单元内,当加水时水位达到1位置,存储器获得地址码,AT89C52单片机芯片P12(PW11)端输出高电平,温度低于100℃热敏电阻R的阻值较小,烧水控制电路中的Q2基极获得0.7V电压而导通,加热开关K2闭合给水开始加热,当开水容器中的水温达到100℃时的热敏电阻R的阻值突然变大,Q2基极电压只有0.2V左右,Q2截止,加热开关K2断电,加热结束。

给水加热电路如图5所示:

           

图5 

加热电路原理图

  (五)指示电路

为了节约成本该饮水机的指示器件均采用发光二极管进行显示,加水时由图3可知黄色指示灯DL1亮,加热时由图4可知红色指示灯DL2亮;

开水容器有温水绿色指示灯亮。

  (六)饮水机控制程序图

饮水机控制程序,如图6所示:

图6 

饮水机控制程序图

  三、实验

为了检验本设计的优劣,对本设计的饮水机进行对加水时间、水位测定误差、加热时间和跳闸温度测量。

测量时用天平每杯水质量为157克,测量时间用秒表,水位用刻度尺,加热盘功率1200W,工业温度计测得数据见表2:

表2 

测量数据表

但连通管用圆形管进水电磁阀的开启和关闭时间误差明显增加。

  四、结语

从实验数据看,本设计的计算机控制饮水机在水位传感器水位测定、进水电磁阀开启和关闭、断电跳闸温度的误差都在正常值之内。

连通管用方形管,这样浮标面上的V型反射镜的角度能够固定。

本设计的计算机控制饮水机采用控制加水系统,完全避免了开水二次污染;

开水容器的盖是活动的很方便清洗,保证了饮用水的质量和卫生。

文中设计的水位传感器也可以用于其它测量液面的地方。

该系统经少量改装可应用于工厂、学校的开水柜自动控制。

参考文献

[1]王庆元.新型传感器原理及应用[M].北京:

机械工业出版社,2003.

[2]张福学.传感器应用及其电路精选(上册)[M].北京:

电子工业出版社,1991.

[3]母国光,战元令.光学[M].北京:

高等教育出版社,1978.

[4]朱一锟.流体力学基础[M].北京:

北京航空航天大学出版社,1990.

[5]杨经国,冉瑞江,等.光电子技术[M].成都:

四川大学出版社,1990.

[5]刘华东,张亚华.单片机原理与应用(第二版)[M].北京:

电子工业出版社,2006.

[6]杨金岩,郑应强,张振仁.8051单片机数据传输接口扩展技术与应用实例[M].北京:

人民邮电出版社,2004.

  作者简介:

侯昭广(1950-),男,广西容县人,广西容县职业中等专业学校一级教师,研究方向:

低压电路理论与应用。

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

  AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

  AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

  AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

  主要功能特性:

  ·

兼容MCS51指令系统·

8k可反复擦写(>

1000次)FlashROM

32个双向I/O口·

256x8bit内部RAM

3个16位可编程定时/计数器中断·

时钟频率0-24MHz

2个串行中断·

可编程UART串行通道

2个外部中断源·

共6个中断源

2个读写中断口线·

3级加密位

低功耗空闲和掉电模式·

软件设置睡眠和唤醒功能

  AT89C52各引脚功能及管脚电压

  概述:

AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测

  及会聚调整状态进入的控制功能。

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的

  方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

  在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上

  拉电阻。

  在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑

  门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉

  电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

  与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),

  参见表1。

  Flash编程和程序校验期间,P1接收低8位地址。

  表.P1.0和P1.1的第二功能

  

引脚号

功能特性

P1.0

T2,时钟输出

P1.1

T2EX(定时/计数器2)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在

  上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

  在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数

  据。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

  Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻

  辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻

  输出电流(IIL)。

  P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能

  P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字

  节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的

  是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

  对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

  如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条

  MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数

  据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接

  地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

  如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

  Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

特殊功能寄存器:

  在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象如表2所示。

  并非所有的地址都被定义,从80H—FFH共128个字节只有一部分被定义,还有相当一部分没有定义。

对没有定义的

  单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。

  不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单

  元数值总是“0”。

  AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。

定时/计数器2的控

  制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位

  自动重装载方式下的捕获/自动重装载寄存器。

数据存储器:

  AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128

  字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。

  当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节

  RAM还是访问特殊功能寄存器。

如果指令是直接寻址方式则为访问特殊功能寄存器。

  例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2口)地址单元。

  MOV0A0H,#data

  间接寻址指令访问高128字节RAM,例如,下面的间接寻址指令中,R0的内容为0A0H,则访问数据字节地址为0A0H,

  而不是P2口(0A0H)。

  MOV@R0,#data

  堆栈操作也是间接寻址方式,所以,高128位数据RAM亦可作为堆栈区使用。

定时器0和定时器1:

  AT89C52的定时器0和定时器1的工作方式与AT89C51相同。

定时器2:

  定时器2是一个16位定时/计数器。

它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄

  存器T2CON(如表3)的C/T2位选择。

定时器2有三种工作方式:

捕获方式,自动重装载(向上或向下计数)方式和波

  特率发生器方式,工作方式由T2CON的控制位来选择。

  定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机

  器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。

  在计数工作方式时,当T2引脚上外部输入信号产生由1至0的下降沿时,寄存器的值加1,在这种工作方式下,每个

  机器周期的5SP2期间,对外部输入进行采样。

若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,

  则在紧跟着的下一个周期的S3P1期间寄存器加1。

由于识别1至0的跳变需要2个机器周期(24个振荡周期),因此,最

  高计数速率为振荡频率的1/24。

为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输

  入信号至少被采样一次。

捕获方式:

  在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。

如果EXEN2=0,定时器2是一个16位定时器或计数器,

  计数溢出时,对T2CON的溢出标志TF2置位,同时激活中断。

如果EXEN2=1,定时器2完成相同的操作,而当T2EX引

  脚外部输入信号发生1至0负跳变时,也出现TH2和TL2中的值分别被捕获到RCAP2H和RCAP2L中。

另外,T2EX引

  脚信号的跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断。

捕获方式如图4所示。

自动重装载(向上或向下计数器)方式:

  当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON

  (见表5)的DCEN位(允许向下计数)来选择的。

复位时,DCEN位置“0”,定时器2默认设置为向上计数。

当DCEN

  置位时,定时器2既可向上计数也可向下计数,这取决于T2EX引脚的值,参见图5,当DCEN=0时,定时器2自动设置

  为向上计数,在这种方式下,T2CON中的EXEN2控制位有两种选择,若EXEN2=0,定时器2为向上计数至0FFFFH溢

  出,置位TF2激活中断,同时把16位计数寄存器RCAP2H和RCAP2L重装载,RCAP2H和RCAP2L的值可由软件预置。

  若EXEN2=1,定时器2的16位重装载由溢出或外部输入端T2EX从1至0的下降沿触发。

这个脉冲使EXF2置位,如果

  中断允许,同样产生中断。

  定时器2的中断入口地址是:

002BH——0032H。

  当DCEN=1时,允许定时器2向上或向下计数,如图6所示。

这种方式下,T2EX引脚控制计数器方向。

T2EX引脚为逻

  辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L重装

  载到TH2和TL2中。

T2EX引脚为逻辑“0”时,定时器2向下计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L

  中的值时,计数溢出,置位TF2,同时将0FFFFH数值重新装入定时寄存器中。

  当定时/计数器2向上溢出或向下溢出时,置位EXF2位。

波特率发生器:

  当T2CON(表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。

如果定时/计数器2作为发送器或

  接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。

若RCLK和TCLK置位,则定时器2

  工作于波特率发生器方式。

  波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16

  位数值重新装载,该数值由软件设置。

  在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:

  方式1和3的波特率=定时器的溢出率/16

  定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。

定时器2作为波

  特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12振荡频率)寄存器的值加1,

  而作为波特率发生器使用时,在每个状态时间(1/2振荡频率)寄存器的值加1。

波特率的计算公式如下:

  方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}

  式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。

  定时器2作为波特率发生器使用的电路如图7所示。

T2CON中的RCLK或TCLK=1时,波特率工作方式才有效。

  波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。

但若EXEN2置位,且T2EX端产生由1至0的

  负跳变,则会使EXF2置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2和TL2中。

所以,当定时器2作

  为波特率发生器使用时,T2EX可作为附加的外部中断源来使用。

需要注意的是,当定时器2工作于波特率器时,作为定

  时器运行(TR2=1)时,并不能访问TH2和TL2。

因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的

  数值。

  然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。

在访问定时器2

  或RCAP2寄存器之前,应将定时器关闭(清除TR2)。

可编程时钟输出:

  定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号,如图8所示。

P1.0引脚除了是一个标准的I/O口外,

  还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。

当时钟振荡频率为16MHz时,输

  出时钟频率范围为61Hz—4MHz。

  当设置定时/计数器2为时钟发生器时,C/T2(T2CON.1)

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

当前位置:首页 > 总结汇报

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

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