±êÌâ: ³µÄÚ¶ùͯ¼ì²âϵͳµ¥Æ¬»úÔ´³ÌÐò-´øÉ¢ÈÈ [´òÓ¡±¾Ò³]

×÷Õß: 2450059503    ʱ¼ä: 2017-10-12 23:44
±êÌâ: ³µÄÚ¶ùͯ¼ì²âϵͳµ¥Æ¬»úÔ´³ÌÐò-´øÉ¢ÈÈ
±¾ÊµÓÃÐÂÐ͹«¿ªÒ»ÖÖ³µÄÚ¶ùͯ¼ì²â±¨¾¯×°Ö㬰üÀ¨£ººìÍâÏß·¢ÉäÆ÷ºÍ½ÓÊÕÆ÷¡¢ÉãÏñÍ·¡¢¿ØÖÆ×°Öü°½ÓÊÕÆ÷¡£ËùÊö·¢ÉäÆ÷ºÍ½ÓÊÕÆ÷·Ö±ðÉèÖÃÔÚ³µ×ùÁ½²à£¬ËùÊöÿ¶Ô·¢ÉäÆ÷ºÍ½ÓÊÕÆ÷λÖÃÒ»Ò»¶ÔÓ¦¡£ËùÊöÉãÏñÍ·ÉèÖÃÔÚ³µÄÚ³µ¶¥ÉÏ¡£ËùÊö¿ØÖÆ×°ÖÃÉèÖÃÔÚ³µÄÚ£¬Æä·Ö±ðÓëºìÍâÏß·¢ÉäÆ÷ºÍ½ÓÊÕÆ÷¡¢ÉãÏñÍ·¼°Æû³µÖпØÁ¬½Ó¡£ËùÊö¿ØÖÆ×°ÖÿØÖÆÉãÏñÍ·¡£ËùÊö¿ØÖÆ×°ÖÃͨ¹ýÎÞÏßÍøÂç´«ÊäÊý¾Ý£¬²¢Óë½ÓÊÕÆ÷Á¬½Ó¡£±¾ÊµÓÃÐÂÐÍÓÐÒæÐ§¹ûÔÚÓÚ£º²ÉÓúìÍâ´«¸ÐÆ÷¼ì²â¶ùͯÊÇ·ñÔÚ³µÄÚ£¬Í¬Ê±Í¨¹ýÉãÏñÍ·È·ÈÏÊÇ·ñÎ󱨾¯£¬±ÜÃâ¶ùͯ±»À§³µÄÚ£¬ÒýÖ¶ùͯÖÏÏ¢¡£

1.  Ö÷³ÌÐò
#include"reg52.h"
#include "uart.c"
#include "tc35.c"
#include "18b20.h"
#include "stdio.h"
//sfr PCON=0x87;




#define bug  while(1){bee=1;delayms_100ms();delayms_100ms();bee=0;delayms_100ms();delayms_100ms();}


sbit Sw=P1^2;
sbit hongwai=P1^3;
sbit zhengdong=P1^5;
sbit bee=P1^0;
sbit feng=P1^6;
//#define bug while(1){led=1;delayms_100ms();led=0;delayms_100ms();}
//#define RsBuf_N                        50


//char RsBuf[RsBuf_N];        //¶¨Òå´®¿Ú½ÓÊÕÊý¾Ý»º³åÇø
//uchar RsPoint=0;
uchar code PhoneNO[]= "+8613796629206";
uchar  Text[40]={0};
//uchar code center[]="+8613800566500";
uchar flag,num,a;
bit Q,PD=0;
int n;
float T;


void MinDelay(uint X)
{
    uchar i,l;
    uint j;
    for(i=X;i>0;i--)
        for(j=1000;j>0;j--)
            for(l=110;l>0;l--);
}






//void T0_Init()
//{
//    TMOD|=0x01;
//    TH0=(65536-50000)/256;
//    TL0=(65536-50000)%256;
//    EA=1;
//    TR0=1;
//    ET0=1;
//}


