Autor Tema: Ejemplos en PBP y PROTEUS  (Leído 210395 veces)

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

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Ejemplos en PBP y PROTEUS
« en: 29 de Julio de 2005, 15:42:00 »
Hola:

Como estoy de vacaciones y no tengo mucho que hacer y como quien aprendo, voy a ir poniendo aqui algunos pequeños ejemplos en PBP y PROTEUS para aquellos que se animen a aprender...

Un abrazo... <img   src="http://pics.miarroba.com/caretos/biggrin.gif" alt="Sonrisa Gigante" title="Sonrisa Gigante" />
« Última modificación: 10 de Abril de 2006, 02:10:45 por LordLafebre »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #1 en: 29 de Julio de 2005, 15:45:00 »
1) ENCENDER Y APAGAR UN LED

Bueno aqui esta el promer ejemplo y el mas sencillo y por donde aprendi, prender y apagar un led conectado a portb.0:



inicio:
        High 0
        pause 1000
        low 0
        pause 1000
        goto inicio
end

otra forma de hacer lo mismo:

inicio:
        High PORTB.0
        pause 1000
        low PORTB.0
        pause 1000
        goto inicio
end

otra mas:

TRISB.0=0

inicio:
        PORTB.0 = 1
        pause 1000
        PORTB.0 = 0
        pause 1000
        goto inicio
end

y uina mas:

led var PORTB.0

inicio:
        high led
        pause 1000
        low led
        pause 1000
        goto inicio
end

Los archivos en winrar...

http://miarroba.com/foros/ver.php?foroid=348538&temaid=3607593

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #2 en: 29 de Julio de 2005, 16:14:00 »
2) SEMAFORO



El codigo de PBP:

inicio:
        High 0:LOW 1:low 2:low 3:low 4: high 5
        pause 1000
        High 0:high 1:low 2:low 3:low 4: high 5
        pause 1000
        low 0:LOW 1:high 2:high 3:low 4: low 5
        pause 1000
        low 0:LOW 1:high 2:high 3:high 4: low 5
        pause 1000
        goto inicio
end

otra forma:

TRISB=%00000000

inicio:
        PORTB = %00100001
        pause 1000
        PORTB = %00100011
        pause 1000
        PORTB = %00001100
        pause 1000
        PORTB = %00011100
        pause 1000
        goto inicio
end

Los archivos en winrar...

http://rapidshare.de/files/3475254/Semaforo.rar.html

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #3 en: 29 de Julio de 2005, 16:41:00 »
3) JUEGO DE LUCES



Juego de luces que cuenta en forma binaria de 0 a 255:

I   var byte

TRISB=0

inicio:
        for i=0 to 255
            PORTB=i
            pause 50
        next I
        goto inicio
end

Juego de luces al estilo AUTO FANTASTICO:

I       var byte
cont    var word

TRISB=0

inicio:
        cont=1
        for i=1 to 7
            PORTB=cont
            pause 100
            cont=cont*2
        next I
        for i=1 to 7
            PORTB=cont
            pause 100
            cont=cont/2
        next I
        goto inicio
end

Otra manera de hacerlo:

I       var byte
leds    var PORTB

TRISB=0

Leds=1
inicio:
        for i=1 to 7
            leds=leds<<1
            pause 100
        next I
        for i=1 to 7
            leds=leds>>1
            pause 100
        next I
        goto inicio
end

Otro juego de luces, estas se cierran desde los extremos al centro y luego se abren desde el centro hacia los extremos

I       var byte
leds    var byte[5]

TRISB=0

leds[1]=%10000001
leds[2]=%01000010
leds[3]=%00100100
leds[4]=%00011000

Leds=1
inicio:
        for i=1 to 4
            PORTB=leds
            pause 100
        next I
        for i=4 to 1 step-1
            PORTB=leds
            pause 100
        next i
        goto inicio
end

Los archivos en winrar...

http://rapidshare.de/files/3475314/Juego_de_luces.rar.html

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #4 en: 29 de Julio de 2005, 17:51:00 »
4) BOTON Y LED



En este ejemplo se enciende el led cuando se presiona el boton:

TRISB.0=1

inicio:
        if PORTB.0 = 0 then
            high 1
        else
            low 1
        endif
        goto inicio
end

El mismo ejemplo pero esta ves con una resistencia de pull down:



TRISB.0=1

inicio:
        if PORTB.0 = 1 then
            high 1
        else
            low 1
        endif
        goto inicio
end

Los archivos en winrar...

http://miarroba.com/foros/ver.php?foroid=348538&temaid=3607620

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #5 en: 29 de Julio de 2005, 19:35:00 »
5) BOTONES Y LEDS

Este tiene dos botones el uno sirve para subir y el otro para bajar:



i       var byte
cont    var word

cmcon=7

TRISB=0
TRISA=%00000011
cont=1
PORTB=cont
inicio:
        if PORTA.0=0 then
            cont=cont*2
            PORTB=cont
            if cont>=256 then
                cont=1
                PORTB=cont
            endif
            pause 200            
        else
            cont=cont
        endif
        if PORTA.1=0 then
            cont=cont/2
            PORTB=cont
            if cont<=1 then
                cont=256
            endif
            pause 200
        else
            cont=cont
        endif
        goto inicio
end

Los archivos en winrar....

http://rapidshare.de/files/3477307/Botones_y_Leds.rar.html

Desconectado kamehouse

  • PIC12
  • **
  • Mensajes: 55
RE: Ejemplos en PBP y PROTEUS
« Respuesta #6 en: 29 de Julio de 2005, 23:02:00 »
¡ Saludos ! LordLafebre

aprovechando que andas dando ejemplos no tendras algun ejemplo de como crear tablas en pbp pro, por aqui vi que hablaban sobre crear tablas pero en la eeprom y yo quiero crearlas en la memoria de programa si puedes ayudarme gracias.Helado  

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #7 en: 29 de Julio de 2005, 23:13:00 »
Hola:

Tablas como las que estan en el ejemplo 3...?

Un abrazo... Sonrisa Gigante

Desconectado kamehouse

  • PIC12
  • **
  • Mensajes: 55
RE: Ejemplos en PBP y PROTEUS
« Respuesta #8 en: 30 de Julio de 2005, 13:54:00 »
Que tal LordLafebre

las tablas a las que te refieres son las que creaste con leds var byte[5]
y luego
leds[1] = un valor
leds[2] = otro valor
.
.
leds[5] = otro valor

pero esto es un array y el array ¿no utiliza la ram? lo que quiero saber es si existe
alguna instruccion en basic parecida a DT en ensamblador o en proton
que es algo como esto:

DATA 5 , 8 , "fred" , 12
y recuperabas el valor de la tabla con:
RESTORE 3
 Pointer now placed at location 4 in our data table i.e. "r"
READ VAR1  
VAR1  will now contain the value 114 i.e. the "r" character in decimal
   
espero haberme explicado bien

 SALUDOS.


Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #9 en: 30 de Julio de 2005, 17:29:00 »
hola:

pues non se si haya alguna funcion como la que tu necesitas, no se que es lo que quieras hacer, yo alguna ves las utilice como el ejemplo que mencionaba para sacar mensajes en matrices de leds... si de algo te sirve mira AQUI

Un Abrazo... Sonrisa Gigante

Desconectado kamehouse

  • PIC12
  • **
  • Mensajes: 55
RE: Ejemplos en PBP y PROTEUS
« Respuesta #10 en: 31 de Julio de 2005, 04:01:00 »
Al final del ultimo comentario (el de lager)
dice que se puede usar LDATA CON LREAD pero en el pbp pro 2.46 esas instrucciones no existen, creo que las que se usan son READCODE  no se, por cierto que compilador usas,  en el  que uso
pasa algo extraño cuando usas la instruccion PWM en los pines RC2 Y RC1
del micro 16f876a que son las respectivas salidas de los registro CCP1 y CCP2
por ejemplo:
      si uso este programa
    SYMBOL    LED1 =   PORTC.2
    SYMBOL    LED2 =   PORTC.1
    SYMBOL    LED3 =   PORTB.7

      repite
      FOR B0= 0 TO 100   //ciclo 1
      PWM LED1,B0,30
      HIGH LED1
      NEXT

      FOR B0= 0 TO 100   //ciclo2  
      PWM LED2,B0,30
      HIGH LED2
      NEXT
      goto repite
 
      uno esperaria que despues de ejecutarse el ciclo1 el LED1 deberia de estar
      encendido pero no es asi y lo mismo pasa al salir de CICLO2, sin embargo
      si cambio cualquiera de los dos (LED1 o LED2) POR LED3 (PORTB.7) el prog-    
      ama funciona bien ¿curioso no? y cuando uso el mismo programa pero con la  
      instruccion HPWM FUNCIONA BIEN con los pines RC2 Y RC1.
   
     SALUDOS.desquiciado




   

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Ejemplos en PBP y PROTEUS
« Respuesta #11 en: 17 de Agosto de 2005, 04:04:00 »
Cuando se quiera cambiar/conmutar el estado de una linea que esté configurada como salida es más facil usar instrucción TOGGLE.

led intermitente en RB0

inicio
TOGGLE PORTB.0
PAUSE 1000
goto inicio

Saludos desde Logroño (España)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #12 en: 17 de Agosto de 2005, 10:55:00 »
Hola:

Buena acotacion....! Se me escapo...! Sonrisa Gigante

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #13 en: 17 de Agosto de 2005, 16:27:00 »
Hola:

Voy a seguir colgando mas ejemplos, ahora los archivos los voy a poner en el Almacen...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Ejemplos en PBP y PROTEUS
« Respuesta #14 en: 17 de Agosto de 2005, 17:31:00 »
6.-) Display

En este ejemplo se va a utilizar un display de 7 segmentos y aremos un contador de 0-9 con la fuincion Look Up



vec var byte      
num VAR BYTE    
TRISB = 0        

prog:
    for vec=0 to 9    
    lookup vec,[191,134,219,207,230,237,253,135,255,239],num
    portb=num
    pause 500
    next vec  
goto prog
END