Thông báo

Collapse
No announcement yet.

Xin mọi người chỉ giúp về mạch đo độ ẩm dùng HS1101

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Xin mọi người chỉ giúp về mạch đo độ ẩm dùng HS1101

    Em đang làm đồ án đo độ ẩm dùng HS1101 hiển thị độ ẩm lên LCD
    Khi em chạy mô phỏng thì kết quả luôn hiện là 0%
    anh nào có thể kiểm tra giúp em được không ạ?
    Thanks !!!!
    mạch mô phỏng :
    Click image for larger version

Name:	do am.jpg
Views:	1
Size:	117.9 KB
ID:	1420159
    (em không đính kèm được file nên mạo muội copy code vào đây ạ)

    //#include <AT89X52.h>
    #include <regx52.h>
    #include<stdio.h>
    #include<string.h>
    #include<math.h>

    // noi cac chan cho LCD
    sbit RS=P3^0;
    sbit RW=P3^1;
    sbit E=P3^7;
    sbit Bf=P2^7;

    sbit Fout = P3^2; // noi chan ra tu 555 voi ngat 0 cua 89x52

    char x; // dung trong hien thi LCD


    //khoi chuong trinh do do am
    // su dung NE555

    unsigned char dem=0;
    int do_am;
    unsigned int so_xung=0;

    void ngat_ngoai0 () interrupt 0
    {
    so_xung++;
    TF0 = 0;
    TR0 = 1;
    }


    void ngat_timer0 () interrupt 1 //sau 50 ms ham ngat bat dau lam viec
    {


    dem++;
    TH0 =-250;
    TL0=-250; // nap gia tri ban dau cho timer
    TR0 = 1;
    if(dem>4000) // 4000 lan nhan voi 250 = 1s .Vay thoi gian lay mau la 1 s
    {

    if (so_xung>7351) do_am=0;
    else if(so_xung>7224) do_am=0+ (so_xung-7224)*10/(7351-7224);
    else if(so_xung>7100) do_am=10+(so_xung-7100)*10/(7224-7100);
    else if(so_xung>6976) do_am=20+(so_xung-6976)*10/(7100-6976);
    else if(so_xung>6853) do_am=30+(so_xung-6853)*10/(6976-6853);
    else if(so_xung>6728) do_am=40+(so_xung-6728)*10/(6853-6728);
    else if(so_xung>6600) do_am=50+(so_xung-6600)*10/(6728-6600);
    else if(so_xung>6468) do_am=60+(so_xung-6468)*10/(6600-6468);
    else if(so_xung>6330) do_am=70+(so_xung-6330)*10/(6468-6330);
    else if(so_xung>6186) do_am=80+(so_xung-6186)*10/(6330-6186);
    else if(so_xung>6033) do_am=90+(so_xung-6033)*10/(6186-6033);

    dem=0;
    so_xung=0;
    }

    }

    ///////////////////////////////////////////
    // chuong trinh hien thi len LCD
    void delay(unsigned int time)
    {
    unsigned int i;
    for(i=0; i<time; i++);
    }

    // Ham kiem tra ban
    void buflag(void)
    {
    P2=0xff;
    RS=0; //cho phep ghi lenh
    RW=1; // Doc tu LCD
    P2=x;
    delay(100);
    while(Bf)
    {
    E=1;
    delay(200);
    E=0;
    }
    }

    // HAm gui lenh
    void lenh(unsigned char lcd_lenh)
    {
    buflag();
    RS=0;
    RW=0; //ghi tu 8051 len lcd
    E=1;
    delay(200);
    P2=lcd_lenh;
    E=0;
    delay(200);
    }

    //Ham gui 1 ky tu
    void kytu(unsigned char ky_tu)
    {
    buflag();
    P2=ky_tu;
    RS=1; // chon thanh ghi du lieu
    RW=0; // ghi vao lcd
    E=1;
    delay(10);
    E=0;
    delay(10);
    }
    // ham gui 1 chuoi ky tu
    void chuoi(unsigned char *s )
    {
    while(*s)
    {
    kytu(*s);
    s++;
    }
    }

    // Ham khoi tao
    void khoitao(void)
    {
    lenh(0x38);
    lenh(0x0c);
    lenh(0x01);
    lenh(0x80);
    }

    // Ham chinh
    void main(void)
    {
    int hum;
    char str[20];
    TMOD = 0x11;
    IE = 0x83;
    TH0 = -250;
    TL0 = -250;

    TR0 = 1;
    TF0 = 0;
    IT0 = 1;
    EA = 1;
    EX0 = 1;
    ET0 =1;
    //IP = 0x05;



    khoitao();
    lenh(0x80);
    while(1)
    {
    hum = do_am;
    lenh(0xc0);
    sprintf(str, "Do Am: %d %%", hum);
    chuoi(str);
    delay(300);
    }
    }
    See you on the dark side of the moon

  • #2
    Hì coi lại chổ 555 nhé , sai rồi.

    Comment


    • #3
      Nguyên văn bởi thientanvt Xem bài viết
      Hì coi lại chổ 555 nhé , sai rồi.
      a có thể chỉ rõ hơn cho e được không ?
      See you on the dark side of the moon

      Comment


      • #4
        Đây nè còn muốn biết R1, R2, R4 giá trị nhiêu thì down datasheet HS1101 về là có nhé.

        Click image for larger version

