TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: elmasvital en 03 de Febrero de 2008, 14:12:21

Título: Problemas con las salidas 16f877
Publicado por: elmasvital 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
Título: Re: Problemas con las salidas 16f877
Publicado por: Nocturno en 03 de Febrero de 2008, 14:28:25
¿Cabe la posibilidad de que estén oscilando y el polímetro vea una media?
Título: Re: Problemas con las salidas 16f877
Publicado por: elmasvital 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
Título: Re: Problemas con las salidas 16f877
Publicado por: Nocturno 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.
(http://img522.imageshack.us/img522/4904/portejg4.jpg)
Título: Re: Problemas con las salidas 16f877
Publicado por: KALLITOS 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