Autor Tema: Problemas con las salidas 16f877  (Leído 2200 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Problemas con las salidas 16f877
« en: 03 de Febrero de 2008, 14:12:21 »
EStoy teniendo problema con las salidas del puerto E y puerto B del 16f877... despues de sospechar de ellas pongo todo el puerto E en modo salida y activadas a nivel alto y me dan niveles de 2,67v... cuando deberia dar 5v aprox...

alguna idea???

Os pongo el cogido que tengo hasta llegar al momento en que pongo todas las salidas a nivel alto del puerto E

He probado tambien con un 16f877a y ocurre lo mismo por lo que pienso que debe ser problema de hardware

Código: Microchip Assembler
  1. ;Programa para controlar el brazo robot
  2. ;Autores: Jose A. Migens Gomez y Santiago J. Solis Perez
  3.  
  4. ;*****************ELECCIÓN, CONFIGURACIÓN Y ACOTACIÓN DE REGISTROS DEL PIC********************************
  5.  
  6.         LIST       P=16F877
  7.         __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_OFF & _HS_OSC & _LVP_OFF & _DEBUG_ON
  8.         INCLUDE  <P16F877.INC>
  9.        
  10.  
  11.  
  12. ;*****************DEFINICIÓN DE BANCOS DE MEMORIA*********************************************************
  13.  
  14.         #DEFINE BANCO0  bcf     STATUS,RP0
  15.         #DEFINE BANCO1  bsf     STATUS,RP0
  16.         #DEFINE UsePORTD                ;Indica a la libreria lcd que use el portb
  17.        
  18.         CBLOCK          0X21
  19.                 PDel0                                           ;CONTADOR DE PAUSA
  20.                 MUESTRA0                                        ;Muestra tomada del canal AN0
  21.                 MUESTRA1                                        ;Muestra tomada del canal AN1
  22.                 RESTA                                           ;Variable necesaria para realizar la resta
  23.                 COMPARADOR
  24.                 MUXDIR                                          ;Registro direccionador del multiplexor analógico
  25.         ENDC
  26.  
  27.         ORG     00     
  28.         goto    INICIO
  29.  
  30. INICIO                                                          ;CONFIGURACIÓN DE LOS PUERTOS A Y C
  31.  
  32.         bcf     STATUS,RP1
  33.         BANCO1
  34.         movlw   b'00111111'
  35.         movwf   TRISA
  36.         clrf    TRISB
  37.         movlw   b'01000010'                                     ;Configuración del registro ADCON1
  38.         movwf   ADCON1                                          ;Selecciona todos los pines del puerto A como entradas analógicas
  39.         clrf    TRISC                                           ;Selecciona el puerto C como salida
  40.         clrf    TRISD                                           ;Selecciona el puerto D como salida
  41.         clrf    TRISE  
  42.        
  43.         BANCO0
  44.         movlw   b'10000000'    
  45.         movwf   ADCON0                                          ;Ajusta los parametros para la conversión A/D,Frecuencia de muestreo 1/64 *Fosc
  46.         clrf    PORTB
  47.         clrf    PORTC
  48.         clrf    PORTD
  49.         clrf    PORTE
  50.  
  51.         ;Iniciamos LCD
  52.         call    LCD_Inicializa  ;inicializamos el LCD desde la librería.              
  53.         call    LCD_2Lineas4Bits5x7     ;le ponemos en modo 4 bits 2 líneas   
  54. ;       call LCD_Borra
  55.        
  56.         call    LCD_Linea1
  57.         movlw 'C'
  58.         call    LCD_Caracter   
  59.        
  60.        
  61.         ;Hay que "encender" el conversor y esperar 20uS minimo, que es el tiempo de adquisición del ADC       
  62.         bsf     ADCON0,0                                        ;Activa el módulo ADC
  63.         call    ESPERA                                          ;Salta a la rutina de espera           
  64.  
  65.         movlw   b'00000111'
  66.         movwf   PORTE
« Última modificación: 03 de Febrero de 2008, 14:24:51 por elmasvital »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problemas con las salidas 16f877
« Respuesta #1 en: 03 de Febrero de 2008, 14:28:25 »
¿Cabe la posibilidad de que estén oscilando y el polímetro vea una media?

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Problemas con las salidas 16f877
« Respuesta #2 en: 03 de Febrero de 2008, 14:45:21 »
Eso pense en el primer momento y decidí dejar las salidas activas siempre... a nivel alto.

Tambien he mirado que no estuvieran como entradas analogicas... en el adcon1 pero tampoco lo están...

Y no he visto otros registros en los que estén implicados el porte y el portb

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problemas con las salidas 16f877
« Respuesta #3 en: 03 de Febrero de 2008, 15:10:55 »
Revisa el bit 4 del TRISE (PSPMODE), según la data tiene que estar a 0 para que el PORTE funcione como I/O, de lo contrario funciona en modo PSP.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Problemas con las salidas 16f877
« Respuesta #4 en: 05 de Febrero de 2008, 20:20:10 »
Eso mero, antes me pasaba que el portd no me funcionaba y era que el PSP estaba activado, desactiva esto y listo masvital.

Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.