# [PROBLEMA!] Proyecto Contador con PIC16F84A



## deathcore1 (Mar 21, 2010)

Primero Hola a la comunidad y a quien se de un tiempito para ayudarme!

Bueno estoy haciendo un proyecto para la universidad, de un Contador con PIC16F84A, el problema es que soy super principiante en esto...conocimientos bajisimos en lo que es programacion en assembler. Hoy me baje un tutorial de como usar el MPLAB ya que estamos usando un programador PICSTART Plus de Microchip.
Usando el MPLAB V7.30 segui todos los pasos .... luego apreto f10 para ver si tengo errores y me salen unos warning y unos errores.


```
Make: The target "C:\Documents and Settings\Administrador\Escritorio\jose\joselucez.o" is out of date.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "joselucez.asm" /l"joselucez.lst" /e"joselucez.err"
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 95 : Found label after column 1. (R0L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 96 : Found label after column 1. (R0H)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 97 : Found label after column 1. (R1L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 98 : Found label after column 1. (R1H)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 99 : Found label after column 1. (R2L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 100 : Found label after column 1. (R2H)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 101 : Found label after column 1. (R3L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 102 : Found label after column 1. (R3H)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 103 : Found label after column 1. (R4L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 104 : Found label after column 1. (R4H)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 105 : Found label after column 1. (R5L)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 106 : Found label after column 1. (R5H)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 108 : Overwriting previous address contents (0000)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 108 : Overwriting previous address contents (0000)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 112 : Overwriting previous address contents (0004)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 112 : Overwriting previous address contents (0004)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 116 : Overwriting previous address contents (0005)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 116 : Overwriting previous address contents (0005)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 117 : Overwriting previous address contents (0006)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 117 : Overwriting previous address contents (0006)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 118 : Overwriting previous address contents (0007)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 118 : Overwriting previous address contents (0007)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 120 : Overwriting previous address contents (0008)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 120 : Overwriting previous address contents (0008)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 121 : Overwriting previous address contents (0009)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 121 : Overwriting previous address contents (0009)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 124 : Found label after column 1. (digito)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 126 : Overwriting previous address contents (000A)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 126 : Overwriting previous address contents (000A)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 127 : Overwriting previous address contents (000B)
Error[118]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 127 : Overwriting previous address contents (000B)
Error[173]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 310 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM)
Halting build on first failure as requested.
BUILD FAILED: Mon Mar 22 03:32:19 2010
```



*Y el problema es que nose como repararlos y tengo solo dos dias para hacerlo!..(Hoy es domingo, y el martes tengo que presentarlo)*

*Este es el programa:*


