segunda-feira, 3 de dezembro de 2012

Desafio 3.1 conversor analógico / digital

Este é um conversor AD. Usamos um display digital de 7 segmentos para medir uma tensão variável.

link do desafio: http://www.4shared.com/office/tbdqlj-V/desafio31.html?


#include <lpc21xx.h>

#define a (1<<16)
#define b (1<<17)
#define c (1<<18)
#define d (1<<19)
#define e (1<<20)
#define f (1<<21)
#define g (1<<22)
#define num1 IOSET1=b|c ; IOCLR1=a|d|e|f|g  // liga numero 1
#define num2 IOSET1=a|b|g|e|d ; IOCLR1=c|f  // liga numero 2
#define num3 IOSET1=a|b|c|d|g ; IOCLR1=e|f  // liga numero 3
#define num4 IOSET1=b|c|f|g ;  IOCLR1=a|d|e // liga numero 4
#define num5 IOSET1=a|c|d|f|g ; IOCLR1=b|e  // liga numero 5
#define apaga IOCLR1=a|b|c|d|e|f|g // desliga os sete segmentos

 unsigned int val;

int main (void)

{
IODIR0 = 0X0;
IODIR1 = 0XFFFFFFFF;
PINSEL1 = 0X400000;
VPBDIV = 0X02;
ADCR = 0X00210601;

num5;
while (1)
{
ADCR |=0X01000000;
while ((ADDR & 0X80000000) ==0);
val = ((ADDR >> 6) & 0X03FF);

if(val<200){num1;}
else if(val<500) {num2;}
else if(val<700) {num3;}
else if(val<850) {num4;}
else if(val<1100) {num5;}
}
}
  

criamos o projeto seguindo as informações deixadas pelos professores no blog.



Nenhum comentário:

Postar um comentário