# Tutorial Microcode studio pro, que es? y como usarlo?



## edyrron

Buenos días a todos

Primero q*ue* nada me gustaría agradecer a todos quienes comparten su conocimiento, haciendo de este foro una experiencia maravillosa.

soy un aficionado de la electrónica, (paso mucho de mi tiempo buscando y experimentando, pero no soy un profesional) y acabo de conocer el mundo de los pic's.

quiero q*ue* me ayuden a comprender como usar este compilador, cabe señalar q*ue* no se programar en ningún otro lenguaje, apenas me inicio con MicroCode.

adjunto un manual de MicroCode en castellano 
(también lo subí a megaupload por si acaso)



los comandos q conozco, son los siguientes:
IF, THEN , HIGH, LOW, GOTO, GOSUB, : , RETURN, PAUSE, VAR, FOR, NEXT, SOUND, END.
para usar un oscilador externo: @device xt_osc  define 4 (si es de 4 Mhz)

y este es mi problema, no se usar los demás comandos.
mi intención es aprender a crear circuitos de radio control, por módulos rf, y por infrarrojos.

lo que quiero es q*ue* me ayuden con ejercicios prácticos de como poder usar los demás comandos. 

para quemar pic's, uso el pickit 2 usb.

espero no haberlos aburrido con todo esto jeje.
agradezco su ayuda.


----------



## Gudino Roberto duberlin

edyrron dijo:


> Buenos días a todos
> 
> Primero q nada me gustaría agradecer a todos quienes comparten su conocimiento, haciendo de este foro una experiencia maravillosa.
> 
> soy un aficionado de la electrónica, (paso mucho de mi tiempo buscando y experimentando, pero no soy un profesional) y acabo de conocer el mundo de los pic's.
> 
> quiero q me ayuden a comprender como usar este compilador, cabe señalar q no se programar en ningún otro lenguaje, apenas me inicio con microcode.
> 
> adjunto un manual de microcode en castellano
> (también lo subí a megaupload por si acaso)
> 
> 
> 
> los comandos q conozco, son los siguientes:
> IF, THEN , HIGH, LOW, GOTO, GOSUB, : , RETURN, PAUSE, VAR, FOR, NEXT, SOUND, END.
> para usar un oscilador externo: @device xt_osc  define 4 (si es de 4 Mhz)
> 
> y este es mi problema, no se usar los demás comandos.
> mi intención es aprender a crear circuitos de radio control, por moludos rf, y por infrarrojos.
> 
> lo que quiero esq me ayuden con ejercicios prácticos de como poder usar los demás comandos.
> 
> para quemar pic's, uso el pickit 2 usb.
> 
> espero no haberlos aburrido con todo esto jeje.
> agradezco su ayuda.


Hola Amigo, MCS o MicroCodeStudio, posee una ayuda sobre comandos, y ejemplos. 
En cuanto a programacion, habra que experimentar es la unica forma de aprender.- Saludos.-


----------



## edyrron

jejeje, tienes toda la razón Gudino, pero hay cosas q*ue* no entiendo, y p*ue*s q*ue* no puedo llevar a la practica, porq*ue* no se en donde va, o q*ue* precisamente hace, ejemplo:

10.15. SERIN y SEROUT
SERIN y SEROUT usan sintaxis BS1 SERIN2 y SEROUT2 usan sintaxis BS2 .Se agregó un control de
tiempo estilo BS2 a SERIN .
SERIN y SEROUT han sido alterados para funcionar hasta 9600 baud en lugar del límite de 2400 baud de
BS1 .Esto se logró reemplazando el baud rate de 600 por el de 9600 .
Ahora se pueden usar Modes T9600 ,N9600 ,OT9600 ,ON9600.
600baud no está disponible y causará un error de compilación si se intenta usar .

aquí, mi pregunta es: que es baud, cuales son los modes T9600, N9600, etc, etc...

y así, muchas q*ue* en en el manual, dice, pero q*ue* me deja en las mismas.


----------



## Gudino Roberto duberlin

edyrron dijo:


