Curso de programación de PIC en PICBasic Pro

Amigo lubeck en el diseño de esa pequena red 485 colocas entre el max232 y el max485 unas 40106 asi esta bien el conversor 232 a 485 o es por fines de la simulacion nada disculpen la pregunta tan ignorante pero estoy tratando de hacer la red y con ello quiero ver si comienzo a armarla y poder seguir probando de antemano gracias por la ayuda que me puedan brindar

sip. es un 40106, entre el 232 y el 485...

pero si entendi bien tu vas a comunicar un 877 como master y unos 628 como esclavos asi que no se necesita ni el max232 ni el 40106...

intenta subir algo para ver que estas tratando de hacer... seria mas facil...:D
 
Gracias por contestar amigo mira lo que pretendo hacer es una red de hasta 3 esclavos como master la PC realizar un VI en Labview para comandar las operaciones de los esclavos como control y monitoreo eso lo debo hacer con microcontroladores mas o menos como planteaste el video pero con operacion de lectura y escritura de variables como activar y desactivar entradas leer las entradas analogas de los mismos con la ventaja de ser esclavos manipular a mi conveniencia que esclavo mando a realizar he tratado en empezar pero me hago mucho lio a tratar de enviar y recibir como tambien direccionar los esclavos no logro estructurar el protocolo...por lo que trato de hacer es primero ultimar el codigo simulandolo que he tradado de hacer pero sin exito no se si es mi proteus o no logre armarlo bien ahi adjunto una grafica de lo que he probado
 

Adjuntos

  • circuito.PNG
    circuito.PNG
    33.9 KB · Visitas: 88
bueno es que el esquema que pones es para conectar una PC a la red 485 y primero dices que el 877 iba a ser un master y dos 628 como esclavos...por eso mi intension de que primero hagas algo (en archivo proteus) para que definas bien lo que deseas hacer..

si lo vemos en el sentido estricto, no creo que ninguno sea esclavo ni maestro, sino que todos pertencen a una Red de comunicacion....

yo lo que haria si fuera tu seria hacer la comicacion serial normal primero entre dos pic, ya que se comunican haciendo lo que quieres, y hasta despues pones los integrados 75176...

para comunicar dos, tres, cuatro o etc pics hice este ejemplo....
 
Última edición:
hola mi amigo gracias de nuevo por responder mira mi intencion como te dije es que hacer una red con una comunicacion maestro esclavo con el computador hacer la aplicacion desde labview para controlar y direccionar los esclavos y las tareas que quiero que haga desde el labview para manipular a los micros...pero como te mencione anteriormente quiero intentar hacer la simulacion con el proteus y asi poder ir depurando los problemas que tenga pero no logro establecer la comunicacion simulada por serie sera que tu me puedes ayudar con el diagrama para simularlo al parecer no puedo copiarlo bien desde el video que hiciste el favor de colgar en el foro disculpa las molestias de antemano
 
hola gente del foro, feliz año nuevo.
bueno, comenzando el año en este post. les cuento que estoy intentando hacer funcionar una matriz de leds de 5x7 con in pic16f628 sin registros de desplazamientos, solo pic. bueno, despues de investigar un poco y haciendo un poco de copy paste :D, logre hacer desplazar un HOLA. el problema es que, la multiplexacion es muy lenta. me gustaria saber si alguno de uds me tira algunas otras ideas o si me dan una idea de como hacer para que no se vea ta lenta la multiplexacion modificando el programilla que ya les comparto mas abajo.
saludos a todosss.

Código:
@ DEVICE MCLR_OFF, INTRC_OSC, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
DEFINE OSC 4 
CMCON = 7                     ' desactivo el convertidor AD del puerto A
TrisA=%10110000               'todo el port A como entrada
TrisB=%00000000               'todo el port B como salida
PORTA = %10110000             'todo el port A en 1
PORTB = %00000000             'todo el port B en 0

k var word 
j var byte 
x var byte [30]
i var byte
y var byte [5]   

'columnas
'H
x[0]=%11000000
x[1]=%11110111
x[2]=%11110111
x[3]=%11000000
x[4]=%11111111
'O
x[5]=%11100001
x[6]=%11011110
x[7]=%11011110
x[8]=%11100001
x[9]=%11111111
'L
x[10]=%11000000
x[11]=%11011111
x[12]=%11011111
x[13]=%11011111
x[14]=%11111111
'A
x[15]=%11000001
x[16]=%11110110
x[17]=%11110100
x[18]=%11000001
x[19]=%11111111
'/
x[20]=%11111101
x[21]=%11111011
x[22]=%11110111
x[23]=%11101111
x[24]=%11011111
'/
x[25]=%11111101
x[26]=%11111011
x[27]=%11110111
x[28]=%11101111
x[29]=%11011111


