Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MICROCONTROLADORES
Antamba Jefferson
jeffersonv1995@hotmail.com
I. OBJETIVOS
1.1. Familiarizar al estudiante con el lenguaje C para
microcontroladores AVR mediante el uso de Atmel
Studio.
ENTRADAS
1 canal ADC.
Botn de Reset.
SALIDAS
1. CDIGO FUENTE
a) MICROCONTROLADOR
#define F_CPU 8000000UL
#define BAUD 9600
#define My_ubrr F_CPU/16/BAUD-1
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
// FUNCIONES
void config_puertos();
void conf_adc(uint8_t MODE);
uint16_t get_adc(uint8_t PORT);
void USART_Init( unsigned int ubrr);
void USART_Transmit( unsigned char data );
unsigned char USART_Receive( void );
void num_bcd(uint8_t numero);
void barrido(uint8_t units, uint8_t tens, uint8_t hundreds);
// VARIABLES
uint16_t medida;
uint8_t dato_recibido;
int
display[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000
,0b10000000,0b10010000};
uint8_t centenas, decenas, unidades;
int main(void)
{
config_puertos();
conf_adc(1);
USART_Init(My_ubrr);
sei();
while (1)
{
medida=get_adc(0);
USART_Transmit((uint8_t)medida>>8); // PARTE ALTA
USART_Transmit((uint8_t)medida>>0); // PARTE BAJA
num_bcd(dato_recibido);
barrido(unidades, decenas, centenas);
}
}
void config_puertos()
{
DDRA=0; // PA0 ADC converter
PORTA=0b11111110;
DDRB=0b00001111; // PB0...3 control displays
PORTB=0b11111111;
DDRC=255; // 7seg
PORTC=0;
DDRD=0b00000010;
PORTD=0b11111100;
}
ISR(USART0_RX_vect)
{
dato_recibido=USART_Receive();
}
2. SIMULACIONES