我是 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
但是我不确定这一行的语法错误是什么。
因此,如果有人能够突出显示我的程序中的任何问题,以便我可以修复它,并希望代码能够成功构建,我将不胜感激。
谢谢你
你的代码中有很多错误...... 尝试类似...
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