Autor Tema: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus  (Leído 140233 veces)

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

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Hola: amigos lo unico que les puedo dar por el momento son las gracias por todo lo que hacer en el foro y amigo no me molesto por que ayas editado mi mensaje..

bueno aqui les dejo otros de mi invento por el momento...
la imagen..
http://rapidshare.de/files/10549002/ej_led_y_button.JPG.html

los archivos..
http://rapidshare.de/files/10548809/ej_led_y_button.rar.html


saludo de BLACKPIC...RebotadoRebotado
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
hola amigo lordlafebre por favor dime como puedo pasar de un registro a otro.. por ejemplo del puertA a puertB...

miira este ejemplo..
I var byte
cont var byte[5]

TRISB=0

cont=1
inicio:
for i=0 to 8
PORTB=cont
pause 100
cont=cont*2
next i
goto inicio
 
quiero hacer que cuando termine en portB el conteo pase a portA dime como lo hago..
saludo de BLACKPIC...RebotadoRebotado
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

Puedes utilizar el mismo codigo, incluso la misma variable, algo asi:

I var byte

TRISB=0
TRISA=0

cont=1
inicio:
for i=0 to 8
PORTB=cont
pause 100
cont=cont*2
next i
cont=1

for i=0 to 5
PORTA=cont
pause 100
cont=cont*2
next i

goto inicio

Solo sustituyes en donde esta PORTB con PORTA y el bucle lo disminuyes ya que el puerto tiene menos pines....

Suerte...!!! Sonrisa Gigante

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
hola amigo y gracias..
 ya lo entendi y lo hice funcionar el ejemplo a hora mi curiosidad es la siguiente..

quiero manejar la intensidad de un led con un pic..

y despues este otro ejemplo quiero aprender a manejar en contador interno del pic..

pero primero la intensidad del led y despues te aviso con lo del contador interno del pic..

bueno espero que no se enfaden con migo por que todo lo que hago es en vace a led.. pero es una forma de aprender facil no...

con los pwm que daria haci..
i var byte
pin var byte
duty var byte
cycle var byte
trisb=0
 
inicio:
for i=0 to 255
    portb=i
PWM Pin,Duty,Cycle
PWM PORTB.7,120,100 " Send a 50% duty cycle PWM signal out Pin7 for 100 cycles
    pause 100
    next i
    goto inicio

saludo de BLACKPIC...RebotadoRebotado
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

Puedes hacer eso utilizando PWM y un for que vaya de 0 a 255 y varias el duty

PWM Pin,Duty,Cycle
PWM PORTB.7,127,100 " Send a 50% duty cycle PWM signal out Pin7 for 100 cycles


Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Que tal compadres...

Perdon por quedarles mal todos estos dias, pero he estado un poquitin ocupado, asi que uds. comprenderan......

Bueno en esta ocasion voy a subir un ejemplo hecho en PBP que sirva para manejar 4 matrices de 8x8 con un 16f628 y utilizando registros de desplazamiento 74HC164...

Bueno sin mas palabras aca el ejemplo...

Codigo:
CMCON = 7

fil var byte [34]
i   var byte
j   var byte
k   var byte
T   VAR BYTE
l   VAR BYTE


FIL[0]=%00000001
FIL[1]=%00000000
FIL[2]=%11001100
FIL[3]=%11001100
FIL[4]=%11111111
FIL[5]=%00000001
FIL[6]=%00000000
FIL[7]=%11001100
FIL[8]=%11001100
FIL[9]=%00000000
fIL[10]=%00000001
FIL[11]=%11111111
FIL[12]=%11100111
FIL[13]=%11100111
FIL[14]=%11111111
FIL[15]=%11000011
fil[16]=%10000001
fil[17]=%00101100
fil[18]=%01000000
fil[19]=%01000000
fil[20]=%00101100
fil[21]=%10000001
fil[22]=%11000011
fil[23]=%11111110
fil[24]=%11111000
fil[25]=%11110000
fil[26]=%11001110
fil[27]=%10010000
fil[28]=%11001110
fil[29]=%11110000
fil[30]=%11111000
fil[31]=%11111110
fil[32]=%11111111
fil[33]=%11111111



TRISA=%00000
TRISB=%00000000
I=0

PORTA.1=1

