AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2、芯片引脚封装:
AT89S52引脚封装图如图3-1所示。
图3-1 AT89S52引脚封装图
3、芯片引脚说明:
VCC : 电源 GND: 地
P0 端口(P0.0-P0.7):P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令 字节。程序校验时,需要外部上拉电阻。
P1 端口(P1.0-P1.7):P1口是一个具有内部上拉电阻的8 位双向I/O口,p1输出缓冲器能驱动4 个TTL 逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表3-1所示。在flash
10
编程和校验时,P1口接收低8位地址字节。
表3-1 P1口线的第二功能
引脚号 P1.0 P1.1 P1.5 P1.6 P1.7 第二功能信号 T2 T2EX MOSI MISO SCK 第二功能信号名称 定时器/计数器T2的外部计数输入,时钟输出 定时器/计数器T2的捕捉/重载触发信号和方向控制 在系统编程用 在系统编程用 在系统编程用 P2 端口(P2.0-P2.7):P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 端口(P3.0-P3.7):P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表3-2所示。在flash编程和校验时,P3口也接收一些控制信号。
表3-2 P3口线的第二功能 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能信号 RXD TXD INT0 INT0 T0 T1 WR RD 11
第二功能信号名称 串行输入 串行输出 外部中断0 外部中断0 定时器0外部输入 定时器1外部输入 外部数据存储器写选通 外部数据存储器写选通
RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:振荡器反相放大器的输出端。 3.1.2 AT89S52最小系统
在本设计中,AT89S52单片机的P0口用于单片机与LCD12864之间的数据传送,P1.0~ P1.3用于步进电机的驱动接口,P2.0用于LCD12864显示的位驱,P2.1用于控制对LCD12864的读写控制信号,P2.2用于控制对LCD12864的指令是属于写数据还是写指令。P3.1-P3.7用作键盘电路,一共设置7个按键。P1.0-P1.3用于驱动步进电机,P1.5口用于时钟芯片DS1302的SCLK 串行时钟,P1.6口用于时钟芯片DS1302的
I/O 数据输入和数据输出,P1.7
口用于时钟芯片DS1302的RST 复位脚。P3.0用于温湿度
传感器DHT11数据输入通道。
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个十二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
AT89S52最小系统接线如图3-2所示,在XTAL1、XTAL2端接上11.0592MHZ晶振及两个30P谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。单片机在启动运行时都需要复位,以便CPU和系统中的其他部件都处于某一确定的初始状态,并从这个状态开始工作。单片机的复位是靠外部电路实现的,在时钟电路工作后,只要在
12
单片机的RST引脚上出现24个时钟振荡脉冲(2个机械周期)以上的高电位,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持IOms以上稳定的高电平。只要RST保持高电平,单片机就循环复位;当RST从高电平变为低电平以后,单片机从0000H地址开始执行程序。在复位有效期间,ALE引脚输出高电平。
复位后,PO口--P3口输出高电平,且皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为O7H),同时,将程序计数器PC和其余的特殊寄存器清0(不定位除外)。但复位不影响单片机内部的RAM状态。
图3-2 AT89S52最小系统图和复位电路
3.2 直流稳压电源的设计
随着集成技术的发展,稳压电路也迅速实现集成化。特别是三端集成稳压器,芯片只引出三个端子,分别接输入端、输出端和公共端,基本上不需外接元件,而且内部有限流保护、过热保护和过压保护电路,使用十分安全、方便[6]。
直流稳压电源一般由电源变压器、整流电路、滤波电路及稳压电路组成,电源变压器的作用是将电网220V的交流电压U1转换成整流电路所需的电压U2。整流电路的作用是将交流电压U2转换成脉动的直流电压U3。滤波电路的作用是将脉动直流电
13
压滤除纹波,变成纹波小的直流电压U4。稳压集成块的作用就是将不稳定的直流电压转换成稳定的直流电压U5。
图3-3 直流稳压电流电路图
本设计选择的方案是三端集成稳压器的最基本的应用电路,如图3-3所示。 整流滤波后得到的直流输入电压U4接在LM7805输入端和公共端之间,在LM7805的输出端即可得到稳定的+5V输出电压U5。
3.3 湿度采集模块
3.3.1 温湿度传感器的原理
1、概述
新型单总线数字温湿度传感器DHT11是广州奥松电子有限公司新近推出的一款含有已校准数字信号输出的温湿度复合传感器,它具有体积小巧、接口简单、响应速度快、性价比高等特点。由于DHT11的诸多优点,使其在自动控制和家电消费品领域中拥有较高的应用价值。 2、产品特性
①湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量 。 ②数字信号输出,从而减少用户信号的预处理负担。
③单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电器元件。 ④ 独特的单总数据传输线协议使得读取传感器的数据更加便捷。 ⑤全部校准。编码方式为8位二进制数。
⑥40bit 二进制数据输出。其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。其中,湿度为高16位。最后1Byte为校验和。 ⑦卓越的长期稳定性,超低功耗。
⑧ 4引脚安装,超小尺寸,各型号管脚完全可以互换。
⑨ 测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50℃。 ⑩适用范围包括恒湿控制,消费家电类产品,温湿度计等领域。
14