MPLAB X "Hello, World !".¶
1.XC8 - C Language.¶
// Configuration Registers.
#pragma config FOSC=INTOSC, WDTE=OFF, PWRTE=OFF, MCLRE=ON, CP=OFF
#pragma config CPD=OFF, BOREN=OFF, CLKOUTEN=ON, IESO=OFF, FCMEN=OFF
#pragma config WRT=OFF, PLLEN=OFF, STVREN=ON, BORV=LO, LVP=ON
#include <xc.h>
// PIC12F1822 - Compile with XC8(v2.45).
// PIC12F1822 - @8MHz Internal Oscillator.
// Clock OUT Enable.
// MCU.RA4 -> OSCILLOSCOPE.PROBE.A.
// Main.
void main(void)
{
// MCU Initialization.
// Internal Oscillator Settings.
OSCCON = 0b01110000;
// Ports Settings.
// PORT Data Register.
PORTA = 0b00000000;
// TRIS Data Direction.
TRISA = 0b00000000;
// WPU Disable.
OPTION_REGbits.nWPUEN = 0b1;
// LATCH Outputs.
LATA = 0b00000000;
// ALTERNATE Pin Function.
APFCON = 0b00000000;
// ANSEL Analog.
ANSELA = 0b00000000;
// WPU Weak Pull-up.
WPUA = 0b00000000;
while(1){
}
}
2.PIC-AS - Assembly Instructions.¶
- Project Properties > pic-as Global Options > pic-as Linker
- Reset Vector: -presect_vector=0000h
- Initialization code: -pcinit=0005h
; Configuration Registers.
CONFIG FOSC=INTOSC
CONFIG WDTE=OFF
CONFIG PWRTE=OFF
CONFIG MCLRE=ON
CONFIG CP=OFF
CONFIG CPD=OFF
CONFIG BOREN=OFF
CONFIG CLKOUTEN=ON
CONFIG IESO=OFF
CONFIG FCMEN=OFF
CONFIG WRT=OFF
CONFIG PLLEN=OFF
CONFIG STVREN=ON
CONFIG BORV=LO
CONFIG LVP=ON
#include <xc.inc>
; PIC12F1822 - Compile with PIC-AS(v2.45).
; PIC12F1822 - @8MHz Internal Oscillator.
; -preset_vec=0000h, -pcinit=0005h.
; Clock OUT Enable.
; MCU.RA4 -> OSCILLOSCOPE.PROBE.A.
; Reset Vector.
PSECT reset_vec,class=CODE,space=0,delta=2
resetVector:
GOTO initialize
; Main.
PSECT cinit,class=CODE,space=0,delta=2
initialize:
; MCU Initialization.
; Internal Oscillator Settings.
MOVLB 0x01
MOVLW 0b01110000
MOVWF OSCCON
; Ports Settings.
; PORT Data Register.
MOVLB 0x00
MOVLW 0b00000000
MOVWF PORTA
; TRIS Data Direction.
MOVLB 0x01
MOVLW 0b00000000
MOVWF TRISA
; WPU Disable.
BSF nWPUEN
; LATCH Outputs.
MOVLB 0x02
MOVLW 0b00000000
MOVWF LATA
; ALTERNATE Pin Function.
MOVLW 0b00000000
MOVWF APFCON
; ANSEL Analog.
MOVLB 0x03
MOVLW 0b00000000
MOVWF ANSELA
; WPU Weak Pull-up.
MOVLB 0x04
MOVLW 0b00000000
MOVWF WPUA
loop:
BRA $
END resetVector
- For display "Data & Program Memory Usage":
- Project Properties > Loading > Load symbols when programming...
-
For display "Psect Usage Map":
- Project Properties > pic-as Global Options
- Option categories > (Check) Program section (psect)
-
For display "Memory Class Usage":
- Project Properties > pic-as Global Options
- Option categories > (Check) Class