```
;**********************************************************************
;   This file is a basic code template for assembly code generation   *
;   on the PICmicro PIC16F84A. This file contains the basic code      *
;   building blocks to build upon.                                    *  
;                                                                     *
;   If interrupts are not used all code presented between the ORG     *
;   0x004 directive and the label main can be removed. In addition    *
;   the variable assignments for 'w_temp' and 'status_temp' can       *
;   be removed.                                                       *                        
;                                                                     *
;   Refer to the MPASM User's Guide for additional information on     *
;   features of the assembler (Document DS33014).                     *
;                                                                     *
;   Refer to the respective PICmicro data sheet for additional        *
;   information on the instruction set.                               *
;                                                                     *
;   Template file assembled with MPLAB V4.00.00 and MPASM V2.20.12.   *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Filename:	    xxx.asm                                           *
;    Date:                                                            *
;    File Version:                                                    *
;                                                                     *
;    Author:                                                          *
;    Company:                                                         *
;                                                                     * 
;                                                                     *
;**********************************************************************
;                                                                     *
;    Files required:                                                  *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************


	list      p=16F84A            ; list directive to define processor
	#include <p16F84A.inc>        ; processor specific variable definitions

	__CONFIG   _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.




;***** VARIABLE DEFINITIONS
w_temp        EQU     0x0C        ; variable used for context saving 
status_temp   EQU     0x0D        ; variable used for context saving








;**********************************************************************
		ORG     0x000             ; processor reset vector
  		goto    main              ; go to beginning of program


		ORG     0x004             ; interrupt vector location
		movwf   w_temp            ; save off current W register contents
		movf	STATUS,w          ; move status register into W register
		movwf	status_temp       ; save off contents of STATUS register


; isr code can go here or be located as a call subroutine elsewhere


		movf    status_temp,w     ; retrieve copy of STATUS register
		movwf	STATUS            ; restore pre-isr STATUS register contents
		swapf   w_temp,f
		swapf   w_temp,w          ; restore pre-isr W register contents
		retfie                    ; return from interrupt



main

; remaining code goes here

; Begin
	R0L EQU 0xC
	R0H EQU 0xD
	R1L EQU 0xE
	R1H EQU 0xF
	R2L EQU 0x10
	R2H EQU 0x11
	R3L EQU 0x12
	R3H EQU 0x13
	R4L EQU 0x14
	R4H EQU 0x15
	R5L EQU 0x16
	R5H EQU 0x17
	ORG 0x0000
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0002
	ORG 0x0004
	RETFIE
L0002:
; 1: AllDigital
; 2: TRISA = %11111111
	BSF STATUS,RP0
	MOVLW 0xFF
	MOVWF 0x05
; 3: TRISB = %00000000
	CLRF 0x06
	BCF STATUS,RP0
; 4: Dim digito As Byte
;       The address of 'digito' is 0x18
	digito EQU 0x18
; 5: PORTB = 63
	MOVLW 0x3F
	MOVWF 0x06
; 6: digito = 0
	CLRF 0x18
; 7: loop: 
L0001:
; 8: If PORTA.0 = 1 Then
	BTFSS 0x05,0
	GOTO L0003
; 9: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 10: If digito = 10 Then
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,Z
	GOTO L0004
; 11: digito = 0
	CLRF 0x18
; 12: Endif
L0004:	MOVLW 0x1F
	ANDWF STATUS,F
; 13: If digito <= 10 Then
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,C
	GOTO L0005
; 14: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 15: digito = digito + 1
	MOVF 0x18,W
	ADDLW 0x01
	MOVWF 0x18
; 16: PORTB = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x03f), digito
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,C
	GOTO L0006
	CALL L0007
	MOVWF 0x06
	GOTO L0006
L0007:
	MOVLW 0x00
	MOVWF PCLATH
	MOVF 0x18,W
	ADDWF PCL,F
	RETLW 0x3F
	RETLW 0x06
	RETLW 0x5B
	RETLW 0x4F
	RETLW 0x66
	RETLW 0x6D
	RETLW 0x7D
	RETLW 0x07
	RETLW 0x7F
	RETLW 0x6F
	RETLW 0x3F
L0006:
; 17: Endif
L0005:	MOVLW 0x1F
	ANDWF STATUS,F
; 18: Endif
L0003:	MOVLW 0x1F
	ANDWF STATUS,F
; 19: 
; 20: If PORTA.1 = 1 Then
	BTFSS 0x05,1
	GOTO L0008
; 21: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 22: If digito = 0 Then
	MOVF 0x18,W
	SUBLW 0x00
	BTFSS STATUS,Z
	GOTO L0009
; 23: digito = 10
	MOVLW 0x0A
	MOVWF 0x18
; 24: Endif
L0009:	MOVLW 0x1F
	ANDWF STATUS,F
; 25: If digito >= 0 Then
	MOVLW 0x00
	SUBWF 0x18,W
	BTFSS STATUS,C
	GOTO L0010
; 26: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 27: digito = digito - 1
	MOVLW 0x01
	SUBWF 0x18,W
	MOVWF 0x18
; 28: PORTB = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), digito
	MOVF 0x18,W
	SUBLW 0x09
	BTFSS STATUS,C
	GOTO L0011
	CALL L0012
	MOVWF 0x06
	GOTO L0011
L0012:
	MOVLW 0x00
	MOVWF PCLATH
	MOVF 0x18,W
	ADDWF PCL,F
	RETLW 0x3F
	RETLW 0x06
	RETLW 0x5B
	RETLW 0x4F
	RETLW 0x66
	RETLW 0x6D
	RETLW 0x7D
	RETLW 0x07
	RETLW 0x7F
	RETLW 0x6F
L0011:
; 29: Endif
L0010:	MOVLW 0x1F
	ANDWF STATUS,F
; 30: Endif
L0008:	MOVLW 0x1F
	ANDWF STATUS,F
; 31: Goto loop
	GOTO L0001
; End of program
L0013:	GOTO L0013
; Waitms Routine
W001:	MOVF R0L,F
	BTFSC STATUS,Z
	GOTO W002
	CALL W003
	DECF R0L,F
	NOP
	NOP
	NOP
	NOP
	NOP
	GOTO W001
W002:	MOVF R0H,F
	BTFSC STATUS,Z
	RETURN
	CALL W003
	DECF R0H,F
	DECF R0L,F
	GOTO W001
W003:	MOVLW 0x0C
	MOVWF R2H
W004:	DECFSZ R2H,F
	GOTO W004
	NOP
	NOP
	MOVLW 0x12
	MOVWF R1L
W005:	DECFSZ R1L,F
	GOTO W006
	CALL W007
	CALL W007
	NOP
	NOP
	RETURN
W006:	CALL W007
	GOTO W005
W007:	MOVLW 0x0D
	MOVWF R2L
W008:	DECFSZ R2L,F
	GOTO W008
	NOP
	RETURN
; End of listing


      
	    END                     ; directive 'end of program'
```



