Autor Tema: ayuda con un programa  (Leído 5875 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Hector_c89

  • PIC10
  • *
  • Mensajes: 14
ayuda con un programa
« en: 25 de Marzo de 2009, 20:54:08 »
hola, el motivo de mi peticion es solamente para preguntar si alguien tendra el programa que imita las funsiones
de las torretas de led´s de las unidades de emergencia, es desir, RB1 y RB2 flashean 2 veses por segundo o un poco antes, se apagan y le toca el turno a RB3 y RB4 de flashear 2 veses por segundo.

en este proyecto utilizare el pic16f84-A
con oscilador de cuarzo de 4 mhz.

El motivo de mi peticion es para intentar crear una barra de led´s que sirban de precaucion en la parte de atras de el camion de bomberos que manejo en mi trabajo y evitar algun percance.

ya se utilizar el programa MPLAB Y IC-PROG
solo me falta conseguir el programa espero me ayuden ya que aun soy nobato en esto de los pic´s






Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #1 en: 26 de Marzo de 2009, 01:38:26 »
si te quieres iniciar en la programacion pasate por aqui,  para empezar esta bien...respecto al programa de pronto este hace lo q tu quieres

Código: [Seleccionar]

LIST P=16F84A
#INCLUDE "P16F84A.INC"

CBLOCK 0X0C
PDel0
PDel1
ENDC

ORG 0
GOTO INICIO

INICIO BSF STATUS,5
           CLRF PORTB
           CLRF PORTA
           BCF STATUS,5
         
           CLRF PORTB

BUCLE  MOVLW B'00000011'
           MOVWF PORTB
           CALL DEMORA ;retardo de 500mS
           CLRF PORTB
           CALL DEMORA
   MOVLW B'00000011'
           MOVWF PORTB
           CALL DEMORA
           CLRF PORTB
   CALL DEMORA

           MOVLW B'00001100'
           MOVWF PORTB
           CALL DEMORA
           CLRF PORTB
           CALL DEMORA
   MOVLW B'00001100'
           MOVWF PORTB
           CALL DEMORA
           CLRF PORTB
           CALL DEMORA
           GOTO BUCLE

;**********RUTINA DE RETARDO***********
DEMORA    movlw     .239     
                 movwf     PDel0   
PLoop1      movlw     .232     
                 movwf     PDel1   
PLoop2      clrwdt             
PDelL1      goto PDelL2         
PDelL2      goto PDelL3         
PDelL3      clrwdt             
                decfsz    PDel1, 1
                goto      PLoop2   
                decfsz    PDel0,  1
                goto      PLoop1   
PDelL4      goto PDelL5         
PDelL5      goto PDelL6         
PDelL6      goto PDelL7         
PDelL7      clrwdt             
        return   

END
« Última modificación: 28 de Marzo de 2009, 23:57:00 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Hector_c89

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con un programa
« Respuesta #2 en: 27 de Marzo de 2009, 16:26:30 »
Gracias por el programa JHOZATE.  :P

ahora solo me falta hacer que flashen 2 beses por segundo o menos

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #3 en: 27 de Marzo de 2009, 18:41:30 »
pss haber este programa lo q hace es prender el bit 1 y 2 de puertob, se mantienen encendidos por medio segundo, se apagan, y luego se vuelven a prender por medio segundo y luego hace lo mismo con los bit 3 y 4 de puertob,,,no se si entendi mal lo q pretendias con el programa??
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ayuda con un programa
« Respuesta #4 en: 28 de Marzo de 2009, 06:06:53 »
Jhozate creo que si las luces son  potentes y su consumo alto en vez de hacer dos BSF consecutivos seria mejor hacer.
MOVLW   00000011
MOVWF   PORTB
O por lo menos meterle intercalados tres NOP entre los BSF. Y para el tres y cuatro igual. La serie 16f no tiene latchs en los puertos y no seria raro que como lo pones tu encendiera las luces como a el le pareciera.

saludos tapi8

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ayuda con un programa
« Respuesta #5 en: 28 de Marzo de 2009, 06:51:03 »
Se me olvidaba. supongo, aunque no lo especifica, que no estaran siempre funcionando sino que funcionaran cuando el quiera, seria bueno pnerle un pulsador, interruptor, para que el desde la cabina pueda ponerlo a funcionar cuando lo crea conveniente.


saludos tapi8

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #6 en: 28 de Marzo de 2009, 10:40:47 »
Jhozate creo que si las luces son  potentes y su consumo alto en vez de hacer dos BSF consecutivos seria mejor hacer.
MOVLW   00000011
MOVWF   PORTB
O por lo menos meterle intercalados tres NOP entre los BSF. Y para el tres y cuatro igual. La serie 16f no tiene latchs en los puertos y no seria raro que como lo pones tu encendiera las luces como a el le pareciera.

saludos tapi8

sera q sil las luces son potentes se puede visualizar q primero prende uno y luego otro? por q son instrucciones de microsegundos...en todos caso si,,mejor hacerlo como dices tu.

 cuando se fabrique la pcb puede ponerle el interruptor en la alimentacion del pic.

saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Hector_c89

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con un programa
« Respuesta #7 en: 28 de Marzo de 2009, 13:48:34 »
exacto la funcion ke me especificas jhozate, pero me resulto un problema con el programa porque se activa el bit 1 y 2, se apagan y despues se activa bit 3 y 4 no hace la funcion de prender 2 veses el bit 1 y 2 y despues el 3 y 4. ya lo comprobe programando y armando el circuito.

a de tener algun pekeño error el programa.


ya me puse a verificar el programa para ver cual es el error pero como aun estoy aprendiendo me va a resultar algo dificil.




Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #8 en: 28 de Marzo de 2009, 13:51:03 »
dame un momento lo edito y lo vuelvo a poner
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #9 en: 28 de Marzo de 2009, 14:07:51 »
revisa este, si quieres q parpadeen mas rapido pss es solo modificar la rutina de tiempo
Código: [Seleccionar]

LIST P=16F84A
#INCLUDE "P16F84A.INC"

CBLOCK 0X0C
PDel0
PDel1
ENDC

ORG 0
GOTO INICIO

INICIO BSF STATUS,5
           CLRF PORTB
           CLRF PORTA
           BCF STATUS,5
         
           CLRF PORTB

BUCLE  MOVLW B'00000011'
           MOVWF PORTB
           CALL DEMORA ;retardo de 500mS
           CLRF PORTB
           CALL DEMORA
   MOVLW B'00000011'
           MOVWF PORTB
           CALL DEMORA
           CLRF PORTB
   CALL DEMORA

           MOVLW B'00001100'
           MOVWF PORTB
           CALL DEMORA
           CLRF PORTB
           CALL DEMORA
   MOVLW B'00001100'
           MOVWF PORTB

           CALL DEMORA
           CLRF PORTB
           CALL DEMORA
           GOTO BUCLE

;**********RUTINA DE RETARDO***********
DEMORA    movlw     .239     
                 movwf     PDel0   
PLoop1      movlw     .232     
                 movwf     PDel1   
PLoop2      clrwdt             
PDelL1      goto PDelL2         
PDelL2      goto PDelL3         
PDelL3      clrwdt             
                decfsz    PDel1, 1
                goto      PLoop2   
                decfsz    PDel0,  1
                goto      PLoop1   
PDelL4      goto PDelL5         
PDelL5      goto PDelL6         
PDelL6      goto PDelL7         
PDelL7      clrwdt             
        return   

END
« Última modificación: 29 de Marzo de 2009, 00:01:37 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #10 en: 28 de Marzo de 2009, 14:25:54 »
bueno si entra por aqui alguien mas entendido en asm, quisiera despejar una duda por q me paso algo raro cuando editaba el programa

resulta q tenía el siguiente codigo
Código: [Seleccionar]
MOVLW B'00000110'
MOVWF PORTB
CALL DEMORA
CLRF PORTB
CALL DEMORA
MOVWF PORTB ;  en este línea, en simulacion me mostraba otro numero? por que? se supone q w venia cargado con w=00000110,
CALL DEMORA
.
.
.

para solucionarlo me toco volver a poner la instruccion MOVLW B'00000110', sera q en la vida real pasará lo mismo,, o sera un bug?
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Hector_c89

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con un programa
« Respuesta #11 en: 28 de Marzo de 2009, 15:09:49 »
 :P gracias por la correccion jhozate
mañana queco el programa y armo el circuito para checar su funcionamiento.

ahorita no puedo ya me encuentro en el trabajo y salgo asta mañana.

un saludo desde proteccion civil

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: ayuda con un programa
« Respuesta #12 en: 28 de Marzo de 2009, 17:44:14 »
jhozate tal y como lo tienes en el segundo post no te puede funcionar, viene de hacer la demora y por tanto de hacer operaciones aritmeticas (DECFSZ) estas operaciones las hace en W (registro de la ALU) asi que al retornar de la demora sabe dios lo que tiene ahi, tienes que volver a mover el dato a W,
MOVLW   0b00000110 
MOVWF   PORTB,
Ota cosa, yo creo que hector cuando dice en bit 1 y 2, realmente se refiere a bits 0 y 1 porque ya ha dicho que no sabia programar, y los que no saben programar empiezan a contar desde 1 y no desde 0. Esto es intuicion.
En la etiqueta en vez de "A" llamale BUCLE, MAIN o HECTOR, de esto no estoy seguro pero nunca vi una etiqueta con una letra solo, y por si acaso.

saludos tapi8

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: ayuda con un programa
« Respuesta #13 en: 28 de Marzo de 2009, 23:53:36 »
 :shock: :D :D :D claro como se me paso eso? despues de la rutina de tiempo w debe retornar con algun dato, bueno yo hice el programa tal como dijo hector con los bit 1 al 4..pero si funciona al menos en simulacion , de todas manera voy a corregirlo

saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Hector_c89

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con un programa
« Respuesta #14 en: 29 de Marzo de 2009, 00:15:37 »
jajaja yo lo explique desde el bit 1 para no confundirlos y resulto contraproducente  :D


 

anything