void main()
{
//   T0_Init();
    Uart_init();
//   init_1602();
    bee=0;
    feng=0;
    flag=1;
                       n= ReadTemperature();
                       n= ReadTemperature();
                       n= ReadTemperature();
    while(1)
    {


//      n= ReadTemperature();
//        T=(float)n*0.0625;
//             sprintf(Text,"Temp : %2.2f ",(float)T);
//            SendString(Text);


        
      while(!Sw)
      {
        Q=0;
          flag=1;
          bee=0;
          feng=0;
      }
        while(Sw&&flag)
        {
          num++;
          delayms_10s() ;
            if(num>10)
            {
               // bee=0;
                Q=1;
                flag=0;      
                break;
            }               
        }


                num=0;

        if(Q)
        {
            if(hongwai==1)
            {
                bee=1;
                feng=1;
                      n= ReadTemperature();
                        T=n*0.0625;
                    sprintf(Text,"Your Chind in Car and Temp is %2d C ",(int)T);
        //        TR0=0;
                        Send_AT();        
                    Set_MODE(1);           //ÉèÖöÌÏûϢģʽ                                                                                                                                       
                    TransmitText(PhoneNO,Text);
                 //   delayms_10s();
                bee=0;
                delayms_10s();delayms_10s();delayms_10s();delayms_10s();
                  bee=0;
                feng=0;
              //     bug
               // TR0=1;
            }
         
            if(zhengdong==0)
            {
                delayms_100ms();delayms_100ms();
                if(zhengdong==0)
                {
                   bee=1;
                     delayms_1000ms();
           //   TR0=0;
                        Send_AT();        
                    Set_MODE(1);           //ÉèÖöÌÏûϢģʽ                                                                                                                                       
                    TransmitText(PhoneNO,"There are situations!");
                    bee=0;
           //         TR0=1;
                }
            }
        }
        

   
    }
}





// void t0_ser() interrupt 1
// {
//     TH0=(65536-50000)/256;
//    TL0=(65536-50000)%256;
//     
//            
//     a++;
//     if(a>20)
//     {
//         EA=0;
//        a=0;
//               n= ReadTemperature();
//        T=(float)n*0.0625;
//        // T=30.0;
//             sprintf(Text,"Temp : %3.1f ",(float)T);
//            SendString(Text);
//         
//              EA=1;
//     }




//
// }






2.  18B20 ζȴ«¸ÐÆ÷
/*-----------------------------------------------
  Ãû³Æ£º18B20ζȴ«¸ÐÆ÷
  ÈÕÆÚ£º2009.5
  Ð޸ģºÎÞ
  ÄÚÈÝ£º18B20µ¥Ïßζȼì²âµÄÓ¦ÓÃÑùÀý³ÌÐò
------------------------------------------------*/


#include"18b20.h"






/*------------------------------------------------
uS????,?????? unsigned char t,????
unsigned char ??????????,??????
0~255 ??????12M,?????????,????
???? T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
while(--t);
}
/*------------------------------------------------
mS????,?????? unsigned char t,????
unsigned char ??????????,??????
0~255 ??????12M,?????????
------------------------------------------------*/
void DelayMs(unsigned char t)
{
     
while(t--)
{
     //????1mS
     DelayUs2x(245);
         DelayUs2x(245);
}
}


/*------------------------------------------------
                    18b20³õʼ»¯
------------------------------------------------*/
bit Init_DS18B20(void)
{
bit dat=0;
DQ = 1;    //DQ¸´Î»
DelayUs2x(5);   //ÉÔ×öÑÓʱ
DQ = 0;         //µ¥Æ¬»ú½«DQÀ­µÍ
DelayUs2x(200); //¾«È·ÑÓʱ ´óÓÚ 480us СÓÚ960us
DelayUs2x(200);
DQ = 1;        //À­¸ß×ÜÏß
DelayUs2x(50); //15~60us ºó ½ÓÊÕ60-240usµÄ´æÔÚÂö³å
dat=DQ;        //Èç¹ûx=0Ôò³õʼ»¯³É¹¦, x=1Ôò³õʼ»¯Ê§°Ü
DelayUs2x(25); //ÉÔ×÷ÑÓʱ·µ»Ø
return dat;
}


