Pantalla LCD 16x2 controlada por un PIC16f887 y sensado de temperatura con un LM35DZ

mcpiebot

Bovino adicto
#22
hola, es justo lo que buscaba para una practica para la escuela pero tengo unas dudas, en el tutorial no dices donde va el capacitor de 0.1uf y en las imagenes no se aprecia bien, corrijeme si estoy mal, va al polo negativo y a la salida del sensor? otra cosa, en los pines 39 y 40 del pic tienes unos cables conectados pero a donde van? los pines 11 y 12 del pic no deben ir a voltaje y tierra? y por ultimo, no es necesario poner el reset del pic? y ya que estoy hablando del reset, para que sirve? es para proteccion del pic? disculpa que te pregunte tanto pero quiero armar el circuito, es mas, me comprometo a que si funciona pongo el esquema del circuito para los bakunos que lo necesiten, de antemano muchas gracias y espero me respondas pronto, saludos
Hola, el capacitor si va a la salida del sensor, aunque el mismo manual del sensor, sugiere una forma de filtrado que supone ser un poco mas eficiente.

Los pines 39 y 40 Corresponden a RB7 y a RB6, pero tambien corresponden a PGD y PGC que son los pines para programacion en circuito, por eso van conectados a un puerto donde se conecta el programador de PICs para no tener la necesidad de quitar el Microcontrolador de la protoboard para programarlo.

Este microcontrolador tiene 2 conexiones a Vcc y 2 a Gnd, pero tienen continuidad entre si, por lo que con un solo par de Vcc y Gnd, funciona perfectamente.

Este microcontrolador (PIC16F887) tiene la posibilidad de usar el pin de reset para esa funcion o se puede ocupar como pin de entrada, como en realidad no me interesaba usar el reset, simplemente lo deshabilite.

El reset sirve para lo que dice su nombre. Resetea o reinicia a los valores iniciales los registros de funciones especiales del microcontrolador y el contador de programa.

Ete microcontrolador tambien cuenta ya con oscilador interno, por lo que lo active desde los bits de configuración, si le pones un oscilador externo no pasara nada diferente, porque para utilizarlo tienes que habilitarlo tambien desde los bits de configuración.

Saludos!
 
#23
aaa ok, muchas gracias por la info, te cuento que ya hice, transcribi el codigo al mplab y lo compile y me marco 2 errores, en la linea 564, dice que no existe la variable ANSEL, esta casi al final del codigo, la declare donde se declararon las variables de UNIDADES, CENTENAS, etc y me lo dejo de marcar pero no se si esta bien lo que estoy haciendo, tu que opinas? y por cierto, yo estoy usando un pic16F877A y no trae reloj interno, por lo que tuve que cambiar la configuracion para poder hacerlo trabajar, otra duda, en la parte del codigo donde tienes el mensaje que despliega el display tienes una linea de codigo que dice MOVLW B'11000000', que es? es el salto de linea del display? disculpa que te moleste pero esta muy interesante el proyecto y ya quiero armarlo jejeje, estoy haciendo la simulacion en el proteus, saludos y muchas gracias
 

mcpiebot

Bovino adicto
#24
aaa ok, muchas gracias por la info, te cuento que ya hice, transcribi el codigo al mplab y lo compile y me marco 2 errores, en la linea 564, dice que no existe la variable ANSEL, esta casi al final del codigo, la declare donde se declararon las variables de UNIDADES, CENTENAS, etc y me lo dejo de marcar pero no se si esta bien lo que estoy haciendo, tu que opinas? y por cierto, yo estoy usando un pic16F877A y no trae reloj interno, por lo que tuve que cambiar la configuracion para poder hacerlo trabajar, otra duda, en la parte del codigo donde tienes el mensaje que despliega el display tienes una linea de codigo que dice MOVLW B'11000000', que es? es el salto de linea del display? disculpa que te moleste pero esta muy interesante el proyecto y ya quiero armarlo jejeje, estoy haciendo la simulacion en el proteus, saludos y muchas gracias
Hola, El registro ANSEL es un registro de control para los pines que tienen ADC en el PIC16F887, sin embargo, el PIC16F877 NO cuenta con ese registro, asi que hay que hacer la configuracion correspondiente del ADC del PIC que estas ocupando.

Esa instruccion ,en este caso, hace referencia al comando que necesita la pantalla para escribir el en segundo renglon y se ejecuta dentro de la subrutina de envio de comando en la pantalla.

Saludos!
 