> jejeje, tienes toda la razon Gudino, pero hay cosas q no entiendo, y ps q no puedo llevar a la practica, porq no se en donde va, o q precisamente hace, ejemplo:
> 
> 10.15. SERIN y SEROUT
> SERIN y SEROUT usan sintaxis BS1 SERIN2 y SEROUT2 usan sintaxis BS2 .Se agregó un control de
> tiempo estilo BS2 a SERIN .
> SERIN y SEROUT han sido alterados para funcionar hasta 9600 baud en lugar del límite de 2400 baud de
> BS1 .Esto se logró reemplazando el baud rate de 600 por el de 9600 .
> Ahora se pueden usar Modes T9600 ,N9600 ,OT9600 ,ON9600.
> 600baud no está disponible y causará un error de compilación si se intenta usar .
> 
> aqui, mi pregunta es: que es baud, cuales son los modes T9600, N9600, etc, etc...
> 
> y asi, muchas q en en el manual, dice, pero q me deja en las mismas.



Hola Amigo, bueno respondiendo a tu pregunta las instrucciones SERIN y SEROUT, inicializan el protocolo de comunicacion serial asincrona entre el microcontrolador y algun periferico. BAUD, indica la tasa de transferencia de datos el cual, todos los dispositivos involucrados en dicha comunicacion deben tener el mismo valor, el cual es arbitrario. El caracter T o N como prefijo indica si el dato se envia en modo logica positiva o negativa respectivamente. La designacion OT u ON especifica que el puerto sera usado como Drenador abierto o Surtidor abierto respectivamente.
En mi region consegui un libro llamado PROGRAMACION DE MICROCONTROLADORES, de Dogan Ibrahim, es muy completo, e incluso las explicaciones inician desde cero.-


----------



## edyrron

ok Gudino, buscare ese libro para aprender.
entre tanto, como estaba aburrido, programe un pic 16f628a, para q hagas las luces del Auto fantástico "KITT", con 8 leds

lo subí a megaupload, en la carpeta hallaran el .hex, una simulación en preteus, y un .pbp para q lo editen con microcode.



el problema, esta en q*ue* es demasiado código, estoy seguro q*ue* debe haber una manera mas rápida de efectuar todo ese proceso.

el funcionamiento va así, hay dos button, uno para encender y otro para apagar, los led, se encienden de derecha a izquierda y viceversa. 




		Código:
	

inicio:
if porta.0=1 then kiton
if porta.1=1 then kitof
return
kiton:
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
high portb.6
pause 10
low portb.6
pause 10
high portb.5
pause 10
low portb.5
pause 10
high portb.4
pause 10
low portb.4
pause 10
high portb.3
pause 10
low portb.3
pause 10
high portb.2
pause 10
low portb.2
pause 10
high portb.1
pause 10
low portb.1
pause 10
gosub inicio
goto kiton
kitof:
low portb.0
low portb.1
low portb.2
low portb.3
low portb.4
low portb.5
low portb.6
low portb.7
gosub kitof
goto inicio
end



si alguien me ayuda a programar un radio control, se lo agradeceré de por vida...

lo único q*ue* se, es q*ue* para ello puedo usar dos pic16f628a y un módulo :tlp 434 trf", y un "tlp 434 rrf"
pero no se como generar los datos para q*ue* los reconozca el módulo, es decir, no se como hacer para enviar los datos, ni como generar esos datos.


----------



## Gudino Roberto duberlin

edyrron dijo:


> ok Gudino, buscare ese libro para aprender.
> entre tanto, como estaba aburrido, programe un pic 16f628a, para q hagas las luces del Auto fantastico "KITT", con 8 leds
> 
> lo subi a megaupload, en la carpeta allaran el .hex, una simulacion en preteus, y un .pbp para q lo editen con microcode.
> 
> 
> 
> el problema, esta en q es demasiado codigo, estoy seguro q debe haber una manera mas rapida de efectuar todo ese proceso.
> 
> el funcionamiento va asi, hay dos button, uno para encender y otro para apagar, los led, se encienden de derecha a izquierda y bicebersa.
> 
> 
> inicio:
> if porta.0=1 then kiton
> if porta.1=1 then kitof
> return
> kiton:
> 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
> high portb.6
> pause 10
> low portb.6
> pause 10
> high portb.5
> pause 10
> low portb.5
> pause 10
> high portb.4
> pause 10
> low portb.4
> pause 10
> high portb.3
> pause 10
> low portb.3
> pause 10
> high portb.2
> pause 10
> low portb.2
> pause 10
> high portb.1
> pause 10
> low portb.1
> pause 10
> gosub inicio
> goto kiton
> kitof:
> low portb.0
> low portb.1
> low portb.2
> low portb.3
> low portb.4
> low portb.5
> low portb.6
> low portb.7
> gosub kitof
> goto inicio
> end
> 
> 
> si alguien me ayuda a programar un radio control, se lo agradecere de por vida...
> 
> lo unico q se, esq para ello puedo usar dos pic16f628a y un modulo :tlp 434 trf", y un "tlp 434 rrf"
> pero no se como generar los datos para q los reconozca el mudulo, es decir, nose como hacer para enviar los datos, ni como generar esos datos.