'col
y[0]=%00000001
y[1]=%00000010
y[2]=%00000100
y[3]=%00001000
y[4]=%01000000

inicio: 
for k=0 to 100
for i=0 to 26
for j=0 to 4
portb=x[i+j]
porta=y[j]
pause 25
next j 
next i
next k
porta=0
portb=0
goto inicio
 

Adjuntos

  • display 5x7.rar
    18.4 KB · Visitas: 253
hola gente del foro, feliz año nuevo.
bueno, comenzando el año en este post. les cuento que estoy intentando hacer funcionar una matriz de leds de 5x7 con in pic16f628 sin registros de desplazamientos, solo pic. bueno, despues de investigar un poco y haciendo un poco de copy paste :D, logre hacer desplazar un HOLA. el problema es que, la multiplexacion es muy lenta. me gustaria saber si alguno de uds me tira algunas otras ideas o si me dan una idea de como hacer para que no se vea ta lenta la multiplexacion modificando el programilla que ya les comparto mas abajo.
saludos a todosss.

Código:
inicio: 
for k=0 to 100
for i=0 to 26
for j=0 to 4
portb=x[i+j]
porta=y[j]
[COLOR=Red]pause 25[/COLOR]
next j 
next i
next k
porta=0
portb=0
goto inicio

Saludos D@rio y Prospero año 2K12
Una pregunta, ¿El sistema lo probaste armado en Protoboard o solo lo has simulado?
Por que note un error en la configuración del proyecto en ISIS tienes el oscilador configurado a 1Mhz.
Y en el programa lo defines a 4Mhz y como usas el interno pues a esa velocidad trabajara.
Yo solo cambie la configuración del Cristal a 4Mhz y trabajo mas rápido.
También modifique la pausa de 25 Ms por 10 Ms y también con eso se obtubo mayor velocidad.
Bueno, eso fue lo que realize. :cool: :apreton:
PD. Los comentarios de PORTA estan mal, pero bueno solo son comentarios. :D
 
Última edición:
gracias darkbytes.
Una pregunta, ¿El sistema lo probaste armado en Protoboard o solo lo has simulado?
estoy probandolo armado en un protoboard, por eso no preste atencion al isis jeje...

También modifique la pausa de 25 Ms por 10 Ms y también con eso se obtubo mayor velocidad.
si, yo tambien hice eso, pero solo logre que las letras pasaran mas rapido, por lo que decidi dejarlo asi...

PD. Los comentarios de PORTA estan mal, pero bueno solo son comentarios.
jeje... si, eso pasa cuando uno hace copi paste jajaja...
saludos y gracias de nuevo amigo, sigo escuchando ideas :)
 
hola gente del foro, feliz año nuevo.
bueno, comenzando el año en este post. les cuento que estoy intentando hacer funcionar una matriz de leds de 5x7 con in pic16f628 sin registros de desplazamientos, solo pic. bueno, despues de investigar un poco y haciendo un poco de copy paste :D, logre hacer desplazar un HOLA. el problema es que, la multiplexacion es muy lenta. me gustaria saber si alguno de uds me tira algunas otras ideas o si me dan una idea de como hacer para que no se vea ta lenta la multiplexacion modificando el programilla que ya les comparto mas abajo.
saludos a todosss.

Código:
@ DEVICE MCLR_OFF, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
DEFINE OSC 4 
CMCON = 7                     ' desactivo el convertidor AD del puerto A
TrisA=%00000000               'todo el port A como salida
TrisB=%00000000               'todo el port B como salida
PORTA = %00000000             'todo el port A en 0
PORTB = %00000000             'todo el port B en 0
 
k var word 
j var byte 
x var byte [30]
i var byte
y var byte [5]   
 
'columnas
'H
x[0]=%11000000
x[1]=%11110111
x[2]=%11110111
x[3]=%11000000
x[4]=%11111111
'O
x[5]=%11100001
x[6]=%11011110
x[7]=%11011110
x[8]=%11100001
x[9]=%11111111
'L
x[10]=%11000000
x[11]=%11011111
x[12]=%11011111
x[13]=%11011111
x[14]=%11111111
'A
x[15]=%11000001
x[16]=%11110110
x[17]=%11110100
x[18]=%11000001
x[19]=%11111111
'/
x[20]=%11111101
x[21]=%11111011
x[22]=%11110111
x[23]=%11101111
x[24]=%11011111
'/
x[25]=%11111101
x[26]=%11111011
x[27]=%11110111
x[28]=%11101111
x[29]=%11011111
 
 
'col
y[0]=%00000010
y[1]=%00000100
y[2]=%00001000
y[3]=%00010000
y[4]=%00100000
 
inicio: 
for k=0 to 100
for i=0 to 26
for j=0 to 4
portb=x[i+j]
porta=y[j]
pause 25
next j 
next i
next k
porta=0
portb=0
goto inicio