#27
Hola, El registro ANSEL es un registro de control para los pines que tienen ADC en el PIC16F887, sin embargo, el PIC16F877 NO cuenta con ese registro, asi que hay que hacer la configuracion correspondiente del ADC del PIC que estas ocupando.

Esa instruccion ,en este caso, hace referencia al comando que necesita la pantalla para escribir el en segundo renglon y se ejecuta dentro de la subrutina de envio de comando en la pantalla.

Saludos!
aaa ok, mmm no se nada de ensamblador, que pasa si quito esas 2 instrucciones?

BANKSEL ANSEL
BSF ANSEL,0
 

mcpiebot

Bovino adicto
#28
aaa ok, mmm no se nada de ensamblador, que pasa si quito esas 2 instrucciones?

BANKSEL ANSEL
BSF ANSEL,0
Hola, si las quitas, seguira sin funcionar.

Como comentaba antes, necesitas poner la configuración del ADC para el PIC que ocupes.

Si no sabes ensamblador, es muy buen momento para empezar a aprenderlo.

Lo del ADC lo puedes encontrar en el manual del micro, que esta aca:

http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

y si quieres algo mas "digerido"

te dejo este link a mi blog, donde se explica como se configura el CAD en el pic 16f877

saludos!
 
#29
Hola, si las quitas, seguira sin funcionar.

Como comentaba antes, necesitas poner la configuración del ADC para el PIC que ocupes.

Si no sabes ensamblador, es muy buen momento para empezar a aprenderlo.

Lo del ADC lo puedes encontrar en el manual del micro, que esta aca:

http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

y si quieres algo mas "digerido"

te dejo este link a mi blog, donde se explica como se configura el CAD en el pic 16f877

saludos!
bueno, pues lei el datasheet del pic y lo compare con el codigo de tu blog, a ver si entendi bien, el CLRF ADCON1 deja todos los bits en 0, en binario 00000000, el bit 7 en 0 alinea el texto de la LCD a la izquierda, del 6 al 4 no se usan, por eso los 0's, y del 3 al 0 le indican al pic que los canales de entrada del a/d sean analogicos todos. Luego al se configura el ADCON0 con 11000001 donde los bits 7 y 6 le indican al CAD que se usa el oscilador interno, los bits 5, 4 y 3 indican que la señal analogica debe pasar por el canal RA0, el bit 2 desactiva la conversion a/d, el bit 1 no se usa y el bit 0 indica que el conversor esta en uso.

y ya con eso solo cambio el final del codigo que habias puesto por el que tienes en tu blog para que ya quede bien, estoy en lo correcto? de todos modos muchas gracias por tus respuestas y por tu tiempo, eres muy amable, saludos
 

mcpiebot

Bovino adicto
#30
bueno, pues lei el datasheet del pic y lo compare con el codigo de tu blog, a ver si entendi bien, el CLRF ADCON1 deja todos los bits en 0, en binario 00000000, el bit 7 en 0 alinea el texto de la LCD a la izquierda, del 6 al 4 no se usan, por eso los 0's, y del 3 al 0 le indican al pic que los canales de entrada del a/d sean analogicos todos. Luego al se configura el ADCON0 con 11000001 donde los bits 7 y 6 le indican al CAD que se usa el oscilador interno, los bits 5, 4 y 3 indican que la señal analogica debe pasar por el canal RA0, el bit 2 desactiva la conversion a/d, el bit 1 no se usa y el bit 0 indica que el conversor esta en uso.

y ya con eso solo cambio el final del codigo que habias puesto por el que tienes en tu blog para que ya quede bien, estoy en lo correcto? de todos modos muchas gracias por tus respuestas y por tu tiempo, eres muy amable, saludos
Pues ya solo falta que lo pruebes para ver si funciona, saludos!
 
#32
hola mcpiebot, te cuento como me fue, arme el circuito como lo tienes en tu manual aumentandole el cristal de 4mhz por que el pic16f877a no tiene oscilador interno como te comente, configure los pines asi:

__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC

compile con las modificaciones que habiamos comentado y no me marco ningun error asi que procedi al armado del circuito. Una vez armado lo encendi y me empezo a marcar entre 320 y 350 grados la temperatura y el LM35DZ estaba muuuuuy caliente, incluso olia como a quemado asi que lo apague, lo intente de nuevo con otro sensor de temperatura igualito y tuve el mismo resultado, probe el pic en otra practica que tengo y funciona bien, asi que eso no se daño. Otra cosa que hice es probar la practica sin el sensor, en teoria me deberia marcar 0 en el lcd por que no esta entrando voltaje pero me seguia marcando los 300 grados, alguna idea de por que esta fallando?
 

