Autor Tema: Empecemos con un Cursillo del compilador Pic Simulator IDE Basic.  (Leído 64822 veces)

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

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #30 en: 14 de Julio de 2011, 19:21:51 »
Define SIMULATION_WAITMS_VALUE = 10  'este instruccion es para la simulacion si lo quieren quemar en el micro solo quiten esta linea
AllDigital  'todos los pines como digitales
TRISB = %00000000  'todo el puerto B configurado como salida
Dim a As Byte  'a la pongo como variable de tipo byte
a = 0
RB.0 = 1  'pongo a 1 el pin b0 del puerto b
WaitMs 500  'le doy un retardo de 500ms
inicio:

For a = 1 To 7 Step 1  'en esta instruccion repito a a 7 veces y depues que ejecute el otro for
RB = ShiftLeft(RB, 1)  'desplazo el 1 que esta en el pin rb.0 del puerto b hacia la izquierda
WaitMs 500  'le dejo un retraso de 500ms
Next a

a = 0  'pongo a=0 para no usar otra variable
For a = 1 To 7 Step 1  'es otro bucle for que repetira 7 veces lo que esta adentro de este bucle
RB = ShiftRight(RB, 1)  'desplazo el 1 que esta en el pin rb.0 del puerto b hacia la derecha
WaitMs 500  'le doy un retraso de 500ms
Next a   
Goto inicio
« Última modificación: 14 de Julio de 2011, 19:50:58 por RockLee_89 »

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #31 en: 14 de Julio de 2011, 19:29:12 »
Ahora el mismo programa del coche fantástico pero con instrucciones (if  then)

Define SIMULATION_WAITMS_VALUE = 10  'este instruccion es para la simulacion si lo quieren quemar en el micro solo quiten esta linea
AllDigital  'todos los pines como digitales
TRISB = %00000000  'todo el puerto B configurado como salida

RB.0 = 1  'pongo a 1 el pin b1 del puerto b
WaitMs 500  'le doy un retardo de 500ms

izquierda:
RB = ShiftLeft(RB, 1)  'desplazo el 1 que esta en el pin rb.0 del puerto b hacia la izquierda
WaitMs 500  'le dejo un retraso de 500ms
If RB.7 = 1 Then Goto derecha  'si rb.7=1 salto ala secuencia de derecha
Goto izquierda

derecha:
RB = ShiftRight(RB, 1)  'desplazo el 1 que esta en el pin rb.1 del puerto b hacia la derecha
WaitMs 500  'le doy un retraso de 500ms
If RB.0 = 1 Then Goto izquierda  'si rb.0=1 salto ala secuencia de izquierda
Goto derecha
« Última modificación: 14 de Julio de 2011, 19:51:31 por RockLee_89 »

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #32 en: 14 de Julio de 2011, 19:48:15 »
el mismo ejemplo que los 2 anteriores pero ahora utilizando los siclo wile y wend

Define SIMULATION_WAITMS_VALUE = 10  'este instruccion es para la simulacion si lo quieren quemar en el micro solo quiten esta linea
AllDigital  'todos los pines como digitales
TRISB = %00000000  'todo el puerto B configurado como salida
Dim a As Byte
RB.0 = 1  'pongo a 1 el pin b1 del puerto b
WaitMs 500  'le doy un retardo de 500ms
a = 0
izquierda:

While a < 7  'si a es menor a 7 ejecunta lo que esta entre while y wend
a = a + 1
RB = ShiftLeft(RB, 1)  'desplazo el 1 que esta en el pin rb.0 del puerto b hacia la izquierda
WaitMs 500  'le dejo un retraso de 500ms

Wend  'si no es menor a 7 ejecuta lo que esta despues de wend
a = 0

While a < 7  'si a es menor a 7 ejecunta lo que esta entre while y wend
a = a + 1
RB = ShiftRight(RB, 1)  'desplazo el 1 que esta en el pin rb.1 del puerto b hacia la derecha
WaitMs 500  'le doy un retraso de 500ms

