Red de conocimiento informático - Material del sitio web - Programación en lenguaje C de una lámpara de agua de patrón basada en un microordenador de un solo chip

Programación en lenguaje C de una lámpara de agua de patrón basada en un microordenador de un solo chip

#include

#define uchar unsigned char

#define uint unsigned int

sbit P2_0=P2^ 0;

bit P2_1=P2^1;

bit P2_2=P2^2;

bit P2_3=P2^3;

sbit P2_4=P2^4;

sbit P2_5=P2^5;

/* tabla de patrones*/

código uchar seg1[]={ 0xfe ,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x00,0xff, 0x00,0xff}; //Palabras de control (fluyen de izquierda a derecha, luego todas parpadean dos veces)

uchar code seg2 []={ 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00,0xff, 0x00,0xff} //Palabras de control (fluyen de derecha a izquierda, luego todas parpadean dos veces)

uchar code seg3[]={ 0xfe, 0xfb, 0xef, 0xbf}; // Palabra de control (de izquierda a derecha 1, 3, 5, 7 (control de puerto P1), 9, 11, 13, 15 (puerto P3) control) flujo parpadeando,)

uchar código seg4[]={0xfd,0xf7, 0xdf, 0x7f} // Palabra de control (de derecha a izquierda 2, 4, 6, 8 (control P1) 10 , 12, 14, 16 (control de puerto P3) fluyendo y parpadeando, )

código uchar seg5[]={0xe7,0xdb,0xbd,0x7e} //Palabra de control (que fluye desde el medio hacia ambos; lados parpadeantes)

uchar code seg6[]={0x7e, 0xbd, 0xdb,0xe7} //Palabra de control (fluye y parpadea desde ambos lados hacia el centro)

// P1.0~P1.7 controla las luces 1~8, P3.0~P3.7 controla las luces 9~16, el puerto P2 se utiliza para control de modo//

/******* ***** ********Subfunción Retardo k*1mS************************/

retraso nulo(uint k)

{

uint i,j;

for(i=0;i

for(j =0;j<121;j++)

{;}}

}

principal()

{

uchar a,b,c,d,e,f;

mientras(1)

{

/*Lo siguiente se obtiene mediante el método de búsqueda de tabla Parámetros de patrón*/

while(P2_0==0)

{

for(a=0; a<12;a++) //Mostrar patrón 1

{

retraso(500);

P1=seg1[a];

P3=seg1[a];

}

}

mientras(P2_1==0 )

{

for(b=0;b<12;b++) // Patrón de visualización 2

{

retraso( 500);

P1=seg2[b];

P3=seg2[b];

}

}

while(P2_2==0)

{

for(c=0;c<4;c++) //Patrón de visualización de la tabla de búsqueda 3

{

retraso(500);

P1=seg3[c];

P3=seg3[c];

}

}

mientras(P2_3==0)

{

para(d=0;d<4;d++) //Patrón de visualización de la tabla de búsqueda 4

{

delay(500);

P1=seg4[d];

P3= seg4[d];

}

mientras(P2_4==0)

{

for(e=0;e< 4;e++) //Patrón de visualización de la tabla de búsqueda 5

{

delay(500);

P1=seg5[e];

P3=seg5[e];

}

}

mientras(P2_5==0)

{

for(f=0;f<4;f++) //Patrón de visualización de la tabla de búsqueda 6

{

delay(500);

P1=seg6[f];

P3=seg6[f];

}

}

}

}

}