Curso de programación de PIC en PICBasic Pro

buen dia, disculpe, la falla que tengo es que cuando inserto en el programa
@ device xt_osc ; oscilador externo XT
define osc 4
...
me aparece error, al parecer el error son esas dos lineas, ya que cuando borro los espacios entre ellos, después de @ borro el espacio y también después de device, el error ya no vuelve aparecer, estaría bien ponerlo en esta forma..

@devicext_osc ; oscilador externo XT
define osc 4

así no me arroja errores.
@devicext_osc ; oscilador externo XT
define osc 4
No te da error porque el compilador lo toma como una etiqueta.
Lo correcto es...
@ Device XT_OSC
El @ "ASM" sirve para decirle al compilador que se escribirá en ensamblador,
y debe ir sin espacios a la izquierda, lo que sigue a continuación de Device, son los Fuses.

Cuando PBP genera errores al escribir la palabra de configuración, es por usar MPASMWIN,
o porque estás usando una versión de PBP anterior a la 2.60, en ese caso actualízalo.
 
buenas, se que van muy avanzados en esto, pero queria pedirles si pueden porner una referencia de como hacer un menu como el que aparece en este video , gracias


 
Hola a todos los participantes de este interesante tema tengo el pic16f628a quiero hacer una ruleta de leds tengo el codigo y el circuito adjuntado. El problema es que a pesar de colocar cmcon=7 para utilizar los puertosa como digitales solo me funcionan hasta el led a3. El problema solo es el puertoa el puertob funciona normal. gracias

hola vi tu proyecto y le hice algunas reformas aqui te pongo los archivos para que los veas a ver si te sirve:apreton:
 

Adjuntos

  • ruleta2.rar
    15.1 KB · Visitas: 92
hola a todos los amigos del foro tengo el siguiente esquema en proteus y el siguiente programa pbp creo que el programa es correcto pero solo visualizo 8888 no se por que no conmutan los transistores gracias. Simplemente debo visualizar la palabra "hola".
 

Adjuntos

  • multiplexacionhola.rar
    15.3 KB · Visitas: 72
hola a todos los amigos del foro tengo el siguiente esquema en proteus y el siguiente programa pbp creo que el programa es correcto pero solo visualizo 8888 no se por que no conmutan los transistores gracias. Simplemente debo visualizar la palabra "hola".
Para simular tu programa en proteus, sustituye los transistores por inversores, escribe "inverter" en la ventana de selección de componentes, y para crear el PCB usa el esquema con transistores.

También deberías agregar la palabra de configuración a tu programa, y la frecuencia de trabajo.

Saludos.
 
Hola alguien hizo control de velocidad de un motor de 12VCC 100 RPM con HPWM , miis dudas son las sgts:

1: configurar el HPWM para el pin portd0 y portd1 puesto que los toma por defecto al portc le hize el cambio con el define pero no me sale


2:cuando le da run o inicio y se va ala rutina funciona viste, pero cuando tiene que volver a " inicio" no se apaga sigue generando pulsos , lo que hice fue poner en low esos pines pero sigue andando. Segun lei este comando es programado por hardware es decir genera el pwm y el pic puede hacer al mismo tiempo otaras funciones barbaro ,pero el tema es que nose como detenerlo. :unsure::unsure:
 

Adjuntos

  • hpwm dos motores de 12V -100 RPM.rar
    10.2 KB · Visitas: 75
Miren implemente el siguiente programa y circuito con proteus y microcode .Trata de una matriz de 5x7 donde aparece un muñeco que saluda con movimientos y programación sencilla.
He implementado el circuito pero el puerto a no me responde como salida digital ni para el 16f628a ni para el 16f877a quisiera saber si se trata de un error del microcode . Ya que en la hoja de datos dice que funcionan como entradas y salidas digitales o analogicas gracias.
 

Adjuntos

  • movmatrix.rar
    29.2 KB · Visitas: 79
Miren implemente el siguiente programa y circuito con proteus y microcode .Trata de una matriz de 5x7 donde aparece un muñeco que saluda con movimientos y programación sencilla.
He implementado el circuito pero el puerto a no me responde como salida digital ni para el 16f628a ni para el 16f877a quisiera saber si se trata de un error del microcode . Ya que en la hoja de datos dice que funcionan como entradas y salidas digitales o analogicas gracias.

Hola...verifica en la hoja de datos el puerto A en el pin A.4 es de colector abierto ese es tu problema.
Para la simulación lo puedes resolver del modo que te adjunto.

Saludos.

Ric.
 

Adjuntos

  • MovMatrix.zip
    16.4 KB · Visitas: 80
Última edición:
Hola alguien hizo control de velocidad de un motor de 12VCC 100 RPM con HPWM , miis dudas son las sgts:

1: configurar el HPWM para el pin portd0 y portd1 puesto que los toma por defecto al portc le hize el cambio con el define pero no me sale

Lee la hoja de datos del PIC en cuestión y el hardware esta donde lo pone le fabricante no donde uno quiera definirlo

2:cuando le da run o inicio y se va ala rutina funciona viste, pero cuando tiene que volver a " inicio" no se apaga sigue generando pulsos , lo que hice fue poner en low esos pines pero sigue andando. Segun lei este comando es programado por hardware es decir genera el pwm y el pic puede hacer al mismo tiempo otaras funciones barbaro ,pero el tema es que nose como detenerlo. :unsure::unsure:

