puertos de entrada/salida
Post on 13-Jun-2015
6.278 Views
Preview:
TRANSCRIPT
Automatización Industrial
Francisco chiquillo
Puertos de entrada /salida
Capitulo 4
Objetivo del capitulo Al finalizar el capítulo el estudiante
tendrá conocimiento sobre ¿Cuántos hay según la referencia del microcontrolador a utilizar? ,
¿Qué recursos adicionales brindan al estudiante aparte de configurarse como simple terminales de entrada /o salidas lógicas?
Los puertos de microcontrolador
Los puertos de microcontrolador son el punto de comunicación entre el microcontrolador y el mundo exterior, a través de ellos se pueden efectuar procesos de control electrónico sobre dispositivos de potencia, instrumentación telemetría etc. además permiten también recibir señales del mundo exterior.
A CONTINUACION SE ILUSTRA CADA UNO DE LOS REGISTROS CORRESPONDIENTES AL USO Y CONFIGURACION DE CADA UNO DE LOS PUERTOS EXISTENTES EN LA FAMILIA DE MICROCONTROLADORES.
Registros de puertos
• Registro PORT A(PTA)• Registro PORT A(DDRA)• Registro PORT A(PTAPUE)• Registro PORT B (PTB) • Registro PORT B (DDRB)• Registro PORT D (PTD)• Registro PORT D (DDRD)• Registro PORT D (PDCR)
REGISTRO PORT A,(PTA)
Este registro pese sus 8 bits de los cuales solo 7 pueden ser configurados como pines de entrada o salida de manera independiente a través del registro DDRA.
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
0 PTA 6
PTA 5
PTA 4
PTA 3
PTA 2
PTA 1
PTA 0
Unas de las principales características de este puerto ES QUE CADA PIN DEL PUERTO A posee configuración por software de las resistencias de Pull-Up .
RESISTENCIA PULL-UP Una resistencia de Pull-Up consiste en
una resistencia que se encuentra conectada internamente entre un pin en particular del puerto A y el terminal del positivo de alimentación o VDD, que en nuestro caso sería + 5 v.
CONEXIÓN INTERNA PULL-UP
Registro PORT A(DDRA) BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
0 DDRA 6
DDRA 5
DDRA 4
DDRA 3
DDRA 2
DDRA 1
DDRA 0
Mediante este registro de 8 bits, de los cuales solo se puede acceder a 7 bits, se efectúa la configuración de los bits del registro PORT A, ya sea como entrada o salidas.
BITS DE CONFIGURACION DE PORT A(DDRA) 1: El pin corresponde del PORT A es
configurado como Salida. 0: El pin corresponde del PORT A es
configurado como entrada.
Registro PORT A(PTAPUE)
BIT7
BIT 6 BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
PTA6EN
PTAPUE 6
PTAPUE 5
PTAPUE 4
PTAPUE 3
PTAPUE 2
PTAPUE 1
PTAPUE 0
Este Registro es el que permite habilitar o deshabilitar las resistencias de PULL-UP para cada uno de los pines del puerto A.
A continuación se explica el significado de cada bit perteneciente al registro PTAPUE y la función que desempeña cada uno.
PTA6EN: habilitar el pin PTA6 como OSC2 La función del OSC2 se configura cuando se posee la opción de
oscilador RC 1: El OSC2 es configurado para utilizar el pin PTA6 como el pin de
I/O con las funciones de interrupción y configuración de resistencias de PULL-UP
0: El OSC2 es configurado como oscilador de tipo RC PTAPUE (6:0) Habilitación de resistencias de PULL –UP
1: habilita la resistencia de pull-up correspondiente al pin del puerto A, siempre y cuando este pin este configurado como entrado.
0: deshabilita la resistencia de pull-up correspondiente al pin del puerto A.
Registro PORT B(PTB) BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
PTB 7
PTB 6
PTB 5
PTB 4
PTB 3
PTB 2
PTB 1
PTB 0BIT
7 BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
ADC 7
ADC 6
ADC 5
ADC4
ADC 3
ADC 2
ADC 1
ADC 0El registro PORTB permite la manipulación de señales
digitales entre sus terminales, tal como ocurre con el registro PORTA; sin embargo, este puerto comparte adicionalmente recursos con el módulo de conversión analógico- digital incluido internamente en el microcontrolador, en donde cada pin del puerto correspondería a un canal de conversión A/D cada uno de estos pines puede ser configurado como entrada o como salida de manera Independiente a través del registro DDRB.
Registro PORT B(DDRB)BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
DDRB 7
DDRB 6
DDRB 5
DDRB 4
DDRB 3
DDRB 2
DDRB 1
DDRB 0
Mediante el registro de 8 bits se efectúa la configuración de los bits del registro PORT B; ya sea como entradas o salidas, tal como ocurría con el registro de configuración DDRA.
DDRB (7:0) bits de configuración del PORT B 1: el pin correspondiente del PORT B es configurado como salida. 0: el pin correspondiente del PORT B es configurado como entrada.
Registro PORT D (PTD)BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
PTD 7
PTD 6
PTD 5
PTD 4
PTD 3
PTD 2
PTD 1
PTD 0
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
LED LED TCH1
TCH0
LED LED
25MA
25MA
ADC8
ADC9
ADC 10
ADC 11
El registro PORT D posee dos pines para el uso destinados para el uso del módulo TIM, 4 pines destinados para canales de conversión A/D los módulos TIM y ADC serán tratados en capítulos posteriores y dos pines (PTD6 y PTD7) que posee drivers de corriente superior a 25 MA y resistencias de PULL-UP programables de 5 k.
Cada uno de estos pines puede ser configurado como entrada o salida de manera independiente a través de registro DDRD.
Registro PORT D (DDRD)BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
DDRD7
DDRD6
DDRD5
DDRD4
DDRD3
DDRD2
DDRD1
DDRD0
Mediante este registro de 8 bits se efectúa la configuración de los bits del registro PORT D ya sea como entradas o salidas.DDRD (7:0) bits de configuración del PORT D 1: el pin correspondiente del PORT D es configurado como salida0: el pin correspondiente del PORT D es configurado como entrada
Registro PORT D (PDCR)
Bit 7 Bit 6 Bit 5 Bit 40 0 0 0
Bit 3 Bit 2 Bit 1 Bit 0Slowd
7Slowd
6Slowd
7Slowd
6
Este registro cumple funciones muy semejantes a las del registro PTAPUE explicado anteriormente, permitiendo habilitar y deshabilitar las resistencias de PULL-UP, y manejo de driver de corriente para los pines de PTD7y PTD6.
A continuación se explica el modo de configuración de este registro y las funciones que realiza según los valores establecidos de cada uno de sus bits.
SLOWDx: los bits SLOWD6 Y SLOWD7 permiten habilitar drenado abierto y driver de corriente.
1: El pin está configurado como salida como drenado abierto
0: El pin está configurado con push-pull PTDPUx: bits para habilitar resistencias de
pull-up 1: Habilitar resistencias de pull-up de 5 k 0: Deshabilitar resistencias de pull-up de5 k
NOTAAntes de aventurarnos en el mundo de la programación de los microcontroladores freescale, es necesario conocer algunos conceptos especiales que le ayudaran desarrollar a fácilmente cualquier programa que desee por tal motivo debe establecer de programación, la cual será utilizada en todos los programas que se desarrollen en adelante.
$include “JL3REGS.INC”
FLASH EQU $EC00
RESET EQU $FFFE
RAM EQU $80
COPD EQU 0
Etiquetas de dirección en el microcontrolador
Definición de los bits que se utilizaran en el microcontrolador para manejar funciones especiales, por ejemplo: encender en LED, habilitar dispositivo, etc. Para el caso supongamos que se desea que el LED 1 sea controlado por el pin 1 y la habilitación de un relevo por el pin 2 de un puerto cualquiera.
LED1 EQU 1
H_RELEVP EQU 2
Definición de registros de utilizar en la RAM; en esta selección se establece todas las variedades y registros definidos por el desarrollador. Para el caso supongamos que se desea crear dos variedades: cantidad 1 y cantidad 2.
ORG RAM
CANTIDAD 1 RMB 1
CANTIDAD 2 RMB 1
Definición de la dirección a partir de la cual se debe escribir el programa, dirección correspondiente a la memoria flash.
ORG FLASH
A continuación se ilustra 2 tablas, la primera hace referencia he un mensaje o cadena de caracteres y la segunda a un vector con necesidades hexadecimales
TABLA TBD PRUEBA DE PANTALLA
TABLA1 D8 $0F,$F0,$AA,$55
Sección de inicio de programa principal
INICIO BSET C0PD, CONFIG1 ;des habilidad en COP
Sección para configuración de registros especiales, configuración de puertos como entradas/salidas, establecer valores iniciales en cada uno de los límites de microcontrolador, etc.
MOV #$00, PORTB configuración de puertos B/D
MOV #$FF, DDRB
MOV #00, PORTD
MOV #$FF, DDRD
Sección Para establecer rutas hacia subrutinas relacionadas con interrupciones, inicialización del sistema y reset .
ORG RESET
DW INICIO
EJERCICIO DESARROLADO
Enunciado del problema Se desea escribir un programo que permita encender o apagar un LED según el estado de interrupción.Si el interruptor se encuentra abierto, el LED deberá encender pero si el interruptor se encuentra encerrado, el LED deberá apagarse.
$Iinclude’jl3regis.inc’
FLASH EQU $ECE0RESET EQU $FFFELED EQU 1SW EQU 2 ; bits 2 Puerto DCOPD EQU 0ORG FLASH
INICIO BSET COPD, CONFIG1 ; inhabilita el copd BSET LED, PORTB ; BIT 1 PORTB=1 BSET LED, DDRB ; BIT 1 Salida BCLR SW, PORTD ; BIT 2 PORTD =0 BCLR SW, DDRD ; BIT 2 Entrada
SALTO BRSET SW,PORTB, LED_ON ; SW abierto?, Ir a LED_ON BRCLR SW, PORTB, LED_OFF ; SW abierto?, Ir a LED_OFF BRA SALTO ; Ir a SALTO
LED_ON BSET LED, PORTB ; Encender led BRA SALTO
LED_OFF BCLR LED PORTB ; Apagar led BRA SALTO
ORG RESET ; Cuando se energiza DW INICIO ; Ir a rutina de INICIO
GRACIAS
top related