/*------------------------------------------------
                    ¶Áȡһ¸ö×Ö½Ú
------------------------------------------------*/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
  DQ = 0; // ¸øÂö³åÐźÅ
  dat>>=1;
  DQ = 1; // ¸øÂö³åÐźÅ
  if(DQ)
   dat|=0x80;
  DelayUs2x(25);
}
return(dat);
}
/*------------------------------------------------
                    Ð´ÈëÒ»¸ö×Ö½Ú
------------------------------------------------*/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
  DQ = 0;
  DQ = dat&0x01;
  DelayUs2x(25);
  DQ = 1;
  dat>>=1;
}
DelayUs2x(25);
}


/*------------------------------------------------
                    ¶ÁȡζÈ
------------------------------------------------*/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned int b=0;
unsigned int t=0;
Init_DS18B20();
WriteOneChar(0xCC); // Ìø¹ý¶ÁÐòºÅÁкŵIJÙ×÷
WriteOneChar(0x44); // Æô¶¯Î¶Èת»»
DelayMs(10);
Init_DS18B20();
WriteOneChar(0xCC); //Ìø¹ý¶ÁÐòºÅÁкŵIJÙ×÷
WriteOneChar(0xBE); //¶ÁȡζȼĴæÆ÷µÈ£¨¹²¿É¶Á9¸ö¼Ä´æÆ÷£© ǰÁ½¸ö¾ÍÊÇζÈ
a=ReadOneChar();   //µÍλ
b=ReadOneChar();   //¸ßλ


b<<=8;
t=a+b;


return(t);
}



3.ÖжÏ
/******************************************************************
MADE BY lyq


my BLOG      http://hi.baidu.com/282280072


*******************************************************************/


#include "uart.c"


#include "delay.h"


#define uchar unsigned char
#define uint unsigned int
#define NULL 0


#define ATwaits                        10
#define DWWwaits                10
#define Readwaits                10
#define Sendwaits                10


#define RsBuf_N                        50


char RsBuf[RsBuf_N];        //¶¨Òå´®¿Ú½ÓÊÕÊý¾Ý»º³åÇø
uchar RsPoint;
//ÒÔ±êʾ±äÁ¿»òÕߺ¯ÊýµÄ¶¨ÒåÔÚ±ðµÄÎļþÖУ¬Ìáʾ±àÒëÆ÷Óöµ½´Ë±äÁ¿ºÍº¯ÊýʱÔÚÆäËûÄ£¿éÖÐѰÕÒÆä¶¨Òå¡£


void Send_AT(void);
char *mystrstr(char *s, char *t);
void Num2char(uchar i);


/***********************TC35Ä£¿é³õʼ»¯******************************
*¹¦    ÄÜ: TC35Ä£¿é³õʼ»¯,           P0.0Êä³öµÍµçƽÖÁÉÙ100ms
*ÐΠ   ²Î:
*·µ »Ø Öµ:
*±¸    ×¢:
*****************************************************************/
//void TC35_init()
//{
//        
//        P1|=0x01;
//        P1&=~0x01;
//        delayms_100ms();delayms_100ms();delayms_100ms();delayms_100ms();
//        delayms_100ms();delayms_100ms();
//        P0|=0x01;
//        delayms_10s();delayms_10s();delayms_10s();
//}