Wend  'si no es menor a 7 ejecuta lo que esta despues de wend
a = 0
Goto izquierda
« Última modificación: 14 de Julio de 2011, 19:51:53 por RockLee_89 »

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #33 en: 15 de Julio de 2011, 17:28:36 »
Hola Rocklee_89, te felicito por tu iniciativa, a ver si se anima alguien más. :)
Saludos desde Granada, España.

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #34 en: 17 de Julio de 2011, 11:56:44 »
De nada amigo dogflu66 horita estoy  clavado con la comunicación serial  pero pondré más ejemplos.  ya que el fin es aportar algo ,bueno lo poco que ce para que los que van empezando ce interesen mas por esto que son los pic que son  maravillosos y te ahorran  mucho tiempo y  $ al  hacer con uno de estos pic todo el proceso  y  En lugar de poner muchos (ic) que realizan un trabajo especifico   :-/

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #35 en: 17 de Julio de 2011, 19:52:18 »
Bueno amigos el siguiente programa que les dejo es un contador de 0  a 99 con 2 circuitos 7447 y 2 display  de ánodo común.

El programa esta implementado con el puerto (a)  para poder sumar una variable la cual cera programado en la eeprom del pic y la cual cera el punto final del contador cuyo valor cera mínimo de 0 y máximo de 99.

El programa funcionara de esta manera, cuando inicializa la aplicación entrara ala subrutina la cual  prendera un led que cera puesto en el puerto a pin 4 (ra.4), indicando que el programa está listo para sumar y guardar el dato en el cual uno desea que su contador ce detenga.

 El pulsador que se encuentra en el puerto a pin 0 (ra.0) es el encargado de sumar la variable y mostrarla en el displey.

El pulsador que se encuentra en el puerto a pin 1 (ra.1) es el encargado de restar  la variable y mostrarla en el displey.

El pulsador que se encuentra en el puerto a pin 2 (ra.2) es el encargado de guardar la variable en la memoria interna del pic y apagar el led puesto en (ra.4) indicando que ya quedo un dato guardado.

El programa solo suma una variable y la compara con la variable anteriormente guardada y si son = termina el programa.

Espero que le sea de alguna utilidad como practica usando instrucciones if.. Then,  gosub, y read y write
Saludos desde Tamaulipas México ce despide rockLee_89
« Última modificación: 17 de Julio de 2011, 20:09:55 por RockLee_89 »

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #36 en: 17 de Julio de 2011, 20:08:22 »
Define SIMULATION_WAITMS_VALUE = 10  'solo para simulacion
AllDigital  'todos los pines digitales
TRISA = %000111  'pines ra.0,ra.1,ra.2 como entradas
TRISB = %00000000  'puerto b como salida
Dim a As Byte
Dim b As Byte
a = 0
b = 0
Gosub dato  'saltar ala subrutina

inicio:

Read 0, a  'leer lo que esta en la memoria en la casilla 0 y guardarlo en la variable a
If b = a Then  'un comparadar para termino de nuestro programa
End                                               
Endif

b = b + 1  'simple contador
PORTB = b  'y lo saca por el puerto b en binario
WaitMs 1000

Goto inicio

dato:
RA.4 = 1  'encender el pin ra.4 (este es el led)

If RA.0 = 1 Then  'si ra.0=1 le suma 1 ala variable a
a = a + 1
If a = 100 Then  'una simple condicion para que solo llegue a 99
a = 0
Endif

PORTB = a  'lo saca por el puerto b el valor de la variable a para ver que numero esta
WaitMs 50
Endif

If RA.1 = 1 Then  'si ra.1=1 le resta 1 ala variable a
a = a - 1
If a = 255 Then  'una simple condicion para que cuando a este a 0 y ustedes le quieran restar no los aparesca ff o 255 numero que sobrepasa nuestro contador
a = 0
Endif

PORTB = a  'lo saca por el puerto b el valor de la variable a para ver que numero esta
WaitMs 50
Endif

If RA.2 = 1 Then  'si ra.2 es = a 1 entonces
RA.4 = 0  'apaga el led que indica que ya guardo un dato
WaitMs 50
Write 0, a  'y escribe el dato el cual quedo prestablecido en la casilla 0, lo que hay en la variable a
Return  'regresar a donde fue llamada la subrutina
Endif
Goto dato