Amigo con un registro de desplazamiento puede hacerse de forma sencilla, dame tiempo y veo que hago para darte una mano.-


----------



## edyrron

ok gracias, realmente me serviria mucho tu ayuda


----------



## D@rkbytes

edyrron dijo:


> aqui, mi pregunta es: que es baud, cuales son los modes T9600, N9600, etc, etc...


Saludos.
Les dejo estos proyectos. se tratan de la comunicación serial PIC a PIC
Se usan las funciones SERIN y SEROUT de PBP
Espero  les sirvan.


----------



## edyrron

Darkbytes dijo:


> Saludos.
> Les dejo estos proyectos. se tratan de la comunicación serial PIC a PIC
> Se usan las funciones SERIN y SEROUT de PBP
> Espero  les sirvan.





grax, esta buenisimo, lo voy a estudiar para saber como funciona. muchas gracias. 
ya logre enviar y recibir datos, para encender y apagar reles, adjunto el circuito con su pbp, y su HEX.
lo hice para un carro a control remoto. pero supongo q se puede usar para mucho mas.
este lo hice yo mismo buscando info. espero q le sirva a alguien.

la salida de datos es por porta.o del pic emisor, y va a la entrada de datos del emisor tlp434
la entrada de datos es por porta.0 del pic receptor, y va a la salida de datos del receptor tlp 434

me podrias ayudar con las pantallas lcd, con el pic 16f628a, me gustaria q cuando el carrito vaya hacia adelante, en el lcd, muestre "AVANZANDO", y cuando retroceda, "RETROCEDIENDO", y asi etc etc..

de nuevo muchas gracias por tu ayuda


----------



## D@rkbytes

Ok. Saludos, Con gusto te ayudare en tu proyecto para lo del lcd.
A ver que tal te parece este diseño, ya le agregaras cosas a tu gusto.


----------



## Pull1988

Hola amigos no se alguien me podria ayudar con el comando SERIN en el microcode quisiera que me ayuden sobretodo con la sintaxis de este ya que quiero ponerle un parametro de tiempo para q no se quede en un lazo x ejm. SERIN portb.1,N9600,5000,inicio,["A"]; donde:
5000 es el parametro de tiempo e inicio es el nombre de la subrutina, quisiera saber si esto esta bien ya que en el microcode me sale errores al compilar.
Garcias y saludos


----------



## D@rkbytes

Pull1988 dijo:


> Hola amigos no se alguien me podria ayudar con el comando SERIN en el microcode quisiera que me ayuden sobretodo con la sintaxis de este ya que quiero ponerle un parametro de tiempo para q no se quede en un lazo x ejm. SERIN portb.1,N9600,5000,inicio,["A"]; donde:
> 5000 es el parametro de tiempo e inicio es el nombre de la subrutina, quisiera saber si esto esta bien ya que en el microcode me sale errores al compilar.
> Garcias y saludos


Descarga los ejemplos que subi anteriormente.
Ahí veras como usar las instrucciones SERIN y SEROUT 

*Gudino Roberto duberlin* dijo:


> Hola Amigo, MCS o MicroCodeStudio, posee una ayuda sobre comandos, y ejemplos.
> En cuanto a programacion, habra que experimentar es la unica forma de aprender.- Saludos.-


----------



## edyrron

hola amigos
siento no haber apoyado antes, pero aunduve un poco ocupado..

amigo Darkbytes, grax por la ayuda, ya lo voy a revisar, espero q me pueda servir.

adjunto un diseno de el control remoto, ya con un display.

solo tengo un prolem con este diseno, y esq el texto en el display, permanese hasta q se presione otro switch, bueno ya lo veran.

los datos del pic transmisor salen del pin portb.o, asia el pic receptor al pin portb.o
los datos entran al pic del display por el pin porta.4

apenas tenga algo mas de tiempo, publico el nuevo circuito usando la ayuda de Darkbytes, q espero alli ya solucionar el problema del texto.

att: Edison


----------



## D@rkbytes