/***********************·¢ËÍÁª»úÖ¸Áî******************************
*¹¦    ÄÜ: ´®¿Ú·¢ËÍÊý×éÃüÁîµ½TC35£¬"AT",
*ÐΠ   ²Î:
*·µ »Ø Öµ:
*±¸    ×¢: ²âÊÔGSMÄ£¿éÊÇ·ñÁ¬½ÓÕýÈ·
*****************************************************************/
void Send_AT(void)
{
  uchar *p,i=ATwaits;  //ATwaits=10
  //lcd_disp_str(RsBuf,1);


        
        while(i--)        //²âÊÔ10´Î£¬ÔÚijһ´Î³É¹¦¾ÍÍ˳ö
        {
            //RsBuf[0]='\0';         //ÓÐÏÂÒ»¾ä¾Í²»ÐèÒªÕâ¾ä //Çå¿Õ½ÓÊÕ»º³åÇø
                RsPoint=0;
                // ±¾À´Ö»ÓÐ\r  ÎÒÌí¼ÓµÄ\n        ºóÀ´Ö¤Ã÷ ¿ÉÒÔ²»¼ÓµÄ
                SendString("AT\r");
                //****************************µÈ´ýÓ¦´ð"OK"
            ES=1;    //±ØÐëÖжϠ // ´®¿ÚÖжÏÓ¦Ðí
            delayms_100ms();//µÈ´ý½ÓÊÜÊý¾ÝÍê³É//delayms_1000ms();delayms_1000ms();
               
            p=mystrstr(RsBuf,"OK");   //½ÓÊÕµ½µÄÊý¾Ý´æÔÚRsBuf
            if(p!=NULL)         //½ÓÊÕµ½"OK"
               
                {


                        delayms_1000ms();delayms_1000ms();//delayms_1000ms();delayms_1000ms();


                        break;
                }
        delayms_1000ms();
        
        }


}
/***********************ÉèÖöÌÏûϢģʽ******************************
*¹¦    ÄÜ: ´®¿Ú·¢ËÍÊý×éÃüÁîµ½TC35£¬AT+CMGF=1
*ÐΠ   ²Î:           uchar m =1 textģʽ      m=0 PDUģʽ
*·µ »Ø Öµ:
*±¸    ×¢: 1 TEXT
*****************************************************************/
void Set_MODE(uchar m)
{
  uchar *p,i=ATwaits;  //ATwaits=10
  //lcd_disp_str(RsBuf,1);


        
        while(i--)        //²âÊÔ10´Î£¬ÔÚijһ´Î³É¹¦¾ÍÍ˳ö
        {
            
                RsPoint=0;
                if(m)
                        SendString("AT+CMGF=1\r");                 //ÉèÖöÌÏûϢģʽ  1 TEXT
                else
                        SendString("AT+CMGF=0\r");                 //ÉèÖöÌÏûϢģʽ  PDUģʽ
//        SendASC('\r');                        //·¢ËͻسµÖ¸Áî//
                //****************************µÈ´ýÓ¦´ð"OK"
            ES=1;    //±ØÐëÖжϠ // ´®¿ÚÖжÏÓ¦Ðí
            delayms_100ms();//µÈ´ý½ÓÊÜÊý¾ÝÍê³É//delayms_1000ms();delayms_1000ms();
                delayms_100ms();delayms_100ms();
            p=mystrstr(RsBuf,"OK");   //½ÓÊÕµ½µÄÊý¾Ý´æÔÚRsBuf
            if(p!=NULL)         //½ÓÊÕµ½"OK"
               
                {


                        delayms_1000ms();delayms_1000ms();//delayms_1000ms();delayms_1000ms();


                        break;
                }
delayms_1000ms();


        }


}
/***********************ÉèÖöÌÏûÏ¢ÖÐÐÄ******************************
*¹¦    ÄÜ: ´®¿Ú·¢ËÍÊý×éÃüÁîµ½TC35£¬ AT+CSCA=¡°+8613800531500¡±»Ø³µ
*ÐΠ   ²Î:                 uchar *canter ¶ÌÏûÏ¢ÖÐÐÄ           ¡°+8613800531500¡±
*·µ »Ø Öµ:
*±¸    ×¢:
*****************************************************************/
//void Set_CENTER(uchar *center)
//{
//  uchar *p,i=ATwaits;  //ATwaits=10
//  //lcd_disp_str(RsBuf,1);


//        
//        while(i--)        //²âÊÔ10´Î£¬ÔÚijһ´Î³É¹¦¾ÍÍ˳ö
//        {
//            
//                RsPoint=0;
//               
//                SendString("AT+CSCA=");           //ÉèÖöÌÏûÏ¢ÖÐÐÄ
//                SendASC('"');
//                SendString(center);   //¶ÌÏûÏ¢ÖÐÐĺÅÂë
//                SendASC('"');
//                SendASC('\r');                        //·¢ËͻسµÖ¸Áî//
//                //****************************µÈ´ýÓ¦´ð"OK"
//            ES=1;    //±ØÐëÖжϠ // ´®¿ÚÖжÏÓ¦Ðí
//            delayms_100ms();//µÈ´ý½ÓÊÜÊý¾ÝÍê³É//delayms_1000ms();delayms_1000ms();
//               
//            p=mystrstr(RsBuf,"OK");   //½ÓÊÕµ½µÄÊý¾Ý´æÔÚRsBuf
//            if(p!=NULL)         //½ÓÊÕµ½"OK"
//               
//                {
//                        lcd_disp_str("Set_CENTER is OK",1);
//                        lcd_disp_str("CENTER contimue!  ",2);
//                        delayms_1000ms();delayms_1000ms();//delayms_1000ms();delayms_1000ms();
//                        lcd_disp_str("                ",1);
//                        lcd_disp_str("                ",2);
//                        break;
//                }
//                lcd_disp_str("Set_CENTER failed",1);delayms_1000ms();
//                lcd_disp_str("                ",1);
//        }


//}
/***********************·¢ËÍTEXT¶ÌÐÅÏ¢********************************
*¹¦    ÄÜ: TEXTģʽ·¢ËͶÌÐÅÏ¢
*ÐΠ   ²Î: char *dialnum Ä¿µÄºÅÂë+8613333333333    char *text·¢ËÍÄÚÈÝ
*·µ »Ø Öµ: 1 ·¢Ëͳɹ¦  0 ·¢ËÍʧ°Ü
*±¸    ×¢:·¢ËÍTEXT¶ÌÐÅÏ¢  Ö®Ç°Ó¦¸ÃÏÈ  1£¬ÉèÖöÌÏûϢģʽ   AT+CMGF=? (0)=PDU (1)=TEXT
                                  2£¬ÉèÖöÌÏûÏ¢ÖÐÐÄ     AT+CSCA=¡°+8613800531500¡±»Ø³µ                 


*****************************************************************/
char TransmitText(char *dialnum,char *text)   //·¢ËͺÅÂë        ·¢ËÍÄÚÈÝ£¬×Öĸ»òÊý×Ö
{
        uchar i=Sendwaits,j=Sendwaits;
        uchar *p;


        




        SendString("AT+CMGS=");        //ÐÅÏ¢·¢ËÍÖ¸Áî AT+CMGS=//
        
///////////////////////////////
        SendASC('"');
        SendString(dialnum);   //ÊÖ»úºÅÂëµÄÒýºÅ¶ªÁË£¡£¡£¡£¡£¡£¡£¡£¡£¡ ÒѾ­¼ÓÉÏ
        SendASC('"');
////////////////////////////////////
        SendASC('\r');                        //·¢ËͻسµÖ¸Áî//
        RsPoint=0;          //Çå¿Õ½ÓÊÕ»º³åÇø
        //delayms_1000ms();
        while(i--)
        {
               
                delayms_100ms();
                p=mystrstr(RsBuf,">");//">"
                if(p!=NULL)        //Èç¹û½ÓÊܵ½ >  ·¢ËÍtext
                {        
                    ///////Get">"////////////////////////////
                        
                        SendString(text);
                        RsPoint=0;          //Çå¿Õ½ÓÊÕ»º³åÇø
                        SendString("\x1a\r");//'\x1a'½áÊø·û(Ï൱CTRL+Z) '\r'»Ø³µ·û
                        //delayms_100ms();
//                        while(j--)
//                        {
//                                delayms_100ms();
//                                p=mystrstr(RsBuf,"OK");
//                                if(p!= NULL )
//                                {
//                                        //·¢Ëͳɹ¦
//                                
//                                       
//                                        return 1;
//                                }
//                        
//                                delayms_1000ms();
//                                
//                                }               
                }
                //else lcd_disp_str("Transmit failure",1);
        }
        return 0;
}
/***********************×Ö·û´®²éÕÒ********************************
*¹¦    ÄÜ: ²éÕÒ×Ö·û´®
*ÐΠ   ²Î: char *s,  char *t  ;ÔÚsÖвéÕÒt
*·µ »Ø Öµ: s_temp(tÔÚsÖеÄλÖÃ)³É¹¦     0 £¨Ê§°Ü £©
*±¸    ×¢:
*****************************************************************/
char *mystrstr(char *s, char *t)
{
  char    *s_temp;        /*the s_temp point to the s*/
  char    *m_temp;        /*the mv_tmp used to move in the loop*/
  char    *t_temp;        /*point to the pattern string*/


        if ((s == NULL )|| (t == NULL)) return NULL;


        /*s_temp point to the s string*/
        for (s_temp = s; *s_temp != '\0'; s_temp++)
        {
                   /*the move_tmp used for pattern loop*/
                m_temp = s_temp;
            /*the pattern string loop from head every time*/
                for (t_temp = t; *t_temp == *m_temp; t_temp++, m_temp++);
        /*if at the tail of the pattern string return s_tmp*/
                if (*t_temp == '\0') return s_temp;
     
        }
        return NULL;
}






//  Í¨Ñ¶ÖжϽÓÊÕ³ÌÐò   ÖжϺ¯ÊýÎÞ·µ»ØÖµ
  void uart_rx(void)  interrupt 4        using 3          //·ÅÔÚÕâÀï ºÍ·ÅÔÚmain£¨£©ÀïÃæÊÇÒ»ÑùµÄ
{
         EA=0;
           if((RsPoint<RsBuf_N)&&RI) //±ØÐëÅжÏRIÊÇ·ñΪ1
        //if(RI)
    {
            RI=0;
            RsBuf[RsPoint++]=SBUF;
                //RsBuf[RsPoint]=0x00;   //½«ÏÂÒ»¸öÊý¾ÝÇåÁã
                //SendASC(RsBuf[RsPoint-1]);
                //lcd_disp_str(RsBuf ,2);
    }
        EA=1;
}


³µÄÚ¶ùͯ¼ì²â¿ÉÓóÌÐò - ´øÉ¢ÈÈ.zip

77.84 KB, ÏÂÔØ´ÎÊý: 19, ÏÂÔØ»ý·Ö: ºÚ±Ò -5

²ß»®ÄÚ¶ùͯ¼ì²â


×÷Õß: asusyt    ʱ¼ä: 2017-10-13 08:17
ÏÂÔØÑ§Ï°Ï£¬Ð»Ð»
×÷Õß: ÀîÒ×·å    ʱ¼ä: 2017-11-12 22:03
Â¥Ö÷ÓõÄÊÇʲôµ¥Æ¬»úÐ¾Æ¬ÄØ£¿
×÷Õß: tfysd123    ʱ¼ä: 2017-11-19 20:25
ÏÂÔØÑ§Ï°Ï£¬Ð»Ð»




»¶Ó­¹âÁÙ (http://www.51hei.com/bbs/) Powered by Discuz! X3.1