如何修复 MPLABX IDE 中的此语法错误?

问题描述 投票:0回答:1

我是 PIC 初学者,我想让 LED 亮起来。 但是,每次我想要构建代码时,它都会返回语法错误。我不确定语法错误实际上是什么,因为我已经复制了数据表的语法。

我使用的是 MPLABX IDE v6.15,带有 XC8 编译器 v2.41。

[请让我知道您想要的任何进一步信息?]

我的整个汇编代码:

list p=16f84A ;PIC used is PIC16f84A
#include <xc.inc>
__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_OFF
;__CONFIG _CONFIG1 & H'3FFF'& H'3FFB' & H'3FFD' & H'3FFF'
;CP OFF, WDT OFF, XT_OSC[crystal required], PWRTE OFF
BSF 03h, 1 ;03h = STATUS
MOVLW 00000 ;All pins are output
MOVWF 85h ;TRISA
BCF 03h,1 ;Back to Bank 0
MOVLW 00010 ;W, bit 1 pin is high
MOVWF 05h ;Move 00010 into PortA register
;LED should now light up

之前我曾尝试使用#include“p16f84a.inc”,以便使用STATUS、TRISA、PORTA等,但返回错误说找不到文件,因此我转而使用寄存器内存地址,例如03h,这已经消除了该错误。

目前我的输出屏幕返回此:

"C:\Program Files\Microchip\xc8\v2.41\pic-as\bin\pic-as.exe" -mcpu=PIC16F84A -c \
-o build/default/production/TurnLEDOn2.o \
TurnLEDOn2.asm \
  -mdfp="C:/Program Files/Microchip/MPLABX/v6.15/packs/Microchip/PIC16Fxxx_DFP/1.4.149/xc8"  -msummary=+mem,-psect,-class,-hex,-file,-sha1,-sha256,-xml,-xmlfull -fmax-errors=20 -mwarn=0 -xassembler-with-cpp
TurnLEDOn2.asm:3:: error: (876) syntax error
make: *** [build/default/production/TurnLEDOn2.o] Error 1
(908) exit status = 1
nbproject/Makefile-default.mk:110: recipe for target 'build/default/production/TurnLEDOn2.o' failed

BUILD FAILED (exit value 2, total time: 660ms)

被标记为语法错误的行是:

__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_OFF
但是我不确定这一行的语法错误是什么。

因此,如果有人能够突出显示我的程序中的任何问题,以便我可以修复它,并希望代码能够成功构建,我将不胜感激。

谢谢你

assembly syntax pic mplab
1个回答
0
投票

你的代码中有很多错误...... 尝试类似...

processor 16F84A 
    
#include <xc.inc>
    
radix       dec         ;default are decade numbers

PSECT code
 
; CONFIG
  CONFIG  FOSC = XT     ; Oscillator Selection bits (XT oscillator)
  CONFIG  WDTE = OFF    ; Watchdog Timer (WDT disabled)
  CONFIG  PWRTE = OFF   ; Power-up Timer Enable bit (Power-up Timer is disabled)
  CONFIG  CP = OFF      ; Code Protection bit (Code protection disabled)
 
 
code:
    BSF     STATUS, 1   ;03h = STATUS
    MOVLW   0b00000     ;All pins are output
    MOVWF   TRISA       ;TRISA
    BCF     STATUS,1    ;Back to Bank 0
    MOVLW   0b00010     ;W, bit 1 pin is high
    MOVWF   PORTA       ; Move 00010 into PortA register
Loop:
    nop
    goto Loop
    
END code
© www.soinside.com 2019 - 2024. All rights reserved.