*Esta es la foto del circuito el cual ya tengo armado*
http://3.bp.blogspot.com/_cg7SpBv9sAw/Swt00GutcbI/AAAAAAAAAV8/qTEuQOzh1vU/s1600/Contador+con+pic.JPG

*Y la lista de componentes:*
--1 Pic 16F84A.
--3 Pulsadores.
--2 Capacitores Cerámicos de 22pF.
--2 Capacitores Cerámicos de 100nF.
--4 Resistencias de 330R Ohmios 1/2 Watt.
--1 Resistencia de 100R Ohmios 1/2 Watt.
--1 Led. --1 Display de Cátodo Común.
--1 Cristal de Cuarzo de 4MHz.

*El codigo .hex, .asm y .bas*
http://www.mediafire.com/?onemdt1zm35

Gracias de antemano!


*NOTA: Disculpen si este tema no corresponde a este sub-foro*


----------



## denianke (Mar 21, 2010)

Error[173]   C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM 310 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\JOSE\JOSELUCEZ.ASM)

Ese error lo puedes solucionar utilizando una carpeta en un directorio mas corto para  guardar tus proyectos como C:\ProyectosPic


----------



## Elvic (Mar 21, 2010)

saludos.
nose si sea este el problema en cuestión, pero puedes probar 

En MPLAB la ruta donde guarda tus codigos di importa es decir que si tu guardas tus codigo por ejmeplo enC:\Documents and Settings\loquesea\Escritorio\codigos , no los puede compilar.
así que lo que es recomendable es crear una carpeta lo mas cercana a C: o la letra que tenga tu unidad de disco. 

por ejemplo puedes usar 

C:\codigos

suerte


----------



## deathcore1 (Mar 21, 2010)

Hola gracias por sus consejo..he cambiado la ruta...a una mas cercana a C. Y si disminuyeron algunos errores....pero sigo teniendo los demas, los errores y warning son estos.


```
Make: The target "C:\ProyectoPIC\proyecpic.o" is out of date.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "proyecpic.asm" /l"proyecpic.lst" /e"proyecpic.err"
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 96 : Found label after column 1. (R0L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 97 : Found label after column 1. (R0H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 98 : Found label after column 1. (R1L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 99 : Found label after column 1. (R1H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 100 : Found label after column 1. (R2L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 101 : Found label after column 1. (R2H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 102 : Found label after column 1. (R3L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 103 : Found label after column 1. (R3H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 104 : Found label after column 1. (R4L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 105 : Found label after column 1. (R4H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 106 : Found label after column 1. (R5L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 107 : Found label after column 1. (R5H)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 109 : Overwriting previous address contents (0000)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 109 : Overwriting previous address contents (0000)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 113 : Overwriting previous address contents (0004)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 113 : Overwriting previous address contents (0004)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 117 : Overwriting previous address contents (0005)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 117 : Overwriting previous address contents (0005)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 118 : Overwriting previous address contents (0006)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 118 : Overwriting previous address contents (0006)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 119 : Overwriting previous address contents (0007)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 119 : Overwriting previous address contents (0007)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 121 : Overwriting previous address contents (0008)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 121 : Overwriting previous address contents (0008)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 122 : Overwriting previous address contents (0009)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 122 : Overwriting previous address contents (0009)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 125 : Found label after column 1. (digito)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 127 : Overwriting previous address contents (000A)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 127 : Overwriting previous address contents (000A)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 128 : Overwriting previous address contents (000B)
Error[118]   C:\PROYECTOPIC\PROYECPIC.ASM 128 : Overwriting previous address contents (000B)
Halting build on first failure as requested.
BUILD FAILED: Mon Mar 22 13:04:18 2010
```

