Google Búsqueda personalizada

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

Como se programan los pic 18f???

comentario del autor Mar May 26, 2009 1:43 am
   
necesito ayuda, estoy pasando de la programación del pic 16F84A al 18F2450 y no emboco una para hacer correr los programas

dosavat

Reputación

asistió a la solución Mar May 26, 2009 7:45 am
   
Ok.
Un gran salto.-
1)-Errores comunes son los relacionados a la parte de la oscilacion ya el el 18f trae pll .-
2)-Registro LATx (Latch).-
Y obviamente un monton mas pero bueno en fin, lo mas logico es que nos cuentes especificamente donde radica tu problema asi lo solucionamos.-
Subi si queres el codigo que estas usando y lo miramos.-
Saludos.-

mammuky

Reputación

comentario del autor Mar May 26, 2009 11:21 am
   
muchas gracias por tu respuesta, te cuento que quiero exibir en un display lcd 2x20 un texto, con el pic 16f84a andubo bárbaro pero con el 18f2450 no hay caso. lo que veo es que las salidas RB aparentemente funcionan, pero las RA quedan con un valor de tensión de 2,5v medidos con el tester. Otra cosa rara para mi es que el programa se carga mucho mas rápido en este pic que en el anterior. El codigo es el siguiente:

;PIC 18F2450
ADCON1 EQU 0XFC1
CMCON EQU 0XFB4
PC EQU 0xFF9
STATUS EQU 0xFD8
TRISA EQU 0xF92
TRISB EQU 0xF93
PORTA EQU 0xF80
PORTB EQU 0xF81
DEL EQU 0x10
NUEVO1 EQU 0x11
NUEVO2 EQU 0x12
NUEVO3 EQU 0x13
ANILLO EQU 0x14
CINCO EQU 0x15
ONCE EQU 0x16
ROT EQU 0x17
MEDI EQU 0x18
VER1 EQU 0x19
VER2 EQU 0x1A
OPER EQU 0x1B
ASCII EQU 0x1C
RETT EQU 0x1D
REG2 EQU 0x1E
REG3 EQU 0x1F
;**************************************************************
; Inicio del programa
;**************************************************************
ORG 0X000
GOTO INICIO
INICIO
MOVLW 0X0F ;SE DESACTIVA LA FUNCION DE ENTRADA ANALOGICA
MOVWF ADCON1 ; PARA TODAS LAS LINEAS
MOVLW 07H ;SE DESACTIVA LA FUNCION DE ENTRADA DE COMPARADOR
MOVWF CMCON ; DE RA0 A RA3
MOVLW 0XC0 ;SE CONFIGURAN RA0 A RA5 COMO SALIDAS
MOVWF TRISA
CLRF PORTA ;SE INICIALIZAN LOS PINES EN CERO
CLRF TRISB ;SE CONFIGURAN COMO SALIDAS TODOS LOS RB
CLRF PORTB ;SE INICIALIZAN LOS PINES EN CERO
MOVLW 0x38 ;INSTRUCCIONES 2 LINEAS EN EL LCD 111000
CALL CONTROL ;COLOCA EL DATO EN EL BUS DEL LCD
MOVLW 0x06 ;110 MENSAJE FIJO EL CURSOR SE DESPLAZA A LA DERECHA
CALL CONTROL ;COLOCA EL DATO EN EL BUS DEL LCD
MOVLW 0x0C ;1100 ENCIENDE EL DISPLAY Y APAGA EL CURSOR
CALL CONTROL ;COLOCA EL DATO EN EL BUS DEL LCD
MOVLW 0x01 ;BORRA EL DISPLAY Y CLOCA EL CURSOR EN 1,1
CALL CONTROL ;COLOCA EL DATO EN EL BUS DEL LCD
GOTO INI1_1 ;SALTA A LINE1_1CIALIZACION DEL DISPLAY
RETA1_1RDO MOVLW 0xFF ;AJUSTE DE TIEMPOS
MOVWF DEL
DECRE DECFSZ DEL,1
GOTO DECRE
RETLW 0x00
CONTROL BCF PORTA,0
GOTO DATO2
DATO BSF PORTA,0 ;RS=1 ESTA RUTINA GENERA
DATO2 BSF PORTA,1 ;E=1 LAS SEÑALES DE CONTROL
MOVWF PORTB ;Y ENVIA EL DATO AL
CALL RETA1_1RDO ;MODULO CON INTERFACE
BCF PORTA,1 ;A 0CH0 BITS
CALL RETA1_1RDO
RETLW 0x00
ORG 0X300
LINE1_1 ADDWF PC,1 ;LINEA1 MENSAJE1: PROG:1 120°C 120MIN.
RETLW "P"
RETLW "R"
RETLW "O"
RETLW "G"
RETLW ":"
RETLW "1"
RETLW " "
RETLW "1"
RETLW "2"
RETLW "0"
RETLW "°"
RETLW "C"
RETLW " "
RETLW "1"
RETLW "3"
RETLW "0"
RETLW "m"
RETLW "i"
RETLW "n"
RETLW 0X00
GOTO FIN
LINE2_1 ADDWF PC,1 ;LINEA2 MENSAJE1: T.REST: 120MIN.
RETLW "T"
RETLW "."
RETLW "R"
RETLW "E"
RETLW "S"
RETLW "T"
RETLW ":"
RETLW " "
RETLW "1"
RETLW "3"
RETLW "0"
RETLW "m"
RETLW "i"
RETLW "n"
RETLW 0X00
GOTO FIN

