Thông báo

Collapse
No announcement yet.

8051, 18b20

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

  • 8051, 18b20

    em đang làm bài tập đo nhiệt độ dung 18b20 mà không biết làm thế nào. bác nào có sơ đồ nguyên lý và code C thì cho em tham khảo với ạ.

  • #2
    Nguyên văn bởi banhcay12345 Xem bài viết
    em đang làm bài tập đo nhiệt độ dung 18b20 mà không biết làm thế nào. bác nào có sơ đồ nguyên lý và code C thì cho em tham khảo với ạ.
    Sơ đồ nguyên lý cho bạn : DS18B20 voi AT89C52.pdf

    Code C cho bạn, nhưng mình chỉ viết cho 1 con DS18B20 trên BUS, viết nhiều con bạn tham khảo thêm trên datasheet nhé !


    #define uint unsigned int

    sbit DQ = P2^2;

    unsigned char temp1,chucnhiet, dvnhiet;
    unsigned int temp;

    //----------------------------------------------
    //##################DELAY#######################
    //----------------------------------------------
    void delay1(unsigned char time8us)
    {
    while(time8us--);
    }
    //----------------------------------------------
    //++++++++++++++DS18B20++++++++++++++++++++++++
    //------------------------------------------
    void reset_ds18b20()
    {
    laplai:
    DQ=1;
    delay1(5);
    DQ=0;
    delay1(149); /* 300us */
    delay1(149); /* 300us */
    DQ=1;
    delay1(29);/* 60us */
    delay1(29);
    //if(DQ==1)
    //goto INIT;
    //delay1(119); /* 240us */
    if(DQ==0)
    {
    delay1(119);
    goto laplai;
    }
    delay1(119);
    delay1(119);
    }

    void write_ds18b20(unsigned char j)
    {
    unsigned char k;
    for(k=0;k<8;k++)
    {
    DQ=1;
    delay1(5);
    DQ=0;
    DQ=0;
    DQ=j&0x01;
    delay1(29); /*60us*/
    j=j>>1;
    }
    delay1(4);
    }

    uint read_ds18b20()
    {
    unsigned char j,k=0;
    for(j=0;j<8;j++)
    {
    DQ=0;
    k=k>>1;
    DQ=1; /* male D is input*/
    delay1(6);/* 15us*/
    if(DQ)
    k=k|0x80;
    delay1(22); /*45us*/
    }
    return k;
    }
    void hieu_chinh()//(uint j)
    {
    temp<<=8;
    temp=temp|temp1;
    temp=temp/16;
    //tramnhiet=temp/100;
    chucnhiet=(temp%100)/10;
    dvnhiet=temp%10;
    }
    void xulynhiet_do()
    {
    reset_ds18b20(); //reset DS18b20 de bat dau qua trinh nhan lay nhiet do tu DS18B20
    write_ds18b20(0xcc); //- SKIP ROM (CCh) : Lenh này cho phép thiet bi dieu khien truy nhap thang den các lenh bo nho cua DS1820 mà không can gui chuoi mă 64 bit ROM. Nhu vay se tiet kiem duoc thoi gian cho doi nhung chi mang hieu qua khi trên bus chi có mot cam bien.
    write_ds18b20(0x44); //- CONVERT T (44h) : Lenh này khoi dong mot quá tŕnh do và chuyen doi giá tri nhiet do thành so (nhi phân). Sau khi chuyen doi giá tri ket qua do nhiet do duoc luu tru trên thanh ghi nhiet do 2 byte trong bo nho nháp Thoi gian chuyen doi không quá 200 ms, trong thoi gian dang chuyen doi neu thuc hien lenh doc th́ các giá tri doc ra deu bang 0.
    reset_ds18b20(); //reset DS18b20
    write_ds18b20(0xcc); //- CONVERT T (44h)
    write_ds18b20(0xbe); //- READ SCRATCHPAD (BEh) : Lenh này cho phép thiet bi chu doc noi dung bo nho nháp. Quá tŕnh doc bat dau tu bit có ư nghia nhat cua byte 0 và tiep tuc cho den byte thu 9 (byte 8 - CRC). Thiet bi chu có the xuat ra mot xung reset de làm dung quá tŕnh doc bat ky lúc nào neu nhu chi có mot phan cua du lieu trên bo nho nháp can duoc doc.
    temp1=read_ds18b20();
    temp=read_ds18b20();
    hieu_chinh();
    }
    Last edited by tramng; 21-02-2014, 18:43.

    Comment


    • #3
      thank bạn. để mình thử.bây h mình muốn hiển thị nhiệt độ lên led 7 thanh thì làm thế nào hả bạn.
      Nguyên văn bởi tramng Xem bài viết
      Sơ đồ nguyên lý cho bạn : [ATTACH]82904[/ATTACH]

      Code C cho bạn, nhưng mình chỉ viết cho 1 con DS18B20 trên BUS, viết nhiều con bạn tham khảo thêm trên datasheet nhé !
      Last edited by banhcay12345; 24-02-2014, 12:05.

      Comment


      • #4
        thì ngồi tìm tài liệu mà làm, người ta đã cho đến thế rồi. cho luôn cái tên đề tài lên xin cả cụm cho đỡ mệt....haiz
        Website chính thức đổi địa chỉ website thành
        Mời các bạn ghé thăm !!!

        Comment


        • #5
          Nguyên văn bởi banhcay12345 Xem bài viết
          thank bạn. để mình thử.bây h mình muốn hiển thị nhiệt độ lên led 7 thanh thì làm thế nào hả bạn.
          Các giá trị nhiệt độ mình đã đưa ra các biến : tramnhiet, chucnhiet, dvnhiet. Bước tiếp theo bạn lập 1 bảng mã 7 đoạn (CA hay CC tùy theo bạn). rồi đưa các giá trị tramnhiet, chucnhiet, dvnhiet này vào bảng mã 7 đoạn, xong xuất chúng ra hiển thị (bằng 7447, 74138, hay 74595 hay quét port tùy theo bạn) !

          Comment


          • #6
            thank bạn.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            • mansion123
              Bật mí những điều ít ai biết về thi công gỗ óc chó
              bởi mansion123
              Thi công gỗ óc chó giúp không gian trở nên sang trọng, ấm cúng, gần gũi hơn. Sự kết hợp giữa thẩm mỹ và chất lượng cao của gỗ óc chó chắc chắn sẽ mang lại giá trị lâu dài và làm hài lòng ngay cả những khách hàng khó tính nhất. Vậy đằng
              ...
              hôm nay, 16:08
            • tuyennhan
              Trả lời cho Tiếng Anh cho người Việt
              bởi tuyennhan
              Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
              Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
              hôm nay, 07:44
            • vi van pham
              Trả lời cho Tiếng Anh cho người Việt
              bởi vi van pham
              Cám ơn những lời chúc tốt đẹp của em.

              Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

              Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
              hôm nay, 02:00
            • nhathung1101
              Trả lời cho Tiếng Anh cho người Việt
              bởi nhathung1101
              Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

              Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

              Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
              Hôm qua, 22:18
            • dinhthuong80
              Trả lời cho Tiếng Anh cho người Việt
              bởi dinhthuong80
              Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

              Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
              Hôm qua, 14:51
            • dinhthuong80
              Trả lời cho Tiếng Anh cho người Việt
              bởi dinhthuong80
              Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

              Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
              Hôm qua, 14:39
            • dinhthuong80
              Trả lời cho Tiếng Anh cho người Việt
              bởi dinhthuong80
              Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

              Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
              Hôm qua, 14:28
            • bqviet
              Trả lời cho Tiếng Anh cho người Việt
              bởi bqviet
              Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
              21-02-2025, 20:26
            • mèomướp
              Trả lời cho Tiếng Anh cho người Việt
              bởi mèomướp
              Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
              21-02-2025, 12:32
            • vi van pham
              Trả lời cho Tiếng Anh cho người Việt
              bởi vi van pham
              Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

              Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
              20-02-2025, 21:31
            Đang tải...
            X