Microcontroladores
omar00274 de Marzo de 2013
254 Palabras (2 Páginas)315 Visitas
TITULAR: FAUSTO VIRGEN PONCE
ALUMNO: OMAR VICTORIANO RAMIREZ
NUMERO DE CONTROL: 09070509
ESPECIALIDAD: ING. ELECTRONICA
MATERIA: APLICACIÓN DE MICROCONTROLADORES
TRABAJO:PRACTICAS EN LENGUAJE C
CUIDAD MADERO TAMAULIPAS, NOVIEMBRE DEL 2012
En esta ocasión realizaremos una práctica en la cual trataremos de programar y hacer un circuito que cumpla una cuenta ya sea ascendente o descendente.
Para esto conectamos un display del tipo ánodo común con un integrado 74LS47 al microcontrolodor ATMEGA8535L, además le tendremos que conectar dos interruptores en el puerto B para de ahí ordenar de acuerdo a la entrada si queremos una cuenta ascendente o descendente del 0 al 9.
Una vez mencionado lo anterior tenemos que ilustrar el circuito en la figura de abajo, en el cual mostramos el circuito que se armó para esta respectiva práctica.
Ahora mostramos el cuerpo del programa que se elaboró en lenguaje C para posteriormente ensamblarlo en el mircocontrolador.
//declaración de frecuencia de trabajo
#define F_CPU 1000000UL
//declaración de librerías
#include<avr/io.h>
#include<avr/iom8535.h>
#include<util/delay.h>
/***********************************************************/
//declaracion de rutinas
int IncDisp();
int DecDisp();
//declaracion de varias variables
volatile int8_t cont=0x00;
/************************************************************/
//rutina principal
int main(void)
{
DDRA=0xFF; //puerto A salida
DDRB=0x00; //puerto B entrada
while(1)
{
PORTA=cont;
if(bit_is_clear(PINB,0)) //si PINB es 0 llama al incremento
{
IncDisp();
}
if(bit_is_clear(PINB,1)) //si PINB es 1 llama al decremento
{
DecDisp();
}
_delay_ms(500);
}
return 0;
}
/*****************************************************************/
//rutina de incremento
int IncDisp()
{
cont++; //incrementa cont
if(cont>0x09) //si cont es mayor q 9 le asignan el 0
{
cont=0x00;
}
}
/******************************************************************/
//rutina de decremento
int DecDisp()
{
cont--; //decremento de cont
if(cont<0x00) //si cont es menor q 0 le asignan el 9
{
cont=0x09;
}
}
/******************************************************************/
En esta práctica aprendimos que podemos utilizar también a los puertos para que en base a su entrada preguntamos lo que hay y ejecutar la subrutina correspondiente de acuerdo a su valor.
...