edyrron dijo:


> solo tengo un prolem con este diseno, y esq el texto en el display, permanese hasta q se presione otro switch, bueno ya lo veran.
> 
> los datos del pic transmisor salen del pin portb.o, asia el pic receptor al pin portb.o
> los datos entran al pic del display por el pin porta.4
> 
> apenas tenga algo mas de tiempo, publico el nuevo circuito usando la ayuda de Darkbytes, q espero alli ya solucionar el problema del texto.
> 
> att: Edison


Ok, creo saber que es lo que quieres, y como solucionarlo.
Si es que quieres que el texto solo dure unos segundos y regrese.
Revisare lo que llevas y vere que se puede hacer.


----------



## D@rkbytes

*edyrron*
Realize algunos cambios, hay un detalle que se podria resolver con flags
pero eso ya lo dejo a tu creatividad.
Checalo a ver que te parece y a ver que se te ocurre.


----------



## edyrron

Darkbytes dijo:


> *edyrron*
> Realize algunos cambios, hay un detalle que se podria resolver con flags
> pero eso ya lo dejo a tu creatividad.
> Checalo a ver que te parece y a ver que se te ocurre.




gracias, esta buenísimo, es justo lo q*ue* quería, te lo agradezco muchísimo.

soy en nuevo en programación de pics, cuales son los flags??
vi q*ue* en el proyecto anterior q*ue* me has enviado, usas "SELECT CASE  Y  CASE #"
es ese el flag??


----------



## D@rkbytes

edyrron dijo:


> grax, esta buenisimo, es justo lo q queria, te lo agradezco muchisimo.
> 
> soy en nuevo en programacion de pics, cuales son los flags??
> vi q en el proyecto anterior q me has enviado, usas "SELECT CASE  Y  CASE #"
> es ese el flag??


Ok. Saludos, mira edyrron un Flag o bandera es una variable de un Bit
que que se denota como un valor booleano por así decirlo, osea Cierto o Falso
o 1 y 0 y se usan para determinar el suceso de un evento.
Por ejemplo si un proceso se cumple se activa  o desactiva el Flag
Esto es para tener un control de sucesos.
En PBP se declararia como Flag VAR BIT
No necesariamente tiene que tener un valor BIT puede ser de cualquier tipo.
Pero como solo se requiere de un cambio de estado es mejor usar BIT para ahorrar memoria.
Tambien en el PIC hay registros que cambian de estado y se usan como Flags.


----------



## edyrron

saludos a todos

tengo una duda

acabo de pasar el circuito a ares, para poder hacer la placa de circuito impreso
pero no se como verificar q*ue* este bien.

en isis esta bien el circuito anda perfectamente, pero al momento de pasarlo a ares, me maree, al mover los elementos para darle forma, y no se si por allí se daño el circuito.

pensé en hacerlo de nuevo, pero me quedo la duda, si por accidente lo hice mal, como poder verificar si esta o no bien??

adjunto el archivo comprimido con todos los archivos generados por proteus, isis y ares..
ya esta separado el circuito emisor del receptor, no como antes q*ue* estaba en un solo diseño.

el receptor lo hice en baquelita con cobre en una sola cara
pero el transmisor está en baquelita con cobre en ambas caras


----------



## D@rkbytes

edyrron dijo:


> en isis esta bien el circuito anda perfectamente, pero al momento de pasarlo a ares, me maree, al mover los elementos para darle forma, y no se si por alli se dano el cicuito.
> 
> pense en hacerlo de nuevo, pero me quedo la duda, si por accidente lo hice mal, como poder verificar si esta o no bien??


Esta vez no podre ayudarte con el diseño de ARES por que note que usas una versión
anterior al ARES que yo tengo, y si le hago cambios, no podras ejecutarlo.
Te lo digo por experiencia, por que ya me paso que modifique un PCB de un amigo
y el no lo podia ejecutar por tener una versión anterior.
Un tip: Si por ejemplo colocaste un Pushbutton en ISIS y este no tiene encapsulado,
le puedes asignar un encapsulado, seleccionando el componente e ir a la barra de herramientas. 
Presionas el icono "Packaging Tool" Es el icono de un IC con una llave cruzada.
Aparecera una ventana en donde puedes seleccionarle un encapsulado al componente.
Por ejemplo el CONN-SIL2 o el que quieras. Le asignas los PIN's y listo.
Con esto ya no tendras que modificar el diseño original, y puedes seguirlo simulando.
PD: En el diseño del transmisor es donde hay pistas mal acomodadas y el tamaño algo grande.