*y el programa sigue siendo el mismo*


```
;**********************************************************************
;   This file is a basic code template for assembly code generation   *
;   on the PICmicro PIC16F84A. This file contains the basic code      *
;   building blocks to build upon.                                    *  
;                                                                     *
;   If interrupts are not used all code presented between the ORG     *
;   0x004 directive and the label main can be removed. In addition    *
;   the variable assignments for 'w_temp' and 'status_temp' can       *
;   be removed.                                                       *                        
;                                                                     *
;   Refer to the MPASM User's Guide for additional information on     *
;   features of the assembler (Document DS33014).                     *
;                                                                     *
;   Refer to the respective PICmicro data sheet for additional        *
;   information on the instruction set.                               *
;                                                                     *
;   Template file assembled with MPLAB V4.00.00 and MPASM V2.20.12.   *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Filename:	    xxx.asm                                           *
;    Date:                                                            *
;    File Version:                                                    *
;                                                                     *
;    Author:                                                          *
;    Company:                                                         *
;                                                                     * 
;                                                                     *
;**********************************************************************
;                                                                     *
;    Files required:                                                  *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;                                                                     *
;                                                                     *
;                                                                     *
;**********************************************************************


	list      p=16F84A            ; list directive to define processor
	#include <p16F84A.inc>        ; processor specific variable definitions

	__CONFIG   _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.




;***** VARIABLE DEFINITIONS
w_temp        EQU     0x0C        ; variable used for context saving 
status_temp   EQU     0x0D        ; variable used for context saving








;**********************************************************************
		ORG     0x000             ; processor reset vector
  		goto    main              ; go to beginning of program


		ORG     0x004             ; interrupt vector location
		movwf   w_temp            ; save off current W register contents
		movf	STATUS,w          ; move status register into W register
		movwf	status_temp       ; save off contents of STATUS register


; isr code can go here or be located as a call subroutine elsewhere


		movf    status_temp,w     ; retrieve copy of STATUS register
		movwf	STATUS            ; restore pre-isr STATUS register contents
		swapf   w_temp,f
		swapf   w_temp,w          ; restore pre-isr W register contents
		retfie                    ; return from interrupt



main

; remaining code goes here


; Begin
	R0L EQU 0xC
	R0H EQU 0xD
	R1L EQU 0xE
	R1H EQU 0xF
	R2L EQU 0x10
	R2H EQU 0x11
	R3L EQU 0x12
	R3H EQU 0x13
	R4L EQU 0x14
	R4H EQU 0x15
	R5L EQU 0x16
	R5H EQU 0x17
	ORG 0x0000
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0002
	ORG 0x0004
	RETFIE
L0002:
; 1: AllDigital
; 2: TRISA = %11111111
	BSF STATUS,RP0
	MOVLW 0xFF
	MOVWF 0x05
; 3: TRISB = %00000000
	CLRF 0x06
	BCF STATUS,RP0
; 4: Dim digito As Byte
;       The address of 'digito' is 0x18
	digito EQU 0x18
; 5: PORTB = 63
	MOVLW 0x3F
	MOVWF 0x06
; 6: digito = 0
	CLRF 0x18
; 7: loop: 
L0001:
; 8: If PORTA.0 = 1 Then
	BTFSS 0x05,0
	GOTO L0003
; 9: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 10: If digito = 10 Then
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,Z
	GOTO L0004
; 11: digito = 0
	CLRF 0x18
; 12: Endif
L0004:	MOVLW 0x1F
	ANDWF STATUS,F
; 13: If digito <= 10 Then
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,C
	GOTO L0005
; 14: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 15: digito = digito + 1
	MOVF 0x18,W
	ADDLW 0x01
	MOVWF 0x18
; 16: PORTB = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x03f), digito
	MOVF 0x18,W
	SUBLW 0x0A
	BTFSS STATUS,C
	GOTO L0006
	CALL L0007
	MOVWF 0x06
	GOTO L0006
L0007:
	MOVLW 0x00
	MOVWF PCLATH
	MOVF 0x18,W
	ADDWF PCL,F
	RETLW 0x3F
	RETLW 0x06
	RETLW 0x5B
	RETLW 0x4F
	RETLW 0x66
	RETLW 0x6D
	RETLW 0x7D
	RETLW 0x07
	RETLW 0x7F
	RETLW 0x6F
	RETLW 0x3F
L0006:
; 17: Endif
L0005:	MOVLW 0x1F
	ANDWF STATUS,F
; 18: Endif
L0003:	MOVLW 0x1F
	ANDWF STATUS,F
; 19: 
; 20: If PORTA.1 = 1 Then
	BTFSS 0x05,1
	GOTO L0008
; 21: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 22: If digito = 0 Then
	MOVF 0x18,W
	SUBLW 0x00
	BTFSS STATUS,Z
	GOTO L0009
; 23: digito = 10
	MOVLW 0x0A
	MOVWF 0x18
; 24: Endif
L0009:	MOVLW 0x1F
	ANDWF STATUS,F
; 25: If digito >= 0 Then
	MOVLW 0x00
	SUBWF 0x18,W
	BTFSS STATUS,C
	GOTO L0010
; 26: WaitMs 100
	MOVLW 0x64
	MOVWF R0L
	CLRF R0H
	CALL W001
; 27: digito = digito - 1
	MOVLW 0x01
	SUBWF 0x18,W
	MOVWF 0x18
; 28: PORTB = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), digito
	MOVF 0x18,W
	SUBLW 0x09
	BTFSS STATUS,C
	GOTO L0011
	CALL L0012
	MOVWF 0x06
	GOTO L0011
L0012:
	MOVLW 0x00
	MOVWF PCLATH
	MOVF 0x18,W
	ADDWF PCL,F
	RETLW 0x3F
	RETLW 0x06
	RETLW 0x5B
	RETLW 0x4F
	RETLW 0x66
	RETLW 0x6D
	RETLW 0x7D
	RETLW 0x07
	RETLW 0x7F
	RETLW 0x6F
L0011:
; 29: Endif
L0010:	MOVLW 0x1F
	ANDWF STATUS,F
; 30: Endif
L0008:	MOVLW 0x1F
	ANDWF STATUS,F
; 31: Goto loop
	GOTO L0001
; End of program
L0013:	GOTO L0013
; Waitms Routine
W001:	MOVF R0L,F
	BTFSC STATUS,Z
	GOTO W002
	CALL W003
	DECF R0L,F
	NOP
	NOP
	NOP
	NOP
	NOP
	GOTO W001
W002:	MOVF R0H,F
	BTFSC STATUS,Z
	RETURN
	CALL W003
	DECF R0H,F
	DECF R0L,F
	GOTO W001
W003:	MOVLW 0x0C
	MOVWF R2H
W004:	DECFSZ R2H,F
	GOTO W004
	NOP
	NOP
	MOVLW 0x12
	MOVWF R1L
W005:	DECFSZ R1L,F
	GOTO W006
	CALL W007
	CALL W007
	NOP
	NOP
	RETURN
W006:	CALL W007
	GOTO W005
W007:	MOVLW 0x0D
	MOVWF R2L
W008:	DECFSZ R2L,F
	GOTO W008
	NOP
	RETURN
; End of listing
	







		END                     ; directive 'end of program'
```

