Thông báo

Collapse
No announcement yet.

cần trợ giúp về lập trình asm bằng mplap

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

  • cần trợ giúp về lập trình asm bằng mplap

    mình vừa bắt đầu tìm hiểu pic nên có chút khó khăn mong các b chỉ bảo .
    mình copy đoạn code điều khiển led từ giáo trình vào phần mềm mplap làm đúng các bước theo hướng dẫn trong sách khi dịch thì báo lỗi không biết thiếu cái gì . mình nghĩ code thì viết đúng nhưng mấy cái dòng đầu thì không biết thế đã đủ chưa , #include hay include thôi là đúng . Còn nữa là đoạn lệnh _config........ là gì . mình copy cả code và phần khi dịch báo lỗi cho các b chỉ nhé .
    CODE:


    processor 16f877a ; khai baùo vi ñieàu khieån
    include <p16f877a.inc> ; header file ñính keøm
    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC &
    _WRT_OFF & _LVP_OFF & _CPD_OFF
    ; khai baùo caùc “Configuration bits”
    ;--------------------------------------------------------------------------------------------------------------
    ;Khai baùo bieán
    ;--------------------------------------------------------------------------------------------------------------
    count1 EQU 0x20 ; duøng cho chöông trình delay
    counta EQU 0x21 ; duøng cho chöông trình delay
    countb EQU 0x22 ; duøng cho chöông trình delay
    ORG 0x000 ; ñòa chæ baét ñaàu chöông trình
    GOTO start
    start ; chöông trình chính baét ñaàu taïi ñaây
    BCF STATUS,RP1
    BCF STATUS,RP0 ; choïn BANK0
    CLRF PORTB ; xoùa PORTB
    BSF STATUS,RP0 ; choïn BANK1
    MOVLW 0x00
    MOVWF TRISB ; PORTB <- outputs
    BCF STATUS,RP0 ; choïn BANK0
    MOVLW 0x8F ; giaù trò baát kì caàn ñöa ra PORTB
    MOVWF PORTB ; PORTB <- 8Fh
    loop CALL delay100ms ; goïi chöông trình con delay100ms
    RRF PORTB,1 ; dòch phaûi PORTB
    GOTO loop ; voøng laëp voâ haïn
    delay100ms
    MOVLW d’100’
    MOVWF count1
    d1 MOVLW 0xC7
    MOVWF counta
    MOVLW 0x01
    MOVWF countb
    delay_0
    DECFSZ counta,1
    GOTO $+2
    DECFSZ countb,1
    GOTO delay_0
    DECFSZ count1,1
    GOTO d1 ; delay 100ms
    RETLW 0x00 ; trôû veà chöông trình chính
    END ; keát thuùc chöông trình


    KHI DỊCH THÌ NÓ BÁO LỖI THẾ NÀY :


    ----------------------------------------------------------------------
    Debug build of project `C:\Documents and Settings\Administrator.DHHH-314BA344EC\My Documents\bhjb.mcp' started.
    Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37
    Preprocessor symbol `__DEBUG' is defined.
    Thu Jan 24 18:35:11 2013
    ----------------------------------------------------------------------
    Clean: Deleting intermediary and output files.
    Clean: Deleted file "C:\Documents and Settings\Administrator.DHHH-314BA344EC\My Documents\bhjb.mcs".
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877A "bbbbbb.asm" /l"bbbbbb.lst" /e"bbbbbb.err" /d__DEBUG=1
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 3 : Found directive in column 1. (processor)
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 4 : Found directive in column 1. (include)
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 5 : Found directive in column 1. (__CONFIG)
    Error[128] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 5 : Missing argument(s)
    Error[108] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 6 : Illegal character (&)
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 14 : Found directive in column 1. (ORG)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 15 : Found opcode in column 1. (GOTO)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 17 : Found opcode in column 1. (BCF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 18 : Found opcode in column 1. (BCF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 19 : Found opcode in column 1. (CLRF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 20 : Found opcode in column 1. (BSF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 21 : Found opcode in column 1. (MOVLW)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 22 : Found opcode in column 1. (MOVWF)
    Message[302] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 22 : Register in operand not in bank 0. Ensure that bank bits are correct.
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 23 : Found opcode in column 1. (BCF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 24 : Found opcode in column 1. (MOVLW)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 25 : Found opcode in column 1. (MOVWF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 27 : Found opcode in column 1. (RRF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 28 : Found opcode in column 1. (GOTO)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 30 : Found opcode in column 1. (MOVLW)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 30 : Symbol not previously defined (d’100’)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 31 : Found opcode in column 1. (MOVWF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 33 : Found opcode in column 1. (MOVWF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 34 : Found opcode in column 1. (MOVLW)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 35 : Found opcode in column 1. (MOVWF)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 37 : Found opcode in column 1. (DECFSZ)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 38 : Found opcode in column 1. (GOTO)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 39 : Found opcode in column 1. (DECFSZ)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 40 : Found opcode in column 1. (GOTO)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 41 : Found opcode in column 1. (DECFSZ)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 42 : Found opcode in column 1. (GOTO)
    Warning[203] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 43 : Found opcode in column 1. (RETLW)
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.DHHH-314BA344EC\MY DOCUMENTS\BBBBBB.ASM 44 : Found directive in column 1. (END)
    Halting build on first failure as requested.
    ----------------------------------------------------------------------
    Debug build of project `C:\Documents and Settings\Administrator.DHHH-314BA344EC\My Documents\bhjb.mcp' failed.
    Language tool versions: MPASMWIN.exe v5.37, mplink.exe v4.37, mplib.exe v4.37
    Preprocessor symbol `__DEBUG' is defined.
    Thu Jan 24 18:35:24 2013
    ----------------------------------------------------------------------
    BUILD FAILE


    MÌNH ĐÃ XEM QUA CẤU TRÚC CHƯƠNG TRÌNH ASM RỒI THÌ THẤY KHÔNG CÓ GÌ SAI NGOẠI TRỪ TRƯỚC
    INCLUDE PHẢI THÊM # . MÌNH ĐÃ SỬA LẠI NHƯNG KHI DỊCH VẪN BÁO LỖI . VẬY MONG CÁC B CHỈ GIÚP . THANKSSSS
    Ph.vmr

  • #2
    CHuyển qua dùng C đi thôi, dùng chi asm nữa, khi cần thì có thể chèn mã asm trong C được mà bạn.

    Comment


    • #3
      mình sửa lại như sau và thấy biên dịch không có lỗi
      Code:
      processor 16f877a ; khai baùo vi ñieàu khieån
      include <p16f877a.inc> ; header file ñính keøm
      __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
      ; khai baùo caùc “Configuration bits”
      ;--------------------------------------------------------------------------------------------------------------
      ;Khai baùo bieán
      ;--------------------------------------------------------------------------------------------------------------
      count1 EQU 0x20 ; duøng cho chöông trình delay
      counta EQU 0x21 ; duøng cho chöông trình delay
      countb EQU 0x22 ; duøng cho chöông trình delay
      ORG 0x000 ; ñòa chæ baét ñaàu chöông trình
      GOTO start
      start ; chöông trình chính baét ñaàu taïi ñaây
      BCF STATUS,RP1
      BCF STATUS,RP0 ; choïn BANK0
      CLRF PORTB ; xoùa PORTB
      BSF STATUS,RP0 ; choïn BANK1
      MOVLW 0x00
      MOVWF TRISB ; PORTB <- outputs
      BCF STATUS,RP0 ; choïn BANK0
      MOVLW 0x8F ; giaù trò baát kì caàn ñöa ra PORTB
      MOVWF PORTB ; PORTB <- 8Fh
      loop CALL delay100ms ; goïi chöông trình con delay100ms
      RRF PORTB,1 ; dòch phaûi PORTB
      GOTO loop ; voøng laëp voâ haïn
      delay100ms
      MOVLW .100
      MOVWF count1
      d1 MOVLW 0xC7
      MOVWF counta
      MOVLW 0x01
      MOVWF countb
      delay_0
      DECFSZ counta,1
      GOTO $+2
      DECFSZ countb,1
      GOTO delay_0
      DECFSZ count1,1
      GOTO d1 ; delay 100ms
      RETLW 0x00 ; trôû veà chöông trình chính
      END ; keát thuùc chöông trình

      Comment


      • #4
        thanks các b . mình cũng đã sửa được rồi . có đoạn CONFIG ....... gì đó moình bỏ đi lun vẫn chạy binh thường vậy thì không biết nó để làm gì . mình mới học nên chon asm vì các giáo trình mình thấy toàn víduj về asm . sau quen mình sẽ chuyển sang c .
        Ph.vmr

        Comment


        • #5
          _CONFIG dùng để cấu hình một số chức năng và chế độ hoạt động của PIC, dùng C hay ASM hay các IDE khác đều phải config cho nó, có thể config bằng lệnh (thông qua dòng __CONFIG) hoặc là config bằng chức năng config có sẵn trong IDE. Còn muốn biết cụ thể ý nghĩa thì phải tra trong datasheet thôi

          Comment


          • #6
            Nguyên văn bởi xe đạp Xem bài viết
            _CONFIG dùng để cấu hình một số chức năng và chế độ hoạt động của PIC, dùng C hay ASM hay các IDE khác đều phải config cho nó, có thể config bằng lệnh (thông qua dòng __CONFIG) hoặc là config bằng chức năng config có sẵn trong IDE. Còn muốn biết cụ thể ý nghĩa thì phải tra trong datasheet thôi
            vậy sao minh bỏ luôn đoạn config đi nhưng chương trình dịch ra vãn chạy đúng ( mô phỏng)
            Ph.vmr

            Comment


            • #7
              Nguyên văn bởi xe đạp Xem bài viết
              _CONFIG dùng để cấu hình một số chức năng và chế độ hoạt động của PIC, dùng C hay ASM hay các IDE khác đều phải config cho nó, có thể config bằng lệnh (thông qua dòng __CONFIG) hoặc là config bằng chức năng config có sẵn trong IDE. Còn muốn biết cụ thể ý nghĩa thì phải tra trong datasheet thôi
              vậy sao minh bỏ luôn đoạn config đi nhưng chương trình dịch ra vãn chạy đúng ( mô phỏng)
              Ph.vmr

              Comment


              • #8
                Nguyên văn bởi phonghp91 Xem bài viết
                vậy sao minh bỏ luôn đoạn config đi nhưng chương trình dịch ra vãn chạy đúng ( mô phỏng)
                mô phỏng chạy đc nhưng khi nạp chip sẽ báo lỗi

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                • mèomướp
                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                  bởi mèomướp
                  Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                  hôm nay, 13:11
                • tuyennhan
                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                  bởi tuyennhan
                  Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                  hôm nay, 09:25
                • tuyennhan
                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                  bởi tuyennhan
                  Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                  Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                  hôm nay, 09:10
                • Ng.Phuong.5
                  Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                  bởi Ng.Phuong.5
                  Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                  Mấy con...
                  Hôm qua, 19:44
                • viettinh
                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                  bởi viettinh
                  Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                  Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                  Hôm qua, 18:12
                • nguyendinhvan
                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                  bởi nguyendinhvan
                  Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                  Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                  Cách đơn giản...
                  Hôm qua, 00:04
                • mèomướp
                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                  bởi mèomướp
                  Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                  08-01-2025, 19:02
                • tuyennhan
                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                  bởi tuyennhan
                  Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                  08-01-2025, 15:43
                • tuyennhan
                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                  bởi tuyennhan
                  Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                  08-01-2025, 15:28
                • mèomướp
                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                  bởi mèomướp
                  Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                  08-01-2025, 11:44
                Đang tải...
                X