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

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

Desconectado manuelroin

  • PIC12
  • **
  • Mensajes: 51
HOLA TENGO UN PROBLEMILLA NECESITO USAR UN POTENCIOMETRO Y MOSTRAR EL VALOR DEL VOLTAJE EN UN LCD PERO CON TODO Y DECIMALES COMO CONVIERTO LA MUESTRA DEL ADC A NUMEROS CON DECIMALES MUCHAS GRACIAS

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Hola Amigos! Giño

retomando el tema vamos a grabar los valores en la eprom interna del PIC, acá se usa el mismo circuito que el ejemplo anterior con las diferencias del codigo.-

según el manual:

Sintaxis
EWRITE dirección , [ Variable {, Variable…etc } ]
 
-escribe información en la memoria eprom disponible en algunos tipos de pic.-


Sintaxis
Variable = EREAD dirección
 
Lee la informacion de la eprom interna.-

algunos cambios al codigo anterior

en el grabado no se usa mas el array.

Codigo:
labelSave:
           if w < 4 then
           ewrite w, [cuenta] "asigno 4 valores en la eprom interna
                 w = w + 1  
          else
         PORTB = %00001100  " muestra la E de error por desborde
          endif
goto inicio



En la muestra de los valores se lee de la eprom y el reset pone a "0" la  eprom (si bien esto desde el punto de vista práctico no es lo conveniente en este caso  por el intenso trabajo que lleva a cabo la eprom interna, ya que con el boton reset estariamos continuamente borrando y escribiendo con save espero alguien pueda aportar datos sobre esto, pero creo que en casos asi se usa una eprom externa, esto lo dejaremos para mas adelante.-


Codigo:
labelShow:
        FOR x=0 to 3                "leo las 4 posiciones de la  eprom para mostrar los números almacenados
            show = eread x
         
      if cuenta = 0
         PORTB = %10000000 "numero 0
      endif
      
      if show = 1
         PORTB = %11110010 "numero 1
      endif
      
      if show = 2
           PORTB = %01001000 " numero 2
      endif
      
      if show = 3
         PORTB = %01100000 "numero 3
      endif
      
      if show = 4
         PORTB = %00110010 "numero 4
      endif
      
      if show = 5
         PORTB = %00100100 "numero 5
      endif
      
      if show = 6
         PORTB = %00000100 "numero 6
      endif
      
      if show = 7
         PORTB = %11110000 "numero 7
      endif
      
      if show = 8
         PORTB = %00000000 " numero 8
      endif
      
      if show = 9
         PORTB = %00110000  "numero 9
      endif
       PAUSE 1000
     NEXT  
 x=0
goto inicio
labelreset:
            for R=0 to 3       "recorro las posiciones de la eprom
         ewrite R,
  •     "igualo las posiciones a "0"
             next
             PORTB = %10000000  " resetea a cero y muestra cero en display
             w = 0
          goto inicio
    END


espero que se animen y coloquen sus experiencias.-

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

Desconectado LordLafebre

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

Cual es la idea Doppel...? para hacerla en PBP...

Me he perdido de este hilo... Sonrisa Gigante

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Hola Lordlafebre!!!

Bien! la idea es mas o menos la siguiente! por que en realidad no habia una idea solo se fueron agregando cosas para ver mas que nada como funciona !!

Cuatro botones (pulsadores):

1- next (para avanzar en la cuenta)
2-save (para grabar los valores que se eligen)
3-show (para mostrar los valores guardados)
4-reset (borra la eprom y muestra "0"Giño

se avanza con NEXT y cuando se para en un número se puede almacenar con SAVE, se almacenan un total de 4 digitos y si querés almacenar otro teniendo ya los 4 te muestra la "E" de error, para mostrarlos lo haces con SHOW y los muestra en orden de grabado con 1 segundo de intervalo entre digito y digito.
Para borrar los numeros esta el boton RESET que borra la eprom y muestra el "0" en el display

a ver como queda!!!! Rebotado


saludos!! y a los demas que se animen!!
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado LordLafebre

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

Voy a intentarlo.... mañana en la tarde o noche subire el codigo y el ejemplo en proteus...! Sonrisa Gigante

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Hola gente !
estoy un poco complicado con el tiempo pero siempre que me pueda escapar un segundo estare colocando ejemplos.-

Lo visto hasta ahora fue en base a display de 7 segmentos, lo que sigue es lo obligatorio y es pasar a pantallas de LCD Rebotado

Lo siguiente es un ejemplo sencillo de manejo de LCD con las configuraciones que toma por defecto el protón, osea que solamente conectamos el lcd en las patas que correspondan por "default" y sale andando! distinto seria si quisieramos que funcione en otros puertos que no fueran estos, para ello tendriamos que declararlos y decirle a proton donde vamos a conectar cada cosa, pero esto queda para el proximo ejemplo.-
el siguiente codigo hace aparecer un mensaje de dos lineas, y está desarrollado con un lcd de 2x16 generico y con un pic 16f84a.-


Codigo:
"conexiones default = 4 bits, 2 lineas de display x 16
"d4 = RB4
"d5 = RB5
"d6 = RB6
"d7 = RB7
"EN = RB2
"R/W = masa
"RS = RB3

device = 16f84a                  " declaramos pic a usar
xtal = 4                         " declaramos cristal
             "no se usan los comandos de inicializacion por usar conexiones por defecto  
print $fe, 1                      " limpia pantalla
delayms 30                     " siempre despues de limpiar pantalla hacer un delay
print $fe, 128, "hola loco!!!"     " se posiciona en la posicion 1 de la linea 1 (home) y muestra el mensaje
print $fe, $c0                     " se posiciona en el comienzo de la linea 2  
print "como estas?"                " muestra el mensaje


la imagen correspondiente en proteus!



como siempre espero que coloquen sus imagenes para ver como les queda y tb que hagan sus consultas, entre todos solucionaremos las dudas.-

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

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
Ahi va otro ejemplo tomando otros puertos para el manejo del LCD.- Muchas risas

En el manual estan los demás detalles !!

Codigo:
"conexiones = 4 bits, 2 lineas de display x 16 -
"d4 = RB0
"d5 = RB1
"d6 = RB2
"d7 = RB3
"EN = RB4
"R/W = masa
"RS = RB5

device = 16f84a               " declaramos dispositivo
declare xtal = 4               " declaro cristal

declare lcd_type 0             " declaramos el tipo de LCD 1=grafico 0=alfanumerico
declare lcd_dtport PORTB     " declaramos puerto a usar
declare lcd_dtpin PORTB.0    " asigna puerto y pines que se usaran como linea de DATOS
declare lcd_enpin PORTB.4    " asigna el puerto y pin para linea de ENABLE
declare lcd_rspin PORTB.5    " asigna el puerto y pin para linea de RESET
declare lcd_interface 4      " informa al compilador cuantas lineas se usan de conexion 4 u 8
declare lcd_lines 2          " informa al compilador la cantidad de lineas del LCD este caso 16 x 2 lineas

       print $Fe, 1                    "  limpia pantalla
      delayms 30                      " siempre que se limpia pantalla tiene que haber un pequeño delay luego
      print $fe,128,"HOLA LOCO    !!" " va al home y muestra mensaje

      





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

Desconectado manuelroin

  • PIC12
  • **
  • Mensajes: 51
Necesito saber como adjuntar datos en el foro y como mostrar imagenes para poder ayudar a unos amigos

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #38 en: 23 de Noviembre de 2005, 00:12:00 »
Muchas risas   QUE TAL HERMANOS  Sonrisa Gigante

PUES BIEN,  HOY LLEGAMOS A UN ACUERDO CON EL MODERADOR DE ESTE POST, DESDE HOY VAMOS A CONTINUAR AVANZANDO CON ESTE FORO PARA IR PROFUNDIZANDO CONOCIMIENTOS EN LOS LENGUAJES BASIC PARA PIC PBP Y PROTON.... ...ADEMAS VAMOS A IR AÑADIENDO LOS MISMOS EJEMPLOS HECHOS PARA PIC PARA LOS MICROCONTROLADORES DE MARCA ATMEL AVR...

ES DECIR VAMOS A PONER UN EJEMPLO Y DE SER POSIBLE EL CODIGO EN LOS TRES LENGUAJES BASIC, PROTON Y PBP, PARA PIC Y BASCOM BASIC PARA LOS AVR ATMEGA8 DE ATMEL...

PARA LA SIMULACION PUES VAMOS A UTILIZAR PROTEUS, Y TODOS LOS ARCHIVOS SERAN COLGADOS PARA QUE LOS PUEDAN BAJAR Y APRENDER JUNTO A NOSOTROS..

LO UNICO QUE ESPERAMOS ES CONTAR CON SU COLABORACION Y SU APOYO, NO DUDEN EN PREGUNTAR Y PUES VAMOS ADELANTE LA IDEA ES TRATAR DE PONER UN EJEMPLO DIARIO EN LOS TRES LENGUAJES, ASI DE PASO APRENDEMOS A PROGRAMAR PIC Y AVR EN BASIC...

BUENO ESPERAMOS CONTAR CON SU APOYO Y PUES DESDE HOY EMPEZAMOS A TRABAJAR CON LOS EJEMPLOS, PUES POR ESTOS DIAS VOY A EMPEZAR  A SUBIR EL CODIGO DE BASCOM PARA AVR DE LOS EJEMPLOS QUE ESTAN POSTEADOS ACA, Y PRONTO ESTAREMOS CON TODOS LOS EJEMPLOS EN ORDEN...

SALUDOS DESDE ECUADOR RebotadoRebotado
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #39 en: 23 de Noviembre de 2005, 00:38:00 »
Hola:

Pues no se si cambiamos mucho la idea original del post, pero para no abrir muchos links decidimos continuar aqui, y de paso animamos un poquito mas a aquellos que no saben que compilador utilizar, presentamos tambien una opcion como dice olotill el compilador Bascom para AVR... y asi comparamos un poco las virtudes de los unos y de los otros como a micros y compiladores se refiere...

Pues como se notara, soy amante del Basic, y cualquier compilador que sea basic es bienvenido... Sonrisa Gigante

Ya estaremos con mas ejemplos para quienes se interesen... Rebotado

Desconectado lord_10

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 612
    • My Blog
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #40 en: 23 de Noviembre de 2005, 08:42:00 »
escrito por Lord_lafebre:

Pues como se notara, soy amante del Basic, y cualquier compilador que sea basic es bienvenido...

Oye pana si casi no se nota que te agrada el Basic, nadamas tantito..... Muchas risasAvergonzado
..::  3D5F ™ ::..  AHC

"Tan sólo hace falta una pequeña idea, para hacer un gran sueño realidad."

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #41 en: 23 de Noviembre de 2005, 08:47:00 »
Hola:

Pues es el que me enseñaron en el cole, y una ves que aprendes pues le encuentras el gustito... pero el que mas me agrada es el PBP ese lo uso... los demas los veo como alternativas.... Sonrisa Gigante

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #42 en: 23 de Noviembre de 2005, 13:36:00 »
Hola Amigos!!
Muy buena idea!! y de paso revivimos este post y aprendo un poco de Atmel que ya me estaba interesando.!!!

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

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #43 en: 23 de Noviembre de 2005, 21:08:00 »
Hola compadres...

Pues bien lo prometido es deuda.... aca esta el primer ejemplo de Bascom AVR, basado en el primer ejemplo de este post, osea hacer alternar el encendido de dos leds conectados a los pines b0 y b1 del micro ATMEGA8...

Aca les envio el codigo den basic con las respectivas explicaciones linea por linea...

"*****************************************************************
"     ALTERNAR DOS LEDS CONECTADOS A LOS PINES B0 Y B1 ATMEGA8
"*****************************************************************




"*****************************************************************
"     DECLARACION DEl CRISTAL A USAR
"*****************************************************************
$crystal = 1000000       " definir cristal interno del atmega8 1MHz  la frecuencia
                                      " del cristal en los AVR no se divide para 4 como en los PIC

"*****************************************************************
"     DECLARACION DE PINES COMO ENTRADA Y/O SALIDA
"*****************************************************************

Ddrb.1 = 1
                                                " configurar el pin B1 como salida
Portb.1 = 0                                                 " ambas instrucciones
Ddrb.0 = 1                                                  " configurar el pin B0 como salida
Portb.0 = 0                                                 " ambas instrucciones

Led1 Alias Portb.0                                          " RENOMBRA AL PIN B0
Led2 Alias Portb.1                                          " RENOMBRA AL PIN B1
"*****************************************************************"     PROGRAMA PRINCIPAL
"*****************************************************************

Main:                                                       " RUTINA PRINCIPAL
   Set Led1                                                 " ENCENDER LED1 B0
   Reset Led2                                               " APAGAR LED2 B1
   Waitms 500                                               " TIEMPO DE ENCENDIDO 0.5 SEG
   Set Led2                                                 "  ENCENDER LED2 B1
   Reset Led1                                               " APAGAR LED1 B0
   Waitms 500                                               " TIEMPO DE ENCENDIO 0.5 SEG
Goto Main                                                   " LAZO INFINITO DE RUTINA MAIN

END

"**********************************************
"                                   FIN
"**********************************************


Listo ese es el codigo del primer ejemplo, hoy mismo subo la simulacion en proteus, espero que les sirva y pues espero ponerme al dia con los ejemplos para avanzar cada vez mas...

Si existe alguna duda o comentario, pues ya saben aca estamos para responder...

Saludos y suerte compadres Sonrisa GiganteSonrisa GiganteRebotado










"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1534
RE: Aprender Pic y AVR con compiladores Basic (Proton, PBP, Bascom) simulación en Proteus
« Respuesta #44 en: 23 de Noviembre de 2005, 21:15:00 »
Hola Olotill!!! gracias por el ejemplo!Giño

está de lo más interesante, y entendible por lo que veo será fácil pasarme a Bascom AVR, voy a ver si la semana que viene hago un poco de tiempo libre y me pongo con mas dedicación con esto!!

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