Thông báo

Collapse
No announcement yet.

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

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

  • Mạch đo nhiệt độ dùng Pic16f877A+DS18B20 giao tiếp máy tính.

    Xin chào các bạn và anh chị.
    E đang làm đồ án về mạch đo nhiệt độ dùng Pic16f877A+DS18b20 giao tiếp máy tính qua RS232.
    về phần mạch nguyên lý em đã vẽ xong nhưng gặp khó khăn khi phải lập trình cho pic.
    dưới đây là code của em mong mọi người giúp đỡ cho em với.
    E xin cảm ơn!
    code:
    #include <16F887.h>// khai bao thu vien su dung Pic16F877A
    #device adc=10// khai bao dung che do ADC 16 bit
    #FUSES HS// su dung bo dao dong toc do cao
    #use delay (clock=8000000)//su dung bo giao dong thach anh 8Mhz
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)// giao tiep RS232
    #include <1wire.c> //giao tiep giua VĐK và vi mach DS18B20 theo chuan 1 day.
    #include <ds1820.c> // khai bao thu vien su dung vi mach nhiet do DS18B20
    float NHIETDO;//khai bao cac bien theo kieu so thuc
    float NHIETDONGUYEN, giantiep;
    #INT_RDA// che do ngat truyen thong RDA
    void Receive_isr()
    {
    getch();// bat tin hieu nget tu may tinh
    giantiep = 100*NHIETDO ;
    NHIETDONGUYEN=(INT16)giantiep;//khai bao bien theo kieu so nguyen 16 bit.
    PUTC((NHIETDONGUYEN/1000)+48);// day gia tri phan ngàn len may tinh
    PUTC(((int16)NHIETDONGUYEN%1000/100)+48);// day gia tri phan tram len may tinh
    PUTC(46);//ki tu dau “.” Trong ma ASCII
    PUTC(((int16)NHIETDONGUYEN%1000%100/10)+48); );// day gia tri phan thap phan len may tinh
    PUTC(((int16)NHIETDONGUYEN%1000%100%10)+48) ; // day gia tri phan thap phan len may tinh
    }


    void main() //chuong trinh chinh
    {
    enable_interrupts(int_rda);// cho phep ngat RDA cuc bo
    enable_interrupts(GLOBAL);// cho phep ngat toan cuc

    while (TRUE) //vong lap vo han
    {
    NHIETDO = ds1820_read(); // doc nhiet do tu vi mach DS18B20
    NHIETDONGUYEN = (INT8)NHIETDO ;//gan gia tri nhiet do doc duoc vao bien “NHIETDONGUYEN”
    }
    }

  • #2
    bạn còn vướng chổ nào? bạn phải nói rõ để mọi người còn giúp đc. theo mình thấy thì
    1. trên máy tính của bạn viết chương trình ntn?
    2. khi nào thì gửi lệnh yêu câu vxl gưởi kết quả đo nhiệt độ về máy tính?
    theo mình thì bạn nên làm như thế này.
    1. viết một chương trình con dùng để tách các số trăm, chục, dv từ kết quả đọc nhiệt độ về( như vậy chương trình của bạn sẻ dễ kiểm tra hơn)
    2. sau khi tách số xong bạn tiến hành đổi số thành ký tự ( dùng thư viện string.h)
    3. ghép các ký tự đó lại với nhau thành một chuỗi rổi gửi về máy tính chuỗi đó j là xong.
    *** hoặc là bạn có thể đổi từ số ra ký tự ngay từ kết quả số nguyên. rồi gửi về máy tính cho hiển thị ra destop.

    Comment


    • #3
      thanks a đã ghé qua.
      đây là bài làm của em.
      e còn mắc ở khâu tạo code cho PIC a.
      mong a hướng dẫn e.
      Attached Files

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X