Microcontroladores - Programación de pics

 
Vista:

Programación de pics

Publicado por Jerónimo (2 intervenciones) el 14/12/2006 02:51:03
Hola a todos!
Me ha llegado un proyecto donde tengo que programar algunos pics para leer datos (temperatura, etc.) y sacarlos por una impresora. La verdad es que de electrónica no sé nada y de programación solo manejo Visual Basic 6.0. ¿Alguien puede decirme de dónde puedo sacar información para aprender aunque sea las cosas básicas para programar un pic? ¿Se puede hacer desde Visual Basic? Si no se pudiera, ¿se puede hacer en Basic o en algún lenguaje que se le parezca? Como tengo que hacerlo para este proyecto solamente, no quisiera tener que aprender Assembler o C, ya que eso me demandaría mucho tiempo y no lo tengo.
Cualquier ayuda me viene más que bien.
Muchas gracias.

Jerónimo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programación de pics

Publicado por and (3 intervenciones) el 18/12/2006 19:21:10
hoLA

Hay otro tipo de lenguaje que es PICBASIC, que es algo parecido más parecido a C que a VisualBasic.
Pero que yo conozca a VisualBasic no sé, porque tampoco domino el VB.
Y encontrar manuales es muy fácil. Hay bastantes links relacionados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programación de pics

Publicado por Daniel (2 intervenciones) el 24/12/2006 05:15:12
Hola, como dice andres puedes utilizar pic basic, en lo personal prefiero utilizar ensamblador, a pesar de conocer c, siento que tienes un mejor control sobre lo que estas haciendo y aparte es mejor el codigo en este lenguaje, el pic tiene por lo regular 35 instrucciones, asi ke no sufriras mucho, sin embargo requieres conocer los registros internos del pic, y no, no puedes programarlo en VB, lo que si puedes hacer es comunicarlo a la pc con VB, ya sea a traves del puerto serie, usb o paralelo de este.

Para utilizar el puerto paralelo ocupas conseguir los archivos inpout32.dll y guardarla en tu disco duro en la ruta C:\windows\system32, ademas de el archivo inpout32.bas que agregaras como un modulo a tu programa en VB.

Para utilizar el puerto serie solo basta con agregar el control mscomm a tu proyecto en VB y configurar las propiedades de este como son : velocidad de transmisión, numero de bits, paridad, etc.

Para usar usb, solo nesecitas averiguar en que dirección de memoria esta el puerto en el que conectaras el pic y mandar escribir el dato a esa dirección.

Si gustas bajar los compiladores o incluso ejemplos de puerto serie y/o paralelo checa esta pagina www.itson.mx/die/eromero ahi esta el codigo explicado y donde van los archivos tano para el serie como para el paralelo que tuve la oportunidad de hacer a manera de servicio social.

Espero te sirva, incluso tengo un programa en ensamblador para el PIC que comunico con mi PC pero es via serie y creo que la mejor manera de realizar la comunicacion en tu caso seria por el puerto paralelo, por la recolección de datos que hace el PIC en tu caso, te anexo el codigo que utilice por si decides hacerlo via puerto serie, aunque te recomiendo uses el puerto serie. Espero te ayude a darte una iea el codigo.

Anexo el codigo del PIC

LIST P=16F874A
#INCLUDE "P16F874A.inc"
ERRORLEVEL 0,-302
CBLOCK 0X20
DATO
ENDC

ORG 0x00
GOTO INICIO
ORG 0X30

INICIO:
CLRW ;LIMPIAR W
MOVWF DATO ;LIMPIO LA VARIABLE DATO

BCF STATUS,RP0 ;SELECCIONO EL BANCO 0
BSF RCSTA,SPEN ;PONE BIT SPEND =1 (HABILITA PUERTO SERIE)
BSF RCSTA,CREN ;HABILITA LA RECEPCION
BSF STATUS,RP0 ;SELECCIONO EL BANCO 1

