Querido Pibe: Aquí te dejo un ejemplito de encender apagar un led por RD1
Espero te sirva.
PD: Oscilador externo a XT.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ledblink.asm: Blinks an LED on port D1
;;
;; By Ian Smith-Heisters ian{remove this}\at 0x09{remove this}.com
;; 12-04-2004: Started
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
title "Hello World"
List p=18f452,f=inhx32
#include <p18f452.inc>
__CONFIG _CONFIG1H, _OSCS_ON_1H & _XT_OSC_1H ; External Clock on OSC1 & OSC2
__CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_OFF_2L ; Brown out reset on at 2.0V, no power-up timer
__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H ; watchdog off, postscaler count to 128
__CONFIG _CONFIG3H, _CCP2MX_ON_3H ; CCP2 pin Mux enabled. What is this?
__CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_ON_4L & _DEBUG_OFF_4L ; Stack under/overflow reset on, LVP on, debug off
__CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L ; all protection off
__CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
__CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
__CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
__CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
__CONFIG _CONFIG7H, _EBTRB_OFF_7H
org 0x0000
COUNT1 equ 0x01
COUNT2 equ 0x02
clrf TRISD ; set all bits in TRISD to zero.
Main
bsf PORTD, RD1 ; set bit RD1 in the PORTD register
call Delay
bcf PORTD, RD1 ; clear bit RD1 in the PORTD register
call Delay
goto Main
Delay
setf COUNT1 ; set all the bits in COUNT1, eg. set it equal to 255
setf COUNT2
Loop1 ; this is a label since it's in the first column
decfsz COUNT1, F ; decrement COUNT1, store result in COUNT1, skip next line if COUNT1 is zero<
goto Loop1 ; loop - gets skipped if COUNT1 == 0
setf COUNT1 ; reinit COUNT1
decfsz COUNT2, F
goto Loop1
return
end