南京工程学院康尼学院本科毕业设计(论文)
要另外购买其他的芯片,如A/D转换及定时/计数器(PWM)等芯片,从而造成成本较高,不实用。
热水器控制电路数控部分采用AT89S52单片机作为控制核心。AT89S52是一种带4k可擦除存储器的低电压、高性能CMOS8位微处理器,俗称单片机。AT89S52具有以下标准功能:4k字节Flash,256字节RAM,32位I/0口,看门狗定时器,2个数据指针,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,单片机停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止。直到下一个中断或硬件复位为止。8位微控制器8 k字节为在系统可编程Flash[7]。
AT89S52单片机的管脚图如图2.2所示:
图2.2 AT89S52单片机的管脚图
各引脚介绍如下:
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
5
南京工程学院康尼学院本科毕业设计(论文)
P1口:P1是一个带内部上拉电阻的8位双向I/O口, P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89S51不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1接收低8位地址。
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)输出是外部程序存储器的读选通信号,当AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被
6
南京工程学院康尼学院本科毕业设计(论文)
编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这
必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 2.1.2 AT89S52定时器/计数器
AT89S52单片机内部有三个16位可编程的定时器/计数器,即定时器T0、定时器T1和定时器T2。它们既可用作定时器方式,又可用作计数器方式,且都有4种工作方式可供选择。图2.3是定时器/计数器的结构框图。由图可知,定时器/计数器由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。
定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成:定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。
图2.3定时器/计数器结构框图
TL0、TL1、TH0、TH1的访问地址依次为,每个寄存器均可单独访
问。定时器0或定时器1用作计数器时,对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数,每输入一个脉冲,加法计数器加1;其用作定时器时,对内部机器周期脉冲计数,由于机器周期是定值,故计数值确定时,时间也随之确定。
TMOD、TCON与定时器0、定时器1间通过内部总线及逻辑电路连接,TMOD
7
南京工程学院康尼学院本科毕业设计(论文)
用于设置定时器的工作方式,TCON用于控制定时器的启动与停止。
计数方式时,T的功能是计来自T0(P3.4)T1(P3.5)的外部脉冲信号的个数。 输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。外部输入信号的下降沿将触发计数,识别一个从―1‖到―0‖的跳变需2个机器周期,所以,对外部输入信号最高的计数速率是晶振频率的1/24。若晶振频率为6MHz,则计数脉冲频率应低于1/4MHz。当计数器满后,再来一个计数脉冲,计数器全部回0,这就是溢出。
脉冲的计数长度与计数器预先装入的初值有关。初值越大,计数长度越小;初值越小,计数长度越大。最大计数长度为65536(2)个脉冲(初值为0)。
定时方式时,T记录单片机内部振荡器输出的脉冲(机器周期信号)个数。每一个机器周期使T0或T1的计数器增加1,直至计满回零自动产生溢出中断请求。
定时器的定时时间不仅与定时器的初值有关,而且还与系统的时钟频率有关。在机器周期一定的情况下,初值越大,定时时间越短;初值越小,定时时间越长。最长的定时时间为65536(2)个机器周期(初值为0)。 2.1.3复位电路和晶振电路
复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需按复位键重新启动。
整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。并且在外围设计晶振电路使单片机正常工作。
晶振电路:AT89S52片内有一个由高增益反相放大器构成的振荡电路。XTALl和XTAL2分别为振荡电路的输入输出端。
本系统的复位和晶振电路采用图2.4所示的复位方式
16
16
8
南京工程学院康尼学院本科毕业设计(论文)
图2.4晶振和复位电路
2.2温度检测电路
本文采用温度传感器DS18B20采集热水器的实时温度,提供给AT89S52的P3.7口作为数据输入。在本次设计中我们所控的对象为水温。其电路原理图如下:
图2.5 温度检测电路
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚T0—92小体积封装形式;温度测量范围为—55℃~+125℃,可编程为9为~12为A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,支持3V~5.5V的电压范围,使系统设计更灵活、方便;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。分辨率
9