MOVLW 0X19 ;VALOR PARA 9600 BAUDIOS
MOVWF SPBRG ;CONFIGURA A 9600 BAUDIOS
MOVLW 0XA4 ;CSRC/TXEN (RELOJ INTERNO, 8 BITS MODO ASINCRONO, ALTA VELOCIDAD)
MOVWF TXSTA ;ESCRIBE EL CONTROL DE REGISTRO DE TRANSMISIÓN

BCF STATUS,RP0 ;SELECIONO EL BANCO 0
MOVLW 0X44 ;VALOR PARA LA ACTIVACIÓN
MOVWF DATO ;GUARDO EL VALOR DE LA ACTIVACIÓN EN DATO
CLRF PORTB ;INICIALIZO PUERTO C A 0
BSF STATUS,RP0 ;SELECCIONO EL BANCO 1
MOVLW 0X00 ;VALOR USADO PARA INICIALIZAR LA DIRECCIÓN DE LOS DATOS
MOVWF TRISB ;CONFIGURO TODO EL PUERTO COMO SALIDA

BSF STATUS,RP0 ;SELECCIONO EL BANCO 1
CICLO: CALL RECIBE ;RECIBE UN CARACTER DEL PUERTO SERIE
SUBWF DATO,W ;COMPARA EL CODIGO RECIBIDO
BTFSS STATUS,Z ;CHECA SI ES CORRECTO
GOTO CICLO ;NO ES CORRECTO, VOLVER A CHECAR EL PUERTO SERIE
CALL CHECA ;SI ES CORRECTO, VERIFICA ESTADO DEL PUERTO C
GOTO CICLO

RECIBE: BCF STATUS,RP0 ;SELECCIONA EL BANCO 0
RECIB1: BTFSS PIR1,RCIF ;CHECA EL BUFFER DE RECPCION
GOTO RECIB1 ;SI NO HAY DATO, ESPERA
MOVF RCREG,W ;SI HAY DATO, LEERLO
BCF PIR1,RCIF ;LIMPIA LA BANDERA DE INTERRUPCIÓN
RETURN

CHECA: BTFSS PORTB,1 ;VERIFICA SI EL PUERTO C ESTA ACTIVO
GOTO ACTIV ;DE NO ESTARLO, LO ACTIVA
BCF PORTB,1 ;SI LO ESTA, DESACTIVARLO
RETURN ;REGRESO A CICLO

ACTIV: BCF STATUS,RP0 ;SELECCIONO EL BANCO 0
BSF PORTB,1 ;ACTIVO EL BIT 0 DEL PUERTO C
GOTO CICLO

END

Lo que hace es verificar que dato se recibe por el puerto serie del PIC y si es igual manda una señal al bit 1 del puerto b.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programación de pics

Publicado por Jerónimo (2 intervenciones) el 24/12/2006 17:43:29
Gracias, "and" y Daniel!
Daniel: muy buena tu explicación. Me sirve mucho. Pero no sé dónde había leído que se podían programar los pics en Basic (no VB), lo cual, de ser así, me sería más fácil que aprender C o Assembler. Inclusive, leí que hay algunos programas que se usan para programar (valga la redundancia) el pic haciendo el diagrama de flujo. Así que si se pudiera hacer en Basic la programación del pic me sería muy práctico.
Otra cosa: el pic es para una pequeña máquina y lo que tengo que hacer es un programa para tomar datos de otro pic (ceros y unos) y luego sacar un texto por una impresora a través del cable normal del puerto paralelo. Pero esto lo debo hacer directamente, es decir, sin pasar por la pc.
Muchas gracias nuevamente!

Jerónimo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programación de pics

Publicado por Guillermo (40 intervenciones) el 19/01/2007 12:26:45
para programar pic con diagramas de flujo usa el Niple.
no es muy potente, la verdad es que yo no lo uso, prefiero hacerlo en C o Assembler.
Pero te puede servir para algo no muy complicado.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programación de pics

Publicado por Francisco (8 intervenciones) el 24/01/2007 20:43:09
Oye Doc. sabes , si hay manera de programar en VB lo que nececitas es un compilador para VB que te genere un archivo *.hex necesario para programar el PIC. nada del otro mundo eso lo lei en otro foro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar