Thông báo

Collapse
No announcement yet.

Các câu hỏi thông dụng về lập trình CCS cho PIC 16F887

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

  • Các câu hỏi thông dụng về lập trình CCS cho PIC 16F887

    Em xin phép mode mở luồng này để cho những thành viên mới gia nhập họ nhà pic chúng em được đặt câu hỏi

    câu hỏi đầu tiên của em là:

    #define RA0_RA1_ANALOG_RA3_REF 0x5 //!old only provided for compatibility

    em chưa hiểu lắm, mong các bác chỉ cho ý nghĩa, các dòng khác trong file 16f887 về adc thì em hiểu, chưng dòng này thì sao ạ,mong chỉ giúp.
    Be quan. Plz contact through email:

  • #2
    theo kiến thức hạn hẹp, tự học, tự vọc của tui thì #define RA0_RA1_ANALOG_RA3_REF 0x5chân RA0. RA1 là chân analog, còn chân RA3 là chân nhận Vref đề adc
    luồng này hay đấy!
    TamPhieuLuuKy@yahoo.com
    092 2838 712 --->>

    Comment


    • #3
      // Constants used in SETUP_ADC_PORTS() are:
      #define NO_ANALOGS 7 // None
      #define ALL_ANALOG 0 // A0 A1 A2 A3 A5 E0 E1 E2
      #define AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF 1 // A0 A1 A2 A5 E0 E1 E2 VRefh=A3
      #define AN0_AN1_AN2_AN3_AN4 2 // A0 A1 A2 A3 A5
      #define AN0_AN1_AN2_AN4_VSS_VREF 3 // A0 A1 A2 A4 VRefh=A3
      #define AN0_AN1_AN3 4 // A0 A1 A3
      #define AN0_AN1_VSS_VREF 5 // A0 A1 VRefh=A3
      #define AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF 0x08 // A0 A1 A5 E0 E1 E2 VRefh=A3 VRefl=A2
      #define AN0_AN1_AN2_AN3_AN4_AN5 0x09 // A0 A1 A2 A3 A5 E0
      #define AN0_AN1_AN2_AN4_AN5_VSS_VREF 0x0A // A0 A1 A2 A5 E0 VRefh=A3
      #define AN0_AN1_AN4_AN5_VREF_VREF 0x0B // A0 A1 A5 E0 VRefh=A3 VRefl=A2
      #define AN0_AN1_AN4_VREF_VREF 0x0C // A0 A1 A4 VRefh=A3 VRefl=A2
      #define AN0_AN1_VREF_VREF 0x0D // A0 A1 VRefh=A3 VRefl=A2
      #define AN0 0x0E // A0
      #define AN0_VREF_VREF 0x0F // A0 VRefh=A3 VRefl=A2
      #define ANALOG_RA3_REF 0x1 //!old only provided for compatibility
      #define A_ANALOG 0x2 //!old only provided for compatibility
      #define A_ANALOG_RA3_REF 0x3 //!old only provided for compatibility
      #define RA0_RA1_RA3_ANALOG 0x4 //!old only provided for compatibility
      #define RA0_RA1_ANALOG_RA3_REF 0x5 //!old only provided for compatibility
      #define ANALOG_RA3_RA2_REF 0x8 //!old only provided for compatibility
      #define ANALOG_NOT_RE1_RE2 0x9 //!old only provided for compatibility
      #define ANALOG_NOT_RE1_RE2_REF_RA3 0xA //!old only provided for compatibility
      #define ANALOG_NOT_RE1_RE2_REF_RA3_RA2 0xB //!old only provided for compatibility
      #define A_ANALOG_RA3_RA2_REF 0xC //!old only provided for compatibility
      #define RA0_RA1_ANALOG_RA3_RA2_REF 0xD //!old only provided for compatibility
      #define RA0_ANALOG 0xE //!old only provided for compatibility
      #define RA0_ANALOG_RA3_RA2_REF 0xF //!old only provided for compatibility


      em xin coppy lên đây toàn bộ phần thiết lập chân cho analog, nếu như anh nói như vậy em mạn phép hỏi thêm nhé
      nếu chân a3 là điện áp tham chiếu thì điện áp tham chiếu Vref- mặc nhiên là 0v phải không ạ

      #define RA0_ANALOG 0xE //!old only provided for compatibility
      dòng lệnh này nói thiết lập chân RA0 là chân analog, nó không nói gì đến áp tham chiếu, có phải mặc định là nó gán cho áp tham chiếu dưong và âm là Ov hay không ?
      cảm ơn anh trước
      Be quan. Plz contact through email:

      Comment


      • #4
        theo tôi, làm thực tế và mô phỏng thì điện áp tham chiếu khi không đc nhắc đến thì no ~ áp Vcc, chứ 0V làm sao mà tham chiếu
        TamPhieuLuuKy@yahoo.com
        092 2838 712 --->>

        Comment


        • #5
          ý em là điện áp tham chiếu vref cơ
          Be quan. Plz contact through email:

          Comment


          • #6
            Mặc định thì áp tham chiếu dương (Vref+) sẽ là Vdd (+5V), áp tham chiếu âm (Vref-) sẽ là Vss (0V). Khi chân đó không dùng với chức năng Analog input (ví dụ chân RA3/AN3/VREF+ dùng chức năng Vref+) thì khi đó Vref+ sẽ là điện áp tham chiếu dương do bạn đưa từ ngoài vào làm reference cho dải đo analog của bạn.

            Comment


            • #7
              em có thắc mắc
              1. em chưa từng sử dụng MPLAB, nó có giống CCS không hay nó chỉ là môi trường thôi, còn muốn lập trình thì nhúng hơaowohoawcj HT pIC vào, nhúng như thế nào
              2. có ai biết nơi naò có thể down source code tham khảo không ? em thấy trên microchip toàn hỗ trợ HT PIC, không có hỗ trợ source code cho CCS, cảm ơn các bác
              Be quan. Plz contact through email:

              Comment


              • #8
                ccs và mplap thì cũng đều là lập trình C, cơ bãn giống nhau cả, chỉ có 1 vài cú pháp khác nhau hôi, lập trình ccs cho nhanh, no hỗ trợ tốt hơn mplap
                TamPhieuLuuKy@yahoo.com
                092 2838 712 --->>

                Comment


                • #9
                  Theo mình biết thì
                  #define RA0_RA1_ANALOG_RA3_REF 0x5

                  - Trong C:
                  Nó là một macro định nghĩa chỉ thị báo cho trình dịch thay thế RA0_RA1_ANALOG_RA3_REF (cho dễ nhớ chứ không có ý nghĩa nào khác) bởi 0x5 (khó nhớ).

                  - Trong vi điều khiển PIC:
                  0x5, liên quan đến thanh ghi ADCON1 để cấu hình A/D pin và 0x5 tương ứng với 101 cho các bit PCFG2 = 1, PCFG1 = 0, PCFG0 = 1. Ở cấu hình này thì:
                  AN7: Digital
                  AN6: Digital
                  AN5: Digital
                  AN4: Digital
                  AN3: Vref
                  AN2: Digital
                  AN1: Analog
                  AN0: Analog
                  Last edited by itanium7000; 09-08-2011, 17:49.

                  Comment


                  • #10
                    Nguyên văn bởi superhieu1 Xem bài viết
                    ccs và mplap thì cũng đều là lập trình C, cơ bãn giống nhau cả, chỉ có 1 vài cú pháp khác nhau hôi, lập trình ccs cho nhanh, no hỗ trợ tốt hơn mplap
                    nhưng hình như là không phải vậy , em thấy ccs là trình biên dịch riêng, còn MPlab là môi trường mà. Nó nhúng các compiler khác như HTPIC, CCS vào. gọi nó là môi trường lwwpj trình vì nó tích hợp các công cụ khác như deburg....vv. có phải không ạ. Mong các bác chỉ giáo
                    Be quan. Plz contact through email:

                    Comment


                    • #11
                      Nguyên văn bởi Lenh Ho Xem bài viết
                      nhưng hình như là không phải vậy , em thấy ccs là trình biên dịch riêng, còn MPlab là môi trường mà. Nó nhúng các compiler khác như HTPIC, CCS vào. gọi nó là môi trường lwwpj trình vì nó tích hợp các công cụ khác như deburg....vv. có phải không ạ. Mong các bác chỉ giáo
                      Bạn nói đúng rồi, chả còn j để chỉ giáo.
                      Trong thư mục Examples của CCS có rất nhiều source code, bạn vào đó mà kiếm.

                      Comment


                      • #12
                        em xin cảm ơn các bác , và tiếp theo em có 2 vấn đề thắc mắc, mong mọi người chia sẻ giúp em nhé
                        1. thực ra em đã quen sử dụng ASM và MikroC, thực tế cho thấy chúng cựu kỳ hữu dụng với các mã lệnh gợi nhớ. em có thể lấy ví dụ:
                        em xuất ra port chỉ cần lệnh POTRx = 0x... hay lệnh set ngõ tương tự hay analog chỉ cần ansel =... là xong
                        còn trong CCS, em phải làm như sau: output_x(...) ; -- mã gợi nhớ không hay
                        em định thế này

                        em sẽ tự tạo từ gợi nhớ cho em
                        ví dụ :
                        #byte PORTA = 0x05 , như vậy khi đó em lấy PORTA = 0xff; có đúng không ạ. các bác chỉ giáo


                        câu hỏi thứ 2: ai có thể nói cho em biết về con 16f887, nó có khả năng đánh thức vi điều khiển từ chế độ sleep sang chế độ hoạt động bằng cách kết nối một tụ và một trở từ chân AN0 xuống mass, ai giải thích được giúp em với
                        Be quan. Plz contact through email:

                        Comment


                        • #13
                          Mã gợi nhớ hay hay không là tùy mỗi người chứ ?
                          Còn đánh thức bằng RC trên AN0 là chức năng được Microchip thiết kế để đánh thức MCU nên không có gì lạ cả.

                          Comment


                          • #14
                            Nguyên văn bởi Lenh Ho Xem bài viết
                            em xin cảm ơn các bác , và tiếp theo em có 2 vấn đề thắc mắc, mong mọi người chia sẻ giúp em nhé
                            1. thực ra em đã quen sử dụng ASM và MikroC, thực tế cho thấy chúng cựu kỳ hữu dụng với các mã lệnh gợi nhớ. em có thể lấy ví dụ:
                            em xuất ra port chỉ cần lệnh POTRx = 0x... hay lệnh set ngõ tương tự hay analog chỉ cần ansel =... là xong
                            còn trong CCS, em phải làm như sau: output_x(...) ; -- mã gợi nhớ không hay
                            em định thế này

                            em sẽ tự tạo từ gợi nhớ cho em
                            ví dụ :
                            #byte PORTA = 0x05 , như vậy khi đó em lấy PORTA = 0xff; có đúng không ạ. các bác chỉ giáo


                            câu hỏi thứ 2: ai có thể nói cho em biết về con 16f887, nó có khả năng đánh thức vi điều khiển từ chế độ sleep sang chế độ hoạt động bằng cách kết nối một tụ và một trở từ chân AN0 xuống mass, ai giải thích được giúp em với
                            Câu 1: Down "Các chương trình cơ bản dùng trình dịch CCS", trong đó có file def_877a.h định nghĩa sẵn các thanh ghi, bạn chỉ việc lấy ra xài.
                            http://sites.google.com/site/linhnc3082/myprojects
                            Câu 2: Chưa dùng nên ko bit

                            Comment


                            • #15
                              cho em hỏi thêm nữa: lệnh fast_io được sử dụng như thế nào? có phải khi khai báo sử dụng fast_io thì trong chuong trình em cần phải khai báo tris không ?
                              - trong CCS khi em thiết lập nó là ngõ ra( sáng tắt led) thì hình như em chẳng cần làm gì ( chẳng có fast_io cũng không có tris gì hết), vậy là sao ạ. hình như nếu không nhầm thì lệnh nếu sử dụng output_x(giá trị) đẽ xuất mức logic ra ngõ ra của pic, nó ưu tiên hơn là việc em thiết lập ngõ đó là số hay tương tự. điều này em đọc trong datasheet của 16f887. xin các anh chỉ giáo thêm


                              PS: em rât muốn bác nào chỉ em các lệnh output, tris gì gì đó. lung tung quá ( chắc em gà mờ quá) cảm ơn các bác nhiều.
                              Be quan. Plz contact through email:

                              Comment

                              Về tác giả

                              Collapse

                              Lenh Ho Tìm hiểu thêm về Lenh Ho

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

                              Collapse

                              Đang tải...
                              X