Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Na=
Lcd100
37.8
Sp=
3.1.
Lcd100
255
Animaciones
Y = A x 2 +Bx +C
Donde como resultado obtuvimos:
2
x=27+
muestra(7,2,9,6);
break;}
case 1:{
muestra(6,2,8,6);
break;}
case 2:{
oscope();
muestra(7,2,9,6);
break;}
}
}
else
{
switch (col)
{
case 2:{
imag=1;
lcd_bitmap(imag);
oscope_1();
muestra(7,2,9,6);
break;}
}
}
}
if(carl==1)
{
lcd_clear_text();
lcd_clear_graphics();
lcd_gotoxy(0,0);rprintf("Menu");
lcd_printIcono24x24(5,8,0,0,0);
lcd_printIcono24x24(35,8,0,3,1);
lcd_printIcono24x24(65,8,0,6,1);
lcd_printIcono24x24(5,38,3,6,1);
lcd_printIcono24x24(35,38,3,3,1);
lcd_printIcono24x24(65,38,3,0,1);
fila=0;
col=0;
pal=1;
j=5;
k=8;
l=0;
m=0;
carl=0;
}
if(fila==0)
{
switch (col)
{
case 0:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=5;
k=8;
l=0;
m=0;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(j,k,l,m,0);
}
break;}
case 1:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=35;
k=8;
l=0;
m=3;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(j,k,l,m,0);
}
break;}
case 2:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=65;
k=8;
l=0;
m=6;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(j,k,l,m,0);
}
break;}
}
}
else
{
switch (col)
{
case 0:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=5;
k=38;
l=3;
m=6;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(j,k,l,m,0);
}
break;}
case 1:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=35;
k=38;
l=3;
m=3;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(35,38,3,3,0);
}
break;}
case 2:{ if(pal==0)
{lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,1);
j=65;
k=38;
l=3;
m=0;
lcd_clearIcono24x24(j,k);
lcd_printIcono24x24(j,k,l,m,0);
pal++;
}
else
{
lcd_printIcono24x24(65,38,3,0,0);
}
break;}
}
}
}
}
void lcd_bitmap(char tipo)
{
uint8_t x,xi,xf,y,yi,yf,c,ccc;
uint8_t bitmap;
uint8_t i;
uint16_t cbitmap=0;
yi=0;
yf=7;
for(ccc=0; ccc < 8; ccc++)
{
for(i=0; i < 16; i++)
{
xi= i*8;
xf= (i+1)*8-1;
for(y=yi;y<=yf;y++)
{
c=0x80;
switch(imag)
{
}
case 1:
{
bitmap =
pgm_read_byte(&(pot[cbitmap++]));
break;
}
case 2:
{
bitmap =
pgm_read_byte(&(tanque[cbitmap++]));
break;
}
}
for(x=xi;x<=xf;x++)
{
if((bitmap&c)==c)
lcd_set_pixel(x,y);
c=c>>1;
}
}
}
yi=yi+8;
yf=yf+8;
}
}
void lcd_printIcono24x24(int xp,int yp,int fil,int col,char tipo)
{
lcd_printIcono8x8(xp,yp,fil,col,tipo);
lcd_printIcono8x8(xp,yp+8,fil+1,col,tipo);
lcd_printIcono8x8(xp,yp+16,fil+2,col,tipo);
lcd_printIcono8x8(xp+8,yp,fil,col+1,tipo);
lcd_printIcono8x8(xp+8,yp+8,fil+1,col+1,tipo);
lcd_printIcono8x8(xp+8,yp+16,fil+2,col+1,tipo);
lcd_printIcono8x8(xp+16,yp,fil,col+2,tipo);
lcd_printIcono8x8(xp+16,yp+8,fil+1,col+2,tipo);
lcd_printIcono8x8(xp+16,yp+16,fil+2,col+2,tipo);
}
void lcd_printIcono8x8(int xp,int yp,int fil,int col,char tipo)
{
uint8_t x,xi,xf,y,yi,yf,c;
uint8_t bitmap;
uint8_t i;
uint16_t cbitmap=0;
cbitmap=fil*16*8+8*col;
yi=0;
yf=7;
i=fil*8*16;
xi= i*8;
xf= (i+1)*8-1;
for(y=yi;y<=yf;y++)
{
c=0x80;
bitmap = pgm_read_byte(&(menu_nivel[cbitmap++]));
for(x=xi;x<=xf;x++)
{
if(tipo==1)
{ if((bitmap&c)==c)
lcd_set_pixel(x+xp,y+yp);}
else { if((bitmap&c)!=c) lcd_set_pixel(x+xp,y+yp);}
c=c>>1;
}
}
}
void lcd_clearIcono8x8(int xp,int yp)
{
FillRect(xp,yp,xp+8,yp+8,0);
}
void lcd_clearIcono24x24(int xp,int yp)
{
FillRect(xp,yp,xp+24,yp+24,0);
}
void oscope(void)
{
double y,y_1,sp,na,h;
y=40-(a2dConvert8bit(0)*40/255);
y_1=40-(a2dConvert8bit(1)*40/37.8);
lcd_set_pixel(ser,y_1);
DrawLineFormat(1,y,100,y,1,1);
lcd_delay100ms();
DrawLine(1,y,100,y,0);
ser++;
if(x==100)
{
ser=0;
lcd_clear_graphics();
}
sp=(a2dConvert8bit(0)*100/255);
na=(a2dConvert8bit(1)*100/37.8);
if(sp<na)
{
DrawLine(z,45,x,45,1);
lcd_delay100ms();
x=x+1;
z=x;
if(x==100)
{
x=0;
}
}
if(sp>na)
{
DrawLine(z,55,x,55,1);
lcd_delay100ms();
x=x+1;
z=x;
if(x==100)
{
x=0;
}
}
}
void rprintfFloatG(char numDigits,double x)
{
unsigned char firstplace = FALSE;
unsigned char negative;
unsigned char i, digit;
double place = 1.0;
// save sign
negative = (x<0);
// convert to absolute value
x = (x>0)?(x):(-x);
{
DrawLine(10,i,37,i,1);
}
lcd_delay100ms();
for(i=47;i>=y+3;i--)
{
DrawLine(10,i,37,i,0);
}
DrawCircle(x,y,2,0);
DrawLine(39,15,x,y,0);
}
void muestra(int xp,int yp,int xq,int yq)
{
double sp, na;
lcd_gotoxy(xp,yp);
sp=(a2dConvert8bit(0)*100/255);
na=(a2dConvert8bit(1)*100/37.8);
lcd_gotoxy(xp,yp);rprintf("NA");
lcd_gotoxy(xp,yq);rprintf("SP");
lcd_gotoxy(xq,yq);
rprintfFloatG(3,sp);
lcd_gotoxy(xq,yp);
rprintfFloatG(3,na);
if(sp<na)
{
PORTB=0x1;
lcd_gotoxy(13,7);rprintf("PI2");
DrawLine(45,50,45,52,1);
lcd_delay100ms();
DrawLine(45,50,45,52,0);
}
if(sp>na)
{
PORTB=0x2;
lcd_gotoxy(13,7);rprintf("PI1");
DrawLine(11,16,11,18,1);
lcd_delay100ms();
DrawLine(11,16,11,18,0);
}
}
SIGNAL (SIG_INTERRUPT0)
{
if(col==0&&fila==0)
{col=2;fila=1;
pal=0;
}
else if(fila==1&&col==0)
{
fila=0;
col=2;
pal=0;
}
else
{
col--;pal=0;
}
}
SIGNAL (SIG_INTERRUPT1)
{
if(col==2&&fila==0)
{
col=0;
fila=1;
pal=0;
}
else if(fila==1&&col==2)
{
col=0;
fila=0;
pal=0;
}
else
{
col++;
pal=0;
}
}
SIGNAL (SIG_INTERRUPT2)
{
if(fer==1)
{
fer=0;
}
else
{
fer=1;
}
}
4. Simulacin en proteus
5. Conclusion
NIVEL DE LIQUIDOS
Evaluacin
Estudiantes:
Adrin Mita Carlo
Eduardo Tern Sevilla
Vctor Mamani Zarate
Docente:
Ing. German Pereira
Materia:
Microcontroladores ll