----------



## edyrron

ok gracias

ya voy a modificar el transmisor, aunq*ue* el tamaño lo hice del mismo q*ue* el de un joystick.

una pregunta, q*ue* pic de de 28 pines es compatible con el grabador de pics, pikit2.
estuve viendo la lista de pics, pero todos son de la serie 16f.
para no tener q*ue* usar dos pics, uno para transmisor, y otro para display, sino uno solo para todo.
y en el receptor si un 16f628a.
gracias de antemano


----------



## D@rkbytes

edyrron dijo:


> ok grax
> 
> ya voy a modificar el tranmisor, aunq el tamano lo hice del mismo q el de un jostik.
> 
> una pregunta, q pic de de 28 pines es compatible con el grabador de pics, pikit2.
> estuve viendo la lista de pics, pero todos son de la serie 16f.
> para no ter q usar dos pics, uno para tranmisor, y otro para display, sino uno solo para todo.
> y en el receptor si un 16f628a.
> grax de antemano


Puedes usar el PIC16F877A el PIC18F252, PIC18F2550, PIC18F2455 Etc.
Hay varios, lee por aca Veras que soporta varios PIC


----------



## edyrron

jeje
me han borrado el otro comentario???

bueno, grax, ya voy hacer la prueba con los pics q me dices.

una pregunta, como puedo hacer para enviar sonido por el pic, y el transmisor
para en el carrito poner un altavoz, y asi q escuchen lo q yo digo por el control remoto???

grax por la ayuda


----------



## D@rkbytes

edyrron dijo:


> jeje
> me han borrado el otro comentario???
> 
> bueno, grax, ya voy hacer la prueba con los pics q me dices.
> 
> una pregunta, como puedo hacer para enviar sonido por el pic, y el transmisor
> para en el carrito poner un altavoz, y asi q escuchen lo q yo digo por el control remoto???
> 
> grax por la ayuda


Ok. Saludos, en realidad tu mensaje no fue borrado, se fue a Moderación.
Por la ley del minimo esfuerzo, y es que ya sabes este es un foro de cooperación,
y como incumpliste una de las reglas del foro, pues fue por eso.
Así que para poderte ayudar siempre tienes que ser tu el que empieze su proyecto.
Así lo estabas haciendo antes y por eso siempre se te ayudo.
Pero bueno, ahora te hizo falta hacer una busqueda sobre eso de generar sonidos
con el PIC hay mucha información aqui en el foro hasta generar canciones completas.
En PICBASIC se usa la instrucción SOUND o FREQOUT pero para darte una idea
empieza viendo como lo hicieron por aca Generar melodías con PIC
Y veras que hay mucho que aprender.
;*******************************************************************
Ok. Ya entendi ahora lo del porque quieres hacer un transmisor de audio.
Así que lo citado anteriormente no es importante para lo que deseas.
Pero no estaria mal que el carrito tubiera algunos sonidos. 
Puedes entonces hacer un receptor y un transmisor de FM de los que por aqui han publicado.
Y hacer otros comandos para encender y apagar el receptor del carrito.
Yo he visto como se les dificulta crear esos circuitos, pero creeme que en verdad
son muy sencillos de hacer y deben funcionar a la primera.
Teniendo un frecuencimetro y una sonda de RF es mas facil de realizarlo.
Así ya puedes saber si es que esta oscilando y en que frecuencia lo hace.
Y para el receptor se necesita un generador de RF para calibrarlo mas facilmente.
Como quiera veras que hay metodos sencillos de como poner a punto ambos.
Busca por aqui en el foro y encontraras varios diseños desde sencillos hasta con PLL
Yo te podria explicar muchas cosas sobre RF ya que fui radioaficionado.
Y me dedique por años a la reparación de equipos de radiocomunicación.
Pero eso ya lo deje hace muchos años, 15 para ser exacto.
Bueno hasta luego y cualquier duda es recibida.
 BYE4NOW


----------



## edyrron

hola, jeje era por eso 
tratare de no hacerlo de nuevo.

ps la vd ya he montado uno q otro transmisor de fm, y se q funciona, la vd no se me había ocurrido usar uno de esos para mi idea en el carrito.

pero en fin, no tendría chiste usar circuitos diferentes, lo q quiero es aprender a usar pic's lo mas q pueda.
he visto q con estos aparatitos se puede hacer de todo. 

