Problema com conversão (resolvido)

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Problema com conversão (resolvido)

Mensagempor Washburn » 09 Dez 2008 08:05

Pessoal,

Estou fazendo uma rotina de conversão e mux para 4 displays de 7 seg. no PIC16F628A, que posteriormento será usada num "contador" e um "controlador de temperatura" pro meu pequeno acervo (coisa de quem não joga futebol e precisa se divertir com algum joguinho que exercite a memória).


O problema é que quando monto o projeto em prot o board não funciona nada, mas na simulaçao do MPLAB e PIC Simulator funciona normal (se eu tirar a tabela de conversão RETLW funciona no prot o board).



;**********************************************************
; ARQUIVOS DE DEFINICOES
;**********************************************************
#INCLUDE<P16F628A.INC> ;ARQUIVO PADRAO PARA O PIC 16F628
ERRORLEVEL -302
__CONFIG _BOREN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
;***********************************************************
; VARIAVEIS
;***********************************************************
CBLOCK 0X20 CONT_250
VCEN
DMIL
VUNI
VDEZ
VMIL
VMIL_INTERMEDIARIO
CONTADOR_L
CONTADOR_H
H2DEC ENDC
PORTA,4
;********************************************************
; SAIDAS
;********************************************************
#DEFINE DISPLAY PORTB
#DEFINE UNI PORTA,2
#DEFINE DEZ PORTA,6
#DEFINE CEN PORTA,7
;********************************************************
; VETOR DE RESET
;********************************************************
ORG 0X00 GOTO INICIO
;*********************************************************
; INICIO
;*********************************************************
INICIO
BSF STATUS,RP0
BCF STATUS,RP1
MOVLW B'00100000'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB

BCF STATUS,RP0
BCF STATUS,RP1

MOVLW .1
MOVF VCEN
MOVLW .2
MOVWF VDEZ
MOVLW .8
MOVWF VUNI
GOTO MUX
TABELA
ADDWF PCL,F

RETLW B'01111110' ;ZERO
RETLW B'00001100' ;UM
RETLW B'10110110' ;DOIS
RETLW B'10011110' ;TRES
RETLW B'11001100' ;QUATRO
RETLW B'11011010' ;CINCO
RETLW B'11111000' ;SEIS
RETLW B'00001110' ;SETE
RETLW B'11111110' ;OITO
RETLW B'11001110' ;NOVE
;*****************************
MUX

MOVLW .1
CALL TABELA

MOVF VDEZ,W
CALL TABELA
MOVWF DISPLAY
BSF DEZ
CALL DELAY_1MS

BCF DEZ

MOVF VCEN,W
CALL TABELA
MOVWF DISPLAY
BSF CEN
CALL DELAY_1MS

BCF CEN

MOVF VUNI,W
CALL TABELA
MOVWF DISPLAY
BSF UNI
CALL DELAY_1MS

BCF UNI

GOTO MUX

;******************************
DELAY_1MS
MOVLW .250
MOVWF CONT_250

LOOP
DECFSZ CONT_250
GOTO LOOP
RETURN
;***********************************************

END
Editado pela última vez por Washburn em 12 Jan 2009 08:31, em um total de 4 vezes.
Il capolavoro...
Washburn
Bit
 
Mensagens: 31
Registrado em: 24 Jul 2007 09:05
Localização: Maringá / PR

Mensagempor Sergio38br » 09 Dez 2008 09:46

Bom dia, no retorno da tabela onde vc esta salvando os dados que estão no WREG??

[ ]'s (Abraços)

Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor Washburn » 09 Dez 2008 11:34

Apenas move para portb que é o display, por 205us aproximadamente e repete...
Il capolavoro...
Washburn
Bit
 
Mensagens: 31
Registrado em: 24 Jul 2007 09:05
Localização: Maringá / PR

Mensagempor Sergio38br » 09 Dez 2008 12:40

e viu no codigo que vc postou isto depois de chamar os delays??

Código: Selecionar todos
MOVF VDEZ,W
CALL TABELA ;<=== pega o dado
NOP
NOP
CALL DELAY_1MS; <====perde o dado,pois wreg é sobreescrito
MOVWF DISPLAY ; <==== afinal vai mostrar que dado da tabela???
BSF DEZ
CALL DELAY_1MS


[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor Washburn » 09 Dez 2008 14:23

kkkkkk...
Erro grosseiro mesmo! Mas é o seguinte, nos teste eu estava usando o codigo como está agora...
E mesmo com este erro de código, teria que funcionar dois digitos, certo? Mas não funciona nada...
O cabuloso é que, na simulação do MPLAB v.8 funciona normal e no Pic simulator tbm, ja na placa só funciona se eu tirar a tabela de conversao, mover direto pro portb...


Um abraço.
Il capolavoro...
Washburn
Bit
 
Mensagens: 31
Registrado em: 24 Jul 2007 09:05
Localização: Maringá / PR

Mensagempor Washburn » 10 Dez 2008 07:10

Com estas auterações funcionou na simulação e no prot o board.
Só fiquei com duvida porque da outra maneira funciona na simulação e não funciona no prot o board, alguem pode esclarecer este mistério?


DEC_DISP
MOVWF DESLOCAMENTO
MOVLW LOW TABELA
ADDWF DESLOCAMENTO,F
MOVLW HIGH TABELA
BTFSC STATUS,C
ADDLW 0X01
MOVWF PCLATH
MOVF DESLOCAMENTO,W
MOVWF PCL
TABELA
RETLW B'01111110' ;ZERO
RETLW B'00001100' ;UM
RETLW B'10110110' ;DOIS
RETLW B'10011110' ;TRES
RETLW B'11001100' ;QUATRO
RETLW B'11011010' ;CINCO
RETLW B'11111000' ;SEIS
RETLW B'00001110' ;SETE
RETLW B'11111110' ;OITO
RETLW B'11001110' ;NOVE
;*****************************
Il capolavoro...
Washburn
Bit
 
Mensagens: 31
Registrado em: 24 Jul 2007 09:05
Localização: Maringá / PR

Mensagempor Viktor » 10 Jan 2009 15:05

O seu problema de "converção" está no "s". Troca o ç por s que resolve
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor Washburn » 12 Jan 2009 08:38

Valeu pela dica aee... Prof. Pasquale...
Il capolavoro...
Washburn
Bit
 
Mensagens: 31
Registrado em: 24 Jul 2007 09:05
Localização: Maringá / PR


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x