mcpiebot

Bovino adicto
#33
hola mcpiebot, te cuento como me fue, arme el circuito como lo tienes en tu manual aumentandole el cristal de 4mhz por que el pic16f877a no tiene oscilador interno como te comente, configure los pines asi:

__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC

compile con las modificaciones que habiamos comentado y no me marco ningun error asi que procedi al armado del circuito. Una vez armado lo encendi y me empezo a marcar entre 320 y 350 grados la temperatura y el LM35DZ estaba muuuuuy caliente, incluso olia como a quemado asi que lo apague, lo intente de nuevo con otro sensor de temperatura igualito y tuve el mismo resultado, probe el pic en otra practica que tengo y funciona bien, asi que eso no se daño. Otra cosa que hice es probar la practica sin el sensor, en teoria me deberia marcar 0 en el lcd por que no esta entrando voltaje pero me seguia marcando los 300 grados, alguna idea de por que esta fallando?
Segun mi bola magica adivinatoria, tu sensor esta alrevez

Saludos!
 
#34
Segun mi bola magica adivinatoria, tu sensor esta alrevez

Saludos!
gulp! meresco que me den un zape jejeje, estas en todo lo correcto mi amigo, ya funciona :aplausos: mil gracias por todo mcpiebot, en la noche o mañana subo la imagen de la simulacion y les pego el codigo de como quedo con las modificaciones, desgraciadamente no tengo como subir los archivo a un servidor si no con mucho gusto les dejo un .rar con los archivos de la simulacion, el pcb para que puedan quemar una placa con el circuito y el codigo ya compilado en ensamblador. De nuevo muchas gracias mcpiebot, saludos
 
#36


Bueno lo prometido es deuda, aki les dejo la imagen del diagrama del termometro que mcpiebot fue tan amable de postear, aclaro, este diagrama es para el PIC16F877A, no es para el que mcpiebot posteo pero yo lo adapte. ya lo probe y funcioa perfecto, tambien les dejo el codigo en ensamblador para este mismo pic:

LIST P=16F877A
RADIX HEX
INCLUDE "P16F877A.INC" ;declaracion de la libreria

;*******************DECALRACION DE LOS BITS DE CONFIGURACION*******************

__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC

;************************** DECLARACION DE REGISTROS **************************
CBLOCK 0X20
NUM1,NUM2,NUM3

;******************************************************************************

POINTER ;REGISTROS UTILIZADOS EN
UNIDADES,DECENAS ;BINBCD Y EN LA ADQUISICION DE
CENTENAS,MILLARES ;DATOS
DATOH
UNIDADEST,DECENAST
CENTENAST,MILLAREST
SAMPLE
SHIFT
;******************************************************************************

PROMEDIO
CONTADOR
ENDC

CBLOCK 0X70 ;SE COLOCA A DATOL EN UNA DE LAS LOCALIDADES DE
DATOL ;MEMORIA QUE ESTAN ESPEJADAS EN BANCO0 Y BANCO1
ENDC

;******************************************************************************

;****************DECLARACION DE LOS PINES DE CONTROL DE LA LCD*****************

#DEFINE RS PORTC,2
#DEFINE EN PORTC,1

;******************************************************************************

;**************PUERTO DONDE ESTARAN LOS PINES DE DATOS DE LA LCD***************

PORTLCD EQU PORTD

;******************************************************************************

;******************************************************************************
;COMANDOS DE LA PANTALLA

LIMPIAR EQU B'00000001' ;LIMPIA TODA LA PANTALLA
RENGLON1 EQU B'10000000' ;COLOCA EN EL RENGLON 1
RENGLON2 EQU B'11000000' ;COLOCA EN EL RENGLON 2
DISON EQU B'00001100' ;ENCIENDE EL DISPLAY
HOME EQU B'00000010' ;VA A LA DIRECCION 0
SHIFTDL EQU B'00011100' ;ROTA EL LCD A LA IZQUIERDA
SHIFTDR EQU B'00011000' ;ROTA EL LCD A LA DERECHA
SHIFTCL EQU B'00010100' ;ROTA EL CURSOR A LA IZQUIERDA
SHIFTCR EQU B'00010000' ;ROTA EL CURSOR A LA DERECHA

;******************************************************************************

ORG 0X00 ;VECTOR DE RESET
GOTO INICIO ;SALTO AL INICIO DEL CODIGO

