Está en la página 1de 2

UNIVERSIDAD DEL VALLE

EXAMEN PREVIO

Estudiante: Fecha: / /

Carrera: Asignatura: Grupo:

Docente: Laboratorio:

Practica N°: Título de la Practica:

Firma Estudiante: FirmaDocente:

PROGRAMA 1
#include <avr/io.h>
#define F_CPU 16000000
#include <util/delay.h>
#define UsartBaudRate 9600

#define BaudUBRR (((F_CPU / (UsartBaudRate * 16UL)))-1)


int main(void)
{
uint8_t datoTx;
UBRR0H = (BaudUBRR>>8); //cargar valor de baudRate. Byte alto
UBRR0L = BaudUBRR; // Byte bajo
UCSR0B |= (1<<TXEN0); // Habilitar transmision
UCSR0C |= (1<<UCSZ01)|(1<<UCSZ00); // 8 bits de datos
unsigned char letras[]
={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U
','V','W','Y','Z'};
while (1)
{
for (int i=0;i<25;i++)
{
datoTx=letras[i];
while((UCSR0A & (1<<UDRE0)) == 0); // Esperar que se haya enviado
ultimo dato
UDR0 = datoTx; // Escribir dato en el registro de transmision
_delay_ms(100);
}
}
}
PROGRAMA 2
#include <avr/io.h>
#define F_CPU 16000000
#include <util/delay.h>
#define UsartBaudRate 9600
#define BaudUBRR (((F_CPU / (UsartBaudRate * 16UL)))-1)

int main(void)
{
DDRB=0b00001111;
DDRC=0b00000111;

uint8_t datoRx;
UBRR0H = (BaudUBRR>>8); //cargar valor de baudRate. Byte alto
UBRR0L = BaudUBRR; // Byte bajo
UCSR0B |= (1<<RXEN0)|(1<<TXEN0); // Habilitar transmision y recepcion
UCSR0C |= (1<<UCSZ01)|(1<<UCSZ00); // 8 bits de datos
while (1)
{
while((UCSR0A & (1<<RXC0)) == 0); // Esperar que llegue ultimo dato
datoRx = UDR0; // Leer dato recibido
int numero=datoRx&0xF;
int
numeros[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,0x77,0x7C,0x39,0x5E,0x7
9,0x71};
PORTB=numeros[numero]&0xF;
PORTC=(numeros[numero]>>4);
_delay_ms(100);
}
}

También podría gustarte