ya busq en el foro, pero aun no hallo información de como hacer para q el pic recoga la info del micrófono, y la envié por el modulo tr.

también se me había ocurrido ponerle una webcam, y q esta transmita el vídeo para poder ver en un televisor normal por el canal 3, encontré q para hacer esto hay q tener un transmisor de am q envia la imagen, y un transmisor de fm para enviar el sonido. para este si imagine q no podría usar pic's.

pensé también en ponerle un acelerometro, y una brújula digital, para q el carrito me envié la posición y dirección en la q se dirige.

se q este carrito q quiero hacer tomara mucho tiempo, y mucha investigación.
estoy muy contento ya q cuando inicie este tema, apenas sabia encender y apagar un led, con el pic, jeje
agradezco mucho a Darkbytes, por brindarme su tiempo y ayudarme con mi proyecto.


----------



## D@rkbytes

edyrron dijo:


> se q este carrito q quiero hacer tomara mucho tiempo, y mucha investigación.
> estoy muy contento ya q cuando inicie este tema, apenas sabia encender y apagar un led, con el pic, jeje
> agradezco mucho a Darkbytes, por brindarme su tiempo y ayudarme con mi proyecto.


Pues, de nada edyrron. 
Que bien que estes aprendiendo rapido, pero veo que ya quieres correr.
El proyecto que pretendes esta muy complicado y requiere como dices de mucha investigación.
Espero que lo logres, y que cuando lo termines, nos vengas a visitar para ver que tal quedo.
Suerte en tu proyecto y aqui estamos para ayudarte en lo que podamos.


----------



## edyrron

saludos a todos, ahora q vuelvo a tener algo de tiempo, me gustaria continuar con este preyecto.

tengo un problema, y esq quiero agregar un servomotor, para controlar el angulo de giro del auto a control remoto, pero no tengo idea de como controlar un servo.

la idea seria q en el emisor este colocado un potenciometro, el pic lea el estado de este, y lo envie al pic del receptor, para q este controle el servo, y asi el angulo de giro.

les agradeceria muchisimo si me ayudan con este problemilla  



encontre esto, aunq no comprendi mucho jejeje
http://www.youtube.com/watch?v=Fji4g64TkX4&feature=player_embedded#!

algo asi es lo q quiero, solo q en lugar de controlarlo por dos pulsadores, hacerlo con un potenciometro.


----------



## D@rkbytes

edyrron dijo:


> saludos a todos, ahora que vuelvo a tener algo de tiempo, me gustaria continuar con este proyecto.
> la idea seria que en el emisor este colocado un potenciometro, el pic lea el estado de este, y lo envie al pic del receptor, para que este controle el servo, y asi el angulo de giro.
> 
> les agradeceria muchisimo si me ayudan con este problemilla


Saludos nuevamente edyrron.
Me parece que creo tener lo que necesitas.
Ahora me encuentro en el trabajo, pero en cuanto llegue a casa lo buscare, lo analizare,
y veré que se puede hacer para lograr lo que requieres.
PD. Trabajare con el PIC12F675 ya que es el que tengo.

;********************************************************
Ok.
Me puse a ver la manera de enviar y recibir los datos de un conversor AD
Y pues parece que lo logre, al menos en la simulación va bien 
Subo el proyecto en PBP para que se analice y ver si en la practica funciona,
ya que tengo los PIC y el LCD con los que realize el proyecto pero no el servo motor. 
Suerte y hasta luego...


----------



## edyrron

Darkbytes dijo:


> Saludos nuevamente edyrron.
> Me parece que creo tener lo que necesitas.
> Ahora me encuentro en el trabajo, pero en cuanto llegue a casa lo buscare, lo analizare,
> y veré que se puede hacer para lograr lo que requieres.
> PD. Trabajare con el PIC12F675 ya que es el que tengo.
> 
> ;********************************************************
> Ok.
> Me puse a ver la manera de enviar y recibir los datos de un conversor AD
> Y pues parece que lo logre, al menos en la simulación va bien
> Subo el proyecto en PBP para que se analice y ver si en la practica funciona,
> ya que tengo los PIC y el LCD con los que realize el proyecto pero no el servo motor.
> Suerte y hasta luego...



gracias esta buenisimo, genial te lo agradesco muchisimo.

