Thông báo

Collapse
No announcement yet.

xin giup do ve chan gaio tiep I/O cua PIC

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

  • xin giup do ve chan gaio tiep I/O cua PIC

    #include ".\16F887.h"
    #use delay(clock=20000000)

    void main(){
    set_tris_b(0b00100000); // set chân B5 là input
    while(true){
    if(input(PIN_B5) == 1){
    output_low(PIN_A0);
    }

    }
    }
    em có 1 cảm biến cho output ra 5v (đã test cảm biến cho output đúng), sau đó em nối chân out này vào RB5 của PIC,
    trong đoạn code trên em đã set chân B5 là input,nhưng khi có tín hiệu input(PIB_B5) == 1, LED vẫn không sáng', ai giúp em với?
    Last edited by icqrx; 12-07-2013, 12:51.

  • #2
    bạn nên sửa lại chữ Việt có dấu.
    Mãi đi tìm vàng.

    Comment


    • #3
      anh KVKL giup em voi

      Comment


      • #4
        Tôi không rành về C lắm...
        nhưng chữ nầy PIN_A0, có phải là port A không? port A có thể là analog hoặc ADC nên bạn phải "initialize" port A thành digital.
        Khi post code thì phải post schematic (sơ đồ nguyên lý), ai biết bạn gắn/ráp thế nào?
        Mãi đi tìm vàng.

        Comment


        • #5
          anh KVLV có gmail cho em với

          Comment


          • #6
            em tìm thấy ANSEL=ANSELH=0; //Pins set to digital là set port về digital
            TRISB=0b00100000; //Pin4 set as input là set PIN4 là input, nhưng thu viên PIC em dùng trên phải dùng lệnh set_tris_b(0b00100000); mới đưược, vậy mún set digital thì em phải dùng lệnh nào ạ?

            Comment


            • #7
              Để tìm ra nguyên nhân, bạn phải rà soát từng phần một, đầu tiên, bạn thử cho nhấp nháy con led xem nó có sáng không đã.
              output_low(PIN_A0);
              delay_ms(1000);
              output_high(PIN_A0);
              delay_ms(1000);

              Nếu led có sáng nhấp nháy thì yên tâm về chip vẫn sống và trình biên dịch ok, led mắc đúng, sau đó mới xem tiếp về con cảm biến ở đầu vào. Còn nếu ko được thì phải xem lại các vấn đề trên.
              Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
              http://diencongnghiep360.com/
              http://tudienhathe.vn/

              Comment


              • #8
                Mình nhớ ko nhầm thì portA khi dùng làm ADC thì mới cần thiết lập, còn ban đầu nó mặc định là đầu vào ra số rồi.
                Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
                http://diencongnghiep360.com/
                http://tudienhathe.vn/

                Comment


                • #9
                  Nguyên văn bởi vietthanh123 Xem bài viết
                  Mình nhớ ko nhầm thì portA khi dùng làm ADC thì mới cần thiết lập, còn ban đầu nó mặc định là đầu vào ra số rồi.
                  ko phải đâu, nếu ko xài ADC tại chân đó thì nếu dùng thì phải tắt chúng đi trước.
                  tôi ko xài CCS vậy nên cũng chả biết cái pin PIN_B5 với PIN_A0 của cậu nó đúng hay sai nữa nhưng tôi nghĩ nó sai
                  Website chính thức đổi địa chỉ website thành
                  Mời các bạn ghé thăm !!!

                  Comment


                  • #10
                    Dùng CCS thì chả cần quan tâm đến ADC có dùng hay không. Tốt nhất là nên up toàn bộ cái code lên.

                    Comment


                    • #11
                      Bạn viết sai ở cau if
                      Last edited by hoàng thạch; 19-07-2013, 10:21.
                      Phan Hoàng Thạch

                      Comment


                      • #12
                        Khi có tín hiệu mức 1 vào chân RB5 thì chân ra RA0 sẽ cho ra mức 5V làm sáng đèn LED , và ngựoc lại

                        #include "PIC16F887.h"
                        #use delay(clock=20000000)

                        void main()
                        {
                        set_tris_b(0b00100000); // set pin RB5 input
                        set_tris_a(0x00); // set port A output
                        output_a(0x00); // output low portA
                        while(true)
                        {
                        if((input(PIN_B5))==1)output_high(PIN_A0);
                        else output_low(PIN_A0);
                        }
                        }
                        Phan Hoàng Thạch

                        Comment


                        • #13
                          Mấy bác cho em hỏi ké trong code ccs em có thấy viết :
                          #ifndef __VAR_H
                          #define __VAR_H
                          #endif
                          các bác cho em hỏi doạn code trên có ý nghĩa gì ạ ? các bác có thể nói rõ hoặc lấy vd cụ thể cho em với . Em cảm ơn !

                          Comment


                          • #14
                            Nguyên văn bởi hanphonghy Xem bài viết
                            Mấy bác cho em hỏi ké trong code ccs em có thấy viết :

                            các bác cho em hỏi doạn code trên có ý nghĩa gì ạ ? các bác có thể nói rõ hoặc lấy vd cụ thể cho em với . Em cảm ơn !
                            #ifndef __VAR_H // kiểm tra VAR_H đã được đĩnh nghĩa chưa , nếu chưa thì định nghĩa nó
                            #define __VAR_H // định nghĩa VAR_H
                            #endif // kết thúc định nghĩa
                            Phan Hoàng Thạch

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X