INI1_1 MOVLW 0X80
CALL CONTROL
MOVLW 0x00 ;REGISTRO DE TABLE
MOVWF ASCII ;AL MODULO
;
CICLO1_1 MOVF ASCII,0 ;HACE BARRIDO DE LA TABLA LINE1_1
CALL LINE1_1
CALL DATO
MOVLW 0x9F ;RETARDO ENTRE CARACTERES
MOVWF RETT
RETA1_1 DECFSZ RETT,1
GOTO RETA1_1
INCF ASCII,1 ;INCREMENTA EL REGISTRO ASCII EN UNO Y SIGUE CON EL SIGUIENTE CARACTER
MOVLW 0x13 ;FIN DE TABLA
XORWF ASCII,0 ;PREGUNTA SI YA TERMINO
BTFSS STATUS,2 ;EL MENSAJE PARA SEGUIR
GOTO CICLO1_1 ;CON LA OTRA PARTE DEL
;
INI2_1 MOVLW 0XC0
CALL CONTROL
MOVLW 0x00 ;REGISTRO DE TABLE
MOVWF ASCII ;AL MODULO
CICLO2_1 MOVF ASCII,0 ;HACE BARRIDO DE LA TABLA LINE1_1
CAMB2_1 CALL LINE2_1
CALL DATO
MOVLW 0x9F ;RETA1_1RDO ENTRE CARACTERES
MOVWF RETT
RETA2_1 DECFSZ RETT,1
GOTO RETA2_1
INCF ASCII,1 ;INCREMENTA EL REGISTRO ASCII EN UNO Y SIGUE CON EL SIGUIENTE CARACTER
MOVLW 0x0E ;FIN DE TABLA
XORWF ASCII,0 ;PREGUNTA SI YA TERMINO
BTFSS STATUS,2 ;EL MENSAJE PARA SEGUIR
GOTO CICLO2_1 ;CON LA OTRA PARTE DEL
FIN GOTO FIN
END

dosavat

Reputación

comentario del autor Mar May 26, 2009 11:41 am
   
Otro sintoma es que en el display no sale nada, quedan cuadraditos en la primer linea del lcd y en la segunda linea nada. El oscilador esta configurado como XT: XT+PLL, USB XT

dosavat

Reputación

sin valorar Mar May 26, 2009 12:57 pm
   
Ok.
1)-Lo de los cuadraditos si te aparecen puede ser por el ajuste del contraste del lcd.
2)-simule tu prog y funciona el unico detalle es que manda 2 veces la misma letra

http://img29.imageshack.us/img29/6315/lcdtest.jpg
Ahora lo veo bien y me fijo.-
Otra cosa decime a que frec lo usas, y a que lo probe a 4Mhz.-
Saludos.-

mammuky

Reputación

sin valorar Mar May 26, 2009 2:07 pm
   
Ok.
Despues de mirar el codigo encontre error en las llamada a las tablas y ademas luego de leer la primera tabla saltaba al fin del programa, por eso no mostraba la segunda linea.-

http://img5.imageshack.us/img5/237/lcdtest2o.jpg
Te adjunto el programa modificado para que lo compares con el original.-
Suerte y saludos.-

lcd_test.rar  (154.39 kb) - Asm, Hex y proyecto en Mplab Ide.-

mammuky

Reputación

comentario del autor Mar May 26, 2009 3:04 pm
   
Ok, ahora voy a cargar la correción y ver que pasa, igualmente te paso la configuración del pic para ver si esta bien.
el pic esta conectado:
mclr con resist de 1k a vcc
y el reloj, con un crestal de 4mhz y dos capacitores de 22pf a masa entre osc1 y osc2

en el adjunto te envio la pantalla impresa de la configuración.

gracias.

CONFIG_SETUP1.doc  (136 kb) -

dosavat

Reputación

asistió a la solución Mar May 26, 2009 3:31 pm
   
Ok.
Saludos.-

mammuky

Reputación

comentario del autor Mar May 26, 2009 3:42 pm
   
Ok, ahora voy a cargar la correción y ver que pasa, igualmente te paso la configuración del pic para ver si esta bien.
el pic esta conectado:
mclr con resist de 1k a vcc
y el reloj, con un crestal de 4mhz y dos capacitores de 22pf a masa entre osc1 y osc2

en el adjunto te envio la pantalla impresa de la configuración.

gracias.

CONFIG_SETUP1.doc  (136 kb) -

dosavat

Reputación

comentario del autor Mar May 26, 2009 10:54 pm
   
PROBE EL ARCHIVO TAL CUAL ME LO PASATE PERO SIGO CON EL MISMO PROBLEMA. Luegocambie la configuración a XT=XT+PLL porque estoy usando un cristal de 4MHZ con capacitores de 22pf a masa.
No entiendo a que se refiere el XT+PLL, la otra opción es XT=USB-XT, de todas maneras no fnciona con ninguna de las dos.
Habre quemado el PIC? y es eso lo que jode?
Una vez que alimento el pic, mido las salidas RB y están todas a 5V, RA0 5V, el resto de las RA 2,5V y las RC 1,5V, esto no es rarísimo?

dosavat

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos