Thông báo

Collapse
No announcement yet.

Giúp đỡ về mạch đo nhiệt độ LM35 + PIC 16F877A + RS232

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

  • Giúp đỡ về mạch đo nhiệt độ LM35 + PIC 16F877A + RS232

    chào các bạn!
    mình hiện đang làm đồ án về phần đo nhiệt độ giao tiếp máy tính qua cổng COM dùng PIC16F877A. mình bị vướng ở phần lập trình và thiết kế mạch, mình định dùng PIC đo và sau đó hiển thị lên máy tính luôn chứ không hiển thị lên LCD nhưng không biết viết thế nào, còn mạch thì mình thiết kế như trong file đính kèm nhưng 1 bạn trên diễn đàn nói là phải đổi lại chân 13 của MAX232 nối vào chân 2 của cổng COM và chân 7 của MAX232 nối vào chân 2 của COM thì khi làm mạch mới chạy, mình thắc mác là như vậy có đúng ko? và nếu đúng thì cổng NOT vẫn ở chân 3 hay phải dời lên chân 2...Mong mọi người giải đáp thắc mắc giùm mình. Cám ơn mọi ngườiClick image for larger version

Name:	giao tiep mt.jpg
Views:	1
Size:	66.6 KB
ID:	1409877 nhiều!!!

  • #2
    Tôi có góp ý cho bạn : Hi vọng bạn sẽ làm tốt hơn.
    thứ 1 : bạn vứt cái mô phỏng củ chuối của Proteus đi. mình sẽ ko bao giờ mô phỏng với proteus mà dùng COMPPIM cả, bạn thấy đấy phải đảo chân + thêm NOT chạy mới mô phỏng nữa. Hoàn toàn sai với datasheet. Nếu bạn ko cần hiện thị lên LCD chỉ giao tiếp với máy tính thì có thể lôi cái Terminal Virtual ra (của Proteus luôn, nó nằm cùng mục với lôi Occillo ấy), lấy nó ra nối chéo 2 chân tx và rx thế là bạn có có mô phỏng rs232 hoàn hảo,
    thứ 2 : Nếu là đề tài : thì đề tài này rất dể nên làm mạch thật mà tét luôn. Ngon lành cành đào thì báo cáo kiếm tiền. Hì
    Thân !
    Nếu cần thiết tôi có thể pm cho bạn 1 project về vấn đề của bạn : Y!M : danghien_004
    My Face :

    Comment


    • #3
      Đề tài này cần giải quyết 3 vấn đề: Biết khai thác module ADC, xuất được dữ liệu ra ngõ RS232, phải biết lập trình Winform.
      Ở đây mình có sẵn code giải quyết được 2 vấn đề:
      + Khai thác module ADC:
      #include "16f887.h"
      #include "def_16f887.h"
      #device *=16 ADC = 10
      #fuses HS,PUT,NOWDT,NOPROTECT,NOLVP
      #use delay(Clock = 4000000) //Thach anh 4MHz
      int16 temp;
      void main()
      {
      setup_spi(SPI_SS_DISABLED);
      setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
      setup_timer_2(T2_DISABLED,0,1);
      setup_comparator(NC_NC_NC_NC);
      setup_vref(FALSE);
      setup_timer_1(T1_INTERNAL);
      setup_adc_ports(sAN0|VREF_VREF); //kenh A0 nhan tin hieu, A2 = 0V; A3 = 5V;
      setup_adc(ADC_CLOCK_INTERNAL); //Thoi gian lay mau bang clock he thong.
      delay_ms(5); //Cho thiet lap xong ADC.
      // TODO: USER CODE!!

      trisa = 0xff; //PORTA nhan du lieu.
      trisc = 0x00; //PORTC xuat du lieu.
      set_adc_channel(0); //Chon kenh 0.
      delay_us(10); //cho chon kenh xong.

      while(1)
      {
      temp = read_adc(); //doc gia tri analog da chuyen doi sang so.
      temp = temp/10.24; //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
      PORTC = temp; //Value = Vol/0,05
      delay_ms(500);
      }

      }
      Bạn tham khảo chi tiết tại đây.

      + Xuất dữ liệu ra ngõ RS232
      #include "16f887.h"
      #include "def_16f887.h"
      #device *=16 ADC = 10
      #fuses HS,PUT,NOWDT,NOPROTECT,NOLVP
      #use delay(Clock = 4000000) //Thach anh 4MHz
      #use rs232(baud = 9600, parity = N , Xmit = Pin_c6,rcv = pin_c7) //khoi tao usart

      void main()
      {
      setup_adc_ports(NO_ANALOGS);
      setup_adc(ADC_OFF);
      setup_spi(SPI_SS_DISABLED);
      setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
      setup_timer_1(T1_DISABLED);
      setup_timer_2(T2_DISABLED,0,1);
      setup_comparator(NC_NC_NC_NC);
      setup_vref(FALSE);
      // TODO: USER CODE!!
      trisc = 0x10; //PORTC xuat du lieu.
      while(1)
      {
      putc('A'); //Gui ky tu A
      delay_ms(500);
      }
      }

      Bạn tham khảo thêm tại đây http://www.sangthai.com.vn/ste/project-pic/762

      Comment


      • #4
        mình cũng đang học về PIC và dang làm cái mạch đo nhiệt độ LM35 + PIC 16F877A + RS232
        đây là code của mình bạn tham khảo nhé:
        #include <16F877A.h>
        #device adc=10 //adc 8 bit
        #include <math.h>
        #fuses HS,NOWDT,NOPROTECT,NOLVP // Dung thach anh ngoai, Tat WDT, Khong khoa ma nguon, Khong su dung bo nhan thach anh
        #use delay(clock=4000000) //Dinh nghia thach anh

        BYTE CONST MA_LED[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };
        int16 adc;
        int16 nhietdo;
        int8 donvi, hangchuc;

        void main() {
        //-----------------------------------------------
        int i=0;
        //Cai dat kenh bien doi ADC
        Setup_ADC(ADC_CLOCK_INTERNAL); //Su dung Timer trong
        Setup_ADC_ports(AN0); //Chon loi vao ADC la chan AN0
        Set_ADC_channel(0); //Chon kenh bien doi ADC la kenh 0
        SET_TRIS_B( 0x00);
        SET_TRIS_D( 0x00);
        OUTPUT_B(0);
        output_high(pin_d6);
        delay_ms(5);
        output_low(pin_d6);
        delay_ms(5);
        output_high(pin_d5);
        delay_ms(5);
        output_low(pin_d5);
        delay_ms(5);
        output_high(pin_d4);
        delay_ms(5);
        output_low(pin_d4);
        delay_ms(5);
        output_high(pin_c7);
        delay_ms(5);
        output_low(pin_c7);
        delay_ms(5);
        output_high(pin_c6);
        delay_ms(5);
        output_low(pin_c6);
        delay_ms(5);
        output_high(pin_c5);
        delay_ms(5);
        output_low(pin_c5);
        delay_ms(5);
        Lap:
        i=0;
        delay_us(20);
        adc=read_adc(); //Doc du lieu tu ADC
        nhietdo=ceil((adc*5*100)/1023);
        hangchuc = nhietdo/10;
        donvi = nhietdo % 10;
        //Hien thi hang chuc
        output_B(MA_LED[hangchuc]);
        output_high(pin_D4);
        delay_ms(2);
        output_low(pin_d4);
        delay_ms(2);
        //Hien thi hang don vi
        output_B(MA_LED[donvi]);
        output_high(pin_c7);
        delay_ms(2);
        output_low(pin_c7);
        delay_ms(2);
        Lap1:
        i=i+1;
        delay_ms(1000);
        if (i<5) goto Lap1;
        goto Lap;
        }
        yahoo: boulevard.electronic
        Học tập & nghiên cứu

        phần mềm mình upload lên để chia sẻ:

        Comment


        • #5
          Nguyên văn bởi hienthom Xem bài viết
          chào các bạn!
          mình hiện đang làm đồ án về phần đo nhiệt độ giao tiếp máy tính qua cổng COM dùng PIC16F877A. mình bị vướng ở phần lập trình và thiết kế mạch, mình định dùng PIC đo và sau đó hiển thị lên máy tính luôn chứ không hiển thị lên LCD nhưng không biết viết thế nào, còn mạch thì mình thiết kế như trong file đính kèm nhưng 1 bạn trên diễn đàn nói là phải đổi lại chân 13 của MAX232 nối vào chân 2 của cổng COM và chân 7 của MAX232 nối vào chân 2 của COM thì khi làm mạch mới chạy, mình thắc mác là như vậy có đúng ko? và nếu đúng thì cổng NOT vẫn ở chân 3 hay phải dời lên chân 2...Mong mọi người giải đáp thắc mắc giùm mình. Cám ơn mọi người[ATTACH=CONFIG]30044[/ATTACH] nhiều!!!
          Bạn có thể tham khảo bài này:
          Code mẫu
          Hi vọng có ích cho bạn

          Comment


          • #6
            cứu cứu..........Mình có mạch đo nhiệt độ mà nó nhảy số ghê quá, ai giúp mình vụ này đi,,sắp nộp đồ án rồi huhu
            http://www.dientuvietnam.net/forums/...iet-do-149366/

            Comment


            • #7
              mình đã đọc mấy bài viết của mấy bạn nhưng chưa hiểu lắm, ai có demo cái này trên proteus gửi cho mình với, cám ơn các bạn nhiều.

              Comment


              • #8
                mạch đo nhiệt độ đem đặt ngoài tiệm giá khoảng bao nhiêu vậy các bạn?

                Comment


                • #9
                  em cũng đang phải làm cái đồ án tn thiết kế mạch đo nhiệt độ giao tiếp với mt qua cổng rs232.
                  phải bắt đầu tn đây mọi ng chỉ e mới!!!
                  e cảm ơn!

                  Comment


                  • #10
                    em cũng đang phải làm cái đồ án tn thiết kế mạch đo nhiệt độ giao tiếp với mt qua cổng rs232.
                    phải bắt đầu tn đây mọi ng chỉ e mới!!!
                    e cảm ơn!

                    Comment


                    • #11
                      Cảm ơn anh, mong anh giúp đỡ nhiều ạ

                      Comment


                      • #12
                        Chao anh. anh co the cho em thao khao 1 bai tap tuong tu nhu anh da noi khong a. email cua em la duchaotb@gmail.com

                        Comment


                        • #13
                          mong moi nguoi giup do dum.minh dang lam do an do nhiet do dung lm35 va pic16f877a.hien thi ra bang cach bao den sang.vd nhiet do tu 0-40do thi den1 bao sang.con tu 41-70 thi den 2 bao sang va tu 70-90 thi den 3 bao sang.minh da tham khao nhieu code nhung chi co viet ve hien thi bang lcd hoac led 7 doan.con cai nay thi khong co.mong cao thu chi giao.dang bi bi cho nay

                          Comment


                          • #14
                            giám sát tại 3 điểm

                            có ai biết giám sát tại 3 điểm gửi lên máy tính không.mình gửi 1 điểm thì đc nhưng 3 điểm thì không đc. khi mình gộp 3 điểm thành 1 chuỗi rồi gửi lên thì máy tính không nhận đc,mình viết bằng mikroC .bạn nào rành chỉ mình với nha!!!!

                            Comment


                            • #15
                              mấy bác cho xin mạch mô phỏng trên protues với em cũng đang tìm hiểu mạch này. thaks cac bác..,

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • 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
                              • bqviet
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi bqviet
                                Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                20-02-2025, 17:22
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                                Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                                20-02-2025, 11:52
                              Đang tải...
                              X