Puertos de entrada diapositivas
Transcript of Puertos de entrada diapositivas
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 00 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
PTA
6EN
PTAP
UE 6
PTAPU
E 5
PTAPU
E 4
PTAPU
E 3
PTAP
UE 2
PTAP
UE 1
PTAPU
E 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 PTEPUE 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 0
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
ADC
7
ADC
6
ADC
5
ADC
4
ADC
3
ADC
2
ADC
1
ADC
0
El 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
DDR
B 7
DDR
B 6
DDR
B 5
DDR
B 4
DDR
B 3
DDR
B 2
DDR
B 1
DDR
B 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
25M
A
25M
A
ADC
8
ADC
9
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
DDR
D7
DDR
D6
DDR
D5
DDR
D4
DDR
D3
DDR
D2
DDR
D1
DDR
D0
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
salida
0: el pin correspondiente del PORT D es configurado como
entrada
Registro PORT D (PDCR)
Bit 7 Bit 6 Bit 5 Bit 4
0 0 0 0
Bit 3 Bit 2 Bit 1 Bit 0
Slowd7 Slowd
6
Slowd
7
Slowd
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
NOTA
Antes 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=1BSET LED, DDRB ; BIT 1 Salida BCLR SW, PORTD ; BIT 2 PORTD =0BCLR 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_OFFBRA 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 energizaDW INICIO ; Ir a rutina de INICIO
GRACIAS