ORL A,#WRITE
MOV WRIT_ADC, A
SETB SM_BUSY
SETB STA
JB SM_BUSY, $
//写温度测量命令
CLR RW
MOV A,# MEAMURE_TEMP
ORL A,#WRITE
MOV WRIT_ADC, A
SETB SM_BUSY
SETB STA
JB SM_BUSY, $
//读测得的温度
SETB RW
MOV A, # CHIP_A
ORL A,#READ
MOV READ_ADC, A
SETB SM_BUSY
SETB STA
ACALL DELAY
MOV TEMPR, RECEIVE_BYTE
------------------
//写湿度测量命令
------------------
//读测得的湿度值
由于湿度测量和温度测量程序相同,所以没有给出,测量后的温度数据和湿度数据分别放在TEMPR和HUMIR两个寄存器中,然后经过线性修正程序和棒棒算法程序后控制继电器的动作。
结束语
本文设计温湿度调节系统,主器件为8051F020,从器件为I2C总线数字温湿度传感器SHT11,接口电路用I/O端口初始化程序启动优先权交叉开关译码器把引脚分别配置成串行数据及串行时钟,并配置基本输入输出。软件设计则采用Bang-Bang控制算法,需高低两个温度设置点,温度高于高点则关闭电源,低于低点则打开电源。控制程序含系统复位、初始化、A/D转换和读取数据转换、Bang-Bang控制算法及输出控制子程序。