Está en la página 1de 5

;******************************************************************************

LIST P=18F4550 ;directiva para efinir el procesador


#include <P18F4550.INC> ;definiciones de variables especificas del procesador

;******************************************************************************
;Bits de configuracin
;CONFIG FOSC = INTOSC_XT ;Oscilador INT usado por el uC , XT usado por el USB
CONFIG BOR = OFF ;BROWNOUT RESET DESHABILITADO
CONFIG PWRT = ON ;PWR UP Timer habilitado
CONFIG WDT = OFF ;Temporizador vigia apagado
CONFIG MCLRE=OFF ;Reset apagado
CONFIG PBADEN=OFF
CONFIG LVP = OFF
;******************************************************************************
;Definiciones de variables
CBLOCK 0x000 ;ejemplo de definicin de variables en RAM de
acceso
flags

ENDC ;fin del bloque de constantes
;******************************************************************************
;Reset vector
ORG 0x0000
bra inicio
org 0x08 ;vector de alta prioridad
bra RST0 ;ramifica servicio interrupcion T0
org 0x18 ;vector de baja prioridad
bra RSINT
org 0x0020

;Inicio del programa principal
inicio ;bsf OSCCON,IRCF2,0
;bsf OSCCON,IRCF1,0
;bcf OSCCON,IRCF0,0 ;Oscilador interno a 4 MHz
movlw 0x0F
movwf ADCON1,0 ;Puertos Digitales
clrf PORTD,0
clrf TRISD,0 ;Puerto D Configurado como salida
movlw 0x95
movwf T0CON,0 ;timer 16 bits prescalerX64
movlw 0XE0
movwf INTCON,0 ;interrupciones TMR0,prioridad habilitada
bsf RCON,IPEN,0 ;habilitamos prioridades de
interrupcion
movlw 0xE1
movwf TMR0H,0
movlw 0x7c
movwf TMR0L,0 ;valor de precarga para 500ms a 4MHz
movlw 0x88
movwf INTCON3,0 ;habilitamos int1 en baja prioridad
cero movlw 0xC0 ;cdigo del cero
movwf PORTD,0
call repite
btfss flags,1,0
bra nueve
uno movlw 0xF9 ;cdigo del uno
movwf PORTD,0
call repite
btfss flags,1,0
bra cero
dos movlw 0xA4 ;cdigo del dos
movwf PORTD,0
call repite
btfss flags,1,0
bra uno
tres movlw 0xB0 ;cdigo del tres
movwf PORTD,0
call repite
btfss flags,1,0
bra dos
cuatro movlw 0x99 ;cdigo del cuatro
movwf PORTD,0
call repite
btfss flags,1,0
bra tres
cinco movlw 0x92 ;cdigo del cinco
movwf PORTD,0
call repite
btfss flags,1,0
bra cuatro
seis movlw 0x82 ;cdigo del seis
movwf PORTD,0
call repite
btfss flags,1,0
bra cinco
siete movlw 0xB8 ;cdigo del siete
movwf PORTD,0
call repite
btfss flags,1,0
bra seis
ocho movlw 0x80 ;cdigo del ocho
movwf PORTD,0
call repite
btfss flags,1,0
bra siete
nueve movlw 0x98 ;cdigo del nueve
movwf PORTD,0
call repite
btfss flags,1,0
bra ocho
bra cero
;******************************************************************************
repite btfss flags,0,0
bra repite
bcf flags,0,0
return
;******************************************************************************
RST0 bcf INTCON,TMR0IF,0 ;apagamos bandera timer0
movlw 0xE1
movwf TMR0H,0
movlw 0x7c
movwf TMR0L,0 ;valor de precarga para 500ms a 4MHz
bsf flags,0,0
retfie
;********************************************************************
RSINT bcf INTCON3,INT1IF,0 ;Limpiamos bandera de interrupcin
btg flags,1,0 ;bit monitor de interrupcion
retfie
END

También podría gustarte