pero me tope con una duda, para enviar los datos, uso un modulo tlp 434 junto con un pic 16f628a, con este lo q hacia era, enviar 0 y 1, con esto controlo los reles, 0 rele no hace nada, 1 rele funciona.

pero el encargado de hacer funcionar los reles, era el pic del receptor, en el receptor solo hay un modulo rlp 434, un pic 16f628a, un integrado entre el pic y los reles y nada mas.

aparte de ello usaba otro pic para mostrar texto en un diplay, igual un pic 16f628a y un display lcd.

ahora viendo el diseno, q has echo, no se como unir estos circuitos, o mas bien no se como unir el codigo, para q el pic emisor envie los datos para mover el servo.

imagino q lo unico q debo enviar, son los pulsos q sale por el portb.0, de tu diseno.

y alli esta mi duda, en el modulo transmisor hay un pin q dice, "data in", en este pin, puede estar mas de un solo alambre?? es decir, ya esta un alambre q sale del pic emisor, pero, ademas de eso se puede conectar otro alambre, q probenga de otro pic.??
de manera q quede una coneccion tipo "Y"

supongo q no funciona asi, pero me causa curiosidad jeje

la otra duda es, como puedo hacer si tengo varias senales q enviar, y cada uno ya tiene su propia linea, es decir, tengo tres pics, cada uno envia diferentes datos, y cada uno lo hace por un pin en especial, entonces tendria tres alambrecitos q deben conectarse al "data in" del tlp434. Como puedo hacer para juntar esas senales en una sola linea.

en si lo q quiero saber es como puedo hacer para q un pic, lea las senales entrantes de diferentes pic's, y las una en una sola linea, o senal, para q salga por un solo pin toda esa informacion junta, y asi se conecte al modulo transmisor.

espero me puedadn ayudar con esto, se q me di muchas vueltas jejeje

gracias.

bueno yo me voy a ver q tal me va, a ver si puedo unir los programas 
hasta pronto


----------



## edyrron

jaja
ps no pude 

porfa si me puedes explicar algunas cosas q no entiendo te agradezco muchisimo

cuales son los  "AN0 analogico RC_INT, los demas como digitales"
es decir q quiere decir analogico y dijital en el pic?

en esta parte, "DAT=DAT*4", q significa?
yo creo q debe multiplicar el valor de DAT por 4, es correcto?

gracias


----------



## D@rkbytes

edyrron dijo:


> jaja
> ps no pude
> OK. Intentalo, no es tan dificíl. Tampoco tan facíl, pero se puede.
> porfa si me puedes explicar algunas cosas q no entiendo te agradezco muchisimo
> 
> cuales son los  "AN0 analogico RC_INT, los demas como digitales"
> es decir q quiere decir analogico y dijital en el pic?
> R: Eso, tomar muestreos de voltajes variables. PE. 1V, 2.5, 3.2V etc. No solo 0 y 1
> y RC_INT que usare un oscilador interno dedicado solo para el muestreo a 500Khz max.
> en esta parte, "DAT=DAT*4", q significa?
> yo creo q debe multiplicar el valor de DAT por 4, es correcto?
> R: Así es, la variable DAT se multiplica así misma x 4 (Motivo explicado en el archivo adjunto)
> gracias


OK. Saludos.
Mira, para esta explicación te tienes que leer el datasheet del PIC en cuestión.
Si lo explico por aqui, poco me vas a entender, así que tomare el código que realice,
y lo comentare, para que puedas comprender que es lo que hago con cada instrucción que hice.
Pero te repito, para que quede mas claro descargate el datasheet del PIC12F675
;***********************************************************
Subo el programa comentado, espero me sepa explicar.
Quizas existan metodos mas faciles para lograr este tipo de programa,
pero Uppss!! fue como se me ocurrio y la cuestión es que funcione para llegar al objetivo que se requiere. 
Suerte y hasta luego...


----------



## gustavo01

Cordial saludo para todos , quiero poner a correr micro code estudio pero no he podido, los pasos que he realizado son los siguientes :
instalo el programa, luego en la pestaña wiew en la opcion compiler anexo la carpeta pbp 247 y cuando escribo un programa ycompilo me salen una serie de errores o aveces sale una ventanita corriendo un monton de archivos y sensillamente no compila.
si alguien me puede ayudar enviandome la manera correcta de configurarlo para poder programar les estare muy agradecidos, mientra tanto seguire tratando para ver si en algun momento me compila muchas gracias.


----------



## D@rkbytes