si en algo la regue o tienen algunas ides o mejoras para el programa tenga la confianza de decírmelo ya que nadie nace sin equivocarse y el fin son programas didácticos para que  los novatos como yo tengan una idea de cómo hacer simples circuitos y que recuerden que la practica hace al maestro..

tenia pensado que Leyera la variable a y si es mayor a 0 y menor a 99 se ejecute el programa para que así no esté como esclavo de que cada que lo conectes no estar guardando el dato acada rato pero ce me paso bueno pero el ejemplo jala que es lo bueno jiji

Saludos y nos veremos después con mas ejemplos
 

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #37 en: 17 de Julio de 2011, 21:13:08 »
Bueno amigo hoy les  dejare unos ejemplos fáciles y tratare de explicarles como utilizar un lcd  de 16 caracteres y 2 líneas  (16x2) 

Casi todos los lcd de 16x2 bueno al menos los que yo e visto y manejado vienen con sus 16 pines aunque no recuerdo bien si los LCD que no tienen luz de fondo los traigan los 16 bueno en si con luz o sin luz es lo de menos

Bueno lo adjunto ya que lo explique de cómo conectarlo y los comandos comunes del lcd para su manejo
y como es mucho no quiero echarme mucho royo aqui y aburrirlos mejor les dejo el archivo de word asi el que quiera le da una leida y entiende algo sobre el lcd su conecion y su manejo en este lenguaje

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #38 en: 17 de Julio de 2011, 21:34:10 »
Bueno amigos aquí empezamos con el primer programa d manejo del lcd el programa saca un texto por la línea 1 del lcd y pasa a la línea 2 del lcd y escribe otra frase.

Define SIMULATION_WAITMS_VALUE = 10  'solo para simulacion
Define LCD_BITS = 4  'defino la conexion de 4 bits . cuando ponemos conexion de 8 bits el lcd_dbit es ignorado
Define LCD_DREG = PORTB  'defino la conexion del puerto b
Define LCD_DBIT = 4  'defino la conexion de los altos (4,5,6,7) del puerto b
Define LCD_RSREG = PORTB  'define el uerto b como conexion rs
Define LCD_RSBIT = 0  'define el pin donde ira conectado rs
Define LCD_EREG = PORTB  'define el puerto donde estara el pin de e
Define LCD_EBIT = 2  'defino la conecion de e por el pin 2
Define LCD_RWREG = PORTB  'defino a r/w por el puerto b
Define LCD_RWBIT = 1  'defino el pin 1 como r/w este pin lo podemos ignorar u poner con una resistencia a tierra ya que solo queremos escribir en el lcd y no leer
Define LCD_COMMANDUS = 1000  'define la demora en microsegundo en la escritura
Define LCD_DATAUS = 100  'define cuanto la escritura  de un dato
Define LCD_INITMS = 100  'define la demora de la inicizion del lcd
Lcdinit 2  'el cursor subrayado

inicio:
Lcdout "hola amigos"  'saco por la linea uno de lcd
WaitMs 2000  'retardo para visualizarlo
Lcdcmdout LcdLine2Home  'paso ala linea 2 del lcd
Lcdout "de todo pic"  'saco por la linea dos de lcd
WaitMs 2000  'retardo para visualizarlo
Lcdcmdout LcdClear  'borro lo que hay en el lcd
Goto inicio

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #39 en: 17 de Julio de 2011, 21:49:01 »
Bueno eso es todo por hoy ,maña  implementare la opción de count port para poder medir la frecuencia esta no la he implementado hasta valores de kilos, ya que no ce si llegue con 555 convencional hasta esta frecuencia ya que no cuento con un osciloscopio ni un  generador para ver estas frecuencias  pero he medido frecuencias con un 555 de  160 hz y medí con un acoplado de un transformador y una simple fuente de ½ onda una señal de 60 u 61 hz que es la frecuencia en México en la red eléctrica con lo cual creo que esta función si
sirve para poder medir frecuencias, si alguien la ha implementado en frecuencias en MHz y KHz puede comentar si con esta simple instrucción pude  funcionar o ce tiene que modificar.

