Академический Документы
Профессиональный Документы
Культура Документы
Francisco chiquillo
Capitulo 4
Puertos de entrada /salida
finalizar el captulo el estudiante tendr conocimiento sobre Cuntos hay segn la referencia del microcontrolador a utilizar? , Qu recursos adicionales brindan al estudiante aparte de configurarse como simple terminales de entrada /o salidas lgicas?
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 Registro Registro Registro Registro Registro Registro Registro PORT A(PTA) PORT A(DDRA) PORT A(PTAPUE) PORT B (PTB) PORT B (DDRB) PORT D (PTD) PORT D (DDRD) PORT D (PDCR)
Este registro pese sus 8 bits de los cuales solo 7 pueden ser configurados como pines de entrada o salida de manera independiente a travs del registro DDRA.
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 alimentacin o VDD, que en nuestro caso sera + 5 v.
BIT 6
DDRA 6
BIT 5
DDRA 5
BIT 4
DDRA 4
BIT 3
DDRA 3
BIT 2
DDRA 2
BIT 1
DDRA 1
BIT 0
DDRA 0
Mediante este registro de 8 bits, de los cuales solo se puede acceder a 7 bits, se efecta la configuracin de los bits del registro PORT A, ya sea como entrada o salidas.
El pin corresponde del PORT A es configurado como Salida. 0: El pin corresponde del PORT A es configurado como entrada.
Este Registro es el que permite habilitar o deshabilitar las resistencias de PULL-UP para cada uno de los pines del puerto A.
A continuacin se explica el significado de cada bit perteneciente al registro PTAPUE y la funcin que desempea cada uno.
PTA6EN: habilitar el pin PTA6 como OSC2 La funcin del OSC2 se configura cuando se posee la opcin de oscilador RC 1: El OSC2 es configurado para utilizar el pin PTA6 como el pin de I/O con las funciones de interrupcin y configuracin de resistencias de PULL-UP 0: El OSC2 es configurado como oscilador de tipo RC
PTAPUE (6:0) Habilitacin 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.
Mediante el registro de 8 bits se efecta la configuracin de los bits del registro PORT B; ya sea como entradas o salidas, tal como ocurra con el registro de configuracin DDRA. DDRB (7:0) bits de configuracin 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.
El
registro PORT D posee dos pines para el uso destinados para el uso del mdulo TIM, 4 pines destinados para canales de conversin A/D los mdulos TIM y ADC sern tratados en captulos 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 travs de registro DDRD.
Mediante este registro de 8 bits se efecta la configuracin de los bits del registro PORT D ya sea como entradas o salidas. DDRD (7:0) bits de configuracin 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
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 continuacin se explica el modo de configuracin de este registro y las funciones que realiza segn 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 pullup 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 programacin de los microcontroladores freescale, es necesario conocer algunos conceptos especiales que le ayudaran desarrollar a fcilmente cualquier programa que desee por tal motivo debe establecer de programacin, la cual ser utilizada en todos los programas que se desarrollen en adelante.
$include JL3REGS.INC
Etiquetas de direccin en el microcontrolador
FLASH
RESET RAM
EQU $EC00
EQU $FFFE EQU $80
COPD
EQU
Definicin 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 habilitacin de un relevo por el pin 2 de un puerto cualquiera.
LED1 H_RELEVP
EQU 1 EQU 2
Definicin de registros de utilizar en la RAM; en esta seleccin 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
CANTIDAD 1 CANTIDAD 2
RAM
RMB 1 RMB 1
Definicin de la direccin a partir de la cual se debe escribir el programa, direccin correspondiente a la memoria flash.
ORG
FLASH
A continuacin 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
Seccin para configuracin de registros especiales, configuracin de puertos como entradas/salidas, establecer valores iniciales en cada uno de los lmites de microcontrolador, etc.
MOV
MOV MOV MOV
#$00, PORTB
#$FF, DDRB #00, PORTD #$FF, DDRD
Seccin Para establecer rutas hacia subrutinas relacionadas con interrupciones, inicializacin del sistema y reset .
EJERCICIO DESARROLADO
Enunciado del problema Se desea escribir un programo que permita encender o apagar un LED segn el estado de interrupcin. Si el interruptor se encuentra abierto, el LED deber encender pero si el interruptor se encuentra encerrado, el LED deber apagarse.
$Iincludejl3regis.inc FLASH RESET LED SW COPD ORG INICIO EQU EQU EQU EQU EQU FLASH $ECE0 $FFFE 1 2 ; bits 2 Puerto D 0 ; inhabilita el copd ; BIT 1 PORTB=1 ; BIT 1 Salida ; BIT 2 PORTD =0 ; BIT 2 Entrada
BSET COPD, CONFIG1 BSET LED, PORTB BSET LED, DDRB BCLR SW, PORTD BCLR SW, DDRD
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, PORTB SALTO ; Encender led ; Apagar led ; Cuando se energiza ; Ir a rutina de INICIO
GRACIAS