INICIO:
    PORTB=FIL
    GOSUB RELOJ1
    IF I=0 THEN
       PORTA.1=0
    ENDIF
    I=I+1
"    GOSUB RELOJ2
    IF I>33 THEN
        GOSUB ROTA
        I=0
        PORTA.1=1
    ENDIF
GOTO INICIO

RELOJ1:
    PORTA.0=1
    PAUSEUS 700
    PORTA.0=0
    PAUSEuS 700
RETURN

ROTA:  
    i=0
    T=fil[0]
    FOR i=0 TO 33
        fil=fil[i+1]
    NEXT i
    fil[33]=T
    return

END
   
   




Este codigo hace desplazar un peque mensaje y un grafico de derecha a izquierda..

Espero que les sirva el ejemplito..... y que bueno que veo que empiezan a postear con dudas y con sus propios ejemplos.... asi da gusto seguir adelante...

Bueno eso es todo por hoy... proximamente subire el ejemplo que estoy desarrollando en BASCOM AVR, para manejar 6 matrices de 5x7...

Aca el link para descargar los archivos.......

http://miarroba.com/foros/ver.php?foroid=348538&temaid=4066778
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

Amigos, aver sia alguien propone algo para seguir avanzando con esto....... alguien propone algun ejemplo.... que sea continuacion de lo que hemos hechoa hasta ahora?... Sonrisa Gigante

Desconectado joseimaz1

  • PIC10
  • *
  • Mensajes: 6
Sonrisa Hola, soy medio nuevo en este foro... principalmente en el lenguaje de programacion PicBasic Pro. Bueno les cuento que ya realize mi propio secuenciador en PBP, y lo hize en proteus para compartirlo con todos y ustedes, y de paso , aprendo, claro... Avergonzado . Bueno realmente felicito a todos los colegas por el buen material sobre microcontroladores que hay aqui en todopic. GiñoGiñoGiño.
aqui les doy la direccion para que se bajen el secuenciador de luces que esta hecho con un micro 16F84 http://ar.geocities.com/jimaz_89/secuenciador16f84.zip ... Un gran saludo...!!!Flash Avergonzado

Aqui el codigo en PBP:


"PRIMERAS PRACTICAS CON PBP
"CREATED BY JIMAZ
"secuenciador de luces
"corre del RB0 AL RB7
"CON EL MICROCONTROLADOR PIC16F84

Jimazsec:
HIGH PORTB.0
PAUSE 100
LOW PORTB.0
PAUSE 100

HIGH PORTB.1
PAUSE 100
LOW PORTB.1
PAUSE 100

HIGH PORTB.2
PAUSE 100
LOW PORTB.2
PAUSE 100

HIGH PORTB.3
PAUSE 100
LOW PORTB.3
PAUSE 100

HIGH PORTB.4
PAUSE 100
LOW PORTB.4
PAUSE 100

HIGH PORTB.5
PAUSE 100
LOW PORTB.5
PAUSE 100

HIGH PORTB.6
PAUSE 100
LOW PORTB.6
PAUSE 100

HIGH PORTB.7
PAUSE 100
LOW PORTB.7
PAUSE 100

HIGH PORTB.0
PAUSE 10
LOW PORTB.0
PAUSE 10

HIGH PORTB.1
PAUSE 10
LOW PORTB.1
PAUSE 10

HIGH PORTB.2
PAUSE 10
LOW PORTB.2
PAUSE 10

HIGH PORTB.3
PAUSE 10
LOW PORTB.3
PAUSE 10

HIGH PORTB.4
PAUSE 10
LOW PORTB.4
PAUSE 10

HIGH PORTB.5
PAUSE 10
LOW PORTB.5
PAUSE 10

HIGH PORTB.6
PAUSE 10
LOW PORTB.6
PAUSE 10

HIGH PORTB.7
PAUSE 10
LOW PORTB.7
PAUSE 10

goto Jimazsec

END

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
bueno amigo como principiante que tambien soy te doy la vienvenida a pbp. te cuento que con los for tambien puedes hacer el ejemplo que acabas de hacer y este te queda con menos espacio en lineas...

bueno cualquier cosas estamos por aki para ayudarte  amigo aunque este un poco alejado de los pic, por que estoy en otras cosas por a hora pero estare visitando el foro...
 bueno aki te dejo el linck donde yo colgue algunos ejemplos con for y otros del amigo lordlafebre....

