Está en la página 1de 6

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Laboratorio Microcontroladores

Práctica 1: Salidas del Microcontrolador

NOMBRE MATRICULA NL
Diego Aramis Castro Illescas 1889420 20
Jose Gerardo Solis Torres 1749355 7
Gilberto Garza Maldonado 1821222 13

Jesús Daniel Garza Camarena

Semestre Agosto 2020 – Enero 2021

Lunes N2

San Nicolás de los Garza, N.L. 21 de Septiembre 2020


PRÁCTICA 1: SALIDAS DEL MICROCONTROLADOR

Objetivo: Entender los puertos que se manejan en el Microcontrolador.

INTRODUCCIÓN

En casi todos los proyectos es necesario leer alguna entrada de tipo digital
conectada a pulsadores, interruptores, sensores digitales o similares; también es
necesario escribir datos por medio de una salida de tipo digital conectada a LED,
pantallas LCD, display de siete segmentos o similares.

Los Microcontroladores PIC tienen terminales de entrada/salida (I/O, Input/Output)


divididos en puertos, que se encuentras nombrados alfabéticamente A, B, C, D,
etc. Cada puerto puede tener hasta 8 terminales que se pueden comportar como
una I/O digital. El PIC16F887 tiene hasta 35 I/O digitales de propósito general, y
en dependencia de la configuración de sus periféricos pueden estar disponibles
como I/O de propósito general. Por ejemplo si utilizamos el módulo USART
(Transmisión Serial) los pines correspondientes a este periférico serán utilizados
para atender las operaciones del mismo y no podrán ser utilizados como I/O de
propósito general.

Los puertos pueden ser configurados como entradas o como salidas, es decir,
dependen del programador si un pin servirá como entrada o como salida y en que
momento ocurrirá esto. Para realizar esto es necesario modificar el valor de los
registros TRISx.
Una forma fácil de recordar como configurar un pin como entrada o como salida es
que el 1 se parece a la "I" de Input y el "0" se parece a la "O" de output, así todos
los bits de los registros TRIS que tengan 1 serán entradas y los bits que tengan 0
serán salidas. Muchas veces deseamos configurar una gran cantidad de pines sin
modificar el resto para ello se utilizan las operaciones bit a bit (and, or, xor),
también llamadas operaciones mascara.

Cuando configuramos un puerto o un pin como entrada podemos leerlo utilizando


los registros PORTx, esto no significa que no podemos leer un puerto si lo
configuramos como salida y deseamos saber su último valor para realizar
modificaciones en dependencia de este.

Cuando configuramos un puerto o pin como salida podemos escribirlo utilizando


los registros PORTx, pero si algún pin del puerto no fue configurado como salida
no se producirá ningún cambio al momento de escribirlo.
DIAGRAMA DE FLUJO DEL PROGRAMA
CÓDIGO EN ATMEL STUDIO

/****************************************************
* Nombre: DIEGO ARAMIS CASTRO ILLESCAS *
* Nombre: JOSE GERARDO SOLIS TORRES *
* Nombre: GILBERTO GARZA MALDONADO *
* Hora clase: N2 *
* Día: LUNES *
* N° de lista: 20 *
* N° de lista: 7 *
* N° de lista: 13 *
* N° de Equipo: NA *
* Dispositivo: ATMEGA328P *
* Rev: 1.0 *
* Propósito de la actividad: Entender los puertos *
* que se manejan en el Microcontrolador. *
* *
* Fecha: 21/09/2020 *
***************************************************/
/*atmega328P PIN - OUT*/
/* PIN - OUT
atmega328P
-------
PC6 |1 28| PC5
PD0 |2 27| PC4
PD1 |3 26| PC3
PD2 |4 25| PC2
PD3 |5 24| PC1
PD4 |6 23| PC0
VCC |7 22| GND
GND |8 21| AREF
PB6 |9 20| AVCC
PB7 |10 19| PB5
PD5 |11 18| PB4
PD6 |12 17| PB3
PD7 |13 16| PB2
PB0 |14 15| PB1
--------
*/
/*atmega328P PIN FUNCTIONS*/
/*
atmega328P PIN FUNCTIONS
pin function name pin function name
1 !RESET/PCINT14 PC6 15 PCINT1/OC1A PB1
2 RxD/PCINT16 PD0 16 PCINT2/OC1B/SS PB2
3 TxD/PCINT17 PD1 17 PCINT3/OC2A/MOSI PB3
4 INT0/PCINT18 PD2 18 PCINT4/MISO PB4
5 INT1/PCINT19/OC2B PD3 19 PCINT5/SCK PB5
6 PCINT20 PD4 20 ANALOG VCC AVCC
7 +5v VCC 21 ANALOG REFERENCE AREF
8 GND GND 22 GND GND
9 XTAL1/PCINT6 PB6 23 PCINT8/ADC0 PC0
10 XTAL2/PCINT7 PB7 24 PCINT9/ADC1 PC1
11 PCINT21/OC0B PD5 25 PCINT10/ADC2 PC2
12 PCINT22/OC0A/AIN0 PD6 26 PCINT11/ADC3 PC3
13 PCINT23/AIN1 PD7 27 PCINT12/ADC4/SDA PC4
14 PCINT0/AIN1 PB0 28 PCINT13/ADC5/SCL PC5
*/
/*******************Bibliotecas****************************/
#include <avr/io.h>//se incluyen las Bibliotecas de E/S del AVR atmega328P

/*****************Macros y constantes**********************/
#define F_CPU 1000000UL //1 Mhz

/*******************Programa principal*********************/

int main(void)
{
//--Inicialización
DDRB = 0xFF;
DDRC = 0xFF;
DDRD = 0xFF;
//--Ejecución
while (1) //loop infinito
{
PORTB = 0x11;
PORTC = 0x24;
PORTD = 0x22;
} // END loop infinito
} // END MAIN

DIAGRAMA DEL CIRCUITO EN PROTEUS


CONCLUSIONES

DIEGO
Esta práctica nos permitió conocer mejor los puertos de entrada y salida (I/O) del
microcontrolador Atmega328P, el cual tiene 8 salidas por cada puerto, los cuales
son 3, con esto podemos programar de tal manera que funcione como entrada y
salida, esto depende del cargo del registro, puede ser DDRB, DDRC y DDRD, en
esencia nos sirve para identificar los puertos como entrada o salida, y con el
PORTB, PORTC y PORTD

JOSE
Estos puertos nos sirven para saber que harán las entradas o salidas de los
puertos, si estarán activos e inactivos, es decir, si serán 0 o 1, 5v o 0v, de esta
manera, se consiguió programar en Atmel Studio este código en lenguaje C++, de
esta manera, se compiló y agregó al microcontrolador desde Proteus.

GILBERTO
Hola estos puertos nos pueden servir para determinar ciertas acciones que
nosotros queramos que tenga como salida para un sistema electrónico
empezando por el atmega328p

BIBLIOGRAFÍA

https://sites.google.com/site/cursopicmikrobasic/puertos-de-entrada-y-
salida#:~:text=Los%20Microcontroladores%20PIC%20tienen%20terminales,c
omo%20una%20I%2FO%20digital.

También podría gustarte