TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: arrhenius en 05 de Agosto de 2009, 05:45:53
-
Hola tengo 17 años y estoy haciendo el trabajo de investigacion de bachillerato. Tengo que programar un pic 16f84A en ensamblador. las caracteristicas son las siguientes.
1) Tiene que tener 4 ENTRADAS i las 4 tienen ke estar encendidas [sino se produce un bucle asta k se reuna la condicion] para
2) poder activar una SALIDA ( que enciende unos cuantos leds ) y al cabo de 3 segundos
3) se activa otra SALIDA (que enciende otros cuantos leds) y al cabo de 6 segundos se apagan las DOS salidas y vuelve al inicio.
agradeceria muchisimo que me facilitarais el codigo en Ensamblador porque la programacion no es mi fuerte y me esta costando bastante.
Muchas gracias por adelantado
-
Hola arrhenius.
No entiendo nada de lo que necesitas.
Primero, las entradas de un PIC no pueden encender nada. Supongo que estas 4 entradas son en realidad 4 pulsadores con sus respectivas salidas conectadas a LED (4 en total)
Sería bueno que te espliques mejor. Y te doy un concejo, lees las reglas del foro (http://www.todopic.com.ar/foros/index.php?action=globalAnnouncements;id=1) por favor y verás que lo que pides está mal.
-
Arrhenius, 17 años es una edad excelente para aprender a programar; no se trata de que te demos el programa hecho, te ayudaremos si tu empiezas a hacerlo, haz primero el esquema con los pulsadores y los LEDs e intenta empezar, hay un hilo de Leon_pic asembler desde 0 donde te explica todas las instrucciones y a continuacion otro de Suki mis primeros programas en asembler, si los miras un poco aprenderas a hacer eso que te mandan, y si tienes dudas te las intentaremos solucionar
tapi8
-
Hola Arrhenius,
Tanto Leon PIC , como tapi8 tienen muchisima razon, porque no aprendes a programar!
Se entiende muy bien lo que decís, pero... "NOS GUSTA AYUDAR, NO HACER TODO EL TRABAJO!"
Te paso un esqueleto para tu codigo, espero que te sirva.
---
inicio:
bsf STATUS, 5 ; seteando el bit 5 de STATUS pasamos al banco 1
clrf PORTB ; portb es salida (todos sus bits a cero)
movlw b'11111111'
movwf PORTA ; porta es entrada (todo sus bits a uno)
bcf STATUS, 5 ; limpiando el bit 5 de STATUS pasamos al banco 0
bucle: ; Este es el bucle prinsipal del programa
clrf PORTA ; Ponemos inicialmente las salidas a cero
esperar:; esperamos que las cuatro entradas sean uno
movf PORTB, W ; movemos PORTB...
movwf temp ; ...a la variable temp
movlw 0x0F ; movemos a W la mascara 0x0F
andwf temp, F ; aplicamos la mascara sobre temp
movf temp, W ; comparamos temp...
xorlw 0x0F ; ...con 0x0F
btfss STATUS, Z ; si almenos una entrada vale 0 continuamos esperando...
goto esperar
; listo, las 4 entradas estan activas. activamos la primer salida
movlw 1 ; w = segundos a esperar
movwf PORTA
movlw 3 ; w = segundos a esperar
call esperar_segundos
; activamos la segunda salida (sin desactivar la primera)
movlw 3
movwf PORTA
movlw 6
call esperar_segundos
; continuamos en el bulce prinsipal.
goto bucle
esperar_segundos:
; aca te falta codigo :)
return
---