·¢²¼Ê±¼ä : ÐÇÆÚÒ» ÎÄÕ±ÏÒµÉè¼Æ »ùÓÚPROTEUSµÄÎÂʪ¶È²âÁ¿ÏµÍ³Éè¼Æ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ70d6b2d476a20029bd642d58
ºÓÄϳǽ¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ¸½Â¼A ϵͳԴ³ÌÐò
{
for( j =0;j<50;j++ ); } }
void Speaker(void) //±¨¾¯³ÌÐò {
unsigned int i; for(i=0;i<80;i++ ) { speaker=~speaker; Delay_xMs(2); } }
void doing_temp(SHT_dat *s) {float xianshi_temp; setwen_h=80.00; setwen_l=20.00;
xianshi_temp=s->temperature;
if((xianshi_temp
{ cold=1;hot=0;speek=1;Speaker();Delay_xMs(200);speaker=0;} if(xianshi_temp { cold=0;hot=1;speek=1;Speaker();Delay_xMs(200);speaker=0;} } void doing_humi(SHT_dat *s) {float xianshi_humi; setshi_h=90.00; setshi_l=30.00; xianshi_humi=s->humidity; if((xianshi_humi { ganzao=1;jiashi=0;speek=1;Speaker();Delay_xMs(200);speaker=0;} if(xianshi_humi 41 ºÓÄϳǽ¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ¸½Â¼A ϵͳԴ³ÌÐò { ganzao=0;jiashi=1;speek=1;Speaker();Delay_xMs(200);speaker=0;} } #endif SHT11.h #ifndef #define _SHT11_h_ #define uchar unsigned char #define uint unsigned int #define NOP() _nop_() #define TEMP 0 #define HUMI 1 sbit DQ=P2^7; //¶Ë¿Ú¶¨Òå sbit SCK=P2^6; typedef struct { float temperature; float humidity; float crc_temp; float crc_humi; uchar num_temp[5]; uchar num_humi[5]; }SHT_dat; /*========================================= Æô¶¯º¯Êý =========================================*/ void init_SHT() { DQ=1; SCK=0; NOP(); SCK=1; NOP(); DQ=0; 42 ºÓÄϳǽ¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ¸½Â¼A ϵͳԴ³ÌÐò NOP(); SCK=0; NOP(); NOP(); NOP(); SCK=1; NOP(); DQ=1; NOP(); SCK=0; } /*========================================= ×Ö½Ú´«Ëͺ¯Êý =========================================*/ uchar write_byte(uchar value) { uchar i,error=0; for(i=0x80;i>0;i/=2) //¸ßλÏÈ´«ËÍ { if(i & value)DQ=1; //Ñ»·ÏàÓ룬½á¹û¼´ÎªÒª·¢Ë͵Äλ else DQ=0; SCK=1; NOP(); NOP(); NOP(); SCK=0; } DQ=1; //ÊÍ·Å×ÜÏß SCK=1; if(DQ==1) error=1; //¼ì²éÓ¦´ð£¬È·ÈÏͨѶÕý³£ SCK=0; return error; //error£½1£¬Í¨Ñ¶ÓÐÎó } /*========================================= 43 ºÓÄϳǽ¨Ñ§Ôº±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£© ¸½Â¼A ϵͳԴ³ÌÐò ¶ÁÊý¾Ýº¯Êý =========================================*/ uchar read_byte(uchar dat) { uchar i,val=0; DQ=1; for(i=0x80;i>0;i/=2) { SCK=1; if(DQ) val=(val | i); SCK=0; } DQ=dat; SCK=1; NOP(); NOP(); NOP(); SCK=0; DQ=1; return val; } /*========================================= ¸´Î»º¯Êý =========================================*/ void reset_SHT() { uchar i; DQ=1; SCK=0; for(i=0;i<9;i++) //DATA±£³Ö¸ßµçƽ£¬SCKʱÖÓ³ö·¢9´Î¸´Î» { SCK=1; NOP(); SCK=0; } init_SHT(); 44