gustavo01 dijo:


> si alguien me puede ayudar enviandome la manera correcta de configurarlo para poder programar les estare muy agradecidos, mientra tanto seguire tratando para ver si en algun momento me compila muchas gracias.


Lo primero que hay que hacer, es instalar los archivos del compilador PBP, recomiendo usar PBP 2.60.
La instalación por default es en C:\PBP. Pero se puede eligir el lugar que uno quiera.
Después se instala MicroCode Studio, y se ejecuta el programa.
Cuando MCS (MicroCode Studio) no encuentra los archivos del compilador al iniciar el programa, los busca.
Es cuando aparece una ventana haciendo la búsqueda de la carpeta con los archivos necesarios.
Ésta búsqueda puede ser cancelada y hacerla manualmente para más rapidez.
También aparece al momento de compilar si no se ha encontrado dicha carpeta,
y se vuelve a realizar una búsqueda automática o cancelando para hacerlo manualmente.
Cuando se obtiene la carpeta del compilador, entonces podremos ver si es válida.
Para esto vamos al menú "Help/About..." Y ahí se mostrará si se reconoció el compilador o no.

Cuando no es reconocido el compilador o no se encontró, se verá lo siguiente...

*

*Cuando se ha reconocido el compilador, veremos algo así dependiendo la versión de PBP...


Hasta aquí ya todo está bien y solo nos resta seleccionar el tipo de PIC con el cual vamos a trabajar...​ 
Para que se muestren las herramientas de edición "Arriba a la derecha",
debemos seleccionar en el menú View/Toolbars, la opción Edit.​ 
Eso es todo, con éstos pasos debemos tener funcionando MicroCode Studio.

Suerte.​


----------



## gustavo01

saludo, muchas gracias por esta ayuda tan oportuna busque lo que me indico lo istale tal cual y por fin pude ver la ventanita con la linea verde corriendo, muchas gracias de nuevo.


----------



## GAWAIN

Hola a todos: me encuentro elaborando un programa para control de un tablero de transferencia automatico y estoy usando un PIC 16F877 programando en MICROCODE (basic), el caso es que iba muy bien pero de pronto advertencias me comienzan a salir estas advertencias al compilar para pruebas:

Warn 637: [102] code crosses boundary @800h
Warn 1299: [102] code crosses boundary @1000h
Warn 1927: [102] code crosses boundary @1800h

Sin embargo, el programa seguia compilando. Pero luego al seguir agregando líneas siguen saliendo estas advertencias pero acompañadas con los siguientes errores:

Error 2247: [218] address limit of 1fffh exceeded
Error 2250: [218] address limit of 1fffh exceeded

Les pido su ayuda si me pueden decir en que consiste este error y su forma de correccion.

Saludos y gracias a todos


----------



## D@rkbytes

Las advertencias número [102] te informan que se realizó un cambio de banco.
El compilador se ocupa de realizar esto y al mismo tiempo sirven para indicarte que el código ha ido aumentando.

Los errores número [218] te informan que ya no hay espacio en la ROM porque se ha excedido el limite.
La única forma de resolverlo, es optimizando el programa.
Tal vez tengas rutinas repetidas que puedes utilizar en una sola estructura y con eso reduzcas código.


----------



## GAWAIN

Gracias por tu respuesta D@rkbytes. Ahora respecto a la misma quisiera me aclararas lo siguiente:

a.- Cuando te refieres a la ROM, me imagino que es al PIC que estoy usando.??

De ser asi, creo que debere cambiar por uno mucho mas grande. ya que aun me faltan muchos modulos por crear lo que implica tambien muchas lineas de programacion mas ¿o habra otra forma de reducirlo??? Tal vez una memoria adicional??.

Saludos,


----------



## D@rkbytes

GAWAIN dijo:


> ¿Cuando te refieres a la ROM, me imagino que es al PIC que estoy usando?


El PIC16F877 tiene 8k x 14 Words para la ROM. (Zona de instrucciones)
368 locaciones de 8 bits para la RAM. (Zona de variables) y 256 de 8 bits para la memoria EEPROM.

En una memoria externa no podrás guardar código ejecutable, pero sí datos de lectura y escritura.
Trata de optimizar tu programa por lo que te mencioné anteriormente.
Si crees que tu programa ya está optimizado, entonces sí tendrás que usar un PIC de mayor capacidad.
Por ejemplo, un PIC16F887.


----------