hola Dario revise tu trabajo y está fácil la reforma solo basta con activar el oscilador externo del pic a 4 mhz en el programa y en la rutina de columnas ponemos a4 en alto y a6 en bajo ponemos el porta4 para la salida uno y le ponemos una resistencia de 10k en pull up y así funciona bien revisa la rutina y veras los cambios que le hice suerte con tu proyecto...:)
 
Última edición:
hola Dario revise tu trabajo y está fácil la reforma solo basta con activar el oscilador externo del pic a 4 mhz en el programa y en la rutina de columnas ponemos a4 en alto y a6 en bajo ponemos el porta4 para la salida uno y le ponemos una resistencia de 10k en pull up y así funciona bien revisa la rutina y veras los cambios que le hice suerte con tu proyecto...:)

pues, no se si sere demasiado burro pero ya probe asi y sigue igual... bueno, voy a seguir investigando aver si le doy en el clavo jeje... gracias amigo fredy (y)
saludosss
 
Dario, a ver si me proporcionas algun manual bien ilustrado sobre el uso del TMR0 te agrdaecería....

¡¡¡SEÑOR!!!, ¡¡¡SI, SEÑOR!!! :enfadado::enfadado::enfadado:
:estudiando: ... ... ...
te recomiendo este libro, con el y con el manual de pic basic, he aprendido lo que se y como veras, no soy un genio jejeje... saludosss
(no te enojes por la broma :D)

pastalibro3ed.jpg
 
es muy buen libro ami me ha ayudado un monton, alguien ha probado la simulacion del proteus con el compim para realizar simulaciones con el pueto serie yo no lo logro ojala me puedan ayudar aqui cuelgo lo que he realizado.
 

Adjuntos

  • LABVIEW_PROTEUS.rar
    51.1 KB · Visitas: 162
es muy buen libro ami me ha ayudado un monton, alguien ha probado la simulacion del proteus con el compim para realizar simulaciones con el pueto serie yo no lo logro ojala me puedan ayudar aqui cuelgo lo que he realizado.

estas utilizando el virtual serial Port para simular la comunicacion entre el labview y el proteus???

es necesario eh!....

cuando comunicas directamente un pic con el puerto serial del pc, no es necesario que pongas el max232, el pic tiene diodos de proteccion para limitar los voltajes y dejarlos en niveles TTL....

yo utilice en mi esquema el max232 porque solo estoy utilizando el puerto serial del pc y el max485 sin microcrontrolador y ahi si tengo que ajustar a los niveles ttl....
 
Última edición por un moderador:
Hola Foreros, tengo un problema y tal vez me puedan ayudar.
Hice una interface para visualizar datos que se integraría a un sistema de domos instalados en distintos ambientes. Cada Domo puede controlar varias de estas interfaces como por ejemplo: expansión de salidas, expansión de entradas y un módulo de visualización de datos.
Ahi viene el problema, yo uso PICBASIC PRO v2.42, Microcode Studio v4 para generar el Hex (obvio con MPASM) sobre un PIC 16f628A.

El programa debería leer dos teclas y esperar un "pseudocomando" que inventé que le actualizaría algunos parámetros como Fecha actual, Temperatura ext., Humedad relativa, Veloc del Viento y Visibilidad.

A este parámetro lo debería guardar en una dirección de memoria EEPROM y mostrarlo secuencialmente en un display LCD, hasta aquí todo bonito, pero al compilar me da un error:

Warning[219] c:\pbp\pbppic14.lib 5974 : Invalid RAM location specified.

Abro esta librería y tal parece que estuviera relacionado con los READ y los WRITE, pero no puedo encontrar el error.

Me darían una mano?

Por anticipado mil gracias!
 
Hola a todos estoy realizando un dimmer ya logre la deteccion por cruce por cero y la activacion del triac, el programa funciona al 100%, lo probe en el protoboard y anda muy bien, les dejo este pequeño aporte para quien lo necesite, ahora tengo un problemita, quiero adaptarle otro programa que ya realice y que se que funciona pues ya lo he probado solo, la cuestion es que cuando trato de acoplarlo con el del dimmer no me funciona quisiera saber si alguien me puede echar una mano, el codigo que quiero hacer es este:

Código:
'****************************************************************
'*  Name    : DIMMER 2 BOTONES.BAS                              *
'*  Author  : REIMY VILLAMIZAR                                  *
'*  Notice  : Copyright (c) 2011                                *
'*          : All Rights Reserved                               *
'*  Date    : 04/12/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ device pic12f675,intrc_osc,wdt_on,pwrt_off,mclr_oFF,bod_off,protect_off
  
  Define OSC 4
  Include "modedefs.bas"
    
