elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Necesito 1 poco de ayuda con el pic...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Necesito 1 poco de ayuda con el pic...  (Leído 6,889 veces)
Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Necesito 1 poco de ayuda con el pic...
« en: 24 Mayo 2008, 17:05 pm »

Buenas, estoy buscando un poco de ayuda para hacer 1 programa para el PIC16F84 en lenguaje ensamblador.

El programa se trata de lo siguiente:
Es un contador de coches de 1 garaje, hay 2 sensores que podrian ser perfectamente 2 entradas del puerto A, asta ahi llego. Tiene que ir contando los coches que entran y salen y sacar un numero del 0 al 9 en un display de 7 segmentos.  Y cuando llegue a 9, (es decir, cuando ya haya 10 coches en el garaje) pues se enciende una luz roja. Mientras tanto estara encendida una luz verde indicando que hay plazas. Ale, a ver si algun alma caritativa m ayuda plis.


En línea

Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #1 en: 25 Mayo 2008, 16:58 pm »

Hey, no sabria decirme ninguno? Eske estoy muy perido :-\


En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #2 en: 26 Mayo 2008, 01:00 am »

Te iba a escribir el programa así explicandote como hacerlo, pero hay una cosa que no me cuadra..dices que hay dos sensores para detectar las entradas de coche...pero no sera uno que detecta entradas y otro salidas? Si es asi es sencillo y te puedo ayudar sin problemas, en 2 minutos tengo el programa.


En línea

Killtrojan Syslog v1.44: ENTRAR
Ferсhu


Desconectado Desconectado

Mensajes: 1.215

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #3 en: 26 Mayo 2008, 01:28 am »

Citar
Te iba a escribir el programa así explicandote como hacerlo, pero hay una cosa que no me cuadra..dices que hay dos sensores para detectar las entradas de coche...pero no sera uno que detecta entradas y otro salidas? Si es asi es sencillo y te puedo ayudar sin problemas, en 2 minutos tengo el programa.

Si creo q es asi, yo intuyo q un sensor es para la salida y otro para la entrada, uno incrementa el contador y otro lo decrementa, la luz verde indicaria q hay espacio disponible, la roja q se lleno la capacidad del garage :p

y seguramente el display lo maneja con el micro.
En línea

Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #4 en: 31 Mayo 2008, 16:38 pm »

Exactamente, uno detecta los coches que entran llamemosle A y el otro los coches que salen (B), uno incrementa un rejistro Auxiliar y el otro lo decrementa antes de mandarlo al portB. Hice un programa, pero tenia fallos...
En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #5 en: 1 Junio 2008, 01:00 am »

Mira..te propongo una cosa que te va a servir más de que yo te escriba el codigo o te lo indique paso a paso, pon tu programa y te correjimos los errores. Así la proxima vez no caeras en ellos  ;)
En línea

Killtrojan Syslog v1.44: ENTRAR
Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #6 en: 1 Junio 2008, 16:18 pm »

Bueno, aqui esta el programa. Lo siento por tardar tanto en responder k ando 1 poco liadillo...
 
LIST      P=16F84
               RADIX     HEX

               TRISA      EQU      0X05
               TRISB      EQU      0X06
               PORTA      EQU      0X05
               PORTB      EQU      0X06
               ESTADO     EQU      0X03
               AUXILIAR   EQU      0X0C
               ORG        0
               BSF        ESTADO,5
               BSF        TRISA,1
               BSF        TRISA,2
               CLRF       PORTB
               CLRF       TRISA,0
               CLRF       TRISA,3
               BCF        ESTADO,5
               BSF        PORTB,0          ;Asi empezamos a contar
               BSF        PORTB,5          ;como si hubiera 5 choches.
               BSF        PORTB,6
               BSF        PORTB,2
               BSF        PORTB,3
               BSF        PORTA,0
               MOVLW      PORTB            ;Movemos el portB al W.
               MOVWF      AUXILIAR         ;Movemos W al registro auxiliar.
SENAB          BTFSC      PORTA,1          ;Si el sensor A detecta coche-> salta a inc
               GOTO       INC
INC            INCF       AUXILIAR         ;Se incrementa el valor en 1.
               CLRF       PORTB            ;Se borra el portB                                           
               MOVLW      AUXILIAR         ;Se mueve el auxiliar a W.
               MOVWF      PORTB            ;Movemos W al portB y si marca
               BTFSC      B'01110011'      ;9 en el display salta a led rojo.
               GOTO       LEDROJO         
               GOTO       SENAB            ;Vuelve a senAB si no dectectan nada el sensorB
               BTFSC      PORTA,2          ;Si el sensor B detecta coche->salta a dec
               GOTO       DEC             
DEC            DECW       AUXILIAR         ;Decrementa AUXILIAR en 1
               MOVLW      AUXILIAR         ;Mueve el auxiliar al W.
               CLRF       PORTB            ;Borra el portB
               MOVWF      PORTB            ;Si el port B era 8 salta a led verde.
               BTFC       B'01111111'
               GOTO       LED VERDE
               GOTO       SENAB            ;Vuelve a senAB si no detectan nada los sensores A y B.
LEDROJO        CLRF       PORTA,3          ;Apaga la luz verde y enciende la roja.
               BSF        PORTA,4
               GOTO       SENAB           
LEDVERDE       BSF        PORTA,3          ;Apaga la luz roja y enciende la verde.
               CLRF       PORTA,4
               GOTO       SEMAB
               END                         ;Fin de programa
En línea

Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #7 en: 1 Junio 2008, 16:20 pm »

Si, ya se que no es ninguna marabilla ;D
En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #8 en: 1 Junio 2008, 21:48 pm »

Dos cosas que veo a simple vista:

Citar
TRISA      EQU      0X05
               TRISB      EQU      0X06
               PORTA      EQU      0X05

Porta y TrisA los tienes definidos en la misma dirección de memoria..

Otra cosa...no uses goto.. la función INC metela en una subrutina y llamala con ACALL. Con el goto es facil despistarse y no queda muy bonito que digamos.

Por otra parte deberias dar un estado inicial a cada puerto segun si son entradas o salidas, sto no es obligatorio, pero en la universidad me lo remarcaron mucho y supongo que por algo a de ser xd.

En línea

Killtrojan Syslog v1.44: ENTRAR
Hellhole

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Necesito 1 poco de ayuda con el pic...
« Respuesta #9 en: 2 Junio 2008, 00:15 am »

Dos cosas que veo a simple vista:

Citar
TRISA      EQU      0X05
               TRISB      EQU      0X06
               PORTA      EQU      0X05

Porta y TrisA los tienes definidos en la misma dirección de memoria..

Otra cosa...no uses goto.. la función INC metela en una subrutina y llamala con ACALL. Con el goto es facil despistarse y no queda muy bonito que digamos.

Por otra parte deberias dar un estado inicial a cada puerto segun si son entradas o salidas, sto no es obligatorio, pero en la universidad me lo remarcaron mucho y supongo que por algo a de ser xd.



Gracias por los consejos, otro fallo de mi programa eske no lleba bien el control de los coches que entran y salen del garaje y que no saca el numero que es en el display cuando lo incrementas o decrementas, esto es por ejemplo para sacar el 9 el codigo binario seria 01110011 y claro, si lo decremetas 01110010 y eso no es 8 en binario... daria un numero raro en el display.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Necesito un poco de información
Análisis y Diseño de Malware
rdzlcs 2 2,361 Último mensaje 17 Enero 2011, 20:06 pm
por rdzlcs
Necesito un poco de ayuda
Dudas Generales
peomn 1 2,201 Último mensaje 27 Diciembre 2015, 05:08 am
por engel lex
Necesito un poco de ayuda :$
Programación C/C++
Carlos2210 2 1,985 Último mensaje 18 Abril 2016, 20:44 pm
por HardForo
Necesito un poco de ayuda estaría muy agradecida
Seguridad
Lauritaxx 1 2,371 Último mensaje 3 Octubre 2016, 04:55 am
por El_Andaluz
dándole vueltas a un problemilla c++ necesito un poco de ayuda
Programación C/C++
el gusanillo 9 4,017 Último mensaje 20 Junio 2018, 20:46 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines