基于单片机的热水控制器.docx
- 文档编号:1473825
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:25
- 大小:373.38KB
基于单片机的热水控制器.docx
《基于单片机的热水控制器.docx》由会员分享,可在线阅读,更多相关《基于单片机的热水控制器.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机的热水控制器
摘要
本文以单片机AT89C51为核心,从DS18B20温度检测的数据采集、设定值调整、LED数码管显示电路、报警及输出控制电加热器等几个方面出发,详细研究和设计了基于单片机的热水控制器的各个部分内容,设计了单片机及其外围电路,并结合一套经典的程序算法。
给出了一套合理的基于单片机的热水控制器软硬件解决方案。
关键字温度检测DS18B20单片机温度控制
1绪论
单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。
基于单片机的热水控制器较传统的温度控制器具有更高的智能性,并且系统的功能更加易于扩展和升级,是一种低成本的温度检测、控制方案。
在一些温控系统电路中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D转换,最终送入单片机及其相应的外围电路,完成监控。
但是由于传统的信号调理电路实现复杂、易受干扰、不易控制且精度不高。
本文介绍单片机结合DS18B20热水控制器设计,本系统用一种新型的可编程温度传感器(DS18B20),不需复杂的信号调理电路和A/D转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,可根据不同需要用于各种场合。
2系统的总体设计
单片机的热水控制器需要完成温度的检测并可以通过按键设定调整最高温度和最低温度值、能够显示当前温度值、最高温度和最低温度值,同时要实现水温超过最高温度+3度时,停止电热棒加热并报警;当水位低于最低温度-3度时,启动电热棒加热等功能。
需要系统包括单片机最小系统电路和按键电路、LED显示电路、温度检测部分、报警和控制输出等主要部分,系统地总体设计狂徒如下图所示:
图2.1系统整体设计框图
3系统的主要硬件介绍
3.1单片机介绍
3.1.1单片机概述
单片微机(Single-ChipMicrocomputer)简称单片机,通常统称微控制器(Micro-Controller简写μC)或微型处理部件(MicroControllerUnit简写MCU)。
一般的说,单片机就是在一块硅片上集成CPU、RAM、ROM、定时器/计数器、和多种I/O的完整的数字处理系统。
二十世纪,微电子、IC集成电路行业发展迅速,其中单片机行业的发展最引人注目。
单片机功能强、价格便宜、使用灵活,在计算机应用领域中发挥着极其重要的作用。
从INTEL公司于1971年生产第一颗单片机Intel-4004开始,开创了电子应用的“智能化”新时代。
单片机以其高性价比和灵活性,牢固树立了其在嵌入式微控制系统中的“霸主”地位,在PC机以286、386、Pentium、PⅢ高速更新换代的同时,单片机却“始终如一”保持旺盛的生命力。
例如,MCS-51系列单片机已有十多年的生命期,如今仍保持着上升的态势就充分证明了这一点。
1.单片机的结构与组成
目前,单片机的系统结构有两种类型:
一种是将程序和数据存储器分开使用,即哈佛(Harvard)结构,当前的单片机大都是这种结构。
另一种是采用和PC机的冯.诺依曼(VonNeumann)类似的原理,对程序和数据存储器不作逻辑上的区分,用来存放用户程序,可分为EPROM、OTP、ROM和FLASH等类。
EPROM型内存编程后其内容可用紫外线擦除,用户可反复使用,故特别适用于开发过程,但EPROM型单片机价格很高。
具有ROM型(掩膜型)内存的单片机价格最低,它适用于大批量生产。
由于ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户要更改程序代码就十分不便,在产品未成熟时选用ROM型单片机风险较高。
OTP型(一次可编程)单片机介于EPROM和ROM型单片机之间,它允许用户自己对其编程,但只能写入一次。
OTP型单片机生产多少完全可由用户自己掌握,不存在ROM型有最小起订量和掩膜费问题,另外,该类单片机价格已同掩膜型十分接近,故特别受中小批量客户的欢迎。
Flash型(闪速型)单片机允许用户使用编程工具或在线快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。
Flash型单片机,即可用于开发过程,也可用于批量生产,随着制造工艺的改进,Flash型单片机价格不断下降,使用越来越普遍,它已是现代单片机的发展趋势。
随机内存(RAM):
用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百个字节。
RAM的内容是易失性(也有的称易挥发性)的,掉电后会丢失。
最近出现了EEPROM或FLASH型的数据存储器,方便用户存放不经常改变的数据及其它重要信息。
单片机通常还有特殊寄存器和通用寄存器,它们是单片机中存取速度最快的内存,但通常存储空间很小。
2.中央处理器(CPU)
是单片机的核心单元,通常由算术逻辑运算部件ALU和控制部件构成。
CPU就象人的大脑一样,决定了单片机的运算能力和处理速度。
并行输入/输出(I/O)口:
通常为独立的双向口,任何口既可以用作输入方式,又可以作输出方式,通过软件编程来设定。
现代的单片机的I/O口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。
I/O是单片机的重要资源,也是衡量单片机功能的重要指针之一。
串口输入/输出口:
用于单片机和串行设备或其它单片机的通信。
串行通信有同步和异步之分,这可以用硬件或通用串行收发器件来实现。
不同的单片机可能提供不同标准的串行通信接口,如UART、SPI、、MicroWire等。
3.定时器/计数器(T/C)
单片机内部用于精确定时或对外部事件(输入信号如脉冲)进行计数,有的单片机内部有多个定时/计数器。
4.系统时钟
通常需要外接石英晶体或其它振荡源来提供时钟信号输入,也有的使用内部RC振荡器。
以上是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(A/D)、数字/模拟转换器(D/A)、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等等。
3.1.2单片机编程语言介绍
对于51系列单片机,现有四种语言支持,即汇编、PL/M,C和BASIC。
BASIC通常附在PC机上,是初学编程的第一种语言。
一个新变量名定义之后可在程序中作变量使用,非常易学,根据解释的行可以找到错误而不是当程序执行完才能显现出来。
BASIC由于逐行解释自然很慢,每一行必须在执行时转换成机器代码,需要花费许多时间不能做到实时性。
BASIC为简化使用变量,所有变量都用浮点值。
BASIC是用于要求编程简单而对编程效率和运行速度要求不高的场合。
PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言。
它很像PASCAL,是一种结构化语言,但它使用关键词去定义结构。
PL/M编译器好像汇编器一样可产生紧凑代码。
PL/M总的来说是“高级汇编语言”,可详细控制着代码的生成。
但对51系列,PL/M不支持复杂的算术运算、浮点变量而无丰富的库函数支持。
学习PL/M无异于学习一种新语言。
C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。
C语言结构是以括号{}而不是子和特殊符号的语言。
C可以进行许多机器级函数控制而不用汇编语言。
与汇编相比,有如下优点:
对单片机的指令系统不要求了解,仅要求对51的内存结构有初步了解寄存器分配、不同内存的寻址及数据类型等细节可由编译器管理程序有规范的结构,可分为不同的函数。
这种方式可使程序结构化将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性编程及程序调试时间显著缩短,从而提高效率提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机不同较快地移植过来。
51的汇编语言非常像其它汇编语言。
指令系统比第一代微处理器要强一些。
51的不同存储区域使得其复杂一些。
尽管懂得汇编语言不是你的目的,看懂一些可帮助你了解影响任何语言效率的51特殊规定。
例如,懂得汇编语言指令就可以使用在片内RAM作变量的优势,因为片外变量需要几条指令才能设置累加器和数据指针进行存取。
要求使用浮点和启用函数时只有具备汇编编程经验才能
避免生成庞大的、效率低的程序,这需要考虑简单的算术运算或先算好的查表法。
最好的单片机编程者应是由汇编转用C而不是原来用过标准C语言的人。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
3.1.3系统选择
本系统以MCS-51单片机成员中的AT89C51为控制核心。
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序内存,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序内存既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,它灵活应用于各种控制领域。
主要性能参数:
(1)与MCS-51产品指令系统完全兼容
(2)4K字节在系统编程(ISP)Flash闪速内存
(3)1000次擦写周期
(4)4.0-5.5V的工作电压范围
(5)全静态工作模式:
0Hz—33MHz
(6)三级程序加密锁
(7)2568字体内部RAM
(8)32个可编程I/O口线
(9)3个16位定时/计数器
(10)5个中断源
(11)全双工串行UART通道
(12)低功耗空闲和掉电模式
(13)中断可从空闲模唤醒系统
(14)看门狗(WDT)及双数据指针
(15)掉电标识和快速编程特性
(16)灵活的在系统编程(ISP—字节或页写模式)
其内部结构结构如图3.1所示:
3.1.4AT89C51引脚功能介绍
1.电源引脚Vcc和GND
Vcc:
电源电压,GND(10脚):
接地端。
2.时钟电路引脚XTALl和XTAL2
XTAL2(18脚):
接外部晶体和微调电容的一端。
在内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。
要检查单片机的振荡电路是否正确工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):
接外部晶体的微调电容的另一端。
在片内它是振荡电路反相放大器的输入端。
若需采用外部时钟电路时,该引脚输入外部时钟脉冲如图3.2,3.3所示。
3.控制信号引脚RST
图3.2AT89S51单片机晶振接法图3.3外部时钟电路
RES(8脚)“RST是复位信号输入端,高电平有效。
当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,可以完成复位操作。
4.I/O(输入/输出)P0、P1、P2和P3
标准51单片机,如8051、8031、AT89C51、AT89S51、P89C51等有4个I/O(输入/输出)口,分别为:
P0口(39—32脚):
P0口是一个漏极开路的8位双向埠。
作为漏极八路的输出端口,每次能驱动8个Ls型TTL负载。
当P0口作为输入口使用时,其先向锁存器(地址80H)写入全1,此时P0口的全部引脚悬空,叫作为高阻抗输入。
P1口(1—8脚):
P1口是一个带上拉电阻的8位准双向I/O端口每一位能驱动(吸收成输出电流)4个LS型TTL负载。
在P1口作为输入口使用时,应先向P1口锁存器(地址90H)写入全1,上拉电阻接成高电平。
P2口(21—28脚):
P2口是一个带内部上接电阻的8位准双向埠。
P2口的每一位能驱动4个LS型TTL负载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 热水 控制器