桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 4 页 共 48 页
AT89S51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM-Flash ProgrammAble and Erasable Read Only Memory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC-51兼容。片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。其引脚图如图2-1所示
图2-1 AT89S51引脚图
AT89S51单片机主要引脚功能如下: (1)P0口——8位、开漏极、双向I/O口。
① P0口可作为通用I/O口,但必须外接上拉电阻;作为输出口,每个引脚可吸收8个TTL的灌电流。作为输入时,首先应将引脚置“1“。
② P0口也可用作外部程序存储器和数据存储器是的低八位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。
(2)P1口——8位、准双向I/O口、内部含有上拉电阻。
① P1可作为普通I/O口。输出缓冲器可驱动4个TTL负载;用作输入时,先将引脚置1,有片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供上拉电流。
② 在串行编程和校验时,P1.0/MOSI,P1.6/OSI和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。
(3)P2口——准双向口,具有通用I/O接口或8位地址总线输出
① P2口用作输出口时,可驱动四个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。 ② 当单片机系统外部扩展时,P2端口可用于输出高8位地址线,与P0端口传送的低8位地址一起组成16位地址总线,由于访问外部存储器的操作是不断的,此时P2端口不可能再作通用I/O接口使用。
(4)P3口——双重功能的8位准双向端口。
P3口是一个多功能的端口,除作为准双向I/O接口使用外,还可以将每一位用于第
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 5 页 共 48 页
二功能,而且P3端口的每一条引脚均可独立定义为第一功能的输入/输出或第二功能。P3端口能驱动4个TTL负载。P3端口的第二功能如表2-1所示。
表2-1 单片机引脚功能表 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外中断0)低电平有效 INT1(外中断1)低电平有效 T0(定时/计数0)输入端 T1(定时/计数1)输入端 WR(外部数据存储器与选通) RD(外部数据存储器读选通)
(5)XTAL1和XTAL2——XTAL1是片内振荡器反相放大器和时钟发生器的输入端,XTAL2是片内振荡器反相放大器的输出端。 (6)RST——复位输入端,高电平有效。
当单片机振荡器工作时,RST端维持两个机器周期的高电平,便可实现复位操作,2.1.3 单片机主控电路设计
单片机主控电路设计是以AT89S51为核心,外接数字温度传感器模块,数字湿度传感器模块,时钟模块,液晶显示模块、电源等硬件电路。AT89S51工作在12MHZ的频率下,采用+5V的直流电源供电,根据单片机各个引脚功能,P1口接矩阵键盘 ,用于人机界面输入参数。P0口连接12864液晶显示,P2.0~P2.2为时钟信号接口,P3.0为温度传感器数据接口,P3.4为湿度传感器数据接口。如图2-2为单片机主控电路图。
图2-2 单片机主控电路图
使单片机回复到初始状态。上电时,该引脚上高电平持续10ms以上才能保证有效复位。
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 6 页 共 48 页
2.2 数字温度模块设计分析
2.2.1 DS18B20内部结构及工作原理 (1)DS18B20的引脚图功能及性能特点
① DS18B20与微处理器连接时仅需要一根数据线即可实现微处理器与DS18B20的双向通讯。
② 可用数据线供电,电压范围:+3.0V到+5.5 V。
③ 测温范围:-55℃ ~+125℃。固有测温分辨率为0.5℃。 ④ 通过编程可实现9~12位的数字读数方式。 ⑤ 用户可自设定非易失性的报警上下限值。 (2)DS18B20引脚功能如图2-3所示:
引脚1为GND端:该引脚接地。
引脚2为DQ端: 该引脚是数据的输入/输出端, 对于单线传输是漏极开路。 (3)数字温度传感器内部结构
DS18B20内部结构主要有四部分组成:温度传感器,64位光刻ROM,非挥发的温度报警触发器TH和TL,高速暂存器。如图2-4所示。
图2-4 DS18B20内部结构图
⑥ 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
引脚3为VDD端:该引脚接+5V,为电源输入端。 图2-3 DS18B20引脚图
(4)DS18B20工作原理
DS18B20其内部含有两个温度系数不同的温敏振荡器,其中低温度系数振荡器相当于标尺,高温度系数振荡器相当于测温元件,通过不断比较两个温敏振荡器的振荡周期得到两个温敏振荡器在测量温度下的振荡频率比值。根据频率比值和温度的对应曲线得到相应的温度值。这种方式避免了测温过程中的A/D转换,提高了温度测量的精度。低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,是很敏感的振荡器,它所产
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 7 页 共 48 页
生的信号作为减法计数器2的脉冲输入,为计数器2提供一个频率随温度变化的计数脉冲。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
(5)DS18B20时序图
单片机芯片通过发命令字对DS18B20进行控制。命令字分为二种:ROM命令字和RAM命令字。不同的命令字代表不同的操作。在发送每一个ROM命令字和RAM命令字之前,都要先发送初始化时序。
① DS18B20复位时序如图2-5所示
图2-5 DS18B20的复位时序图
图2-6 DS18B20的读时序图
② DS18B20的读时序如图2-6所示
对于DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15 微秒之内就得释放单总线,好让DS18B20把数据传输到 ③ DS18B20的写时序如图2-7所示
单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。