SHT11温湿度传感器与1602应用代码及仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C1
1OdF
XTJO
RSI
pOnALB EA
74D
270
辭•IRA
SCk<
5HT11<TEXT
QATA
PO.OZi*iMPO 1.^D1PQZ/ACff PQ.^AD^ P0.4WD4 F0 5/AD& POOr^A P0.7W?
FZ.OW
P±.1A=G P2.2ZAK)F2.3W.11FZ 4/A1J P2.fi/Alt3: P2.6M14I P2丁闻挣
P3 <TQ
P3.&T1
P3日殛
P2.7/R&
<rtxTi
运行后结果
#ifndef _TOU_H
#defi ne __TOU_H__
#in clude<reg52.h>
#in elude vintrin s.h>
〃#in clude <math.h> //Keil library
#defi ne uchar un sig ned char en um {TEMP,HUMI};
#defi ne MEASURE_HUMI 0x05 //000 00101
#defi ne RESET0x1e //000 1111 0
//写字节程序
char s_write_byte( un sig ned char value) {
un sig ned char i,error=0;
for (i=0x80;i>0;i>>=1)//
{
if (i&value) DATA=1;//
else DATA=0;
SCK=1;
_nop_() ;_n op_();_ no p_();〃
SCK=0;
}
DATA=1;//
SCK=1;
error=DATA;//
_n op_();_nop_() ;_n op_();
SCK=0;
DATA=1;
return error;〃error=1
36-
38;
3b3
近
34 i
32^
莎
Zj
22:
ITT
RP1;呻F氐曲
P1P1F1P1P1門FP1
P3.WR^O
P3.irra>
Fj.g/rjwpa.sThTT
P3.-4/TO F3.5H1
PMB殛
P9 7.W
EX1>
仿真图形
TEnP:026.?5:C
HUni:077.2^RH
<TE.
i■
in e
RD.DTACO TO.1/W1
//SHT10程序(SHT10.c):
//继续传输数据,用于判断是否结束通讯 结束数据传输;
//地址命令读/写
#defi ne STATUS_REG_W 0x06〃000 00110
#defi ne STATUS_REG_R 0x07〃000 00111
#defi ne MEASURE_TEMP 0x03〃000 00011
DATA=0;
_n op_();
SCK=0;
_n op_();_ no p_();_ nop_();
SCK=1;
_n op_();
DATA=1;
_n op_();
SCK=0;
}
//连接复位
void s_connection reset(void)
函数声明
********/
void GotoXY (un sig ned char x, un sig ned char y);
void Print(un sig ned char *str);
void LCD_Write(bit style, un sig ned char in put);
/********
}
//启动传输
void s_tra nsstart(void)
// gen erates a tran smissi on start
//
// DATA: ||
// ___ ___
// SCK:___| |___| |
{
DATA=1; SCK=0;//
_n op_();
SCK=1;
_n op_();
通讯错误
释放数据线
高位为1,循环右移
if(DATA) val=(val|i);//读一位数据线的值
SCK=0;
}百度文库
DATA=!ack;//
SCK=1;
_n op_();_nop_() ;_n op_();//
SCK=0;
_n op_();_nop_() ;_n op_();
DATA=1;//
return val;
sbit DATA = P1A1;
sbit SCK = P1A0;
sbit RS = P2A0; sbit RW = P2A1; sbit E = P2A2;
sfr DBPort = 0x80;
〃P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
/********DS1602
void LCD_I nitial();
}
//读字节程序
char s_read_byte( un sig ned char ack)
//
{
un sig ned char i,val=0;
DATA=1;//
for(i=0x80;i>0;i>>=1)//
{
SCK=1;
高位为1,循环右移
和要发送的数相与,结果为发送的位
延时3us
释放数据线
检查应答信号,确认通讯正常
PCI.2/哒
P0.3/她3F0.即糾PO.a/flMPWB/純阳FQ,7/fiC7
U2
P2MB
P2.1朋P22/AK) PZ^AH P2.4/A12 F2.5/A13 RJS/AMI P2.7/A15
2?
P1D
P1.1
P12
P13
H耳
PW
P2
P3.0fR^E>
P3.1jTXI> P3 2/iwT5 P3.3iiNfi
//float calc_dewpo in t(float h,float t);
#en dif
***************************************************************************************************
****************************************************
SHT10
函数声明
********/
void s_connection reset(void);
char s_measure (un sig ned char *p_value, un sig ned char *p_checksum, un sig ned char mode);
void calc_sth10(float *p_humidity ,float *p_temperature);
1OdF
XTJO
RSI
pOnALB EA
74D
270
辭•IRA
SCk<
5HT11<TEXT
QATA
PO.OZi*iMPO 1.^D1PQZ/ACff PQ.^AD^ P0.4WD4 F0 5/AD& POOr^A P0.7W?
FZ.OW
P±.1A=G P2.2ZAK)F2.3W.11FZ 4/A1J P2.fi/Alt3: P2.6M14I P2丁闻挣
P3 <TQ
P3.&T1
P3日殛
P2.7/R&
<rtxTi
运行后结果
#ifndef _TOU_H
#defi ne __TOU_H__
#in clude<reg52.h>
#in elude vintrin s.h>
〃#in clude <math.h> //Keil library
#defi ne uchar un sig ned char en um {TEMP,HUMI};
#defi ne MEASURE_HUMI 0x05 //000 00101
#defi ne RESET0x1e //000 1111 0
//写字节程序
char s_write_byte( un sig ned char value) {
un sig ned char i,error=0;
for (i=0x80;i>0;i>>=1)//
{
if (i&value) DATA=1;//
else DATA=0;
SCK=1;
_nop_() ;_n op_();_ no p_();〃
SCK=0;
}
DATA=1;//
SCK=1;
error=DATA;//
_n op_();_nop_() ;_n op_();
SCK=0;
DATA=1;
return error;〃error=1
36-
38;
3b3
近
34 i
32^
莎
Zj
22:
ITT
RP1;呻F氐曲
P1P1F1P1P1門FP1
P3.WR^O
P3.irra>
Fj.g/rjwpa.sThTT
P3.-4/TO F3.5H1
PMB殛
P9 7.W
EX1>
仿真图形
TEnP:026.?5:C
HUni:077.2^RH
<TE.
i■
in e
RD.DTACO TO.1/W1
//SHT10程序(SHT10.c):
//继续传输数据,用于判断是否结束通讯 结束数据传输;
//地址命令读/写
#defi ne STATUS_REG_W 0x06〃000 00110
#defi ne STATUS_REG_R 0x07〃000 00111
#defi ne MEASURE_TEMP 0x03〃000 00011
DATA=0;
_n op_();
SCK=0;
_n op_();_ no p_();_ nop_();
SCK=1;
_n op_();
DATA=1;
_n op_();
SCK=0;
}
//连接复位
void s_connection reset(void)
函数声明
********/
void GotoXY (un sig ned char x, un sig ned char y);
void Print(un sig ned char *str);
void LCD_Write(bit style, un sig ned char in put);
/********
}
//启动传输
void s_tra nsstart(void)
// gen erates a tran smissi on start
//
// DATA: ||
// ___ ___
// SCK:___| |___| |
{
DATA=1; SCK=0;//
_n op_();
SCK=1;
_n op_();
通讯错误
释放数据线
高位为1,循环右移
if(DATA) val=(val|i);//读一位数据线的值
SCK=0;
}百度文库
DATA=!ack;//
SCK=1;
_n op_();_nop_() ;_n op_();//
SCK=0;
_n op_();_nop_() ;_n op_();
DATA=1;//
return val;
sbit DATA = P1A1;
sbit SCK = P1A0;
sbit RS = P2A0; sbit RW = P2A1; sbit E = P2A2;
sfr DBPort = 0x80;
〃P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
/********DS1602
void LCD_I nitial();
}
//读字节程序
char s_read_byte( un sig ned char ack)
//
{
un sig ned char i,val=0;
DATA=1;//
for(i=0x80;i>0;i>>=1)//
{
SCK=1;
高位为1,循环右移
和要发送的数相与,结果为发送的位
延时3us
释放数据线
检查应答信号,确认通讯正常
PCI.2/哒
P0.3/她3F0.即糾PO.a/flMPWB/純阳FQ,7/fiC7
U2
P2MB
P2.1朋P22/AK) PZ^AH P2.4/A12 F2.5/A13 RJS/AMI P2.7/A15
2?
P1D
P1.1
P12
P13
H耳
PW
P2
P3.0fR^E>
P3.1jTXI> P3 2/iwT5 P3.3iiNfi
//float calc_dewpo in t(float h,float t);
#en dif
***************************************************************************************************
****************************************************
SHT10
函数声明
********/
void s_connection reset(void);
char s_measure (un sig ned char *p_value, un sig ned char *p_checksum, un sig ned char mode);
void calc_sth10(float *p_humidity ,float *p_temperature);