µ±Ç°Î»ÖãºÊ×Ò³ > ±ÏÒµÉè¼Æ-µ¥Æ¬»úµÄÖ÷´Ó¿ØÖÆÏµÍ³
¸½Â¼2 ´Ó»ú1³ÌÐò
//***********´Ó»ú1´úÂë*******
#include
#include \
char TTemp;
unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int ss=2; int num=1; sbit c1=P3^6;
void delay_50ms() {
int s=5000; while(--s); }
//************
void Serial_Init(void) //´®¿Ú³õʼ»¯ { SCON = 0x50; // É趨´®Ðпڹ¤×÷·½Ê½ TMOD=0x20; TH1 = 0xfD; // 11.0952MHZ ²¨ÌØÂÊ9600 TL1 = 0xfD; TR1=1; ES=1; }
//************
void Interrupt_Init(void) //Öжϳõʼ»¯ { EA=1; EX0=1; }
//*************
void interrupt4(void) interrupt 4 using 2 //´®¿ÚÖжϴ¥·¢ { EA=0;
28
if(TI) TI=0; if(RI) { RI=0; if(SBUF==STD1) //Èç¹û½ÓÊÕµ½Ö÷»úµÄµØÖ·Âë { SBUF=Address_Respond1; //·¢Ë͵ØÖ·ÏìÓ¦Âë while(!TI); //±ØÐë TI=0; SCON=0xd0; //²¢ÇÒ°ÑSCONÖеÄSM2ÖÃ0£¬ÔÊÐíÏìÓ¦Êý¾ÝÖÐ¶Ï } if(SBUF==Clicent_Command1) //Èç¹û½ÓÊÕµ½Ö÷»úµÄÆô¶¯µÄÃüÁî { SBUF=Command_Respond1; //·¢ËÍÏìÓ¦Âë·µ»Ø¸øÖ÷»ú while(!TI); //±ØÐë TI=0; } if(SBUF==Clicent_Data_Command1) //Èç¹û½ÓÊܵ½Ö÷»úµÄ·¢ËÍת»¯½á¹ûµÄÃüÁî { SBUF=Data_Command_Respond1;//·¢ËÍÏìÓ¦Âë while(!TI); //±ØÐë TI=0; } if(SBUF==Clicent_Receive_Data1) { SBUF=Data_Receive_Respone1; while(!TI); //±ØÐë TI=0; while(!RI); //½ÓÊÕÊý¾Ý ²âÊÔ RI=0; TTemp=SBUF; P1=SEG7[TTemp];c1=0; SCON=0xf0; //²¢ÇÒ°ÑSCONÖеÄSM2ÖÃ1 } if(SBUF==Clicent_Send_Data1) //·¢ËÍÊý¾Ý {
29
SBUF=DS18B20_Data[0]; //·¢ËÍζÈÊý¾Ý while(!TI); TI=0; SBUF=DS18B20_Data[1]; while(!TI); TI=0; SCON=0xf0; } } EA=1; }
//***************
void DS18B20_Run(void) {
DS18B20_Read_Temperature(); }
//***************/ void main(void) { P1=0; Interrupt_Init(); Serial_Init(); while(1) { delay_50ms(); //ÑÓʱ50ms×óÓÒ¶ÁÒ»´Îζȣ¬¶ÁµÃÌ«¶àÌ«¿ì¿ÉÄÜ»á³öÏÖÂÒÊý DS18B20_Run(); delay_50ms(); //ÑÓʱ50ms×óÓÒ¶ÁÒ»´Îζȣ¬¶ÁµÃÌ«¶àÌ«¿ì¿ÉÄÜ»á³öÏÖÂÒÊý } }
¸½Â¼3 ´Ó»ú2³ÌÐò
//***********´Ó»ú2´úÂë******
#include
#include \
30
#include \
extern char DS18B20_Data[2];
unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char TTemp; int num=0; sbit c1=P3^6;
void delay_50ms() {
int s=5000; while(--s); }
//************
void Serial_Init(void) //´®¿Ú³õʼ»¯ { SCON = 0x50; // É趨´®Ðпڹ¤×÷·½Ê½ TMOD=0x20; TH1 = 0xfD; // 11.0952MHZ ²¨ÌØÂÊ9600 TL1 = 0xfD; TR1=1; ES=1; }
//************
void Interrupt_Init(void) //Öжϳõʼ»¯ { EA=1; EX0=1; }
//*************
void interrupt4(void) interrupt 4 using 2 //´®¿ÚÖжϴ¥·¢ { EA=0; if(TI) TI=0; if(RI) { RI=0; if(SBUF==STD2) //0x8f) //Èç¹û½ÓÊÕµ½Ö÷»úµÄµØÖ·Âë { SBUF=Address_Respond2; //·¢Ë͵ØÖ·ÏìÓ¦Âë
31
¹²·ÖÏí92ƪÏà¹ØÎĵµ