si claro amigo kedupic.. ya tengo la etapa de potencia.. con transistores BD140 y BD139..y estoy utilizando un voltaje de 24V, a eso me referia ..cuando les digo que cuando los pruebo en display pequeños sin la etapa de potencia..todo em va muy vien .y funciona ..pero cuando lo pongo en la etapa de potencia ..no corre como deberia de ser.... creo que es por el tiempo de activacion que tiene cada digito: aqui les dejo parte del codigo par displayar:
codigo:
Display ;subprograma de barrido de displays
movlw 0x00
movwf PORTA ;inhabilita transistores
movlw .10 ;valor de repeticiones
movwf Cont02
Loopdisp ;muestra el Dato1 -->28us
movf Dato1,W ;dato para decodificar
call tabla ;decodificacion del dato
movwf PORTB ;mueve el dato decodificado al puerto b
bsf PORTA,0 ;habilita Q dato 1
call Retdig ;retardo de digito
bcf PORTA,0 ;deshabilita Q dato 1
nop
nop ;<---<305us (por lo tanto un digito demora 277us)
;muestra el Dato2
movf Dato2,W ;dato para decodificar
call tabla ;decodificacion del dato
movwf PORTB ;mueve el dato decodificado al puerto b
bsf PORTA,1 ;habilita Q dato 2
call Retdig ;retardo de digito
bcf PORTA,1 ;deshabilita Q dato 2
nop
nop
;muestra el Dato3
movf Dato3,W ;dato para decodificar
call tabla ;decodificacion del dato
movwf PORTB ;mueve el dato decodificado al puerto b
bsf PORTA,2 ;habilita Q dato 3
call Retdig ;retardo de digito
bcf PORTA,2 ;deshabilita Q dato 3
nop
nop
;muestra el Dato4
movf Dato4,W ;dato para decodificar
call tabla ;decodificacion del dato
movwf PORTB ;mueve el dato decodificado al puerto b
bsf PORTA,3 ;habilita Q dato 4
call Retdig ;retardo de digito
bcf PORTA,3 ;deshabilita Q dato 4
nop
nop
decfsz Cont02,F ;decrementa Cont02, y si el resultado es cero elude la siguiente instruccion
goto Loopdisp ;repite ciclo <---< 1139us (un barrido de los 4 display demora 1111us)
return ;--->una subrutina de Display demora 11.114ms (11.12ms)
tabla addwf PCL,F
retlw 0x00 ;cuando el digito es 0
retlw 0x02 ;cuando el digito es 1
retlw 0x04 ;cuando el digito es 2
retlw 0x06 ;cuando el digito es 3
retlw 0x08 ;cuando el digito es 4
retlw 0x0A ;cuando el digito es 5
retlw 0x0C ;cuando el digito es 6
retlw 0x0E ;cuando el digito es 7
retlw 0x10 ;cuando el digito es 8
retlw 0x12 ;cuando el digito es 9
Retdig clrf TMR0
Explo2 btfss TMR0,1
goto Explo2 ;(este retardo demora 256us)
return
hay algunas notas de algunos tiempos que no son de interes ...era pa ajustar un tiempo exacto de un segundo en el cronometro ...
ha creo que el problema esta en el tiempo de activacion de cada digito (256us)..me parece que es muy corto..pero muy corto por ahi vi otros ejemplos y le ponen 2ms..probare con eso..haber que tal me va.. pero gracias por todo ..le echare un vistazo a ese enlace que me diste pa la etapa de potencia..tal ves pueda mejorar en algo el mio.....gracias por todo