基于STC89C52RC单片机的大棚温湿度自动控制系统毕业设计(含源文件) - 图文 联系客服

发布时间 : 星期六 文章基于STC89C52RC单片机的大棚温湿度自动控制系统毕业设计(含源文件) - 图文更新完毕开始阅读570ce35d1ed9ad51f01df273

图3.11 STC89C52RC引脚图

P0口(P0.0~P0.7):

P0端口(P0.0~P0.7,39~32 引脚):P0口是一个漏极开路的8位双向I/O 口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时 在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线位数据的复用总线。在进行程序校验的时候,输出指令字节;而在Flash ROM 编程时,接收指令字节。

P1口(P1.0~P1.7):

P1端口(P1.0~P1.7,1~8 引脚):P1口是一个8位双向I/O口,内部已经自带

有一个几十K的上拉电阻。对端口写入“1”时,该引脚被悬空,由内部的上拉电阻把引脚拉到高电平,这时候可以作为输入口使用,此时,因为内部自带上拉电阻,所以被

页 第 18

外部器件拉低电压的引脚会输出一个电流。P1的输出缓冲器可驱动4个TTL逻辑门。

P2 口(P2.0~P2.7):

P2和P1一样,是一个8 位双向I/O口,内部自带上拉电阻。。端口进行写“1”时,该管脚被悬空,由内部自带的上拉电阻将电平拉到高电平。当它被当作输入口使用时,因为内部自带上拉电阻,该引脚在被外部元器件拉低电平的时侯会有电流输出。在对程序存储器(ROM)或16位的外部数据存储器进行读写时,P2口会送出一个高8位地址数据。在进行访问8 位地址的外部数据存储器的时侯,P口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器内容),在整个访问期间不改变。它的输出缓冲级可以驱动4个TTL逻辑门

P3口(P3.0~P3.7):

P3口,和P1、P2一样,是一个8 位双向I/0 口,内部自带弱上拉。对P3口进行写入“l”时,被内部的上拉电阻拉高且可以作为一个输入端口。作输入端口时,被外部元器件拉低电平的P3口将通过上拉电阻提供电流。P3口除了作为一个一般的I/0口线外,它的第二功能有更重要的用途。P3口输出缓冲级可用来驱动4个TTL逻辑门。

RST:复位输入端。在震荡期稳定有效运行情况下,RST端维持两个机器周期的高电平,便可复位器件。

∕PSEN:外部程序存储器的选通信号。低电平有效,在片外程序存储器取指期间,当∕PSEN有效时,程序存储器的内容将会被送至P0口,在访问外部RAM时,∕PSEN无效。

∕EA∕VPP:当∕EA保持低电平时,则在此期间外部存储器(0000H~FFFH),不论是否有内部程序存储器。

VCC:电源电压。

XTALI:单芯片系统时钟的反向放大器输入端。使用外部振荡器时,连接外部石英晶体和微调电容。

XTAL2:系统时钟的反向放大器输出端。当使用片内振荡器时,外部接石英晶体和微调电容。

3.3.2 SHT10温湿度传感器

SHT10是瑞士Sensirion公司推出的超小型、自校型、高精度、多功能式的智能传感器,采用SMD贴片封装。SHT10温湿度传感器品质卓越,具有很明显的优点,如抗干扰能力强、反应快等。传感器在一块微型电路板上集成了信号处理电路和传感元件,由于自带ADC,所以输出数字信号。传感器采用瑞士Sensirion公司持有专利的CMOSens? 技术,因此有极高的稳定性、准确性、靠性性。SHT10包含一个电容性聚

页 第 19

合体湿敏器件、一个基于能隙材料的温度测量元件。

SHT10可以用来测量相对湿度、温度和露点等参数。这类智能传感器广泛用于工农业生产、环境监测、通风及空调设备等领域。

SHT10的主要性能参数如下:

(1)采用两线制数字接口,类似于I2C总线的时序;

(2)测量温湿度的范围广。湿度测量范围为0~100%RH,温度测量范围为-40~123.8℃;

(3)测量精度较高,温度的测量误差为±0.5℃,湿度的测量误差为±4.5%RH; (4)湿度值分辨率为14位,温度值输出分辨率为12位,并可以变成12位和8位; (5)将温湿度传感器、信号放大器、A/D转换、I2C总线接口全部集成于一个芯片;

(6)小体积,可表面贴装;

(7)具有可靠的CRC数据传输校验功能; (8)片内装载的校准系数可保证100%互换性;

(9)电流消耗低,测量时550μA,平均28μA,休眠时3μA; (10)可给出全校准相对湿度计温度值输出; (11)具有漏点值计算输出功能;

电源引脚(VDD),SHT10的供电电压为2.4~5.5V,这里选择5V;在电源引脚(VDD,GND)之间须加一个100nF的电容,用于去耦滤波。(串行输入(SCK),用于微处理器与SHT10之间的同步通信;串行数据(DATA),用于三态门的数据读取,DATA在SCK时钟下降沿后会发生状态改变,并且在SCK时钟为上升沿时有效。也就是微控制器可在SCK为高电平段去读取有效的数据。在微控制器向SHT10进行数据传送的过程中,必须要保证数据线在时钟线为高电平段时稳定。为了避免发生信号冲突,微控制器仅仅把数据线拉低,在需输出高电平时,微控制器会将引脚置成高阻态,由外部上拉电阻把信号拉为高电平,这里选择10KΩ。

SHT10在使用时,在数据线上用一组“启动传输”的时序来表示初始化数据传输。包括:当SCK时钟为高电平的时侯,DATA翻转至低电平,紧接着SCK变成低电平,随后在SCK时钟为高电平的时侯DATA翻转为高电平。后续的命令包含3个地址(目前支持“000”)和5个命令位,具体命令集见表4。SHT10会用下述来方式表示已经正确接受到了指令:在第8个SCK的时钟下降沿后,将DATA下拉至低电平(ACK位);在第9个SCK的时钟下降沿后,释放DATA(恢复为高电平)。

页 第 20

表3-2 SHT10的命令集

命令 预留 温度测量 湿度测量 读状态寄存器 写状态寄存器 预留 软复位,复位接口、清空状态寄存器为默认值,下一个命令前等待至少11ms 代码 0000x 00011 00101 00111 00110 0101x~1110x 11110 根据上表的命令集,SHT10测量时,发布测量命令(‘00000101’表示的是相对湿度RH,‘00000011’ 表示的是温度T)后,控制器等待测量停止后。此过程大约需要11、55、210ms,分别会对应8、12、14位的测量。确切时间与内部的晶振速度有关,最多会有±15%的变化。SHT10通过下拉DATA变为低电平,表示测量已结束。控制器在触发SCK时钟前,必须要等待“数据备妥”的信号。接着会传输2个字节的测量数据以及1个字节的CRC奇偶校验。uC需要用下拉DATA为低电平,来确认每个字节。全部数据会从MSB开始,右值有效(例如:对于12位数据,从第5个SCK时钟起算作MSB;而对于8位数据,首字节则无意义)。

页 第 21