Había errores de conexiones en pulsadores, revisa los limites que pueden tomar las variables por que se te desbordaran con resultados aleatorios en la operación, estaba mal la velocidad del reloj en el PIC en la simulación, etc, etc.Hay para seguir trabajando!!!

Saludos.

Ric.
 

Adjuntos

  • HPWM2Motores.zip
    18.4 KB · Visitas: 70
Última edición:
Hola a todos los adictos a la electrónica aquí adjunto archivos de circuitos que quisiera unificar comunicando serialmente 2 pic y visualizar las señales en matlab ademas deseo obtener mientras halla mas temperatura mas intensidad del foco gracias.
 

Adjuntos

  • circuitos y texto a leer.part1.rar
    3 MB · Visitas: 99
  • circuitos y texto a leer.part2.rar
    3 MB · Visitas: 89
  • circuitos y texto a leer.part3.rar
    922.5 KB · Visitas: 86
amigos me pueden decir cual es el problema que tiene esto, es que instalo mplab con el compilador pbp en windows xp y al compilar siempre me sale este error no se por que me pueden ayudar....

saludos
 

Adjuntos

  • Dibujo.jpg
    Dibujo.jpg
    102 KB · Visitas: 29
Hola a todos:El siguiente código sería útil a todos, si me ayudan a mejorarlo.Hasta donde esta corre bien, pero me falta lo siguiente:El tiempo de consigna se escribe en dos dígitos, temporizará de 01 a 99 seg.La velocidad consigna de dos dígitos del 01% al 99%El tiempo se graba en la EPROM interna en las variables t1 y t2 (digito 1 y 2) desde el tecladoLa velocidad se graba en la EPROM interna en las variables v1 y v2 (digito 1 y 2) desde el teclado.El problema es que no está en decimal, (me parece que está en ASCII).¿Cómo convierto los valores (parecido a concatenar en EXCEL) de dos variables a 2 dígitos y en decimal?Ejemplo:T1=0T2=9T=09 (minutos)Les envío el código y la simulación, en la simulación no olviden optar por la opción 2 para poner el set de tiempo y velocidad y luego escoger iniciar (con la tecla 1)Saludos,
De antemano muchas gracias, especialmente al señor Moderador
D@rkbytes que incondicionalmente me ofreció su ayuda anteriormente.
 

Adjuntos

  • mod3.rar
    37.5 KB · Visitas: 103
El problema es que no está en decimal, (me parece que está en ASCII)[/SIZE]
Trabaja el teclado con números enteros, por ejemplo tecla = 1 no tecla = "1"
Y para poder mostrar el valor de las variables en la pantalla debes usar #t1 ó Dec t1
¿Cómo convierto los valores (parecido a concatenar en EXCEL) de dos variables a 2 dígitos y en decimal?Ejemplo:T1=0T2=9T=09 (minutos)
Tan solo tienes que sumarlas.
Si quieres mostrar dos digitos, usa Dec2
Suerte.
 
Última edición:
Estimados amigos:
Continuando y mejorando con mi código, (con ayuda del Sr. Moderador) conseguí las siguientes mejoras:
· Logré introducir variables de tiempo desde el teclado
· Logre mostrar las nuevas variables desde el teclado
· Logre temporizar en minutos según la variable introducida desde el teclado, enciende un led un tiempo en minutos desde el teclado.Ahora se me presenta el siguiente problema:…Donde pongo el siguiente código (corresponde a un motor PAP) que se ejecute mientras el led esté encendido y pare cuando se apague, sin perturbar el tiempo de temporización.El código del motor es.
Código:
giro:
for x = 1 to 6 'Repite 6 veces la parte comprendida entre' FOR y NEXT
portc= %1100
pause v
portc= %0110
pause v
portc= %0011
pause v
portc= %1001
pause v
NEXT
pause 100
for x =1 to 6
portc= %1001
pause v
portc= %0011
pause v
portc= %0110
pause v
portc= %1100
pause v
next
pause 100
GOTO giro:

Otra consulta:
si hago t=99
u=(1/t)*1000
u=10.10101010
el resultado me da con decimales
¿tengo que usar algún artificio para obtener la parte entera (como lo hace int o entero en excel) o PBP sobreentenderá y trabajará con la parte entera?
 

Adjuntos

  • mod6.rar
    41.8 KB · Visitas: 60
Última edición por un moderador:
Ahora se me presenta el siguiente problema:…Donde pongo el siguiente código (corresponde a un motor PAP) que se ejecute mientras el led esté encendido y pare cuando se apague, sin perturbar el tiempo de temporización.
Para hacer eso, tendrás que hacer uso de interrupciones, porque las pausas congelaran el proceso.
Puedes hacer uso del TMR1 para generar los tiempos mientras corre tu programa.
Algo así como en este ejemplo Temporizador con TMR1
Otra consulta:
si hago t=99
u=(1/t)*1000
u=10.10101010
el resultado me da con decimales
¿tengo que usar algún artificio para obtener la parte entera (como lo hace int o entero en excel) o PBP sobreentenderá y trabajará con la parte entera?
Con PicBasic Pro no podrás obtener el resultado de esa formula porque PBP no trabaja con punto flotante.
El resultado que obtendrás con PicBasic Pro será u = 0
Posiblemente lo puedas hacer con este otro ejemplo Ejemplo FP.bas
Otra opción más recomendable es migrar a Proton, con ese programa si se puede manejar punto flotante.
Con Proton el resultado si será u = 10.101

Suerte.
 
Última edición:
Atrás
Arriba