Sei sulla pagina 1di 3

Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

PUERTAS DIGITALES
En el diseño de instrumentos se requieren comúnmente entradas y salidas digitales
del C, ya sea para leer el estado de interruptores, iluminar LEDs, etc.
Anteriormente se programó una salida digital para controlar un LED. En esta
experiencia se agregará la lectura de una entrada digital.
Todos los pines del PIC18F452 (excepto los 2 de VDD y los 2 de VSS) pueden ser
usados como entradas digitales [1]. En la figura 1 se muestran los pines de las 5
puertas disponibles, usando diferentes colores para distinguirlas [2].
Las puertas B, C y D tienen 8 líneas, y la puerta E tiene 3, la puerta A tiene 6, lo
que da un total de 33. Sin embargo, varias de estas líneas se usan normalmente
para conectar elementos o dispositivos especiales, tales como el cristal del clock, el
programador ICSP, etc., por lo que el número disponible es generalmente menor.

Figura 1. Puertas digitales del PIC18F452.

Cuando el PIC se inicializa, los bits de cada puerta se configuran en diferentes


modos (entrada digital, entrada análoga, salida digital u otras funciones) [1].
Si el PIC se programa en lenguaje assembler, se deben configurar explícitamente
las puertas de acuerdo al uso que se les va a dar. El compilador de C usado
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

simplifica la programación, ya que configura automáticamente cada bit de cada


puerta de acuerdo a las instrucciones de lectura o escritura que hacen referencia a
él en el código del programa.
En el programa a desarrollar se agregará un pulsador para controlar el LED ya
conectado al pin RD3.
Las entradas CMOS del PIC pueden asumir cualquier estado cuando no están
conectadas, por lo que se debe agregar una R de pull-up o de pull-down para definir
el nivel cuando el pulsador está abierto (ver figura 2). Los valores típicos de estas
resistencias fluctúan entre 4.7 y 10 k.

Figura 2. Conexión de pulsador con (a): R de pull-up (b): R de pull-down

Ambas configuraciones pueden funcionar correctamente, pero la alternativa (b)


presenta 2 inconvenientes en el caso de la construcción de un equipo:
1. Algunos chip tienen resistencias de pull-up internas (como el PIC18F452 en la
puerta B), lo que daría lugar a un consumo innecesario cuando el pulsador está
abierto, reduciendo la duración de las pilas en equipos portátiles.
2. Los pulsadores probablemente se instalarían en el panel frontal del equipo,
conectados mediante cables a la tarjeta de circuito impreso. Si el conductor que
lleva los +5 V al switch se desprendiese e hiciese contacto con el bastidor
(conectado a Gnd), se produciría un cortocircuito en la fuente de +5 V.
Por lo tanto, la alternativa más conveniente es la R de pull-up. En esta experiencia
se usará una R de ese tipo.
Existen muchas funciones de C para leer y escribir en los bits de las puertas, en
forma individual y en grupos. Vea la ayuda del compilador CCS [3], sección "Built-
In-Functions", "Discrete I/O" (ver figura 3).
Apuntes de programación de microcontroladores - Samuel Cruz Plaza.

Figura 3. Funciones de C relacionadas con las puertas digitales.

Realice las siguientes actividades en el orden indicado:


1. Agregue al diagrama circuital un pulsador con una R de pull-up de 4.7 a 10 kΩ en
el bit 0 de la puerta E.
2. Verifique que el circuito no esté polarizado. Descargue la electricidad estática.
Haga las modificaciones correspondientes al circuito montado en el protoboard.
Genere un nuevo proyecto de MPLAB denominado "DigIO" con el siguiente código
fuente y evalúelo.

Referencias
[1] Archivo PIC18F452_DataSheet.pdf, pags. 87 a 99
[2] Digital inputs & outputs
http://hades.mech.northwestern.edu/index.php/Digital_inputs_%26_outputs
[3] Archivo de ayuda del compilador de C, CCS_C_Compiler.chm
------ o ------

Potrebbero piacerti anche