*Saludos! ojala me puedan ayudar.*


----------



## Chico3001 (Mar 21, 2010)

Estas repitiendo las directivas ORG en estas partes del codigo:


```
ORG     0x000             ; processor reset vector
  		goto    main              ; go to beginning of program


		ORG     0x004             ; interrupt vector location
		movwf   w_temp            ; save off current W register contents
		movf	STATUS,w          ; move status register into W register
		movwf	status_temp       ; save off contents of STATUS register
```



```
; Begin
	R0L EQU 0xC
	R0H EQU 0xD
	R1L EQU 0xE
	R1H EQU 0xF
	R2L EQU 0x10
	R2H EQU 0x11
	R3L EQU 0x12
	R3H EQU 0x13
	R4L EQU 0x14
	R4H EQU 0x15
	R5L EQU 0x16
	R5H EQU 0x17
	ORG 0x0000
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0002
	ORG 0x0004
	RETFIE
```

Las maneras de arreglar ese error son:

1.- Eliminar uno de los 2 ORGs repetidos
2.- Cambiar el ORG para que apunte a alguna otra direccion

En tu caso creo que es mas simple quitar el segundo juego de ORGs para que no interfiera con el primer juego


----------



## deathcore1 (Mar 21, 2010)

Hola, bueno justamente estaban repetidos, borre estos:


