- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
sht11程序
include AT89s53.h //Microcontroller specific library, e.g. port definitions#include intrins.h //Keil library (is used for _nop()_ operation) #include math.h //Keil library #include stdio.h //Keil librarytypedef union { unsigned int i; float f;} value; //----------------------------------------------------------------------------------// modul-var//----------------------------------------------------------------------------------enum {TEMP,HUMI}; #define DATA P1_1#define SCK P1_0 #define noACK 0#define ACK 1 //adr command r/w#define STATUS_REG_W 0x06 //000 0011 0#define STATUS_REG_R 0x07 //000 0011 1#define MEASURE_TEMP 0x03 //000 0001 1#define MEASURE_HUMI 0x05 //000 0010 1#define RESET 0x1e //000 1111 0 //----------------------------------------------------------------------------------char s_write_byte(unsigned char value)//----------------------------------------------------------------------------------// writes a byte on the Sensibus and checks the acknowledge { unsigned char i,error=0; for (i=0x80;i0;i/=2) //shift bit for masking { if (i value) DATA=1; //masking value with i , write to SENSI-BUS else DATA=0; SCK=1; //clk for SENSI-BUS _nop_();_nop_();_nop_(); //pulswith approx. 5 us SCK=0; } DATA=1; //release DATA-line SCK=1; //clk #9 for ack error=DATA; //check ack (DATA will be pulled down by SHT11) SCK=0; return error; //error=1 in case of no acknowledge} //----------------------------------------------------------------------------------char s_read_byte(unsigned char ack)//----------------------------------------------------------------------------------// reads
文档评论(0)