ORG 0X04 ;VECTOR DE INTERRUPCION

;*******************TABLAS DE DATOS PARA LA SUBRUTINA BINBCD*******************

TABLAU ;TABLA DE UNIDADES
MOVF POINTER,W
ADDWF PCL,F
RETLW D'2'
RETLW D'6'
RETLW D'8'
RETLW D'4'
RETLW D'2'
RETLW D'6'
RETLW D'8'
RETLW D'4'
RETLW D'2'
RETLW D'1'

TABLAD ;TABLA DE DECENAS
MOVF POINTER,W
ADDWF PCL,F
RETLW D'1'
RETLW D'5'
RETLW D'2'
RETLW D'6'
RETLW D'3'
RETLW D'1'
RETLW D'0'
RETLW D'0'
RETLW D'0'
RETLW D'0'

TABLAC ;TABLA DE CENTENAS
MOVF POINTER,W
ADDWF PCL,F
RETLW D'5'
RETLW D'2'
RETLW D'1'
RETLW D'0'
RETLW D'0'
RETLW D'0'
RETLW D'0'
RETLW D'0'
RETLW D'0'
RETLW D'0'

;******************************************************************************

INICIO: BSF STATUS,RP0 ;CAMBIO A BANCO1

CLRF TRISD ;CONFIGURO TODO PORTD COMO SALIDA
BCF TRISC,1 ;CONFIGURO PORTC,1 COMO SALIDA(EN)
BCF TRISC,2 ;CONFIGURO PORTC,2 COMO SALIDA(RS)

BCF STATUS,RP0 ;CAMBIO A BANCO0

CLRF PORTD ;APAGO POSIBLE LATCHS EN PORTD
CLRF PORTC ;APAGO POSIBLE LATCHS EN PORTC

CALL INIT_ADQUI ;LLAMO A LA SUBRUTINA DE CONFIGURACION DE
;EL MODULO ADC
CALL INITLCD ;LLAMO A LA SUBRUTINA DE INICIALIZACION
;DE LA PANTALLA LCD 16X2
START CALL D16X2 ;LLAMO A LA SUBRUTINA QUE ESCRIBE EL MENSAJE INICIAL

;****************************************
;CODIGO QUE HACE QUE SE EJECUTE EL COMANDO DE ROTACION A LA DERECHA 46 VECES

MOVLW .46
MOVWF SHIFT

VUELTA CALL RETARDO
MOVLW SHIFTDR ;COMANDO DE ROTACION
CALL CMD

DECFSZ SHIFT,F
GOTO VUELTA

;****************************************

MOVLW LIMPIAR ;COMANDO DE LIMPIEZA DE PANTALLA
CALL CMD

OPERA MOVLW RENGLON1 ;COMANDO PARA EMPEZAR A ESCRIBIR A PARTIR
CALL CMD ;DE LA PRIMERA DIRECCION DEL RENGLON1

CLRF PROMEDIO ;SE LIMPIA AL REGISTRO PROMEDIO

CALL ADQUI ;SE LLAMA A LA SUBRUTINA DE ADQUISICION DE
;DATOS DEL ADC
CALL BINBCD ;LLAMO A LA SUBRUTINA QUE CONVIERTE DE BINARIO
;A ASCII

;****************************************

MOVF MILLARES,W ;MANDO LOS DATOS ADQUIRIDOS A LA LCD
CALL DATO

MOVF CENTENAS,W
CALL DATO

MOVF DECENAS,W
CALL DATO

MOVF UNIDADES,W
CALL DATO

;****************************************

MOVLW B'11011111' ;DATO PARA EL SIMBOLO DE GRADO
CALL DATO

MOVLW 'C' ;LA C DE CELSIUS
CALL DATO
GOTO OPERA ;REGRESO AL INICIO DEL PROGRAMA PRINCIPAL

;**************************SUBRUTINA DE LOS MENSAJES **************************

D16X2 MOVLW "P"
CALL DATO

MOVLW "r"
CALL DATO

MOVLW "o"
CALL DATO

MOVLW "y"
CALL DATO

MOVLW "e"
CALL DATO

MOVLW "c"
CALL DATO

MOVLW "t"
CALL DATO

MOVLW "o"
CALL DATO

MOVLW RENGLON2
CALL CMD

MOVLW "T"
CALL DATO

MOVLW "e"
CALL DATO

MOVLW "r"
CALL DATO

MOVLW "m"
CALL DATO

MOVLW "o"
CALL DATO

MOVLW "m"
CALL DATO

MOVLW "e"
CALL DATO