Name:	555 + HS1101.png
Views:	1
Size:	29.9 KB
ID:	1390668

        Comment


        • #5
          Nguyên văn bởi thientanvt Xem bài viết
          Đây nè còn muốn biết R1, R2, R4 giá trị nhiêu thì down datasheet HS1101 về là có nhé.

          [ATTACH=CONFIG]80413[/ATTACH]
          cái này em đúng rồi mà anh
          còn các giá trị thì em cho vào theo như datasheet hướng dẫn rồi
          a có thể xem giúp em về đoạn code trong timer để xác định tần số được không
          vì em không rành về cái này lắm nên sợ sai chổ đó
          See you on the dark side of the moon

          Comment


          • #6
            Bác nào vào giúp em với
            See you on the dark side of the moon

            Comment


            • #7
              Uhm, Bác nói mới biết nhìn nhầm. Khi đếm F không nên dùng INT ngoài vì nếu làm như thế chương trình cứ ngồi mà nhảy vô ngắt hoài không có thời gian làm việc khác.
              Nên dùng Counter 0,1 . Và đếm time bằng timer 0,1 . Rồi là ra giá trị của F thôi không có gì phải lo ngại, trong 1s đó đủ để làm mọi thứ.
              Sai chổ 1s . 50ms * 4000 => 200s ah tràn biến F mất rồi nhé.

              Comment


              • #8
                Nguyên văn bởi thientanvt Xem bài viết
                Uhm, Bác nói mới biết nhìn nhầm. Khi đếm F không nên dùng INT ngoài vì nếu làm như thế chương trình cứ ngồi mà nhảy vô ngắt hoài không có thời gian làm việc khác.
                Nên dùng Counter 0,1 . Và đếm time bằng timer 0,1 . Rồi là ra giá trị của F thôi không có gì phải lo ngại, trong 1s đó đủ để làm mọi thứ.
                Sai chổ 1s . 50ms * 4000 => 200s ah tràn biến F mất rồi nhé.
                a có thể chỉ rõ chổ sai không?
                [e tự học nên cái timer với ngắt còn hiểu lơ mơ lắm]
                See you on the dark side of the moon

                Comment


                • #9
                  Mấy cái này là cơ bản sài VĐK là sài timer, counter, INT .... chứ nếu không sài thì dùng VĐK làm gì.

                  Như vậy nhé , tôi không hiểu cách tính RH của bác, nên tôi sẽ hướng dẫn chổ đo F thôi.

                  Code:
                  // khởi tạo ngắt timer 0 đếm thời gian 1s
                  TMOD |= 0x1; // chọn mode 0 , 16b timer0
                  // nạp giá trị khởi tạo cho timer 0
                  // với thạch anh là 12Mhz nhé
                  TH0 = 0x3C; // delay 50ms
                  TL0 = 0xB0;
                  TF0 = 0; // xóa cờ ngắt 
                  ET0 = 1; // cho phép ngắt sự kiện timer 0 
                  TR0 = 1; // chạy timer 0
                  // khởi tạo timer 1 làm counter 
                  TMOD |= 0x40; // chon chế độ counter 1
                  TH1 = 0x0; // xóa giá trị counter 1
                  TL1 = 0x0;
                  TF1 = 0;
                  ET1 = 0;  // cấm ngắt counter 1
                  TR1 = 1; // chạy counter 1
                  
                  EA = 1;  // cho phép ngắt toàn cục
                  
                  void ngắt timer 0 () interrupt .... {
                  TF0 = 0;
                  TH0 = 0x3C; // delay 50ms
                  TL0 = 0xB0;
                  dem ++;
                  if(dem == 20){
                      // lấy giá trị counter 1
                      // tới đây là tự làm được rồi nhé
                      // xong xóa counter 1
                      TH1 = TL1 = 0x0;
                      dem = 0;
                  }
                  }
                  Last edited by thientanvt; 22-12-2013, 17:34.

                  Comment


                  • #10
                    ok
                    thanks bác nhiều
                    See you on the dark side of the moon

                    Comment


                    • #11
                      bạn còn cái mô phỏng với code nạp vđk ko cho mình xin với.m cũng đang làm cái đề tài này.có gì bạn gửi vô email: dtdh1711@gmail.com .m cám ơn nhiều!

                      Comment


                      • #12
                        hú hú bác Thaipv gửi e bài đó được không cả file proteus ý
                        mail e: trhunghd@gmail.com

                        Comment

                        Về tác giả

                        Collapse

                        thaipv Tìm hiểu thêm về thaipv

                        Bài viết mới nhất

                        Collapse

                        • mèomướp
                          Trả lời cho Sửa bộ nguồn DC 60V 45A
                          bởi mèomướp
                          Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                          hôm nay, 13:11
                        • tuyennhan
                          Trả lời cho Sửa bộ nguồn DC 60V 45A
                          bởi tuyennhan
                          Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                          hôm nay, 09:25
                        • tuyennhan
                          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                          bởi tuyennhan
                          Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                          Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                          hôm nay, 09:10
                        • Ng.Phuong.5
                          Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                          bởi Ng.Phuong.5
                          Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                          Mấy con...
                          Hôm qua, 19:44
                        • viettinh
                          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                          bởi viettinh
                          Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                          Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                          Hôm qua, 18:12
                        • nguyendinhvan
                          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                          bởi nguyendinhvan
                          Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                          Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                          Cách đơn giản...
                          Hôm qua, 00:04
                        • mèomướp
                          Trả lời cho Sửa bộ nguồn DC 60V 45A
                          bởi mèomướp
                          Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                          08-01-2025, 19:02
                        • tuyennhan
                          Trả lời cho Sửa bộ nguồn DC 60V 45A
                          bởi tuyennhan
                          Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                          08-01-2025, 15:43
                        • tuyennhan
                          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                          bởi tuyennhan
                          Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                          08-01-2025, 15:28
                        • mèomướp
                          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                          bởi mèomướp
                          Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                          08-01-2025, 11:44
                        Đang tải...
                        X