RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

cứu tôi với

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • dientudong
    Đệ tử 5 túi
    • Oct 2008
    • 95

    #1

    cứu tôi với

    sao bài mình gởi bên kia không ai thèm trả lời giúp vậy ! Vấn đề của mình là khi nhấn nút thì led hoạt động chớp tắt < nhưng sao mình chưa nhấn mà nó đã chớp tắt.Cảm ơn các bạn !
    Attached Files
  • kimhuynguyen
    Đệ tử 3 túi
    • Nov 2007
    • 48

    #2
    Code:
    #include "C:\Program Files\PICC\Examples\led.h"
    
    #byte portB =0x06
    #byte portA =0x05
    #bit RA0 =portA.0
    #use delay(clock=20000000)
    
    void main()
    {
    // Thiet lap che do cho PORTB
    set_tris_b(0x00);    // Tat ca PORTB deu la cong xuat du lieu
    PORTB = 0x00;    // Tat het cac LED
    set_tris_a(0xff);
    if(RA0=1)
    {
    While(1)
    {
    
    
       PORTB = 0xff;   // Cho các LED sáng
       delay_ms(500);   // T?o th?i gian tr? 250ms
       portB = 0x00;
       delay_ms(500);
    
    }
    }
    }
    Ở ngay dòng lệnh "if (RA0=1)" là lệnh gán cho RA0 bằng 1 chứ không phải so sánh RA0 có bằng 1 hay không. Có thể thay "if (RA0)" là đủ.
    More friends more foods

    Comment

    • vdtk3
      Đệ tử 2 túi
      • Jun 2007
      • 29

      #3
      " if (RA0 = 1) "thay bang (if RA0 == 1) .

      Comment

      • love_ac
        Đệ tử 4 túi
        • Apr 2008
        • 78

        #4
        @dientudong:lần sau bạn nên chụp sơ đồ kết nối của bạn(vì hình như bạn vẽ bằng orcad sẽ có ít người không dùng thì sẽ không giúp được bạn--nếu gặp câu khó mà anh Nam định giúp mà anh không thấy hình thì bạn ...)
        @kimhuynguyen:nếu lệnh if đó như thế thì trình dịch có báo lỗi không nhỉ (đây có thể bạn đó gõ lên nhầm chăng) .
        Giả sử bạn đó gõ nhầm,mình không xem được sơ đồ nguyên lý nên mình đoán nếu chân RA0 luôn nối lên nguồn thì chương trình này luôn nháy là phải rồi.

        Comment

        • namqn
          Trưởng lão PIC bang
          • Feb 2006
          • 3020

          #5
          Với phát biểu if (RA0 = 1), biểu thức điều kiện luôn luôn mang giá trị TRUE.

          Thân,
          Biển học mênh mông, sức người có hạn.

          Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
          http://www.picvietnam.com/forum/showthread.php?t=1263

          Comment

          • kimhuynguyen
            Đệ tử 3 túi
            • Nov 2007
            • 48

            #6
            @love_ac:if(RA0=1) là một phát biểu (statement) đúng cú pháp nên trình dịch sẽ không báo lỗi. Đây là một lỗi rất thường gặp.
            @vdtk3: thay if(RA0=1) bằng if(RA0) là đủ
            More friends more foods

            Comment

            • dientudong
              Đệ tử 5 túi
              • Oct 2008
              • 95

              #7
              Code:
              #include "C:\Program Files\PICC\Examples\led.h"
               #byte PORTA =0x05
               #byte PORTB =0x06
              #bit RA0 =0x05.0
               #bit RB0 =0x06.0
              #use delay(clock=20000000)
              
              void main()
              {
              //set_tris_a(0xff);
              if(RA0)
              {
              While(1)
              {
                 // Thiet lap che do cho PORTB
                 set_tris_b(0x00);   
                 RB0 = 1;   
                 delay_ms(500);  
                 RB0 = 0;
                 delay_ms(500);
              
              }
              }
              }
              các bạn cho mình hỏi là set_tris_a(0xff);sao mình thấy dòng lệnh này không có ảnh hưởng gì cả.
              Attached Files
              Last edited by namqn; 02-01-2009, 05:12 PM.

              Comment

              • dientudong
                Đệ tử 5 túi
                • Oct 2008
                • 95

                #8
                có bạn nào biết ở đâu có mở lớp dạy học PIC không. Cảm ơn các bạn !

                Comment

                • dientudong
                  Đệ tử 5 túi
                  • Oct 2008
                  • 95

                  #9
                  Mình ở quận Phú Nhuận ,TpHCM

                  Comment

                  • kimhuynguyen
                    Đệ tử 3 túi
                    • Nov 2007
                    • 48

                    #10
                    Bạn liên hệ thử:

                    Công ty TNHH Thương mại và Giao nhận R&P
                    Zimbra provides open source server and client software for messaging and collaboration. To find out more visit https://www.zimbra.com.
                    More friends more foods

                    Comment

                    • kimhuynguyen
                      Đệ tử 3 túi
                      • Nov 2007
                      • 48

                      #11
                      Nguyên văn bởi dientudong View Post
                      các bạn cho mình hỏi là set_tris_a(0xff);sao mình thấy dòng lệnh này không có ảnh hưởng gì cả.
                      Dòng lệnh này chỉ có tác dụng khi dùng với:
                      #use fast_io(A)

                      Mặc định, trình biên dịch sẽ tự động thay đổi direction register trong mỗi thao tác I/O.

                      nếu sử dụng #use fast_io(A) với set_tris_a(0xff), sẽ tiết kiệm được thời gian và bộ nhớ hơn.
                      More friends more foods

                      Comment

                      • dientudong
                        Đệ tử 5 túi
                        • Oct 2008
                        • 95

                        #12
                        Code:
                        #include "C:\Program Files\PICC\Examples\led.h"
                         #byte PORTA =0x05
                         #byte PORTB =0x06
                        #bit RA0 =0x05.0
                         #bit RB0 =0x06.0
                        #use delay(clock=20000000)
                        
                        void main()
                        {
                        
                        //set_tris_a(0xff);//dong lenh nay chi co tac dung khi su dung use fast_io(A)
                        if(RA0)//luu y la neu vong if de ngoai vong while thi se khong hoat dong
                        {
                        While(1)
                        {
                        
                           // Thiet lap che do cho PORTB
                           set_tris_b(0x00);   
                           RB0 = 1;   
                           delay_ms(500);  
                           RB0 = 0;
                           delay_ms(500);
                        
                        }
                        }
                        }
                        các bạn cho mình hỏi sao :để vòng if ngoài vòng while thì nhấn nút mạch không hoạt động,còn để vòng while ngoài vòng if thì hoạt động bình thường.
                        Last edited by namqn; 03-01-2009, 04:37 AM.

                        Comment

                        • kimhuynguyen
                          Đệ tử 3 túi
                          • Nov 2007
                          • 48

                          #13
                          @dientudong:
                          nội dung chương trình bạn nên để trong thẻ "[c ode] và [/c ode]"
                          tránh làm mất thời gian của mod namqn phải chỉnh sửa lại.
                          (Chú ý là chữ code viết liền với nhau)

                          về câu hỏi ở trên, bạn ngồi suy luận 1 chút có lẽ là ra ngay.
                          More friends more foods

                          Comment

                          • ranhcon
                            Nhập môn đệ tử
                            • Jul 2007
                            • 7

                            #14
                            trong vòng lặp while bạn nên cho câu lệnh để cho nó thoát khỏi vòng lặp (ko nháy led nữa) khi nhấn 1 nút khác hoặc nhấn chính nút đấy 1 lần nữa, mình hay dùng lệnh goto label

                            Comment

                            • dientudong
                              Đệ tử 5 túi
                              • Oct 2008
                              • 95

                              #15
                              mình thấy nó vẫn vậy mà bạn có cần thêm gôt label khong

                              Comment

                              Working...