El pic simulador cuenta con osciloscopio y generador  pero como soy algo lelo todavía no le he movido pero esto del 555 y el acoplado de la luz eléctrica si esta calado en físico.
 bueno eso sería todo  subiré fotos que le tome al lcd y al proto donde hice esta aplicación también tengo pensado usar esta misma aplicación para medir las rpm de un motor cuando tenga tiempo de hacer la conexión del motor  y su placa ce los mostrare
Espero que les allá servido de algo lo que e posteado que mi fin es ayudar al foro y a los novatos como yo como podrían usar algunas simples aplicaciones que el compilador nos da.
Desde Tamaulipas México ce despide RockLee_89 hasta la próxima.
« Última modificación: 18 de Julio de 2011, 12:54:42 por RockLee_89 »

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #40 en: 18 de Julio de 2011, 13:17:46 »
Bueno aquí les traigo el programa, con el cual podrán medir los pulsos que llegan a un pin especifico que fue configurado como entrada y ce desplegara en el lcd, la cantidad de pulsos que conto en un segundo.

Define SIMULATION_WAITMS_VALUE = 1  'solo para simulacion
AllDigital  'todos digitales
TRISA = %000001  'configuro el puerto a pin 0 como entrada
Define LCD_BITS = 4  'comunicacion del lcd de 4 bits
Define LCD_DREG = PORTB  'y se conectara en el puerto b
Define LCD_DBIT = 4  'con los 4 bit altos (4,5,6,7)
Define LCD_RSREG = PORTB  'el pin rs sera puesto en el puerto b
Define LCD_RSBIT = 0  'el pin sero sera rs de dicho puerto
Define LCD_EREG = PORTB  'el pin e sera puesto en el puerto b
Define LCD_EBIT = 2  'en el pin numero 2 de dicho puerto
Define LCD_RWREG = PORTB  'el pin r/w sera puiesto en el puerto b
Define LCD_RWBIT = 1  'pin 1 del puerto b para r/w
Lcdinit 2  'inicializo el lcd con el pulsor parpadeando

Dim i As Byte  'declaro una variable de tipo byte
Define COUNT_MODE = 1  'inicializo el contador
Lcdout "   FRECUENCIA   "  'cargo el texto en el primer renglon del lcd
Lcdcmdout LcdLine2Home  'salto al 2 renglon del lcd

inicio:

Lcdcmdout LcdLine2Home  'salto al 2 renglon del lcd
Count RA.0, 1000, i  'cuento lo pulsos que yegan a ra.0,durante 1s y los guardo en la variable i
Lcdcmdout LcdLine2Pos(5)  'salto ala posicion 5 del 2 renglon (esta opcion depende del usario la puedes quitar y no pasa nada solo el texto estara en el primer renglon)
Lcdout #i, " Hz "  'despliego a pantalla el valor de i y enseguida saco el texto hz
WaitMs 300  'un retardo para visualizar el contenido del lcd
Goto inicio

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
« Última modificación: 18 de Julio de 2011, 13:36:31 por RockLee_89 »

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #42 en: 18 de Julio de 2011, 13:32:31 »
En unos días empiezo a armar lo que cera la conexión del motor y el opto transistor para poder generar los pulsos y poderlos medir con esta opción para ver si podemos medir las rpm que nos entrega el motor
Saludos desde Tamaulipas Mexica se despide RockLee_89
 :) 8) :lol:
« Última modificación: 18 de Julio de 2011, 13:39:45 por RockLee_89 »

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #43 en: 20 de Agosto de 2011, 22:25:30 »
Hola Rocklee, genial que continues con este hilo poniendo ejemplos.

Yo dejé el basic y me pasé al C así que te dejo el relevo para que continues poniendo ejemplos !
Share the world !

Blog's

http://www.area0x33.com

Desconectado fabio2012

  • PIC10
  • *
  • Mensajes: 8
Re: Empezemos con un Cursillo del compilador pic simulator ide basic.
« Respuesta #44 en: 09 de Diciembre de 2012, 12:10:28 »
hola a todos le doy las gracias :) :) :) por poner ejemplos fasil para aprender el lenguaje basic,me gustaria que siguiean poniendo ejemplos fasil para nuestro aprendisaje.estoy solo en esto y por eso se me hace muy difisil aprender,pero con ejemplo sensillo es mas fasil agarrale la mano...desde ya gracias