segunda-feira, 10 de dezembro de 2012

Desafio 4.0


Desafio 4.0 é o programa de uma panificadora

Link do desafio: http://www.4shared.com/office/SLHLW3-A/desafio4.html?

Link de exemplo: http://www.4shared.com/rar/-kNV9Lz1/exemplo_parte_des4.html?



#include <lpc21xx.h>
#include "E:\Douglas\TEC. ELETRONICA\SISTEMAS MICROCONTROLADOS\KEIL\lcd.h"

#define liga_desliga (1<<13)
#define porta_aberta (1<<14)
#define motor_liga IOSET1 =(1<<24)
#define motor_desliga IOCLR1 =(1<<24)
#define resistencia_liga IOSET1 =(1<<23)
#define resistencia_desliga IOCLR1 =(1<<23)
#define programa_1 (1<<10)
#define programa_2 (1<<11)
#define programa_3 (1<<12)

unsigned int val;


__irq void EINT0_IRQHandler (void)
{
lcd_gotoxy (1,0); lcd_puts ("tampa aberta");
resistencia_desliga;
motor_desliga;
EXTINT = 1;
VICVectAddr = 0;
}

__irq void EINT1_IRQHandler (void)
{
EXTINT = 2;
VICVectAddr = 0;
}

__irq void DefISR (void) {
}
int tempo () {int t;for(t=0;t<100;t++);}
int atualiza (void)
{
ADCR |= 0x01000000;
while((ADDR & 0x80000000)==0);
val = ((ADDR >>6) & 0x03FF);
}
int tempo_1 (void)
{
int d;
for (d=0;d<1000000;d++);
}

int main (void)
{
IODIR0=0xFFFF83FF;
IODIR1=0xFFFFFFFF;
init_lcd ();
lcd_clr();
lcd_puts("PANIFICADORA");
PINSEL1 = 0x400001;
VPBDIV = 0x02;
ADCR = 0x00210601;
EXTMODE = 0x00;
EXTPOLAR = 0x00;
EXTINT = 0x03;

VICVectAddr0 = (unsigned long) EINT0_IRQHandler;
VICVectCntl0 = (0x20|14);
VICIntEnable|= ((unsigned long)1<<14);

VICVectAddr1 = (unsigned long) EINT1_IRQHandler;
VICVectCntl1 = (0x20|15);
VICIntEnable|= ((unsigned long)1<<15);

VICDefVectAddr = (unsigned long) DefISR;

while(1)
{
{
if (val>=100) (IOPIN0& programa_1);
lcd_clr ();
lcd_gotoxy(1,0);
lcd_puts("programa 1");
motor_liga;
tempo_1();
lcd_clr ();
lcd_gotoxy(1,0);
lcd_puts("misturando");
motor_desliga;
tempo_1();
resistencia_liga;
tempo_1();
lcd_clr ();
lcd_gotoxy(1,0);
lcd_puts("Assando");
resistencia_desliga;
lcd_clr ();
lcd_gotoxy(1,0);
lcd_puts("programa 1 fim");
while(1);
}
{
if (IOPIN0& (programa_2))
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("programa 2");
motor_liga;
tempo_1();
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("misturando");
motor_desliga;
tempo_1();
tempo_1();
resistencia_liga;
tempo_1();
tempo_1();
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("Assando");
resistencia_desliga;
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("programa 2 fim");
while(1);
}

if (IOPIN0& (programa_3))
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("programa 3");
motor_liga;
tempo_1();
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("misturando");
 lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("misturando");
motor_desliga;
tempo_1();
tempo_1();
resistencia_liga;
tempo_1();
tempo_1();
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("Assando");
resistencia_desliga;
lcd_clr ();
lcd_gotoxy(1,2);
lcd_puts("programa 3 fim");
while(1);


}
}

Foto do programa no KEIL.









Foto do circuito no PROTEUS.




Nenhum comentário:

Postar um comentário