MOVLW "t"
CALL DATO

MOVLW "r"
CALL DATO

MOVLW "o"
CALL DATO

MOVLW " "
CALL DATO

MOVLW "A"
CALL DATO

MOVLW "/"
CALL DATO

MOVLW "D"
CALL DATO

RETURN

;**********************SUBRUTINA DE ADQUISICION DEL ADC**********************

ADQUI: CALL SampleTime ;RETARTO DE ADQUISICION
BSF ADCON0,GO ;INICIA LA CONVERSION
BTFSC ADCON0,GO ;YA SE TERMINO LA CONVERSION?
GOTO $-1 ;NO? PREGUNTA DE NUEVO
BANKSEL ADRESH ;SI, CONTINUA
MOVF ADRESH,W ;LEE LA PARTE MAS SIGNIFICATIVA
MOVWF DATOH ;GUARDALO EN DATOH
BANKSEL ADRESL ;CAMBIO A BANCO1
MOVF ADRESL,W ;LEE LA PARTE MENOS SIGNIFICATIVA
MOVWF DATOL ;GUARDALO EN DATOL
BANKSEL PORTB ;CAMBIO A BANCO0

bcf STATUS,C ;BORRA EL BIT DE ACARREO
RRF DATOH,F ;ELIMINO EL BIT MENOS SIGNIFICATIVO
RRF DATOL,F ;PARA OCUPAR SOLO 9 BITS
return

SampleTime:

MOVLW .225
MOVWF SAMPLE

ESPERA_S:

NOP
NOP
DECFSZ SAMPLE,F
GOTO ESPERA_S
RETURN


;***********************SUBRUTINA DE INICIALIZACION LCD************************

INITLC:eek:

MOVLW B'00110000' ;1
CALL CMD
MOVLW B'00110000' ;2
CALL CMD
MOVLW B'00110000' ;3
CALL CMD
MOVLW B'00111100' ;4
CALL CMD
MOVLW B'00001000' ;5
CALL CMD
MOVLW B'00000001' ;6
CALL CMD
MOVLW B'00000110' ;7
CALL CMD
MOVLW DISON ;8
CALL CMD
MOVLW HOME
CALL CMD
RETURN


;*****************SUBRUTINA QUE ENVIA LOS CARACTERES A LA LCD******************

DATO MOVWF PORTLCD
BSF RS
NOP
NOP
NOP
BSF EN
CALL RETARDO5MS
BCF EN
RETURN

;******************SUBRUTINA QUE ENVIA LOS COMANDOS A LA LCD*******************

CMD MOVWF PORTLCD
BCF RS
NOP
NOP
NOP
BSF EN
CALL RETARDO5MS
BCF EN
RETURN

;******************************************************************************

RETARDO5MS

MOVLW D'1'
MOVWF NUM3

OTRA25 MOVLW D'100'
MOVWF NUM2

OTRA15 MOVLW D'166'
MOVWF NUM1

OTRA5 DECFSZ NUM1,F
GOTO OTRA5

DECFSZ NUM2,F
GOTO OTRA15

DECFSZ NUM3,F
GOTO OTRA25
RETURN

;******************************************************************************

RETARDO MOVLW D'3'
MOVWF NUM3

OTRA25A MOVLW D'200'
MOVWF NUM2

OTRA15A MOVLW D'166'
MOVWF NUM1

OTRA5A DECFSZ NUM1,F
GOTO OTRA5A

DECFSZ NUM2,F
GOTO OTRA15A

DECFSZ NUM3,F
GOTO OTRA25A
RETURN

;******************SUBRUTINA DE CONVERSION DE BINARIO A ASCII******************

BINBCD CLRF MILLARES
CLRF UNIDADES
CLRF DECENAS
CLRF CENTENAS
CLRF POINTER

OTRA BTFSS DATOH,7
GOTO ROTA

CALL TABLAU
ADDWF UNIDADES,F

CALL TABLAD
ADDWF DECENAS,F

CALL TABLAC
ADDWF CENTENAS,F
;****************************************

MOVF UNIDADES,W
SUBLW D'10'
BTFSS STATUS,C
GOTO MAYOR
GOTO MENOR

MAYOR INCF DECENAS,F
MOVLW D'10'
SUBWF UNIDADES,F
GOTO DECE

MENOR MOVLW D'10'
SUBWF UNIDADES,W
BTFSS STATUS,Z
GOTO DECE
GOTO MAYOR

;****************************************

