You are on page 1of 34

NOMBRE DE LA PRCTICA:

PROTOLOCO RS232

Parte 1: Material para el alumno

Objetivos de aprendizaje
En esta prctica se pretende que el alumno aprenda a comunicar dispositivos por medio
del protocolo RS-232, en este caso un microcontrolador con un programa de control como
labview o myopenlab.
Los pasos que deber seguir el alumno ayudaran a reflejaran un progreso en el aumento
de sus conocimientos sobre el tipo de comunicacin (rs232), as podr obtener
conocimiento para realizar y comprender este tipo de comunicaciones.
Actividad(es) de aprendizaje
Controlar el encendido y apagado de un led por medio del protocolo rs232.
Materias relacionadas

Control

Electrnica digital

Microcontroladores

Programacin bsica

Programacin avanzada

1
MECATRONICA

PARTES Y EQUIPO REQUERIDO


DESCRIPCIN

No. DE PARTE

Cable adaptador serial-usb


Software labview o myopenlab
Software isis proteus
Software virtual serial port
Equipo de computo
Cable rs232 fabricado con el componente MAX232

Microcontrolador atmega

Capacitores

Led

PRECAUCIONES Y MEDIDAS DE SEGURIDAD

Nunca deje objetos extraos en el rea de trabajo (cables, pinzas, desarmadores,


etc.).
Solo utilice el material adecuado para la operacin que valla a realizar.

Maneje con cuidado herramientas y piezas con bordes afilados para evitar heridas.

No use ropa suelta durante la realizacin de la prctica.

Si tiene algn problema con el funcionamiento del equipo o herramienta que


utiliza, pida ayuda a su docente o al encargado del laboratorio.

Reporte cualquier anomala a su docente o al encargado del laboratorio.

ELABOR:

REVIS:

AUTORIZ:

ACADEMIA DE INGENIERIA
MECATRNICA

JEFE DE CARRERA
INGENIERIA MECATRNICA

NOMBRE Y FIRMA

NOMBRE Y FIRMA

NOMBRE Y FIRMA

FECHA

FECHA

FECHA

2
MECATRONICA

ndice
FUNDAMENTO TEORICO ............................................................................................................ 4
SOBRE EL RS232....................................................................................................................... 4
COMUNICACIN RS232 - LO BSICO .......................................................................... 4
FUNDAMENTOS DE LA COMUNICACIN SERIAL. .................................................... 4
RS232 ........................................................................................................................................... 5
RS232 TRANSMISIN DE DATOS....................................................................................... 6
TRANSMISIN: ......................................................................................................................... 6
RS232 RECEPCIN DE DATOS ............................................................................................. 7
SOBRE MY OPEN LAB Y EL MICROCONTROLADOR AVR ATMEGA 32 ........................ 8
DESARROLLO DE LA PRCTICA: ............................................................................................. 8
PROGRAMACIN EN LENGUAJE C PARA EL MICRO CONTROLADOR .................... 9
PROGRAMA ENTERO ......................................................................................................... 15
PROGRAMA EN MYOPENLAB EN EL PANEL FRONTAL Y DE CIRCUITO ............... 17
PLANTILLA EN PROTEUS ..................................................................................................... 21
PROGRAMA EN LABVIEW .................................................................................................... 23
DIAGRAMA PARA CABLE RS232 ...................................................................................... 29
APENDICES: .................................................................................................................................. 30
APENDICE A.............................................................................................................................. 30
OPERADORES PARA EL MANEJO DE BITS ................................................................. 30
APENDICE B.............................................................................................................................. 30
OPERADORES DE RELACION ......................................................................................... 30
APENDICE C.............................................................................................................................. 31
OPERADORES ARITMATICOS ........................................................................................ 31
APENDICE D ............................................................................................................................. 31
USO DE LAS MACROS PARA FACILITAR LA ESCRITURA EN REGISTROS DE
PINES ..................................................................................................................................... 32
BIBLIOGRAFAS .......................................................................................................................... 34

3
MECATRONICA

FUNDAMENTO TEORICO

SOBRE EL RS232

Comunicacin RS232 - Lo Bsico


RS232 es un protocolo de comunicacin serie asncrona ampliamente utilizado en
ordenadores y sistemas digitales. Se llama asncrono porque no hay seal de reloj de
sincronizacin separada, ya que hay en otros protocolos de serie como SPI y I2C. El
protocolo es tal que sincronizar automticamente a s mismo. Podemos utilizar RS232 para
crear fcilmente un enlace de datos entre nuestros proyectos basados MCU y PC estndar.
Excelente ejemplo es un ratn de PC Serial comercial (no popular en estos das). Usted
puede hacer una registradora de datos que lea los valores analgicos (como temperaturas
o luz utilizando sensores adecuados) usando el ADC y enviarlos al PC, donde un programa
especial escrito por muestra los datos utilizando bonitos grficos y tablas, etc .. en
realidad su imaginacin es el lmite!

Fundamentos de la comunicacin serial.


Digamos que un byte se transmite un bit a la vez. Mientras que en la transmisin en
paralelo es un conjunto de datos a la vez, por ejemplo un byte (8bits) se transmiten a la
vez. Obviamente transmisin en serie requiere un solo cable mientras transferencia
paralela requiere tantos cables como los hay en nuestra unidad de datos. As la
transferencia en paralelo se utiliza para transferir datos dentro de corto alcance (por
ejemplo, dentro de la computadora entre la tarjeta grfica y la CPU), mientras que la
transferencia en serie es preferible en la gama larga.
Como en la transmisin en serie solamente un alambre se utiliza para la transferencia de
datos. Sus cambios de nivel lgico son segn los bits que se transmiten (0 o 1). Pero una
comunicacin serie necesita alguna forma de sincronizacin.
Se puede saber qu datos ha de venir? No porque usted no est sincronizado. Usted
necesita una manera de saber cundo se empieza a trasmitir un byte y un bit.

4
MECATRONICA

Supongamos que la lnea es baja por algn tiempo que significa un '0', pero cuantos
pulsos de cero tenemos que tomar en cuenta? Si enviamos los datos como 00001111 la
lnea esta baja por algn tiempo y despus alta. Entonces, cmo sabemos que son cuatro
'0 y cuatro 1?
Ahora bien, si aadimos otra lnea llamada lnea de reloj para sincronizar, entonces ser
muy fcil. Es necesario anotar el valor de la lnea de datos slo cuando se ve la "lnea de
reloj" en alto. Vamos a entender esto con ayuda de una animacin (ver serial_trasm.gif en
la carpeta de imgenes usando un navegador web).

RS232
En RS232 hay dos lneas de datos RX y TX. TX es el cable en el que los datos se envan a
otro dispositivo. RX es la lnea en la que otro dispositivo, puso a los datos que necesita
enviado al dispositivo.

Una cosa ms sobre RS232. Sabemos que un BAJO = 0v ALTO = + 5v en


Microcontroladores y en circuitos TTL / RS232 un ALTA = -12 V y LOW = + 12V . Ya esto
es poco raro pero aumenta el alcance y la fiabilidad de la transferencia de datos. Ahora
usted debe estar preguntndose cmo conectar este a un microcontrolador que entienden
slo 0 y 5v? Pero usted ser muy feliz de saber que hay un IC muy popular que puede
hacer esto para usted! Es MAX232 de Maxim Semiconductors.
Como no hay una lnea "reloj" para la sincronizacin se requiere sincronizacin precisa
para las transmisiones se realizan con ciertas velocidades estndar . Las velocidades se
miden en bits por segundo. Nmero de bits transmitidos tambin se conoce como
velocidad de transmisin. Algunas velocidades de transmisin estndar son:

5
MECATRONICA

1200

2400

4800

9600

19200

38400

57600

115200

Para nuestro ejemplo para la discusin del protocolo elegimos la velocidad 9600bps (bits
por segundo). Como estamos enviando 9.600 bits por segundo, un bit toma 1/9600
segundos o 0,000104 seg o 104 uS (microsegundo = 10 ^ -6 seg).
Para transmitir un nico byte necesitamos bits adicionales BIT DE INICIO Y BIT DE
PARADA. As que cuando enviamos 8bits realmente estamos mandando 10bits y haciendo
cuentas 9600bps entre 10bits nos resulta en que mandamos 960 bytes por segundo.
Nota: El nmero de bits de parada puede ser uno o dos (por simplicidad vamos a utilizar
un solo bit de parada).Hay bit de paridad, pero de nuevo por simplicidad no estaramos
utilizndolo).

RS232 Transmisin de Datos.


La transferencia de datos se hace de la siguiente forma

Transmisin:
Recordemos que en voltaje TTL alto=-12 y bajo=+12

6
MECATRONICA

1. Cuando no hay datos en la lnea TX esta se encuentra en estado alto HIGH (-12V)
2. Cuando el dispositivo necesita enviar datos se enva el BIT DE INICIO que es un 0
que dura 104uS (si la taza de baudios es 9600bps) (Este es el bit de inicio,es
siempre 0).
3. entonces se enva cada pedacitos con duracin = 104uS
4. Finalmente activa ALTA durante al menos 104uS (Esto es bits de parada y es
siempre 1).
RS232 Recepcin de datos

1. El dispositivo receptor est esperando el bit de inicio es decir, la lnea BAJA (+


12V).

7
MECATRONICA

2. Cuando detecta el bit de inicio espera medio tiempo de bit es decir, 104/2 = 52uS
y vuelve a comprobar que haya una seal en BAJA con el fin asegurarse de que es
un bit de inicio y no alguna interferencia que pudiera arrojar un BAJO
momentneo.
3. Luego espera 104uS y ahora se encuentra situado en medio del primer bit que
ahora lee el valor. La razn de que se posicione la lectura de los bits a la mitad de
cada pulso trasmitido es para evitar errores ya que si se posicionara la lectura al
principio o al final del pulso podra haber errores por el cambio de estado.
4. De igual forma se lee todos los 8 bits
5. Ahora el receptor tiene los datos.

SOBRE MY OPEN LAB Y EL MICROCONTROLADOR AVR ATMEGA 32


Se agregaron documentos adicionales en la carpeta de la prctica del uso de myopenlab y
en especfico del usart del Atmega 32. En la prctica se mostrara como hacer uso del
RS232 de myopen lab y del usart del micro controlador, dado que explicar todo lo
referente a sus configuraciones sera muy extenso.

Desarrollo de la prctica:
Dividiremos la prctica en 4 partes:

Programacin en lenguaje C para el microcontrolador

programa en myopenlab en el panel frontal y de circuito

Plantilla en proteus

Programa en Labview

Diagrama para cable rs232

8
MECATRONICA

Programacin en lenguaje C para el micro controlador

Lo primero que hay que hacer es


abrir atmel studio 6, Despus en
nuevo proyecto
NOTA: el programa entero se
encuentra al final de este tema.

Se nos abrir una ventana para


elegir el nombre del proyecto y
donde deseamos guardarlo
adems de 4 opciones de
proyecto donde escogeremos la
1ra opcin.

9
MECATRONICA

Nos mandare a una


ventana nueva donde nos
pedir nuestro tipo
microcontrolador, en
nuestro caso es un
ATMEGA32 simplemente.

Despus nos
mostrara una
plantilla base para
empezar a
programar el
microncontrolador.
Donde tendremos
primero la parte
comentada que
muestra nombre
del programa,
autor y fecha

10
MECATRONICA

Despues la librera
principal de
funciones bsicas y
posteriormente el
main y su
correspondiente ciclo
while.

Procedamos incertando 3 linbrerias


que necesitaremos para realizar
algunas operaciones despus.

Procedamos primero definiendo que oscilador usaremos, como sabemos el


microncontrolador posee un oscilador interno que se puede configurar en la simulacin de
proteus o a la hora de gravar el programa con el programador usando las palabras ALTA y
BAJA ( se ver ms adelante como configurar estas palabras). Dado que no se puede
asegurar que todos los alumnos tengan osciladores externos para sus microcontroladores
nosotros trabajaremos con el oscilador interno del atmega32 de 8Mhz. Procedamos a
definirlo en el programa.
Nota: es importante definir el oscilador en el programa dado que por defecto al no hacerlo
el microcontrolador considerara un oscilador de 1Mhz y esto ocasionara que los delay,
timers y la taza de baudios estn en cantidades distintas a las que nosotros estamos
considerando, puede que un delay de 1ms dure mucho mas o mucho menos, ojo con
declarar siempre su oscilador.

11
MECATRONICA

Procedamos a definir 2 macros que nos servirn para facilitarnos la manera de declarar
como entradas o salidas los pines del micro y la lectura y escritura de los mismos.

NOTA: si no entiende el concepto de las macros que se escribieron, lea el apndice D al


final del documento para darse una idea de lo que hacen.
Sigamos con las funciones importantes del programa que son las funciones de lectura,
escritura y de configuracin del USART.

12
MECATRONICA

Tenemos 3 funciones:
La primera con titulo USARTInit es la encargada de configurar el usart para asignar su
modo de operacin sncrono o asncrono, recordemos del marco terico rs232 que tiene
que se asncrona ya que para usar el sncrono existen otros protocolos diferentes al
RS232. Dado que es muy extensa la explicacin de cada uno de los registros y los bits que
se utilizan en la configuracin me limitaren a explicar solamente las 2 ltimas funciones.
NOTA: se agrego la seccin de usart de la hoja de datos del atmega 32 en espaol a los
documentos de esta prctica si quieren saber que hace cada registro y cada bit.
La seguna funcin con titulo USARTReadChar bsicamente es un ciclo while con la
condicin de que mientras la bandera RXC=0 (que no tengamos nada en el buffer de
lectura) se quede esperando en el ciclo while y cuando RXC=1(que tengamos algo en el
buffer) lea el buffer que es el registro UDR
La tercera funcin con titulo USARTWriteChar bsicamente es lo mismo que la segunda
pero esta funcin espera que el buffer este vaco para poder mandar un dato al registro
UDR(el buffer)

13
MECATRONICA

Procedemos a asignar algunas variables que necesitaremos

Int dato[1]; // es un arreglo de 1 carcter para recibir los datos de myopenlab


Int i;// es para un contador que se encargara de leer el arreglo dato por dato
Int entero;// es la variable donde se guarda la conversin de carcter a numero
Ahora el programa principal

Dentro del main declaramos como salida el pin del led para poder prenderlo y apagarlo.

14
MECATRONICA

Despus mandaremos a traer a la funcin para que configure el usart, y colocaremos la


constante 103 dentro de ella para establecer la taza de baudios a 9600.
La frmula que se usa segn la configuracin que tiene es la siguiente:

NOTA: En la hoja de datos se especifican otras formulas para otros modos de operacin
del usart.
Ahora tenemos el FOR que simplemente almacena lo que llega en el arreglo, dado que
solo recibimos un dato la cuenta es hasta 1.
Tenemos ahora entero =atoi(dato); que convierte los caracteres ascci de el arreglo dato
en nmeros enteros para ser utilizados como valores.
Despus simplemente tenemos la condicional, si el valor que recibimos es 0 el puerto esta
en bajo pero si el dato que recibimos es 1, entonces el puerto esta en alto.

PROGRAMA ENTERO
#include
#include
#include
#include

<avr/io.h>
<util/delay.h>// libreria para los retardos
<inttypes.h>//libreria de funciones basicas
<stdio.h>//libreria de funciones basicas

# define F_CPU 8000000UL//definir a 8MHz la Fcpu


//definir macros para facilitar la configuracion de pines
#define bit_set(sfr,bit)(_SFR_BYTE(sfr)|=_BV(bit))
#define bit_clear(sfr,bit)(_SFR_BYTE(sfr)&=~_BV(bit))
//PROTOTIPOS DE FUNCIONES
void USARTInit(uint16_t ubrr_value)//variable de 16bits sin signo
{
UBRRL = ubrr_value; //acomodar la variable de 16 bits en los 2 registros de 8
bits para definir la taza de baudios
UBRRH = (ubrr_value>>8);//acomodar la variable de 16 bits en los 2 registros
de 8 bits para definir la taza de baudios
UCSRC=(1<<URSEL)|(3<<UCSZ0);//>> Modo asncrono,Sin paridad,1 bit de
parada,tamao de 8 bits
UCSRB=(1<<RXEN)|(1<<TXEN);//habilitar rx y tx
UCSRA=(1<<U2X);//doble velocidad de transmision
}

15
MECATRONICA

char USARTReadChar()
{
while(!(UCSRA & (1<<RXC)))//mientras sea 0 la bandera esperar
{
//no hacer nada
}
return UDR;//devolverme lo que este en el buffer
}
void USARTWriteChar(char data)
{
while(!(UCSRA & (1<<UDRE)))//mi entras sea 0 la bandera esperar
{
//no hacer nada
}
UDR=data;// mandar al buffer lo que tengo
}
//fIN DE LOS PROTOTIPOS DE FUNCIONES
//declarar variables
int dato[1];
int entero;
int i;
int main(void)
{
bit_set(DDRC,DDC0); // declarar salidas
//inicializar usart a 9600 baudios
// formula a doble velocidad----> UBRR=[fcpu/8(9600)]-1=103
USARTInit(103);
while(1)
{
for(i=0;i<1;i++)// ciclo de lectura de datos, el contador aumenta d 1 en 1
{
dato[i]=USARTReadChar();
}
entero=atoi(dato);
if (entero==0)
{
bit_clear(PORTC,PC0);
}
else
{
bit_set(PORTC,PC0);
}
}//fin del while
}//fin del main

16
MECATRONICA

Programa en myopenlab en el panel frontal y de circuito


Empecemos con lo que ser el panel frontal que ser visible para el usuario: asi que
abriremos un proyecto nuevo y nos mandara a una hoja en blanco donde podremos ver 2
pestaas que dicen panel del circuito y panel frontal respectivamente. Iremos a la
pestaa que dice panel frontal y en esta hoja en blanco crearemos el siguiente diseo:
Donde tenemos un led cuadrado, un
botn de accin con la etiqueta de
enviar, un interruptor de 2 estados y
una pequea casilla blanca que nos
mostrara informacin.

Para crearlo lo primero es ir al men a nuestra izquierda en la pestaa de componentes


Men principal que nos llevara a distintos
tipos de interruptores, displays, medidores,
grficos, etc.

17
MECATRONICA

Men de elementos boleanos, aqu


encontraremos el interruptor, el botn en
blanco para etiquetar, y el led

Men de caracteres. Aqu encontramos la


salida de texto out que necesitaremos.

Una vez colocados en la hoja en blanco, estos componentes aparecern como bloques en
la pestaa de panel de circuito. Ahora bien, en el panel de circuito crearemos 2 circuitos
diferentes en la misma hoja, uno para el envio de datos por rs232 y otro para convertir
por medio de un diagrama de flujo la salida boleana del interruptor en un valor numrico
reconocible para el componente rs232.

18
MECATRONICA

Bsicamente solo es buscar componentes y conectarlos y editarlos como se ve en el


diagrama. El nico punto importante es el definir variables dentro del diagrama de flujo.
Para esto vamos a la parte superior de la ventana y daremos clic en el cuadro amarillo con
un i=0

19
MECATRONICA

Nos aparecesa un men donde agregaremos 2 variables, una que llamaremos por ejemplo
led y que ser de tipo doubl y otra que llamaremos por ejemplo boleano que ser de
tipo boolean. Y estas sern las que utilizaremos para guardar informacin en el diagrama
de flujo.

20
MECATRONICA

En resumen: el diagrama de flujo toma el valor booleano del interruptor para iniciar el
diagrama de flujo (recordemos que solo podemos iniciar un diagrama de flujo cuanto
tenemos una seal booleana ALTO en el smbolo de inicio, por eso tenemos un segundo
inicio start2 negado) en ALTO y otro para cuando est en BAJO, por eso tiene los 2
smbolos star 1 y 2. Depositamos el valor del interruptor en la variable booleana que
creamos, despus preguntamos si es verdadera o falsa y le asignamos un numero real 1 o
0 segn sea el caso para despus mandar este nmero real por rs232.

Plantilla en Proteus
Para la plantilla necesitaremos 2 terminales virtuales para ver los datos que se reciben o
envan, un atmega 32, un led y un puesto COM(configurado como COM4). Al darle doble
clic al ATMEGA32 nos dara la opcin de cargarle un programa que ser el que creamos al
inicio, que se encuentra en la carpeta del proyecto en la carpeta debug y es un .hex

21
MECATRONICA

22
MECATRONICA

Programa en Labview

Empezamos abriendo un nuevo proyecto donde tendremos 2 ventanas, una que indica el
panel frontal y una que se enfoca al circuito de bloques. Si presionamos control-T las 2
ventanas tomaran una mitad del monitor cada una.
Empecemos en la ventana de bloques donde buscaremos el puerto visa para configurarlo
dando click derecho sobre la hoja de trabajo y nos saldr un men de componentes,
iremos a instrument I/O luego a serial y por ultimo tomamos el componente configure
port:

23
MECATRONICA

Una vez que tengamos el componente pondremos el puntero sobre la entradas del mismo

Daremos doble clic sobre el primer punto llamado visa resource name y crearemos un
control manipulable por el usuario:

24
MECATRONICA

Despus crearemos una constante en la terminal con el nombre de Baud rate que tendr
un valor de 9600, esto es la configuracin del puerto. Despus crearemos un ciclo while
entrando al men de componentes y en estructuras encontraremos el while loop:

Ahora uniremos las salidas del componente al ciclo while:

25
MECATRONICA

Ahora bien, dentro del ciclo while creamos un case que encontramos donde estaba el
while loop. Procedemos a crearle un control booleano y unimos las entradas de un lado al
otro del case cuando esta en su pestaa de false.

Ahora empezaremos a trabajar en la pestaa de True. Vamos a colocar un visa write que
se encuentra en el mismo sitio que el componente de configuracin VISA serial y le
crearemos un control del tipo carcter o un combo box, tambin unimos las entradas del
case al componente y las salidas del componente a la salida del case.

26
MECATRONICA

Por ltimo aadimos un control de parada al while un contador a 15 y fuera del ciclo while
un cierre de puertos que encontramos en las herramientas de visa donde sacamos los
componentes anteriores.

En la ventana de panel frontal se abran colocado automticamente los componentes:

27
MECATRONICA

Bastara con simular tanto en proteus como en labview para que empiece a funcionar la
trasmisin.

28
MECATRONICA

Diagrama para cable RS232

29
MECATRONICA

APENDICES:
APENDICE A
OPERADORES PARA EL MANEJO DE BITS

APENDICE B
OPERADORES DE RELACION

30
MECATRONICA

APENDICE C
OPERADORES ARITMATICOS

APENDICE D

31
MECATRONICA

USO DE LAS MACROS PARA FACILITAR LA ESCRITURA EN REGISTROS DE


PINES
Recordemos cmo es que funcionan los pines del micro controlador
El micro atmega 32 tiene
puestos A, B, C y D que van
desde el pin PX0 al pin PX7
para cada puerto. Donde cada
puerto es regido por 3
registros, el registro DDRX que
permite designar si son
entradas o salidas, el PORTX
que permite escribir en ellos y
el PINX que permite leer de
ellos. Y cada uno de estos
registros tiene un bit asignado
a cada pin.

Entonces cuando queramos definir una salida en el puerto A pin 0 por ejemplo, nosotros
hacamos esto:

DDRA=DDRA|(1<<DDA0);
Que podamos simplificar como esto:
DDRA|=(1<<DDA0);

Que significa que ponamos un 1 en el bit 0 de un registro mascara


REGISTRO MASCARA
BIT 7

BIT 6

BIT 5

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

Luego hacamos un OR bit a bit con el registro encargado de la configuracin de entradas


y salidas y lo guardbamos en el mismo.
REGISTRO DDRA (encargado de entradas y salidas)

32
MECATRONICA

DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

Entonces obtenamos esto como resultado:


BIT 7

BIT 6

BIT 5

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

Donde el registro DDRA terminaba configurado con un bit 1 en DDA0 asignandolo como
salida
DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

Y lo mismo suceda cuando queramos asignar una entrada, escribir en un puerto, activar
resistencia de pull up a una entrada o leer una entrada:
DDRA|=(1<<DDA0);// declarar un pin como salida
DDRA&=~(1<<DDA0);//declarar un pin como entrada
PORTA|=(1<<PA0);//escribir un 1 en un puerto
PORTA&=~(1<<PA0);//escribir un 0 en un puerto

Entonces las macros nos permiten cambiar un


DDRA&=~(1<<DDA0);//declarar un pin como entrada
Set_bit(DDRA,DDA0);//asisna un 1 al registro DDRA en el bit DDA0

Y un
DDRA|=(1<<DDA0);//declarar un pin como salida
Set_clear(DDRA,DDA0);//asisna un 0 al registro DDRA en el bit DDA0

Ahora bien si etiquetamos los registros y los bits de los registros con nombres a nuestra
conveniencia como por ejemplo

33
MECATRONICA

#define DDRA Puerto_ES_A


#define DDA0 pinA0
#define DDA1 tacos_al_pastor
Podemos hacer lo siguiente:
Set_bit(Puerto_EA_A,pinA0);// asigna como entrada el pin 0 del puerto A
Clear_bit(Puerto_EA_A,tacos_al_pastor);//asigna como salida el pin 1 del puerto A

Bibliografas
http://extremeelectronics.co.in/avr-tutorials/rs232-communication-the-basics/
http://extremeelectronics.co.in/avr-tutorials/rs232-communication-the-level-conversion/

34
MECATRONICA

You might also like