Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/04/2010 #241


Respuesta: Curso programacion de pic en bsic pro
Hola amigos,
puedo ver que manejan muy bien la programación de micros, yo apenas inicio con basic y pickit2 pero debo acudir a ustedes pues aunque me estoy basando en el libro Microcontroladores de Carlos A. Reyes, aun no he podido encender un led, no sé que me falla pues el grabador indica que se grabó bien pero al montarlo en el board no funciona, estoy trabajando con Microcode Studio el pic16f628A, así que agradecería una orientación a ver que me falta pues en el libro aparece hasta la imagen del montaje en protoboard y además el código funciona con la simulación en Proteus.

Saludo a los posteadores,

Me gustaría saber porque si me he basado en un libro de Microcontroladores donde se detalla hasta el montaje en protoboar, no explican que hay que colocar el código que agregaré a continuación en el Microcode y sin el cual no había podido hacer funcionar los más básico, como es el encendido de un led. Por qué el Microcode no genera este código aún cuando ya se ha seleccionado el pic, en mi caso el 16f628A.

Aquí el código:
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE pic16F628A, WDT_ON ' Watchdog Timer ON
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer
@ DEVICE pic16F628A, BOD_ON
@ DEVICE pic16F628A, MCLR_OFF ' Master Clear Opción interno
@ DEVICE pic16F628A, LVP_OFF ' Bajo voltaje de programación
@ DEVICE pic16F628A, CPD_OFF ' Protección del código de memoria OFF
@ DEVICE pic16F628A, PROTECT_OFF' protección de código OFF
13/04/2010 #242


Respuesta: Curso programacion de pic en bsic pro
Para:

viggiani1975,

Resulta que el libro con el cual estas aprendiendo sobre PIC (del Autor Carlos A. Reyes) trabaja bajo el quemador de PIC con el IC-prog y este software tiene la particularidad de que los bits de configuracion del PIC se selecciona directamente en la ventana del IC-Prog.

Caso contrario ocurre cuando trabajas con el PicKit2, puesto que con este software, se debe escribir los bit de configuración al inicio del programa para el PIC; en el caso del MicroCode Studio se hace de la forma que planteas:
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
y los demás bits a su criterio y como los necesite.

Un saludo,
14/04/2010 #243


Respuesta: Curso programacion de pic en bsic pro
Mil gracias por su respuesta, quedo satisfecho y emprendo la marcha en este camino de los micros a ver que tal me va.
14/04/2010 #244

Avatar de muessli

Respuesta: Curso programacion de pic en bsic pro
Hola, alguien sabe porque razon sale esto al intentar grabar un 16f887 con pic basic Pro?
Este es el codigo, lo mas sencillo posible...

define osc 4
inicio:
high porta.0
pause 200
low porta.0
pause 200
goto inicio
end
14/04/2010 #245


Respuesta: Programador de microcontroladores PIC y memorias por puerto USB PICKIT2 CL
Muesli: te falta la palabra de configuracion,si lo haces desde el MPLAB, compilando con el PBP y el pickit2 como programador no deberias tener problemas. Ese es un detalle que tiene el pickit2 el de no poder poner los fuses. Si en el MPLAB tienes inconvenientes prueba exportar el archivo (file-export- y luego tilda configuration bits)y que lo haga con los fuses.

Saludos

FITO

Muesli, lo de los fuses, quise decir en forma sencilla, osea darme cuenta facilmente que activo y que no.
15/04/2010 #246

Avatar de muessli

Respuesta: Curso programacion de pic en bsic pro
Hey Fito gracias por tu respuesta, yo uso microcode estudio pero de todas formas que fuses son los que se deben activar para que no salga esta advertencia? Digo poner los fuses con codigo asm dentro del programa pbp, si es que te entendi bien...
Gracias.

Saludos.
15/04/2010 #247

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
revisa en las primeras paginas del foro ademas yo he usado ese libro que tu tienes y he hecho lo que dice en el libro da la casualidad que tienes que leer todo el libro y poner atencion al tema de configuracion del micro code ahi te explica claro si te saltas toda esa informacion y quieres solamente copiar el codigo sin tomar en cuenta eso claro que no te va a funcionar
16/04/2010 #248