'DEFINE OSCCAL_1K 1    
CMCON = 7            
ANSEL = 0             
TRISIO = %00111101     
GPIO  = %00000000    
OPTION_REG = %00000000
WPU = %00000000 
     
LED VAR GPIO.0
SUBE VAR GPIO.5
IN VAR GPIO.4
TRIAC VAR GPIO.1
A VAR WORD
DATO VAR BYTE


A = 1
DATO = 0


ON INTERRUPT GOTO CRUCE_POR_CERO 
INTCON = %10010000 



INICIO:
DATO = 0
SERIN IN,N2400,1,INICIO,["."],DATO

GOTO INICIO


DISABLE
CRUCE_POR_CERO:
IF DATO = "2"  THEN
A = A + 20 
ENDIF
PAUSEUS A
IF A => 1 THEN
TRIAC = 1
PAUSEUS 100
TRIAC = 0
ENDIF
INTCON.1=0
OPTION_REG.6 = OPTION_REG.6 ^%1
RESUME
ENABLE
END

y el que si funciona como dimmer con dos pulsadores es este:

Código:
@ device pic12f675,intrc_osc,wdt_on,pwrt_off,mclr_oFF,bod_off,protect_off
Define OSC 4
     
DEFINE OSCCAL_1K 1    
CMCON = 7             
ANSEL = 0            
TRISIO = %00111101     
GPIO  = %00000000     
OPTION_REG = %00000000
WPU = %00110000      


SUBE VAR GPIO.5
BAJA VAR GPIO.4
TRIAC VAR GPIO.1
A VAR WORD

TRIAC = 0


a = 1   
PAUSE 500 

ON INTERRUPT GOTO CRUCE_POR_CERO 
INTCON = %10010000

INICIO:
IF SUBE = 0 AND BAJA = 0 THEN GOTO INICIO
IF SUBE = 0 AND BAJA = 1 THEN GOTO INCREMENTA
IF SUBE = 1 AND BAJA = 0 THEN GOTO DECREMENTA
IF SUBE = 1 AND BAJA = 1 THEN GOTO INICIO 
GOTO INICIO


INCREMENTA:
IF A => 6000 THEN GOTO INICIO
A = A + 1
GOTO INICIO

DECREMENTA:
IF A =< 1 THEN GOTO INICIO
A = A - 1
GOTO INICIO 

DISABLE
CRUCE_POR_CERO: 
PAUSEUS A
IF A => 1 THEN
TRIAC = 1
PAUSEUS 100
TRIAC = 0
ENDIF
INTCON.1=0
OPTION_REG.6 = OPTION_REG.6 ^%1
RESUME
ENABLE
END

PD: Un video de la activacion del triac con el codigo del dimmer con dos botones:



http://www.youtube.com/watch?v=QOQshwNctBo&feature=youtu.be
 
Última edición por un moderador:
estas utilizando el virtual serial Port para simular la comunicacion entre el labview y el proteus???

es necesario eh!....

cuando comunicas directamente un pic con el puerto serial del pc, no es necesario que pongas el max232, el pic tiene diodos de proteccion para limitar los voltajes y dejarlos en niveles TTL....

yo utilice en mi esquema el max232 porque solo estoy utilizando el puerto serial del pc y el max485 sin microcrontrolador y ahi si tengo que ajustar a los niveles ttl....

muchas gracias por la respuesta si estoy usando el virtual serial port pero al momento de usarlo y quererlo conectar no se envian los datos yo subi el esquema del proteus y del labview que he estado probando pero no lo he logrado..segun no mal entiendo tengo que usar el max232 por acomples de niveles porque quiero transmitir y recibir desde el micro a la pc
esa es mi duda que no puedo simularlo o soy bien inutil o bien bruto que no alxanzo ha hacerlo
 
Bueno ya logre hacer funcionar mas o menos el codigo del triac con el serin cuando lo tenga mas completo lo coloco, ahora les dejo otro aporte de control de dos lcd con un solo pic, un ejemplo que saque de otro foro de http://www.picbasic.co.uk muy bueno de echo tienen librerias para picbasic pro, en fin aca esta la simulacion y el codigo...saludosss
 

Adjuntos

  • DOS LCD 16F628A.rar
    12.7 KB · Visitas: 172
ahora les dejo otro aporte de control de dos lcd con un solo pic, un ejemplo que saque de otro foro de http://www.picbasic.co.uk muy bueno de echo tienen librerias para picbasic pro, en fin aca esta la simulacion y el codigo...saludosss
Saludos reyvilla.
Te comento que hay 2 errores en el código.
En la variable LCD2_Disable VAR PORTB.6
En el resto del programa esta como LDC2_Disable
y esta referencia LCDEN = 1 + 2 no se usa en el programa.
Solo hay que corregir eso, y si funciono :apreton:
 
Atrás
Arriba