list p=16f84 ;Declaración de variables w equ 0x00 estado equ 0x03 ptoa equ 0x05 ptob equ 0x06 intcont equ 0x0b timer equ 0x01 contar equ 0x0c aux equ 0x0d ;Se inicia el programa en la posición 00h de la EEPROM org 0 goto inicio org 0x04 goto interrupcion org 0x05 inicio: bsf estado,5 ;Se coloca 1 en el bit Rp0 para ir a banco 1 movlw 0x1f ;Se ponen 11111 en el registro acumulador movwf ptoa ;Se mueve el valor del registro acumulador al puerto A clrf ptob ;Limpia el registro Puerto B movlw 0xa0 movwf intcont movlw 0x07 movwf timer bcf estado,5 ; Se coloca 0 en el bit Rp0 para ir al banco 0 movlw 0x00 movwf contar movlw 0x3f inicio2: movwf aux movwf ptob ; enviando el valor de W (0x01) al ptoB goto inicio2 interrupcion: incf contar,1 movf contar,0 xorlw 0x20 btfss estado,2 goto salint goto comparar comparar: cero: movf aux,0 xorlw 0x3f btfss estado,2 goto uno movf aux,0 xorlw 0x39; hacer un xor 00111111 con 111001 para que quede 0000110,valor del uno movwf ptob movf ptob,0 movwf aux goto salir uno: movf aux,0 xorlw 0x06 btfss estado,2 goto dos movf aux,0 xorlw 0x5d movwf ptob movf ptob,0 movwf aux goto salir dos: movf aux,0 xorlw 0x5B btfss estado,2 goto tres movf aux,0 xorlw 0x14 ;movf ptob,0 movwf aux movwf ptob goto salir tres: movf aux,0 xorlw 0x4f btfss estado,2 goto cuatro movf aux,0 xorlw 0x29 movwf ptob ;movf ptob,0 movwf aux goto salir cuatro: movf aux,0 xorlw 0x66 btfss estado,2 goto cinco movf aux,0 xorlw 0xb movwf ptob ;movf ptob,0 movwf aux goto salir cinco: movf aux,0 xorlw 0x6d btfss estado,2 goto seis movf aux,0 xorlw 0x10 movwf ptob ;movf ptob,0 movwf aux goto salir seis: movf aux,0 xorlw 0x7d btfss estado,2 goto siete movf aux,0 xorlw 0x7a movwf ptob ;movf ptob,0 movwf aux goto salir siete: movf aux,0 xorlw 0x07 btfss estado,2 goto ocho movf aux,0 xorlw 0x78 movwf ptob ;movf ptob,0 movwf aux goto salir ocho: movf aux,0 xorlw 0x7f btfss estado,2 goto volver movf aux,0 xorlw 0x18 movwf ptob ;movf ptob,0 movwf aux goto salir volver: movlw 0x3f movwf ptob movwf aux goto salir salir: clrf contar salint: movf aux,0 ;CLRW ;movf aux,0 bcf intcont,2 retfie end ; Fin del programa
Saludos.