Autor Tema: Configurar puertos 16F877  (Leído 3400 veces)

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

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
Configurar puertos 16F877
« en: 16 de Septiembre de 2004, 08:32:00 »
Pues heme aqui de nuevo preguntando ...
Acerca de este pic (me lo acaban de presentar) revise el diagrama de la organizacion de la memoria RAM y encontré algo curioso ...

Dos TRISB y dos PORTB

En el pic 16F84 solo se tenian un TRIS y PORT para cada puerto
pero ahora me encontré con eso , las ubicaciones de los dos TRISB del 16F877 son 86h y 186h (banco 1 y 3) y los PORTB se encuentran en ... 06h y 106h (banco 0 y 2) asi que para empezar a usar este pic quisiera saber porque dos portb ... Si tuvieran algun programita de configuracion de todos los puertos como solo entradas o salidas digitales seria mejor ...

GRACIAS !!!

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Configurar puertos 16F877
« Respuesta #1 en: 16 de Septiembre de 2004, 08:56:00 »
Ummm... Cuantos PCL y STATUS entre otros tienes en el 84a???
No, simplemente es una imagen del registro. Tienes la posibilidad de acceder a ellos desde los distintos bancos donde aparecen, por comodidad. Pero son lo mismo.

Saludos!!
Saludos desde Huelva (ESPAÑA)

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Configurar puertos 16F877
« Respuesta #2 en: 16 de Septiembre de 2004, 09:46:00 »
OK, lo voy a intentar programar desde ambos bancos, primero con el banco 1 trisb como salidas y despues de algunas rutinas configuro el trisb del banco 3 tambien a ver que pasa ...

gracias cucaracha !!!

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Configurar puertos 16F877
« Respuesta #3 en: 16 de Septiembre de 2004, 09:55:00 »
Sólo recuerda que este micro tiene analógica, que por defecto viene activa. Para usar los puertos como digitales tendrás pues que desconectarla. En el data viene todo. Mira en las partes donde te indicas como se inicializan los registros y en las partes referentes a los puertos.
Saludos!!
Saludos desde Huelva (ESPAÑA)

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Configurar puertos 16F877
« Respuesta #4 en: 16 de Septiembre de 2004, 13:48:00 »
Algunos registros estan en varios bancos para que , debido a su uso frecuente, no debas andar cambiando de banco constantemente. Pero en el fondo todos van a lo mismo, como si fueran "clones", si cambias uno cambian los demas, pues como bien decia cuca, son imagenes en el fondo.

Con el 16F877, debes de configurar los puertos analogicos para que funcionen como digitales, para ello haz ADCON1=7 y yasta.

salu2

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Configurar puertos 16F877
« Respuesta #5 en: 16 de Septiembre de 2004, 18:45:00 »
Oye YF-21, no te andes brincando unidades del libro de 16F877, por eso no le entiendes jejeje.

Te paso un programa básico que configura porta todo como digital y saca una secuencia binaria por portb.

Codigo:
;Programa que enciende y apaga led
;
list p=16f877a
include "p16f877a.inc"

conteo equ 0x20      ; lleva conteo binario
PDel0 equ 0x21      ; subrutina
PDel1 equ 0x22      ; subrutina

org 0x00
goto inicio
org 0x05

inicio      bsf STATUS,RP0      ; banco 1
         bcf STATUS,RP1
         clrf TRISB         ; portb de salida
         movlw b"00000110"   ; porta todo digital
         movwf ADCON1
         clrf TRISA         ; porta de salida
         bcf STATUS,RP0      ; banco 0
         bcf STATUS,RP1

         clrf conteo
contador   movf conteo,W
         movwf PORTB         ; pasa conteo a W
         call DEMORA
         incf conteo
         goto contador
         
; Descripcion: Delay 500000 ciclos
;-------------------------------------------------------------
DEMORA  movlw     .239      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .232      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3  clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  goto PDelL6         ; 2 ciclos delay
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
;-------------------------------------------------------------
end



Fíjate como se configura el adcon

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Configurar puertos 16F877
« Respuesta #6 en: 17 de Septiembre de 2004, 15:35:00 »
Tienes razon migsantiago, pareciera que me conoces ...

Ya le eché una leida y ya chequé tambien las ldr ... a ver luego para que me sirven ... ahora copio el programa y lo analizo ...

Lo de los puertos, ya lo configuré como me dijeron ... (prometo hacer mis tareas picmaniacas) ...

Arigato minna !!!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Configurar puertos 16F877
« Respuesta #7 en: 17 de Septiembre de 2004, 17:47:00 »
OK, compila el programa y simúlalo en proteus.

Luego me dices si puedes pasar el hex a un 16f877, y si sí puedes te paso mis 16f877 para que los pruebes, porque yo todavía no puedo hacerlo con mi programador.

Checa bien los bits del ADCON1, en la página 133 del libro viene la tabla de configuraciones del porta.