Welcome & Happy Holidays!
Kết quả 1 đến 1 của 1
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Đo nhiệt độ-độ ẩm hiển thị lcd >> ai giúp đỡ phần xuất tín hiệu báo động với !!

    các bác giúp đỡ em phần xuất tín hiệu cảnh báo với (


    Mã:
    #include "main.h"
    #include "lcd_new.h"
    
    
    #use  FAST_IO(B)
    #use  FAST_IO(C)
    #use  FAST_IO(D)
    #use  FAST_IO(E)
    
    #byte PORTA=0x05
    #byte PORTB=0x06
    #byte PORTC=0x07
    #byte PORTD=0x08
    #byte PORTE=0x09
    #bit led = portD.0
    #bit   DHT_DATA  = PORTA.1
    #define  SET_PIN      SET_TRIS_A
    #define DHT_ER      0
    #define DHT_OK      1
    #define DHT_ND    0
    #define DHT_DA      1
    
    float nhietdo = 0, doam=0;
    /***********************************************************************************************
    Chuc nang   :      Gui tin hieu do va doc gia tri tra ve cua DHT11
    Tham so     :      select: Chon lua lay gia tri do am hay nhiet do
    Tra ve      :      buffer: tra ve gia tri nhiet do, do am
                       DHT_ER: giao tiep voi DHT11 bi loi
                       DHT_OK: giao tiep tot voi DHT11
    ***********************************************************************************************/
    unsigned char DHT_GetTemHumi (unsigned char select)
    {
        unsigned char buffer[5]={0,0,0,0,0};
        unsigned char ii,i,checksum;
    
        SET_PIN(0x00);// set la cong ra
        DHT_DATA=1;
        delay_us(60);
        DHT_DATA = 0;
        delay_ms(25); // it nhat 18ms
        DHT_DATA = 1;
        SET_PIN(0xff);
        delay_us(40);
        if(DHT_DATA==1)return DHT_ER ;
        else while(DHT_DATA==0);    //Doi DaTa len 1
        delay_us(60);       //60
        if(DHT_DATA==0)return DHT_ER;
        else while((DHT_DATA==1));    //Doi Data ve 0
        //Bat dau doc du lieu
        for(i=0;i<5;i++)
        {
            for(ii=0;ii<8;ii++)
            {
            while(DHT_DATA==0);//Doi Data len 1 !DHT_DATA
            delay_us(50); //50
            if(DHT_DATA==1)
                {
                buffer|=(1<<(7-ii));
                while(DHT_DATA==1);//Doi Data xuong 0
                }
            }
        }
        //Tinh toan check sum
        checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3];
        //Kiem tra check sum
        if((checksum)!=buffer[4])return DHT_ER;
        //Lay du lieu
          if (select==DHT_ND)
          {  
           //Return the value has been choosen
                return(buffer[2]);
          }
          else if(select==DHT_DA)
          {
                return(buffer[0]);
          }
        return DHT_OK;
     
     
    }
    //------------------------------------------------------//
    void main()
    {
       set_tris_d(0xff);
       set_tris_a(0xff);
          lcd_init();
          delay_ms(200);
          lcd_gotoxy(7,1);
          lcd_putc('H');
          delay_ms(100);
          lcd_putc('I');
          delay_ms(200);
          lcd_putc('!');
          delay_ms(1000);
          printf(lcd_putc,"\f " );
          printf(lcd_putc,"Pham Van Linh");
          delay_ms(1000);
          lcd_gotoxy(1,2);
          printf(lcd_putc,"demo" );
          delay_ms(2000);  
          printf(lcd_putc,"\f " );
       while(TRUE)
       {
          set_tris_d(0xff);
          nhietdo= DHT_GetTemHumi (DHT_ND);
          delay_ms(400);
          lcd_gotoxy(1,1);
          printf(lcd_putc,"Nhiet do: " );
          lcd_gotoxy(10,1);
          printf(lcd_putc,"%3.1f ^C",nhietdo);
          delay_ms(800);
          if (nhietdo>=40)
            {
              led=0;
             }
         // doam= DHT_GetTemHumi  (DHT_DA);
        //  lcd_gotoxy(1,2);
        //  printf(lcd_putc,"Do am: " );
        //  lcd_gotoxy(10,2);
        //  printf(lcd_putc,"%3.1f ",doam);
       //   lcd_gotoxy(14,2);
       //   lcd_putc('%');
       //   delay_ms(1000);
       }
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 04:07 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2018 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.