1. Xin chào Khách ! Ban quản trị sẽ tiến hành nâng cấp diễn đàn từ ngày 11/8/2017 Mọi truy cập có thể bị dán đoạn, mong bạn thông cảm!
    Dismiss Notice

Mạch đo nhiệt độ giao tiếp máy tính qua RS232 dùng PIC16F877A+DS18B20

Thảo luận trong 'Họ PIC -> dsPIC'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

Moderators: THUONGDTQB
  1. tdm

    tdm Kỹ sư

    Tham gia ngày:
    1/9/12
    Bài viết:
    456
    Đã được thích:
    426
    Điểm thành tích:
    63
    Giới tính:
    Nam
    ban
    bạn tham khảo thêm bài viết ở đây:
    http://www.picvietnam.com/forum/showthread.php?t=5847
     
    kidteam thích bài này.
  2. vulinhdt1

    vulinhdt1 Học sinh trung cấp

    Tham gia ngày:
    17/12/12
    Bài viết:
    81
    Đã được thích:
    20
    Điểm thành tích:
    8
    Giới tính:
    Nam
    e có tham khảo bài của a rồi,nhưng mà bài của e không cần thiết phải hiển thị qua lcd mà yêu cầu là hiển thị lên máy tính qua cổng com.bài làm của e e có up ở trên a có thể xem giúp e với đc không ạ
     
  3. tdm

    tdm Kỹ sư

    Tham gia ngày:
    1/9/12
    Bài viết:
    456
    Đã được thích:
    426
    Điểm thành tích:
    63
    Giới tính:
    Nam
    phần VB tham khảo ở đây:http://codientu.org/threads/lập-trình-giao-tiếp-vb6-với-vĐk-qua-rs232.1492/
    code pic:
    Mã:
    //----------------------------------------------------------------
    //do gia tri ds18b20 hien thi pc
     
    //----------------------------------------------------------------
     
    #include <16F877A.h>
    #device *=16 //su dung het ram trong pic                                        //Device
    #include <string.h>
    #include <stdlib.h>
    #fuses nowdt,nolvp,noprotect,xt,put
    #use delay(clock=4000000)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
    #include <1wire.h>
    #include <crc.c>                                                            //(only for printf function)
    int i,read_ok,tam,hien_thi,crc;
    byte buffer[8];
    int16 t,t1;
    int8 nhiet_do;
    main()                                                         
    {
    delay_ms(500);
    while(1)
    {
    if(init_1wire())
      {
      write_1wire(0xcc);                                      //skip ROM
      write_1wire(0x44);
      delay_ms(750);//doi chuyen doi
      }
    if(init_1wire())
      {
      write_1wire(0xcc);                                      //skip ROM
      write_1wire(0xbe);                                      //read scratchpad
      dowcrc = 0;
      for(i=0;i<8;i++)
        {
        buffer[i]=read_1wire();
        }
        read_ok=1;
     
      }
    if(read_ok)
    {
    t=make16(buffer[1],buffer[0]);                        //calculate temperature
    t=t/16;//lấy phần nguyên
    putc(t);gửi dữ liệu lên pc
    }       
     
    }
    }
    1wire.h
    Mã:
    //----------------------------------------------------------------
    //
    //                                    1wire.h
    //
    // 
    //
    //
    //
    //
    //----------------------------------------------------------------
     
     
    //-------------------------data pin definition--------------------
    #define DQ pin_C3
    //----------------------------------------------------------------
    int8 dowcrc;            // crc is accumulated in this variable
     
    // crc lookup table
    int8 const dscrc_table[] = {
      0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,
      157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,
      35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,
      190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,
      70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,
      219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,
      101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,
      248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,
      140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,
      17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,
      175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,
      50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,
      202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,
      87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,
      233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,
      116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53
    };
     
    //-------------------------1wire reset----------------------------
    //******************************************************************************
    // One wire crc
    int8 kiem_tra_crc(int8 x)
    {
      dowcrc = dscrc_table[dowcrc^x];
      return dowcrc;
    }
    //******************************************************************************
    init_1wire()
    {
    int a;
     
    output_low(DQ);
    delay_us(480);
    output_float(DQ);
    delay_us(65);
    a=!input(DQ);
    delay_us(240);
    if(a)
      return(1);
    else
      return(0);
    }
     
    //-------------------------read byte------------------------------
     
    byte read_1wire()
    {
    byte a,data;
     
    for(a=0;a<8;a++)
    {
    output_low(DQ);
    delay_us(14);
    output_float(DQ);
    delay_us(5);
    shift_right(&data,1,input(DQ));
    delay_us(100);
    }
    return(data);
    } 
    //--------------------------write byte----------------------------
     
    byte write_1wire(byte data)
    {
    byte a;
     
    for(a=0;a<8;a++)
    {
    output_low(DQ);
    delay_us(10);
    if(shift_right(&data,1,0))
      output_high(DQ);
    else
      output_low(DQ);
    delay_us(50);
    output_high(DQ);
    delay_us(50);
    }
    return(1);
    }
    
     
    vulinhdt1, Adminkidteam thích bài này.
  4. vulinhdt1

    vulinhdt1 Học sinh trung cấp

    Tham gia ngày:
    17/12/12
    Bài viết:
    81
    Đã được thích:
    20
    Điểm thành tích:
    8
    Giới tính:
    Nam
    cảm ơn a tdm nhiều lắm. Mạch đã không báo lỗi.
    hì.
    E muốn hỏi thêm là với mạch này e sử dụng Hyper terminal để truyền nhiệt độ lên máy tính và gửi xuống vdk được không ạ?
     
  5. sgesvn

    sgesvn Moderator Staff Member

    Tham gia ngày:
    24/7/12
    Bài viết:
    2,235
    Đã được thích:
    3,073
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Hoàn toàn được nếu bạn muốn.
     
  6. vulinhdt1

    vulinhdt1 Học sinh trung cấp

    Tham gia ngày:
    17/12/12
    Bài viết:
    81
    Đã được thích:
    20
    Điểm thành tích:
    8
    Giới tính:
    Nam
    A ơi tại sao e sử dụng hyper,sau khi e thực hiện kết nối với proteus e đã nhập giá trị vào màn hình hyper nhưng mạch vẫn im lìm vậy.
    e thực hiện kết nối giữa cổng com4 của proteus và com5 của hyper.
     
  7. vulinhdt1

    vulinhdt1 Học sinh trung cấp

    Tham gia ngày:
    17/12/12
    Bài viết:
    81
    Đã được thích:
    20
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Vẫn cái vấn đề mạch đo nhiệt độ giao tiếp máy tính.
    Tới phần lập trình giao diện vb để giao tiếp thì e gặp khó khăn.
    E muốn xây dựng 1 giao diện đơn giản mong mọi ng giúp đỡ e.
    Hình và code Vb e có kèm ở phía dưới ạ.
     

    Các file đính kèm:

    • vb.rar
      Kích thước:
      104.2 KB
      Đọc:
      103
  8. sgesvn

    sgesvn Moderator Staff Member

    Tham gia ngày:
    24/7/12
    Bài viết:
    2,235
    Đã được thích:
    3,073
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Của bạn đây, giao diện thôi nhé. Còn code trên diễn đàn đã có bài tương tự như bài của bạn rồi, không hiểu gì bạn hỏi để mọi người giúp thêm nhé.
    Untitled.
     

    Các file đính kèm:

    kidteamvulinhdt1 thích bài này.
  9. vulinhdt1

    vulinhdt1 Học sinh trung cấp

    Tham gia ngày:
    17/12/12
    Bài viết:
    81
    Đã được thích:
    20
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Cảm ơn a nhiều lắm ạ.
     
  10. mta_cdt

    mta_cdt Super Moderator Staff Member

    Tham gia ngày:
    10/8/12
    Bài viết:
    2,857
    Đã được thích:
    3,564
    Điểm thành tích:
    113
    Giới tính:
    Nam
    tặng bạn code truyền thông cả 12 con luôn. Mình viết trên vb 6
     

    Các file đính kèm:

    • vb.rar
      Kích thước:
      40.5 KB
      Đọc:
      167
    Admin thích bài này.
Moderators: THUONGDTQB

Chia sẻ trang này