+ Responder Tópico
  1. #1
    Membro
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Jun 2003
    Mensagens
    575
    Verdinhas
    0

    Ajuda microprocessador PIC16F84A

    Acho que este problema tem amis a ver com este fórum, já que é referente à disciplina de "Prática em Arquiteturas de Computadores", então se alguém aí programa microcontroladores poderia me ajudar nisto?

    Eu construi esse fonte, creio que não tenha nenhum problema nele, mas na hora de jogar no MPLAB e compilar, ele fala que não foi selecionado o banco certo pro TRISB... mas tá da mesma maneira que foi nos passado... Tem algo errado neste fonte? Aparecem 156 erros no MPLAB, olhando assim por cima eu diria que ele não está reconhecendo o processador certo (PIC16F84A)

    []'s
    Joni_

    (o codigo ficou desalinhado aqui mas no MPLAB está certinho - tirei um pouco do final do codigo pq alem de repetitivo pode no maximo 10000 caracteres no post)

    Código:
    				PROCESSOR	PIC16F84A
    				INCLUDE 	"P16F84A.INC"
    				RADIX		DEC
    				ORG		H'0C'
    VOLTAACA:		        GOTO            DECLARA	
    
    				ORG		H'00'
    				MOVLW		B'00001111'
    				BSF		STATUS , RP0 ; BANCO 1
    				MOVWF		TRISB
    				BCF		STATUS , RP0 ; BANCO 0		
    				BCF		PORTB , LED1
    				BCF		PORTB , LED0
    				BCF		PORTB , LED9
    	
    TESTA:			BTFSS		PORTB , SW  ; IF (SW ==0) {
    		        CALL		INICIO		; sw é zero
    			GOTO		TESTA		; sw é 5v
    
    DECLARA:                NOP	    
    COUNT_1			RES 		1
    COUNT_2			RES 		1
    COUNT_3			RES 		1
    LED1	   		EQU		6
    LED0			EQU		5
    LED9			EQU		4
    SW			EQU		3
    BOOL0			EQU		2
    BOOL1			EQU		1
    BOOL2			EQU		0
      			GOTO            VOLTAACA
    	
    ACENDE1:		BSF	 PORTB,LED1                           
    			MOVLW		D'255'
    			MOVWF		COUNT_1
    TANTOFA:		MOVLW		D'255'
    			MOVWF		COUNT_2
    TNTFAZ:			MOVLW		D'4'
    			MOVWF		COUNT_3
    LOOP:			DECFSZ		COUNT_3
    			GOTO		LOOP
    LOOP2:			DECFSZ		COUNT_2
    			GOTO		TNTFAZ
    			DECFSZ		COUNT_1
    			GOTO		TANTOFA
    			BCF		    PORTB , LED1
    			RETURN
    		
    		
    ACENDE0:		BSF  PORTB ,LED0     ; ACENDE LED NORMAL 
    			MOVLW		D'255'
    			MOVWF		COUNT_1
    TANTOFA:		MOVLW		D'255'
    			MOVWF		COUNT_2
    TNTFAZ:			MOVLW		D'4'
    			MOVWF		COUNT_3
    LOOP:			DECFSZ		COUNT_3
    			GOTO		LOOP
    LOOP2:			DECFSZ		COUNT_2
    			GOTO		TNTFAZ
    			DECFSZ		COUNT_1
    			GOTO		TANTOFA
    			BCF		    PORTB , LED0
    			RETURN		
    		
    		
    ACENDE9:		BSF  PORTB ,LED9              				        MOVLW		D'255'
    			MOVWF		COUNT_1
    TANTOFA:		MOVLW		D'255'
    			MOVWF		COUNT_2
    TNTFAZ:			MOVLW		D'4'
    			MOVWF		COUNT_3
    LOOP:			DECFSZ		COUNT_3
    			GOTO		LOOP
    LOOP2:			DECFSZ		COUNT_2
    			GOTO		TNTFAZ
    			DECFSZ		COUNT_1
    			GOTO		TANTOFA
    			BCF			PORTB , LED9
    			RETURN		
    		
    		
    OUTROCHAR:		MOVLW		D'255'                                 ; EXECUTA PEQUENO INTERVALO ENTRE OS [O] E [-]
    				MOVWF		COUNT_1
    TANTOFAZ:		MOVLW		D'255'
    				MOVWF		COUNT_2
    TNTFAZ:			MOVLW		D'4'
    				MOVWF		COUNT_3
    LOOP:			DECFSZ		COUNT_3
    				GOTO		LOOP
    LOOP2:			DECFSZ		COUNT_2
    				GOTO		TNTFAZ
    				DECFSZ		COUNT_1
    				GOTO		TANTOFAZ
    				RETURN		
    		
    		
    		
    CHAR_A:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_B:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_C:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_D:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_E:			CALL		ACENDE_1
    				RETURN
    		
    CHAR_F:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_G:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_H:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_I:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_J:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_K:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_L:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_M:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_N:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_O:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_P:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_Q:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_R			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_S:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    		
    CHAR_T:			CALL		ACENDE_0
    				RETURN
    		
    CHAR_U:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_V:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_W:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_X:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_Y:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_Z:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN
    					
    CHAR_1:			CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN
    		
    CHAR_2:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN	
    		
    CHAR_3:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN			
    		
    CHAR_4:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_0
    				RETURN			
    		
    CHAR_5:			CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN			
    		
    CHAR_6:			CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN	
    				
    CHAR_7:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN	
    					
    CHAR_8:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				CALL		ACENDE_1
    				RETURN	
    				
    CHAR_9:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_1
    				RETURN			
    		
    				
    CHAR_0:			CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				CALL		ACENDE_0
    				RETURN			
    		
    INICIO :		BTFSC		PORTB , BOOL0	; IF (BOOL0 != 0)
    				GOTO		APERTOU		;   THEN CALL APERTOU ;
    				BTFSC		PORTB , BOOL1	; IF (BOOL1 != 0)
    				GOTO		APERTOU		;   THEN CALL APERTOU ;
    				BTFSC		PORTB , BOOL2	; IF (BOOL2 != 0)
    				GOTO		APERTOU		;   THEN CALL APERTOU
    RETORNASILVIO:	CALL		INICIO		; ELSE CALL INICIO
    		
    APERTOU:		BTFSC		PORTB , BOOL0	; BOOL0 <> 0 ?        [BOOL2][BOOL1][BOOL0]
    				GOTO		APERTOUXX1	; SIM - BOOL0 É 1
    				GOTO		APERTOUXX0	; NÃO - BOOL0 É 0
    		
    APERTOUXX1:		BTFSC		PORTB , BOOL1	; <> 0 ?
    				GOTO		APERTOUX11	; SIM
    				GOTO		APERTOUX01	; NAO
    		
    APERTOUXX0:		BTFSC		PORTB , BOOL1
    				GOTO		APERTOUX10
    				GOTO		MSG4		; SÓ PODE SER 100, POIS 000 NÃO ENTRARIA EM LOOP
    		
    APERTOUX11:		BTFSC		PORTB , BOOL2	; <> 0 ?
    				GOTO		MSG7		; SIM		111
    				GOTO		MSG3		; NAO		011
    		
    APERTOUX01:		BTFSC		PORTB , BOOL2	; <> 0 ?
    				GOTO		MSG5		; SIM		101
    				GOTO		MSG1		; NAO		001
    		
    APERTOUX10:		BTFSC		PORTB , BOOL2	; <> 0 ?
    				GOTO		MSG7		; SIM		110
    				GOTO		MSG3		; NAO		010
    		
    MSG1:			CALL		CHAR_S
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				CALL		CHAR_S
    				CALL		OUTROCHAR
    				GOTO		RETORNASILVIO
    		
    MSG7:			CALL		CHAR_P
    				CALL		OUTROCHAR
    				CALL		CHAR_I
    				CALL		OUTROCHAR
    				CALL		CHAR_C
    				CALL		OUTROCHAR
    				CALL		CHAR_1
    				CALL		OUTROCHAR
    				CALL		CHAR_6
    				CALL		OUTROCHAR
    				CALL		CHAR_F
    				CALL		OUTROCHAR
    				CALL		CHAR_8
    				CALL		OUTROCHAR
    				CALL		CHAR_4
    				CALL		OUTROCHAR
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				GOTO		RETORNASILVIO
    		
    MSG3:			CALL		CHAR_E
    				CALL		OUTROCHAR
    				CALL		CHAR_S
    				CALL		OUTROCHAR
    				CALL		CHAR_T
    				CALL		OUTROCHAR
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_M
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				CALL		CHAR_S
    				CALL		OUTROCHAR
    				CALL		ACENDE_9
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_F
    				CALL		OUTROCHAR
    				CALL		CHAR_U
    				CALL		OUTROCHAR
    				CALL		CHAR_N
    				CALL		OUTROCHAR
    				CALL		CHAR_D
    				CALL		OUTROCHAR
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_N
    				CALL		OUTROCHAR
    				CALL		CHAR_D
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				GOTO		RETORNASILVIO
    		
    
    		
    MSG2:			CALL		CHAR_T
    				CALL		OUTROCHAR
    				CALL		CHAR_E
    				CALL		OUTROCHAR
    				CALL		CHAR_R
    				CALL		OUTROCHAR
    				CALL		CHAR_R
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				CALL		CHAR_R
    				CALL		OUTROCHAR
    				CALL		CHAR_I
    				CALL		OUTROCHAR
    				CALL		CHAR_S
    				CALL		OUTROCHAR
    				CALL		CHAR_T
    				CALL		OUTROCHAR
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_S
    				CALL		OUTROCHAR
    				CALL		ACENDE_9
    				CALL		CHAR_N
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				CALL		ACENDE_9
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_V
    				CALL		OUTROCHAR
    				CALL		CHAR_I
    				CALL		OUTROCHAR
    				CALL		CHAR_A
    				CALL		OUTROCHAR
    				CALL		CHAR_O
    				CALL		OUTROCHAR
    				GOTO		RETORNASILVIO
    				END

  2. # Publicidade
    Publicidade

+ Responder Tópico Ir para o Fórum

Assuntos do tópico

Compartilhar

Permissões