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

Hỏi về MPLAB

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • chipchipvn
    Đệ tử 2 túi
    • Oct 2006
    • 43

    #1

    Hỏi về MPLAB

    Xin lỗi các anh, em mún hỏi về cách sử dụng MPLAB. Híc, em không biết sao mà em đã copy mã của bác F vào rùi nhưng mừ RUN thì không thấy gì hết cả. Các bác có thể cho em xin tài liệu hướng dẫn MPLAB được không ạ! Cảm ơn.

    namqn: Bạn nói rõ hơn là bạn muốn làm gì với MPLAB. Tài liệu của MPLAB thì vào Microchip download bản mới nhất (dùng chức năng tìm tài liệu để tìm các tài liệu sau: DS51281, DS51519).
    Last edited by namqn; 15-10-2006, 07:38 PM.
  • falleaf
    PIC Bang chủ
    • May 2005
    • 2627

    #2
    MPLAB không cần dùng Mã gì cả, anh Nam đã nhắn rồi.

    Chỉ khi nào các bạn cần nhúng các trình dịch khác vào như C30 hoặc những cái mà nó không cho, thì mới cần phải nhúng vào bẻ khóa.

    Chúc vui
    Công ty TNHH Thương mại và Giao nhận R&P
    store.hn@rpc.vn - store.hcm@rpc.vn

    Học PIC như thế nào?

    Comment

    • chipchipvn
      Đệ tử 2 túi
      • Oct 2006
      • 43

      #3
      Ý em là, em có xem bài "học PIC trong một ngày" của bác F, em dùng MPLAB để soạn CODE ( thực ra là em chép từ bài của bác F) sau đó thử Debug trước khi convert thành file hex để đưa vào Proteus làm giả lập! Nhưng mà khi em dùng MPLAB SIM để debug thì chẳng thấy có hiện tượng chi cả , em không hiểu làm sao để biết code mình đúng hay sai đây! Nếu nạp vào Proteus thì chỉ nhận được một thông báo "lạnh lùng" "FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device". Cảm ơn các anh đã giúp đỡ!

      Comment

      • falleaf
        PIC Bang chủ
        • May 2005
        • 2627

        #4
        Em dùng đoạn code nào? em gửi lại đoạn code đó lên cho mọi người xem luôn nhé.

        Chúc vui
        Công ty TNHH Thương mại và Giao nhận R&P
        store.hn@rpc.vn - store.hcm@rpc.vn

        Học PIC như thế nào?

        Comment

        • chipchipvn
          Đệ tử 2 túi
          • Oct 2006
          • 43

          #5
          Hix, em dùng y chang đoạn CODE của bác F, chỉ thay đổi thành con P16F877A, em đã thêm cả header files và linker files. Nhưng mừ khi Build thì lại báo lỗi sau " Processor superseded by command line. Verify processor symbol." Xin lỗi vì làm phiền các bác nhưng em thiệt chả bít làm sao T_T

          ;================================================= =======
          TITLE "Mach test LED_1"
          PROCESSOR P16F877A
          INCLUDE <P16F877A.inc>
          __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC

          ;================================================= ======
          ORG 0x0000
          GOTO MAIN


          ORG 0x0005

          MAIN
          BANKSEL TRISB ; bank select
          CLRF TRISB ; trisb = 00000000
          ; portb = output
          BANKSEL PORTB
          BSF PORTB, 0 ; rb0 = 1
          ; RB0 = 5V
          GOTO $ ; dung chuong trinh tai day
          ; vong lap tai cho^~
          ; khong bao gio ket thuc
          END. ; lenh bat buoc de ket thuc
          ;================================================= ===============================

          Comment

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

            #6
            Nguyên văn bởi chipchipvn View Post
            Hix, em dùng y chang đoạn CODE của bác F, chỉ thay đổi thành con P16F877A, em đã thêm cả header files và linker files. Nhưng mừ khi Build thì lại báo lỗi sau " Processor superseded by command line. Verify processor symbol." Xin lỗi vì làm phiền các bác nhưng em thiệt chả bít làm sao T_T

            ;================================================= =======
            TITLE "Mach test LED_1"
            PROCESSOR P16F877A
            INCLUDE <P16F877A.inc>
            __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC

            ;================================================= ======
            ORG 0x0000
            GOTO MAIN


            ORG 0x0005

            MAIN
            BANKSEL TRISB ; bank select
            CLRF TRISB ; trisb = 00000000
            ; portb = output
            BANKSEL PORTB
            BSF PORTB, 0 ; rb0 = 1
            ; RB0 = 5V
            GOTO $ ; dung chuong trinh tai day
            ; vong lap tai cho^~
            ; khong bao gio ket thuc
            END. ; lenh bat buoc de ket thuc
            ;================================================= ===============================
            Đó không hẳn là lỗi đâu. MPLAB chỉ nhắc cho bạn biết là nó sẽ dùng thông tin về bộ xử lý ở dòng lệnh (được thiết lập bằng lệnh mênu Configure>Select Device) thay vì dùng thông tin mà bạn mô tả trong tập tin nguồn. Bạn có thể kiểm tra bộ xử lý đang được chọn cho MPLAB bằng cách nhìn vào dòng trạng thái của MPLAB, ở vị trí thứ ba từ trái sang.

            Nếu bạn chọn bộ xử lý tương thích với bộ xử lý được mô tả trong tập tin nguồn thì chương trình dịch ra sẽ chạy tốt.

            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

            • chipchipvn
              Đệ tử 2 túi
              • Oct 2006
              • 43

              #7
              ^^, cảm ơn bác Nam nhìu, em đã làm được rùi , nhưng bác ơi, cho em hỏi thêm 1 chút nữa! Em nghe bác F bảo là học PIC cần mạch nạp, cht nạp... Em mún hỏi là liệu em có thể không dùng mấy cái đó vội mà dùng Proteus để học được không ạ. Có bất lợi gì không? Em xin cảm ơn bác.

              Comment

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

                #8
                Nguyên văn bởi chipchipvn View Post
                ^^, cảm ơn bác Nam nhìu, em đã làm được rùi , nhưng bác ơi, cho em hỏi thêm 1 chút nữa! Em nghe bác F bảo là học PIC cần mạch nạp, cht nạp... Em mún hỏi là liệu em có thể không dùng mấy cái đó vội mà dùng Proteus để học được không ạ. Có bất lợi gì không? Em xin cảm ơn bác.
                Học trên mạch thực tế là cách học tốt nhất. Tuy nhiên, nếu bạn chưa có điều kiện thì vẫn có thể học trên các bộ mô phỏng. Các bộ mô phỏng có một điểm mạnh là cho phép bạn theo dõi nội dung các thanh ghi trong bộ xử lý, thực hiện từng lệnh mã máy. Nhưng các bộ mô phỏng cũng có điểm yếu là không có khả năng mô phỏng một số hiện tượng trong thực tế.

                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

                • chipchipvn
                  Đệ tử 2 túi
                  • Oct 2006
                  • 43

                  #9
                  Hức, bác Nam ơi, em lại phải làm phiền bác rùi! MPLAB xong rùi nhưng khi em chuyển qua bên Proteus giả lập lại báo lỗi, bác xem hộ em với, em chả hiểu nó nói gì nữa. Sau khi em nap file hex vào rồi chạy thử nó báo lỗi sau
                  [U1] Loading HEX file '..\..\..\..\Documents and Settings\Administrator\My Documents\test-copy.hex'.
                  FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device

                  Real Time Simulation failed to start

                  Real Time Simulation FAILED.

                  hức, bài này em đã post ở chỗ khác nhưng hình như bác không thấy. Em xin lỗi nhưng em bí quá làm liều bác ạ.

                  Comment

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

                    #10
                    Nguyên văn bởi chipchipvn View Post
                    Hức, bác Nam ơi, em lại phải làm phiền bác rùi! MPLAB xong rùi nhưng khi em chuyển qua bên Proteus giả lập lại báo lỗi, bác xem hộ em với, em chả hiểu nó nói gì nữa. Sau khi em nap file hex vào rồi chạy thử nó báo lỗi sau
                    [U1] Loading HEX file '..\..\..\..\Documents and Settings\Administrator\My Documents\test-copy.hex'.
                    FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device

                    Real Time Simulation failed to start

                    Real Time Simulation FAILED.

                    hức, bài này em đã post ở chỗ khác nhưng hình như bác không thấy. Em xin lỗi nhưng em bí quá làm liều bác ạ.
                    Ok, đã đọc post đó của bạn nhưng bận quá nên chưa trả lời.

                    Bạn kiểm tra lại xem mã .hex được dịch ra có nằm lọt vào không gian địa chỉ bộ nhớ Flash của chip hay không. Dùng một phần mềm nào đó như WinPic800 để load tập tin .hex vào, và xem mã chương trình nằm ở vùng nhớ nào. Kiểm tra cả bộ nhớ chương trình lẫn EEPROM, chọn đúng chip sẽ được dùng trong Proteus khi mở WinPic800.

                    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

                    • chipchipvn
                      Đệ tử 2 túi
                      • Oct 2006
                      • 43

                      #11
                      Vâng, cảm ơn bác. Em sẽ thử ngay mặc dù chưa bít cái winpic800 là cái gì cả :d

                      Comment

                      • chipchipvn
                        Đệ tử 2 túi
                        • Oct 2006
                        • 43

                        #12
                        Hức, bác ơi, em đã kiểm tra lại bộ nhớ như lời bác nói, chỉ từ 0x00 đến 0x13 thui, chắc là nằm trong bộ nhớ Flash rùi. nhưng nó vẫn báo lỗi như thế ( mặc dù có thay đổi chút đỉnh)

                        Warning: [U1] CFGWORD2 not implemented
                        FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

                        Real Time Simulation failed to start

                        Real Time Simulation FAILED.

                        Sau đó em quay qua phần Help để xem hướng dẫn thì nó bảo add file source code (ten_file*.asm) của mình vào, em làm theo thì nó lại bảo kiếm không ra file ten_file*.COD, hức, đúng là không có file COD thật. Làm sao cho MPLAB tạo ra file COD cho mình hả bác. Hức, em xin lỗi nhưng mới tập tọng vào nghề hỏi hơi nhìu, bác thông cảm cho em.
                        Híc, mấy bữa nay mắc cái Proteus chạy không được nên không biết làm tiếp thế nào Y_Y

                        Comment

                        • spirit
                          Đệ tử 2 túi
                          • Aug 2006
                          • 42

                          #13
                          Nguyên văn bởi chipchipvn View Post
                          Hức, bác ơi, em đã kiểm tra lại bộ nhớ như lời bác nói, chỉ từ 0x00 đến 0x13 thui, chắc là nằm trong bộ nhớ Flash rùi. nhưng nó vẫn báo lỗi như thế ( mặc dù có thay đổi chút đỉnh)

                          Warning: [U1] CFGWORD2 not implemented
                          FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

                          Real Time Simulation failed to start

                          Real Time Simulation FAILED.

                          Sau đó em quay qua phần Help để xem hướng dẫn thì nó bảo add file source code (ten_file*.asm) của mình vào, em làm theo thì nó lại bảo kiếm không ra file ten_file*.COD, hức, đúng là không có file COD thật. Làm sao cho MPLAB tạo ra file COD cho mình hả bác. Hức, em xin lỗi nhưng mới tập tọng vào nghề hỏi hơi nhìu, bác thông cảm cho em.
                          Híc, mấy bữa nay mắc cái Proteus chạy không được nên không biết làm tiếp thế nào Y_Y
                          Câu Error trên của Proteus là dữ liệu bị sai ở địa chỉ 2000H do đó có thể bạn chọn chip mô phỏng bị sai so với cấu hình bạn chọn con Pic trong chương trình của mình.
                          Mình đã sử dụng Proteus cũng được 1 tháng rùi nhưng chưa bao giờ thấy hiện tượng như bạn nêu trên.
                          Bạn nên đưa hình ảnh mô phỏng trên Proteus và Source Code lên đây luôn đi
                          mình sẽ giúp bạn từng bước (nếu có thể).
                          Anh Namqn bận lắm do đó mình sẽ trả lời giúp bạn.

                          Comment

                          • chipchipvn
                            Đệ tử 2 túi
                            • Oct 2006
                            • 43

                            #14
                            Cảm ơn bạn, đây là CODE của mình nhưng mình chạy với MPLAB SIM không có vấn đề nên mình nghĩ là do không biết xài Proteus thui!

                            ;================================================= ==============
                            ;Chuong trinh dieu khien LED bat tat
                            ;An 1 cai LED sang, an tiep LED tat
                            ;================================================= ==============
                            Title "LED_2"
                            Processor p16f88
                            Include <p16f88.inc>
                            ;================================================= ===============
                            ORG 0x0000

                            Goto Main
                            ORG 0x0005

                            Main
                            banksel TRISB
                            clrf TRISB
                            movlw 2h
                            movwf TRISB
                            Goto Check
                            Check
                            Btfsc PORTB,1
                            Goto Check
                            Call Switch
                            Switch
                            btfss PORTB,0
                            bsf PORTB,0
                            bcf PORTB,0
                            Return
                            End

                            Còn đây là file *.DSN dùng trong Proteus của mình, mình không chụp hết được cả cái mạch ^^



                            Còn con Chip thì mình dùng 16F88 trong Proteus, mình không biết nó sai ở đâu nữa.
                            Cảm ơn spirit!
                            Last edited by chipchipvn; 18-10-2006, 03:32 PM.

                            Comment

                            • spirit
                              Đệ tử 2 túi
                              • Aug 2006
                              • 42

                              #15
                              Hello chipchipvn,đọc sơ qua mã nguồn bạn viết ở trên thấy rằng nó không tối ưu.Để tối nay mình về sẽ test lại giùm bạn và trả lời bạn trong thời gian sớm nhất.
                              Mình nghĩ bạn nên học và viết cho Pic 16F877A luôn đi bởi vì chức năng của nó là nhất trong dòng 16F và trên PICVIETNAM có rất nhiều bài ứng dụng cho nó( bạn có thể search ).
                              Còn học nó như thế nào thì trên diẽn đàn cũng đã nói rất nhiều,bạn chịu khó tìm kiếm nhé.
                              Khi học Pic thì cố gắng làm trên mạch thật bởi vì Proteus nhiều lúc mô phỏng chạy được nhưng khi đưa trên mạch thật thì bó phép(vì các điều kiện bên ngoài không lý tưởng...).

                              Về mạch nạp thì bạn có thể mua mạch nạp của PICVIETNAM để ủng hộ(giá rất sinh viên).Về mạch thực hành thì bạn có thể thiết kế cho riêng mình.
                              Nếu ngại làm thì bạn có thể mua mạch của lớp học PIC ở Hà Nội do anh BINHANH làm.Khoảng 400k thôi nhưng vừa nạp và thục hành luôn.

                              Chúc bạn có nhiều niềm vui khi hoc Pic.

                              Comment

                              Working...