Autor Tema: proyecto con pic y led  (Leído 5536 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juanchiripiorcas

  • PIC10
  • *
  • Mensajes: 4
proyecto con pic y led
« en: 19 de Mayo de 2008, 21:22:44 »
hola a todos por aca en este estupendo foro
pues bien espero no molestarlos con mis preguntas recien estoy probando con los pic y les pregunto pueden ayudarme? ocupo hacer un programita asm para un pic16f84a que haga lo siguiente: con 5 pulsadores conectados a RB1,RB2,RB3,RB4 Y RB5  cuando sean pulsado alguno de ellos destelle un led conectado a RB6 el numero de veces segun el el pulsador accionado momentaneamente?
es decir:
si acciono el pulsador conectado a RB0 me de un destello el led de 500 milisegundos
si acciono el pulsador conectado a RB1 me de 2 destellos el led de 500 milisegundos
si acciono el pulsador conectado a RB2 me de 3 destellos el led de 500 milisegundos
si acciono el pulsador conectado a RB3 me de 4 destellos el led de 500 milisegundos
si acciono el pulsador conectado a RB4 me de 5 destellos el led de 500 milisegundos
esto lo tengo funcionando  con ne555 en cascada pero son muchos conponentes y ademas quiero aprender a hacerlo en pic
de antemano muchisisimassssss gracias espero me ayuden

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: proyecto con pic y led
« Respuesta #1 en: 19 de Mayo de 2008, 21:35:00 »
Saludos juanchiripiorcas, bienvenido al foro!  :-/
Felicitaciones por querer entrar en el fascinante punto de los microcontroladores pic.
Te vas a divertir en grande!  :D
Bueno pues lo más importante es que decidas primero en qué lenguaje quieres programar. Los pics entienden sólo un lenguaje, el hexadecimal, pero tú puedes usar compiladores que te permiten escribir tu programa con lenguajes variados como assembler, basic, c, y hasta está uno que te permite hacerlo de forma visual usando diagramas de bloque (niple)...
Así que la pregunta es: has programado anteriormente? Pues si tienes experiencia en algún lenguaje en particular, pues podrías escoger ese para programar pics...
El lenguaje que más se acerca al hexadecimal es el assembler, el lenguaje de máquina... con ese lenguaje sabrás qué está haciendo exactamente el microcontrolador con cada ciclo de instrucción... pero los expertos del foro recomiendan comenzar con c (es el lenguaje más poderoso), a la vez que le echas una ojeadita al assembler.
En el foro hallarás mucha información... usa el buscador... cito las palabras del maestro maunix: "lee, lee, y luego pregunta"... esa es la regla del foro.
En lo que hayas leído sobre el lenguaje que escogiste y te hayas animado a echar tus primeras líneas de código... aquí estaremos para ayudarte.
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: proyecto con pic y led
« Respuesta #2 en: 19 de Mayo de 2008, 21:41:04 »
Hola

Bienvenido

Por favor dale una leída a las reglas del foro...

http://www.todopic.com.ar/foros/index.php?action=globalAnnouncements;id=1

Quedamos en espera de los avances en tu proyecto.

Desconectado juanchiripiorcas

  • PIC10
  • *
  • Mensajes: 4
Re: proyecto con pic y led
« Respuesta #3 en: 19 de Mayo de 2008, 21:53:54 »
upsss.... ya me regañaron que hice mal? :( :(

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: proyecto con pic y led
« Respuesta #4 en: 19 de Mayo de 2008, 22:02:58 »
Hola

No te regañamos, es que llegas con nada y pues nadie te puede ayudar si no llevas avances en tu proyecto. Puedes empezar tú solo usando el buscador del foro y entrando al subforo Primeros Pasos - iniciación a los micros pic.

Una vez que te atores con algo, publicas tu duda específica y se te va a ayudar.


Desconectado juanchiripiorcas

  • PIC10
  • *
  • Mensajes: 4
Re: proyecto con pic y led
« Respuesta #5 en: 19 de Mayo de 2008, 22:50:19 »
me dicen que usando el niple seria sencillo uds.que piensan.
mis comocimientos son practicamente nulos solo he modificado algunos programitas ya escrito en asm
siquiera diganme como empesar por favor :mrgreen:

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: proyecto con pic y led
« Respuesta #6 en: 19 de Mayo de 2008, 23:11:54 »
Hola, suponiendo que tu trabajo lo quieres hacer en assembler, pues seria btfss portb,0
alli testeas el pulsador que esta en rb0
si esta pulsado, lo mandas a hacer un destello
luego btfss portb,1
testeas el puerto rb1
y asi para cada puerto
los testellos serian rutinas de demoras en un loop, que podrias ir decrementando con decfsz

Pero como te comentaron arriba, tienes que elegir en que lenguaje programaras....

suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: proyecto con pic y led
« Respuesta #7 en: 19 de Mayo de 2008, 23:15:17 »
Saludos juan!
Mira yo siempre recomiendo el basic para empezar, en especial el Pic Basic Pro.. es bastante sencillo e intuitivo...
Puedes buscar más información en el subforo correspondiente...
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado juanchiripiorcas

  • PIC10
  • *
  • Mensajes: 4
Re: proyecto con pic y led
« Respuesta #8 en: 20 de Julio de 2008, 22:24:16 »
pues bien ya estoy de nuevo por aqui y despues de leer y leer y otra vez leer decidi usar el microcode studio y este es el programa que pude hacer(por favor no se rian que es mi primer programa)como ven? me ayudan a mejorarlo?
aunque no lo crean funcionooooo :-/

'****************************************************************
'*  Name    : destellos.BAS                                                       *
'*  Author  : [set under view...options]                                *
'*  Notice  : Copyright (c) 2008 [set under view...options]     *
'*          : All Rights Reserved                               *
'*  Date    : 20/07/2008                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************


                     ;E=ENTRADA     S=SALIDA
TRISB = %00011111   ;COFIGURO EL PORTB RB0=E,RB1=E,RB2=E,RB3=E,RB4=E,RB5=S,RB6=S,RB7=S

         ;enciende un vez
        if PORTB.0 = 1 then     ;AQUI ACTIVO A RB0 CON ALTO
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        ENDIF

      ;enciende 2 veces 
        if PORTB.1 = 1 then     ;AQUI ACTIVO A RB1 CON ALTO
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        ENDIF

       ;encinde 3 veces
        if PORTB.2 = 1 then     ;AQUI ACTIVO A RB2 CON ALTO
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        ENDIF

        ;enciende 4 veces   
        if PORTB.3 = 1 then     ;AQUI ACTIVO A RB3 CON ALTO
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        ENDIF

    ;enciende 5 veces   
        if PORTB.4 = 1 then     ;AQUI ACTIVO A RB4 CON ALTO
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        High 5                   ;PONE ALTO RB5 (ENCIENDE LED)
        pause 300                ;DURANTE 300MS
        low 5                    ;PONE BAJO A RB5(APAGA LED)
        pause 300                ;DURANTE 300MS
        ENDIF

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: proyecto con pic y led
« Respuesta #9 en: 20 de Julio de 2008, 22:42:39 »
Que tal juanchiripiorcas!
mira yo te voy a recomendar un libro muy bueno para programar en asembler, yo pienso que es lo mejor para empesar para. Luego de aprendido el asm te puedes pasar a algun lenguaje de alto nivel como el ccs, pic basic pro, proton...

Asi le puedes sacar el jugo a los pic  :D

Saludos

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: proyecto con pic y led
« Respuesta #10 en: 21 de Julio de 2008, 00:02:55 »
Está bueno el programa juan, felicitaciones!  :-/
Pues si te funcionó, entonces no hay problema!!
Ahora bien, si quieres poner el código más pavito, en vez de copiar varias veces el encendido y apagado, puedes usar una instrucción cíclica como un for o while... pero como dije, es sólo para "adornar", pues así también funciona, que es lo importante.
Poco a poco te irás formando una "personalidad" como programador al hacer tus códigos, pues en realidad hay muchas formas de hacer una misma cosa, casi tantas como cantidad de programadores. El cómo hacerlo... tal vez no es tanto si es correcto o no, sino de esa "personalidad".

Estoy de acuerdo con Ralf en que es bueno darle una mirada al assembler para entender un poco más a fondo el micro, pero no estoy de acuerdo en que haya que empezar a programar en lenguaje de máquina y luego pasarse al alto nivel. La gran ventaja del alto nivel es que puedes comenzar a esbozar tus códigos sin necesidad de excesivos estudios previos. En mi humilde opinión, creo que se puede empezar en un lenguaje de alto nivel como basic, a la vez que se va echándole una mirada a las datasheets y al lenguaje de máquina... para saber cómo funciona el micro y darle un mejor uso, pero no creo que sea necesario realizar programas completos en assembler para cumplir con eso.
Repito, es sólo mi opinión. Aunque confieso que yo comencé con el asm, porque así me lo enseñaron en la universidad... pero por mi cuenta comencé con el basic y me fue muy bien!   :P


Un cordial saludo a todos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web


 

anything