DECE MOVF DECENAS,W
SUBLW D'10'
BTFSS STATUS,C
GOTO MAYORD
GOTO MENORD

MAYORD INCF CENTENAS,F
MOVLW D'10'
SUBWF DECENAS,F
GOTO CENTE

MENORD MOVLW D'10'
SUBWF DECENAS,W
BTFSS STATUS,Z
GOTO CENTE
GOTO MAYORD

;****************************************

CENTE MOVF CENTENAS,W
SUBLW D'10'
BTFSS STATUS,C
GOTO MAYORC
GOTO MENORC

MAYORC INCF MILLARES,F
MOVLW D'10'
SUBWF CENTENAS,F
GOTO MILLA

MENORC MOVLW D'10'
SUBWF CENTENAS,W
BTFSS STATUS,Z
GOTO MILLA
GOTO MAYORC

;****************************************

MILLA MOVF MILLARES,W
SUBLW D'10'
BTFSS STATUS,C
GOTO MAYORM
GOTO MENORM

MAYORM MOVLW D'10'
SUBWF MILLARES,F
GOTO ROTA

MENORM MOVLW D'10'
SUBWF MILLARES,W
BTFSS STATUS,Z
GOTO ROTA
GOTO MAYORM

;****************************************

ROTA RLF DATOL,F
RLF DATOH,F
INCF POINTER,F
MOVF POINTER,W
SUBLW D'10'
BTFSS STATUS,Z
GOTO OTRA

MOVLW 0X30
ADDWF UNIDADES,F

MOVLW 0X30
ADDWF DECENAS,F

MOVLW 0X30
ADDWF CENTENAS,F

MOVLW 0X30
ADDWF MILLARES,F

RETURN

;**********************SUBRUTINA DE CONFIGURACION DEL CAD**********************
INIT_ADQUI:

BSF STATUS,RP0
BSF TRISA,0
CLRF ADCON1
BCF STATUS,RP0
MOVLW b'11000001'
MOVWF ADCON0
RETURN

END ;FINAL DEL PROGRAMA
un saludo y gracias mcpiebot :vientos:
 

mcpiebot

Bovino adicto
#37


Bueno lo prometido es deuda, aki les dejo la imagen del diagrama del termometro que mcpiebot fue tan amable de postear, aclaro, este diagrama es para el PIC16F877A, no es para el que mcpiebot posteo pero yo lo adapte. ya lo probe y funcioa perfecto, tambien les dejo el codigo en ensamblador para este mismo pic:



un saludo y gracias mcpiebot :vientos:
Que bueno que jalo, saludos y que estés muy bien.
 

momb

Bovino maduro
#38
hola soy nuevo en esto te mande un correo de hecho pero hay te va... nosostros usamos el software MPlab para compilar el codigo en asm y que nos genere el erchivo .hex para asi con el BK precition lo cargamos al pic pero al momento de usar el mplab para el pic16f887 no aparece ese dispositivo solo aparace el pic16f88 y le intente con ese pero me da muuuchos errores asi que si me podrias decir q software usaste para compilarlo y generar el .hex seria de maravilla :D de antemano gracias :D
 

mcpiebot

Bovino adicto
#39
hola soy nuevo en esto te mande un correo de hecho pero hay te va... nosostros usamos el software MPlab para compilar el codigo en asm y que nos genere el erchivo .hex para asi con el BK precition lo cargamos al pic pero al momento de usar el mplab para el pic16f887 no aparece ese dispositivo solo aparace el pic16f88 y le intente con ese pero me da muuuchos errores asi que si me podrias decir q software usaste para compilarlo y generar el .hex seria de maravilla :D de antemano gracias :D

Hola, que tal?

El compilador que usamos es el MPLAB IDE, en su ultima versión que es la
8.46 y la puedes descargar de:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_46.zip

para bajar el código al programador, usamos el pickit2 o el programador de
cosas de ingenieria.com a continuación te pongo los links.

http://www.cosasdeingenieria.com/mystore/esp/detalle.php?id=50

http://www.cosasdeingenieria.com/mystore/esp/detalle.php?idc=40&id=37


Cabe destacar que el pic16f887 es uno de los mas nuevos, y viene a
reemplazar al pic16f877 que microchip ya esta marcado como obsoleto.

Así que el microcontrolador, solo estará disponible en las versiones mas
nuevas del compilador.
 
#40
oye amigo donde puedo conseguir la
pantalla LCD de 16 caracteres o sugiereme una pagina del internet de mexico para k lo pueda comprar espero tu respuesta gracias
 
Arriba