Autor
|
Tema: Necesito 1 poco de ayuda con el pic... (Leído 7,502 veces)
|
Hellhole
Desconectado
Mensajes: 9
|
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
Mensajes: 9
|
Hey, no sabria decirme ninguno? Eske estoy muy perido
|
|
|
En línea
|
|
|
|
skapunky
Electronik Engineer &
Colaborador
Desconectado
Mensajes: 3.667
www.killtrojan.net
|
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
Mensajes: 1.215
Menos palabras y Mas codigos.
|
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
Mensajes: 9
|
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
|
|
|
|
|
Hellhole
Desconectado
Mensajes: 9
|
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
Mensajes: 9
|
Si, ya se que no es ninguna marabilla
|
|
|
En línea
|
|
|
|
skapunky
Electronik Engineer &
Colaborador
Desconectado
Mensajes: 3.667
www.killtrojan.net
|
Dos cosas que veo a simple vista: 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
Mensajes: 9
|
Dos cosas que veo a simple vista: 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
|
|
|
|
|
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,567
|
17 Enero 2011, 20:06 pm
por rdzlcs
|
|
|
Necesito un poco de ayuda
Dudas Generales
|
peomn
|
1
|
2,387
|
27 Diciembre 2015, 05:08 am
por engel lex
|
|
|
Necesito un poco de ayuda :$
Programación C/C++
|
Carlos2210
|
2
|
2,207
|
18 Abril 2016, 20:44 pm
por HardForo
|
|
|
Necesito un poco de ayuda estaría muy agradecida
Seguridad
|
Lauritaxx
|
1
|
2,570
|
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,440
|
20 Junio 2018, 20:46 pm
por MAFUS
|
|