Está en la página 1de 7

Práctica 2: Gestión de

los puertos

Mecatrónica área automatización. Universidad Tecnológica de ciudad Juárez


Microcontroladores.

Maestro: Marco Thomé.


Alumno: Uziel Godinez Rubio.
Matricula: 21310523
Cuatrimestre: Enero-abril 2023
Grupo: MSM53
6-febrero-2023
Godinez Rubio Uziel 13/01/2023

1.- Sin uso de librerías para gestión de puertos (pág. 59).

Esta primer practica lo realizamos con el método de la memoria RAM, en la cual los
registros se definen como PORTx y TRISx como bytes los cuales se destinan a la
memoria RAM con la directiva #BYTE.

En esta primer practica se configuro la terminal RB1 como salida la cual conectamos
hacia un led del polo positivo y del polo negativo del led una resistencia de 220Ω
conectada a su vez a tierra, también se conectó la terminal RB0 como entrada en la
cual se conectó el interruptor para
mandar la señal a la hora de encender
el led.

Primero colocamos la dirección


completa, declaramos la señal de reloj
que tendremos, la cual también se
debe de configurar en el pic, como lo
mencione anteriormente se declaran
los registros de TRISB y PORTB, y ya
se comienza con la programación en
1
Godinez Rubio Uziel 13/01/2023

la cual se colocan las variables de inicio o terminales de entrada, así como las de
salida, donde se explica en el libro que al momento de tener un 1 en RB0 se
apagaría el LED y si tenemos un 0 se enciende el LED.

2.- Uso de librería #USE FAST_IO () (págs. 60, 61)

En esta segunda practica utilizamos la librería de FAST_IO en la que tenemos que


tener en cuenta que las funciones de output_x se saca el valor al puerto y la función
de input_x se lee el puerto, de igual manera tomamos en cuenta que la directiva no
modifica el registro TRIS por ello hay que asegurarnos que estén bien definidos.

En esta parte se colocaron los mismos componentes de la práctica anterior en la


cual ahora la programación es lo que cambiaremos, como se observa declaramos
lo que es la dirección y nombre del microcontrolador, la señal de reloj que
utilizaremos y se coloca la directiva a utilizar en este caso la fast_io y comenzamos
con la programación como se observa se habilita la resistencia del pull-up, se carga
el registro de TRISx y se coloca la salida por el puerto

2
Godinez Rubio Uziel 13/01/2023

correspondiente. Después se lee el valor del pin B0 y el pin B1 para encender o


apagar el LED según sea el caso.

3
Godinez Rubio Uziel 13/01/2023

3.- Uso de librería #USE STANDARD_ IO () (pág. 61)

En esta tercer practica utilizamos la librería de STANDAR_IO en la que utilizaremos


los mismos componentes, la gran diferencia que se aprecia en esta librería como lo
dice el libro, se declara la función de output_x con la cual nos aseguramos que solo
esa terminal será la de salida en vez de colocar el TRIS, de igual manera con la
función de input_x nos aseguramos que únicamente sean de entrada.

La programación es la
misma solo que ahora
declaramos la nueva
librería y se observa
cuando colocamos la
función de output_x en vez
de TRIS.

4
Godinez Rubio Uziel 13/01/2023

4.- Uso de librería #USE FIXED_IO () (págs. 61 Y 62).

En esta última practica se utilizó la librería de FIXED_IO donde tiene como


característica que el compilador genera el código, donde se define el puerto de
salida entre paréntesis, sin tener en cuenta si la operación del programa es de
entradas o salidas.

Como se observa declaramos la librería de fixed_io escribiendo entre paréntesis


que la salida será en el pin o terminal b1 y ya todo lo demás se programa como lo
hemos visto en las practicas
anteriores.

5
Godinez Rubio Uziel 13/01/2023

Cuadro comparativo

#BYTE #FAST_IO

Se definen los registros PORTx y Genera instrucciones de I/O,


TRISx como bytes y se sitúan en la ocasiona que el compilador realice
posición correspondiente de la I/O sin programar el registro de
memoria RAM. dirección. La directiva no modifica
previamente el registro TRIS
#BYTE TRISA = 0x85 correspondiente.

Set_tris_B(0x01);
#STANDARD_IO #FIXED_IO

Causa que le compilador genere El compilador genera el código para


código para hacer que un puerto definir los puertos, solo se indican
sea de entrada o salida cada vez los terminales de salida sin tener en
que se utiliza. cuenta si la operación es de entrada
o salida.
Output_low (PIN_B1):
#use fixed_io (b_outputs=pin_b1)

También podría gustarte