Respuesta: Curso programacion de pic en bsic pro
Hola a todos,

Me interesa hacer una alarma con el 16f628A que utilice un lcd para mostrar los mensajes correspondientes a "Digite la clave" o "Digite nueva clave" y la verdad en ejemplo que se comenta con el 16f84 al inicio de este tema tiene el .hex pero no el .asm o mejor el .bas que sería más práctico, por lo que acudo a ustedes para cualquier orientación al respecto.
16/04/2010 #249

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
busca en el internet el libro que menciona el amigo muessli te lo bajas y ahi estan un monton de ejemplos que puedes usar con un LCD de 2X16
17/04/2010 #250


Respuesta: Curso programacion de pic en bsic pro
Bueno, yo me estoy basando en el libro de Microcontroladores de Carlos Reyes, allí aparece una alarma con clave en eeprom la cual he simulado en Proteus, sinembargo parece no funciionar o lo hace a una velocidad muy lenta y para cambiar la clave hay que presionar dos pulsadores al mismo tiempo, cosa que no sé como hacer en proteus. De cualquier forma, hasta este momento no me ha funcionado al introducir la clave pues el relé no activa, como creo que aun no tengo derecho a subir archivos me queda difícil explicar con claridad pero si alguien puede orientarme estaré muy agradecido, además la idea es agregarle un lcd para diversos mensajes que deseo agregar.

Muchas gracias.
17/04/2010 #251

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
si tienes el libro de reyes ahi hay un capitulo en el que te explican como debes programar tu micro para un LCD incluso muestra paso a paso y con detalle las sentencias a usar yo aqui mismo he posteado un ejemplo que te puede ayudar
17/04/2010 #252


Respuesta: Curso programacion de pic en bsic pro
Si es cierto, ya he estado probando la simulación de la alarma pero no he podido lograr que funcione bien pues la simulación se torna lenta y no logro saber por qué, tomando en cuenta que la he hecho basandome en ese ejemplo. Me gustaría poder subir la simulación y así tener la opinión de los más avanzados, sinembargo, aun no puedo postear nada. Ni modo.

Gracias por el interés.
17/04/2010 #253

Avatar de HADES

Respuesta: Curso programacion de pic en bsic pro
Bueno y ya has probado usar el pic simulator ide de oshon soft es un buenisimo simulador de pics en basic que te corrige tu codigo mismo por si tenes algun error y pues como dije simula el pic con el codigo que le carges solo tenes que buscar en google alguna version gratuita o con algun crack y ya esta ademas en la pagina oficial dan algunos trucos para poder utilisar un lcd y sus comando en fin espero haberte ayudado saludos!
18/04/2010 #254

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
oye amigo sube no mas tu codigo y simulacion yo que sepa no tienes que bloqueo subela en formato .txt y la simulacion en .rar para acolitarte y la verdad tendrias que revisar que tantos pauses le haz puesto y si es necesario disminuir lazos
18/04/2010 #255

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
El siguiente ejemplo es un sistema de control de acceso, en el cual el usuario deberá introducir una contraseña previamente almacenada en la memoria de datos. Si la contraseña es correcta, se genera un mensaje de confirmación y sonido (“Beep”). Si la contraseña es incorrecta, se genera un mensaje de error y un sonido intermitente (“Beep, Beep, Beep”).

El dispositivo encargado de generar el sonido (Buzzer), se encuentra conectado al pin RC0 del Pic 16f877A.

Código PHP:
' Programa en Pic Basic Pro

Define Osc 4 
Define el Oscilador para un Cristal
 
' de 4 Mhz.

Configuración de Puertos:



 
TRISA = %00000000


TRISB 
= %00000000
TRISD 
= %01111000
' Declaramos las variables:
X VAR 


 

 
Byte
 
VAR1 VAR 
 
 
Byte
 
DIGITO VAR 
 
 
Byte[7]
 
CLV VAR 
 
 
Byte[7]
 
Guardamos cada digito de la clave en las posiciones elegidas previamente:

Write 10

 
 
 
' Primer dígito de la clave
 
Write 11, 2 
 
 
Segundo dígito de la clave
 
Write 12

 
 
' Tercer dígito de la clave
 
Write 13, 4 
 
 
Cuarto dígito de la clave
 
Write 14

 
 
' Quinto dígito de la clave
 
Write 15, 6 
 
 
Sexto dígito de la clave
 
' Iniciamos el sistema con una bienvenida:
 
 
Inicio:
 

LCDOut $fe, 2 

 
 
 
Posiciona el cursor en el inicio
 
LCDOut 
 
 
"Cont. de Acceso"
 
LCDOut $fe,$C0
 
 
"** Bienvenido **"
 
Pause 2000 
 
 
' Hacemos una pausa de 2 segundos
 
Call 
 
 
Beep ' 
Generamos un sonido
 
Clave
:
 



 
 
 
' inicializamos la variable X = 0
 
Read 
 
 
10, CLV[1] ' 
leemos el primer dígito y lo guardamos en CLV[1]
 
Read 
 
 
11
CLV[2' leemos el segundo dígito y lo guardamos en CLV[2]
 
Read 
 
 
12, CLV[3] ' 
leemos el tercer dígito y lo guardamos en CLV[3]
 
Read 
 
 
13
CLV[4' leemos el cuarto dígito y lo guardamos en CLV[4]
 
Read 
 
 
14, CLV[5] ' 
leemos el quinto dígito y lo guardamos en CLV[5]
 
Read 
 
 
15
CLV[6' leemos el sexto dígito y lo guardamos en CLV[6]
 
LCDOut $fe, 1 
 
 
Limpia la LCD
 
LCDOut $fe

 
 
' Posiciona el cursor en el inicio
 
LCDOut 
 
 
"Introduzca su "
 
LCDOut $fe,$C0, 
 
 
"Clave de Acceso:"
Call Beep ' 
Generamos un sonido
 
Consulta
:

Call 

 
 
 
Teclado 
' Consultamos el teclado
 
If 
 
 
VAR1 = 0 Then consulta ' 
Si no hay una tecla pulsada vuelve a consultar
 
' Si VAR1 es diferente de cero, significa que pulsamos una tecla, por lo

tanto generamos un sonido y continuamos…



 
Call 
 
 
Beep 
' Generamos un sonido
 
Seguidamente lo que hacemos es almacenar

' en seis variables definidas
por el programador los dígitos introducidos
' desde el teclado matricial
para luego ser comparados con los valores
' almacenados en la memoria de datos.



 
X = X + 1
 

DIGITO[X] = VAR1 

 
 
 
El valor de la tecla pulsada lo
 
' guardamos en la variable correspondiente
 
 
If 
 
 
X = 6 Then comprobar ' 
Si X 6 estamos guardando en DIGITO[6]
 
' el último valor introducido desde el

teclado matricial



 
GoTo 
 
 
consulta ' Si X es diferente de 6 continuamos
 
esperando el siguiente valor a ser

' ingresado desde el teclado
A partir de la siguiente etiqueta empezamos la comprobación,
' y el formato es:
'
' Si DIGITO[X] es igual a CLV[X] el digito es correcto,
y salta a la etiqueta “paseX”,
' si es diferente salta a la subrutina “error”; veamos…



 
Comprobar:
 

If 

 
 
 
DIGITO[1] = CLV[1] Then pase1:GoTo error
 
pase1:

If 

 
 
 
DIGITO[2] = CLV[2] Then pase2:GoTo error
 
pase2:

If 

 
 
 
DIGITO[3] = CLV[3] Then pase3:GoTo error
 
pase3:

If 

 
 
 
DIGITO[4] = CLV[4] Then pase4:GoTo error
 
pase4:

If 

 
 
 
DIGITO[5] = CLV[5] Then pase5:GoTo error
 
pase5:

If 

 
 
 
DIGITO[6] = CLV[6] Then correcto:GoTo error
 
Si los seis dígitos han sido correctos
 
' se ejecuta la subrutina correspondiente.
 
Correcto:

Pause 500
LCDOut $fe, 1 


 

 
Limpia la LCD
 
LCDOut $fe

 
 
' Posiciona el cursor en el inicio
 
LCDOut 
 
 
" * * * * * * "
 
LCDOut $fe,$C0, 

 
"Clave Correcta!"
 
Call 

 
beep ' 
Generamos un sonido
 
Pause 3000 
 
 
' Pausa para visualizar el mensaje
 
GoTo 
 
 
inicio
 
Error:

Pause 500
LCDOut $fe, 1 


 
 
 
Limpia la LCD
 
LCDOut $fe

 
 
' Posiciona el cursor en el inicio
 
LCDOut 
 
 
" * * * * * * "
 
LCDOut $fe,$C0, 

 
" ERROR! "
 
Call 

 
beep ' 
Generamos un sonido
 
Call 
 
 
beep 
' Generamos un sonido
 
Call 
 
 
beep ' 
Generamos un sonido
 
Pause 1500 
 
 
' Pausa para visualizar el mensaje
 
GoTo 
 
 
clave ' 
Salta a “clave” para nueva oportunidad
 
' La siguiente subrutina genera un “Beep” en el Buzzer

conectado en RC0.



 
Beep:


High 

 

 
portc.0 
' Estado Lógico Alto para RC0
 
Pause 100 
 
 
Pausa de 100 milisegundos
 
Low 
 
 
portc.0 
' Estado Lógico Bajo para RC0
 
Pause 100 
 
 
Pausa de 100 milisegundos
 
Return 
 
 
' Retorna una línea después del llamado "Call"
 
Teclado:


VAR1 = 0
PORTD.0 = 0 


 
 
 
Columna 1 0
 
PORTD.1 

 
 
' Columna 2 = 1
 
PORTD.2 = 1 
 
 
Columna 3 1
 
If 
 
 
PORTD.3 0 Then VAR1 ' tecla "1"
 
If 
 
 
PORTD.4 = 0 Then VAR1 = 4 ' 
tecla "4"
 
If 
 
 
PORTD.5 0 Then VAR1 ' tecla "7"
If PORTD.6 = 0 Then VAR1 = 10 ' 
tecla "*"
 
PORTD.0 

 
' Columna 1 = 1
 
PORTD.1 = 0 
 
 
Columna 2 0
 
PORTD.2 

 
 
' Columna 3 = 1
 
If 
 
 
PORTD.3 = 0 Then VAR1 = 2 ' 
tecla "2"
 
If 
 
 
PORTD.4 0 Then VAR1 ' tecla "5"
 
If 
 
 
PORTD.5 = 0 Then VAR1 = 8 ' 
tecla "8"
 
If 
 
 
PORTD.6 0 Then VAR1 11 ' tecla "0"
 
PORTD.0 = 1 
 
 
Columna 1 1
 
PORTD.1 

 
 
' Columna 2 = 1
 
PORTD.2 = 0 
 
 
Columna 3 0
 
If 
 
 
PORTD.3 0 Then VAR1 ' tecla "3"
 
If 
 
 
PORTD.4 = 0 Then VAR1 = 6 ' 
tecla "6"
 
If 
 
 
PORTD.5 0 Then VAR1 ' tecla "9"
 
If 
 
 
PORTD.6 = 0 Then VAR1 = 12 ' 
tecla "#"
 
Return 
 
 
' Retorna una línea después del llamado "Call"

 
End 


Espero que esate programa le sirva al amigo viggiani1975 y le aclare muchas de sus dudas.

Para mi compatriota cheyo estoy comprometido con lo del reloj con multiplexado a travez de displays y registros de desplazamiento he esta potencializado el codigo que muy pronto lo subire para compartirlo no me ha QUEDADO MUCHO TIEMPO ya que ando muy atariado en el estudio, el trabajo y el desarrollo de las partes restantes del tutorial de PROTON IDE.
19/04/2010 #256

Avatar de muessli

Respuesta: Curso programacion de pic en bsic pro
Hola mecatrodatos, vos que sos el grande en picbasic por aca, sabes por que razon me deja ese warning el pickit2 al intentar grabar un 16f887? Tengo pic basic pro 2.5 y microcode estudio. (el error esta en una imagen en la pagina anterior).
Muchas Gracias.
20/04/2010 #257


Respuesta: Curso programacion de pic en bsic pro
Saludos a los posteros, si es que los hay.
Solicito ayuda para mover un micro servo Dinam, la simulación corre perfectamente, pero al momento de ensamblar se queda centrado y no da giros a derecha ni izquierda.

incrementar var porta.0
N VAR BYTE
centrar var porta.2
control var portb.1
derecha var porta.0
izquierda var porta.1

trisb=0
PORTB=0

n=150
inicio:
pulsout control,n 'Envía x por el pin portb.1
gosub pulsado 'Subrutina de chequeo del pulsador
goto inicio

pulsado:
if centrar=0 then gosub centrado
if derecha=0 then gosub aumento
if izquierda=0 then gosub decremento
return

centrado:
pause 100
N=150
return

aumento:
pause 100
n=n+1
return

decremento:
pause 100
n=n-1
return
end
20/04/2010 #258

Avatar de muessli

Respuesta: Curso programacion de pic en bsic pro
Hola Viggiani, a mi me sucedia lo mismo con la sentencia pulsout, yo probe con esto y si funciono bien:
define osc 4
CMCON = 7
pulso var word
pulso = 1500
inicio:
high portb.0
pauseus pulso
low portb.0
pause 15

IF porta.0 = 1 AND PULSO < 2500 THEN CALL SUMA
IF porta.1 = 1 AND PULSO > 700 THEN CALL RESTA
GOTO INICIO

SUMA:
PULSO = PULSO + 30
Pause 40
Return

RESTA:
PULSO = PULSO - 30
Pause 40
Return
END

Espero te sirva, saludos.
20/04/2010 #259

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
muessli dijo: Ver Mensaje
Hola mecatrodatos, vos que sos el grande en picbasic por aca, sabes por que razon me deja ese warning el pickit2 al intentar grabar un 16f887? Tengo pic basic pro 2.5 y microcode estudio. (el error esta en una imagen en la pagina anterior).
Muchas Gracias.
Amigo esto sucede en estas dos condiciones:

1. No heber declarado el tipo de oscilador con el que va ha trabajar el pic Crystal Xt, resistencia condensadores HC o interno como el caso del 16f628A.

2.Haber declarado el tipo de oscilador pero con frecuencia de operacion fuera de rango.

Para detectar estas anomalias se depuran los programas desde proteus para mirar el funcionamiento de los registros y la posicion de la memoria de los datos desplazados para cada instruccion que se utilizo en PIC BAsic pro.( Eso lo veremos mas adelante con los PIc de la serie 18f que sera un aporte que hare a la comunidad para la comicacion USB y utilizacion de registros del 18f2550 , 18f452, 18f4550 con proyectos ya que 16f877a se no queda chico para lo que tengo planeado)

Por otro lado estoy interesado en el codigo fuente de realizaste para el pic 16f887 subelo que me da curiosidad si has declaro algun registro o lo compilaste con otro pic
21/04/2010 #260


Agradecimientos
Que berraquera, estoy muy sorprendido y agradecido por toda la colaboración que me han prestado, voy a seguir chachareando con los códigos y tratar de subir los que tengo para que me echen una mano cuando puedan, este tema si que está muy interesante pero requiere dedicación y entusiasmo.

Nuevamente gracias por toda la colaboración y espero poder retribuirles en algún momento.

Saludos nuevamente,

Aquí adjunto los códigos y la simulación en proteus de la alarma con clave y pic16f628A, les agradezco echarle una miradita a ver que falla, pues me he basado en un texto al pie de la letra y me gustaría poder armarla con este pic ya que es el que tengo de momento pues el 16f877 no lo he podido adquirir ya que, de momento, está fuera del presupuesto aunque para el siguiente mes estaré armando otra alarma con éste.

Gracias nuevamente!

Amigo Muessli, desafortunadamente no me ha funcionado el código, he probado varios y en la simulación van bien pero a la hora de armar el tiesto no anda, cambié a oscilador externo y tampoco, no sé que esté fallando?.

Adjunto la simulación, el código y unas fotos del montaje en protoboard para ver si pueden darme una mano en algun rato libre, les estaré agradecido.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.