```
; Begin
	R0L EQU 0xC
	R0H EQU 0xD
	R1L EQU 0xE
	R1H EQU 0xF
	R2L EQU 0x10
	R2H EQU 0x11
	R3L EQU 0x12
	R3H EQU 0x13
	R4L EQU 0x14
	R4H EQU 0x15
	R5L EQU 0x16
	R5H EQU 0x17
	[B][COLOR="Blue"]ORG 0x0000[/COLOR][/B]
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0002
	[B][COLOR="Blue"]ORG 0x0004[/COLOR][/B]
	RETFIE
```

*y se desaparecieron los errores y me salio BUILD SUCCEEDED, pero me siguen apareciendo unos warnig, los cuales no se como sacarlos y no se si afectan al funcionamiento.*


```
Make: The target "C:\ProyectoPIC\proyecpic.o" is out of date.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "proyecpic.asm" /l"proyecpic.lst" /e"proyecpic.err"
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 96 : Found label after column 1. (R0L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 97 : Found label after column 1. (R0H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 98 : Found label after column 1. (R1L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 99 : Found label after column 1. (R1H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 100 : Found label after column 1. (R2L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 101 : Found label after column 1. (R2H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 102 : Found label after column 1. (R3L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 103 : Found label after column 1. (R3H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 104 : Found label after column 1. (R4L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 105 : Found label after column 1. (R4H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 106 : Found label after column 1. (R5L)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 107 : Found label after column 1. (R5H)
Warning[207] C:\PROYECTOPIC\PROYECPIC.ASM 123 : Found label after column 1. (digito)
Loaded C:\ProyectoPIC\proyecpic.COD.
BUILD SUCCEEDED: Mon Mar 22 20:18:04 2010
```

*Ojala me puedan seguir ayudando! GRACIAS.*


----------



## Chico3001 (Mar 21, 2010)

los Warning no son tan importantes... en tu caso especifico solo necesitas añadir un espacio o un tabulador antes de cada etiqueta para irlos desapareciendo...


----------



## deathcore1 (Mar 21, 2010)

Bueno mira le di un tabulador y los warning, y no desaparecieron, y lo que hize fue sacarles el tabulador, asi:


```
; Begin
[COLOR="Blue"]R0L EQU 0xC
R0H EQU 0xD
R1L EQU 0xE
R1H EQU 0xF
R2L EQU 0x10
R2H EQU 0x11
R3L EQU 0x12
R3H EQU 0x13
R4L EQU 0x14
R4H EQU 0x15
R5L EQU 0x16
R5H EQU 0x17[/COLOR]
	BCF PCLATH,3
	BCF PCLATH,4
	GOTO L0002
	RETFIE
L0002:
; 1: AllDigital
; 2: TRISA = %11111111
	BSF STATUS,RP0
	MOVLW 0xFF
	MOVWF 0x05
; 3: TRISB = %00000000
	CLRF 0x06
	BCF STATUS,RP0
; 4: Dim digito As Byte
;       The address of 'digito' is 0x18
[COLOR="Blue"]digito EQU 0x18[/COLOR]
; 5: PORTB = 63
	MOVLW 0x3F
	MOVWF 0x06
; 6: digito = 0
	CLRF 0x18
; 7: loop:
```

*Y se desaparecienron todos lo warning!*


```
Make: The target "C:\ProyectoPIC\proyecpic.o" is out of date.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "proyecpic.asm" /l"proyecpic.lst" /e"proyecpic.err"
Loaded C:\ProyectoPIC\proyecpic.COD.
BUILD SUCCEEDED: Mon Mar 22 20:38:19 2010
```

*No se si lo que hize estará bien?

Gracias por la ayuda!!*


----------



## Chico3001 (Mar 21, 2010)

Teneiz razon... 

Sip.. tu programa ya fue compilado correctamente, ahora solo falta descargarlo al PIC y ver que funcione adecuadamente....


----------



## deathcore1 (Mar 21, 2010)

Uff! Mil gracias!!! Ojala todo salga de maravilla! 
Si todo sale bien les muestro que paso y como quedo el proyecto!
saludos!!


----------