http://miarroba.com/foros/ver.php?foroid=382961&temaid=4270632&pag=5

y la de lord

http://miarroba.com/foros/ver.php?foroid=8826&temaid=4001543
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

Efectivamente como comenta el amigo BLACKPIC, la mejor manera es hacerlo en un bucle y te ahorras toooodo esas lineas de codigo, pero para empezar vamos bien... Sonrisa Gigante, cualquier cosa por aqui estamos todos los compañeros... Flash

Desconectado joseimaz1

  • PIC10
  • *
  • Mensajes: 6
Holas, estoy de vuelta por aqui, muchisimas gracias por responder, bueno si vi tus ejemplos el cual los hacias con el comando FOR que por lo que tengo entendido siempre va acompañado del comando NEXT, pero aun no entiendo del todo su funcionamiento y ley por ahy que es un comando muy importante.... Sonrisa GiganteSonrisa GiganteSonrisa Gigante ... lo que entiendo es que el comando FOR es un contador ¿o me equivoco? pero no entiendo que hace NEXT ¿?¿?Helado ...  Espero sus respuesta, gracias!! Le agradezco a lordlafebre y la blackpic por responder y muchas gracias tambien a Doppel y a Fabian (Olotill) que me ayudaron tambien FlashFlashFlash ... Hasta luego--Vacilando

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
holas!

el comando FOR....NEXT es un loop que hace todo lo que esté dentro determinada cantidad de veces según  el valor de la variable que se use como tope y el incremento que se coloque

ejemplo:

Codigo:
For x=1 to 10                                " aca le decimos que lo haga 10 veces
       if boton = 1 then encender    "hace esto 10 veces
next                                               " vuelve a comenzar el for



en el ejemplo X es la variable que se usa para controlar la cantidad de veces que entra en el FOR , y realiza la operacion o las operaciones que se encuentran adentro, cuando x llegue al valor diez sale del FOR y sigue con el programa.-

si usamos FOR x = 1 to 10  va incrementando de 1 a 10 en pasos de 1
tb se pueden hacer decrementos

colocando  FOR X=10 to 1 step -1; -2 ;etc indicamos de a cuanto queremos decrementar!!

esto es para Proton!! pero la logica es similar en PBP puede llegar a variar lo del decremento!! consultar el manual con respecto a la sintaxis en PBP


saludos!!
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

La sintaxis para PBP es la misma.

Desconectado joseimaz1

  • PIC10
  • *
  • Mensajes: 6
Holas,,, gracias por responder!!!!, ya hize mi ejemplo con el comando FOR y NEXT. aca se los dejo haber que opinan... FlashFlashFlashRebotadoRebotadoRebotado

Aqui el link para descargarlo!

http://ar.geocities.com/jimaz_89/secfor.zip

Demonio

el codigo

DEFINE OSC 4


jose var byte "jose en 8 bits

trisb = %11111100 "pongo rb0 y rb1 como salida y los demas pines del puertob en entrada

jimazrep:
for jose=0 to 20  "cuento en la variable JOSE de 0 a 20
high portb.0      "pongo en alto PUERTOB.0
pause 500     "hago una pausa
low portb.0     "pongo en bajo PUERTOB.0
pause 500     "hago una pausa
high portb.1     "lo mismo que lo anterior pero esta vez con el puertob.1
pause 500
low portb.1
pause 500
next jose     "hago que repita 20 veces lo que esta arriba
goto jimazrep     "me voy a la etiqueta jimazrep
end        "termino el programa


Gracias por todo!!!!

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Hola:

Que bien que ya hayas hecho tu programa con el For, solo un comentario.... si no defines el cristal que vas a utilizar, el valor predeterminado de PBP es de 4Mhz, cuando utilizas high y low con el puerto B no es necesario que declares los pines como entrada o salida, high y low los hace inmediatamente como salida, cuando te refieras tambien al portb no es necesario utilizar portb.0 sino basta hacer lo siguiente:

high 0 "pone en alto a portb.0
low 7 "pone en bajo a portb.7

eso tambien hace que los pines correspondientes a B0 y B7 sean salidas...


 

anything