#INCLUDE <16F877A.H>//USAMOS EL PIC 16F877A
#FUSES XT,NOWDT,NOPROTECT,NOLVP//FUSIBLES QUE VAMOS A USAR
#USE DELAY(CLOCK=4Mhz)//USAMOS UNA FRECUENCIA DE RELOJ DE 4MHZ
#include <STDLIB.H>
//Codigo Hecho en su totalidad por Erick Arias Devia
//Bogota D.C. Marzo de 2012
//Puertos mediante definicion de Bytes//
#Byte Porta=0x05
#Byte portb=0x06
#Byte portc=0x07
#Byte portd=0x08
#Byte porte=0x09
//Final de la declaracion de puertos//
//Columnas y niveles, mediante definicion de bits//
#bit col1=0x05.0
#bit col2=0x05.1
#bit col3=0x05.2
#bit col4=0x05.3
#bit col5=0x05.4
#bit col6=0x05.5
#bit col7=0x06.0
#bit col8=0x06.1
#bit col9=0x06.2
#bit col10=0x06.3
#bit col11=0x06.4
#bit col12=0x06.5
#bit col13=0x06.6
#bit col14=0x06.7
#bit col15=0x07.0
#bit col16=0x07.1
#bit col17=0x07.2
#bit col18=0x07.3
#bit col19=0x07.4
#bit col20=0x07.5
#bit col21=0x07.6
#bit col22=0x07.7
#bit col23=0x09.0
#bit col24=0x09.1
#bit col25=0x09.2
#bit niv1=0x08.0
#bit niv2=0x08.1
#bit niv3=0x08.2
#bit niv4=0x08.3
#bit niv5=0x08.4
//Final de la declaracion de columnas y niveles//
int i=0,a=0,n=0,c=0;
//funciones extra
void nivel1on(int){
output_d(0b00000001);
}
void nivel2on(int){
output_d(0b00000010);
}
void nivel3on(int){
output_d(0b00000100);
}
void nivel4on(int){
output_d(0b00001000);
}
void nivel5on(int){
output_d(0b00010000);
}
//------Letras-----
void letra(int){ //traslacion de la letra por niveles
niv1=1;
delay_ms(150);
niv2=1;
delay_ms(150);
niv3=1;niv1=0;
delay_ms(150);
niv4=1;niv2=0;
delay_ms(150);
niv5=1;niv3=0;
delay_ms(150);
niv4=0;
delay_ms(150);
niv5=0;
}
void letraa(int){
Output_a(0b111110);
Output_b(0b01010010);
Output_c(0b10001010);
Output_e(0xff);
}
void letrab(int){
Output_a(0b111111);
Output_b(0b01011010);
Output_c(0b10101011);
Output_e(0b010);
}
void letrac(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b01100011);
Output_e(0b100);
}
void letrad(int){
Output_a(0b111111);
Output_b(0b00011000);
Output_c(0b10100011);
Output_e(0b011);
}
void letrae(int){
Output_a(0b111111);
Output_b(0b01011010);
Output_c(0b01100011);
Output_e(0b100);
}
void letraf(int){
Output_a(0b111111);
Output_b(0b01010010);
Output_c(0b01000010);
Output_e(0x00);
}
void letrag(int){
Output_a(0b111111);
Output_b(0b01011000);
Output_c(0b01101011);
Output_e(0xff);
}
void letrah(int){
Output_a(0b011111);
Output_b(0b01000010);
Output_c(0b11001000);
Output_e(0xff);
}
void letrai(int){
Output_a(0b110001);
Output_b(0b11111000);
Output_c(0b01100011);
Output_e(0b100);
}
void letraj(int){
Output_a(0b110001);
Output_b(0b01010010);
Output_c(0b01000011);
Output_e(0x00);
}
void letrak(int){
Output_a(0b011111);
Output_b(0b01000100);
Output_c(0b01010100);
Output_e(0b100);
}
void letral(int){
Output_a(0b011111);
Output_b(0b00001000);
Output_c(0b00100001);
Output_e(0b100);
}
void letram(int){
Output_a(0b011111);
Output_b(0b01000001);
Output_c(0b11000100);
Output_e(0xff);
}
void letran(int){
Output_a(0b011111);
Output_b(0b01000001);
Output_c(0b11010000);
Output_e(0xff);
}
void letrao(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b10100011);
Output_e(0b011);
}
void letrap(int){
Output_a(0b111111);
Output_b(0b01010010);
Output_c(0b10001010);
Output_e(0b001);
}
void letraq(int){
Output_a(0b101110);
Output_b(0b00011000);
Output_c(0b10010011);
Output_e(0b101);
}
void letrar(int){
Output_a(0b111111);
Output_b(0b11010010);
Output_c(0b10101010);
Output_e(0b100);
}
void letras(int){
Output_a(0b110010);
Output_b(0b01011010);
Output_c(0b01101011);
Output_e(0b010);
}
void letrat(int){
Output_a(0b100001);
Output_b(0b11110000);
Output_c(0b01000011);
Output_e(0b000);
}
void letrau(int){
Output_a(0b001111);
Output_b(0b00001000);
Output_c(0b11100001);
Output_e(0b011);
}
void letrav(int){
Output_a(0b000111);
Output_b(0b00000100);
Output_c(0b11010001);
Output_e(0b001);
}
void letraw(int){
Output_a(0b011111);
Output_b(0b01000100);
Output_c(0b11010000);
Output_e(0xff);
}
void letrax(int){
Output_a(0b010001);
Output_b(0b01000101);
Output_c(0b01010100);
Output_e(0b100);
}
void letray(int){
Output_a(0b000011);
Output_b(0b10000010);
Output_c(0b11001001);
Output_e(0x00);
}
void letraz(int){
Output_a(0b110001);
Output_b(0b01011100);
Output_c(0b01100111);
Output_e(0b100);
}
//-------Final Letras---
void upslowon(int){
output_d(0b00000001);//enciende el nivel 1
delay_ms(150);
output_d(0b00000011);//enciende los niveles 1 y 2
delay_ms(150);
output_d(0b00000111);//enciende los niveles 1, 2 y 3
delay_ms(150);
output_d(0b00001111);//enciende los niveles 1, 2, 3 y 4
delay_ms(150);
output_d(0xff);//enciende todos los niveles
delay_ms(150);
}
void upslowoff(int){
output_d(0b00011110);
delay_ms(150);
output_d(0b00011100);
delay_ms(150);
output_d(0b00011000);
delay_ms(150);
output_d(0b00010000);
delay_ms(150);
output_d(0x00);
delay_ms(150);
}
void allcolson(int){
output_a(0xff);//Enciende
output_b(0xff);//todas
output_c(0xff);//las
output_e(0xff);//columnas
delay_us(1);
}
void allcolsoff(int){
output_a(0x00);//Apaga
output_b(0x00);//todas
output_c(0x00);//las
output_e(0x00);//columnas
delay_us(1);
}
void espiralcuadro(int){
output_a(0b000001);
delay_ms(50);
output_a(0b000011);
delay_ms(50);
output_a(0b000111);
delay_ms(50);
output_a(0b001111);
delay_ms(50);
output_a(0b011111);
delay_ms(50);
output_b(0b00001000);
delay_ms(50);
output_c(0b00000001);
delay_ms(50);
output_c(0b00100001);
delay_ms(50);
output_e(0b100);
delay_ms(50);
output_e(0b110);
delay_ms(50);
output_e(0b111);
delay_ms(50);
output_c(0b10100001);
delay_ms(50);
output_c(0b11100001);
delay_ms(50);
output_c(0b11100011);
delay_ms(50);
output_b(0b00011000);
delay_ms(50);
output_a(0xff);
delay_ms(50);
output_b(0b00011001);
delay_ms(50);
output_b(0b00011011);
delay_ms(50);
output_b(0b00011111);
delay_ms(50);
output_b(0b10011111);
delay_ms(50);
output_c(0b11110011);
delay_ms(50);
output_c(0b11111011);
delay_ms(50);
output_c(0b11111111);
delay_ms(50);
output_c(0b11111111);
delay_ms(50);
output_b(0b10111111);
delay_ms(50);
output_b(0b11111111);
delay_ms(50);
//comienza apagado
output_a(0b111110);
delay_ms(50);
output_a(0b111100);
delay_ms(50);
output_a(0b111000);
delay_ms(50);
output_a(0b110000);
delay_ms(50);
output_a(0b100000);
delay_ms(50);
output_b(0b11110111);
delay_ms(50);
output_c(0b11111110);
delay_ms(50);
output_c(0b11011110);
delay_ms(50);
output_e(0b011);
delay_ms(50);
output_e(0b001);
delay_ms(50);
output_e(0x00);
delay_ms(50);
output_c(0b01011110);
delay_ms(50);
output_c(0b00011110);
delay_ms(50);
output_c(0b00011100);
delay_ms(50);
output_b(0b11100111);
delay_ms(50);
output_a(0x00);
delay_ms(50);
output_b(0b11100110);
delay_ms(50);
output_b(0b11100100);
delay_ms(50);
output_b(0b11100000);
delay_ms(50);
output_b(0b01100000);
delay_ms(50);
output_c(0b000001100);
delay_ms(50);
output_c(0b00000100);
delay_ms(50);
output_c(0x00);
delay_ms(50);
output_b(0b01000000);
delay_ms(50);
output_b(0x00);
}
void rotadordiagonales(int){
for(i=0;i<=40;i++){ //1/8
nivel5on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //2/8
nivel5on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //3/8
nivel5on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //4/8
nivel5on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //5/8
nivel5on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b00001);
Output_e(0b100);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //6/8
nivel5on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_a(0b100000);
Output_c(0b00100000);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //7/8
nivel5on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_b(0b00010000);
Output_c(0b00000001);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=40;i++){ //8/8
nivel5on(1);
Output_a(0b000010);
Output_e(0b010);
Delay_ms(1);
allcolsoff(1);
nivel4on(1);
Output_a(0b000100);
Output_e(0b001);
Delay_ms(1);
allcolsoff(1);
nivel3on(1);
Output_a(0b001000);
Output_c(0b10000000);
Delay_ms(1);
allcolsoff(1);
nivel2on(1);
Output_a(0b010000);
Output_c(0b01000000);
Delay_ms(1);
allcolsoff(1);
nivel1on(1);
Output_c(0b00000010);
Output_b(0b00001000);
Delay_ms(1);
allcolsoff(1);
}
}
void rotadordiagonales2(int){
for(i=0;i<=50;i++){ //1/4
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //2/4
Output_a(0b101000);
Output_c(0b10100000);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //3/4
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
for(i=0;i<=50;i++){ //4/4
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel5on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b010001);
Output_c(0b01000000);
Output_e(0b100);
Nivel4on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b101000);
Output_c(0b10100000);
Nivel3on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000100);
Output_b(0b00010000);
Output_c(0b00000001);
Output_e(0b001);
Nivel2on(1);
Delay_ms(1);
allcolsoff(1);
Output_a(0b000010);
Output_b(0b00001000);
Output_c(0b00000010);
Output_e(0b010);
Nivel1on(1);
Delay_ms(1);
allcolsoff(1);
}
}
void cubos1(int){
col1=1;col2=1;col6=1;col7=1;niv1=1;niv2=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col1=0;col6=0;
col3=1;col8=1;
delay_ms(75);
col2=0;col7=0;
col4=1;col9=1;
delay_ms(75);
col3=0;col8=0;
col5=1;col10=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col4=0;col5=0;
col15=1;col14=1;
delay_ms(75);
col9=0;col10=0;
col20=1;col19=1;
delay_ms(75);
col15=0;col14=0;
col24=1;col25=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col20=0;col25=0;
col18=1;col23=1;
delay_ms(75);
col19=0;col24=0;
col17=1;col22=1;
delay_ms(75);
col18=0;col23=0;
col16=1;col21=1;
delay_ms(250);
niv3=1;
niv1=0;
delay_ms(75);
niv4=1;
niv2=0;
delay_ms(75);
niv5=1;
niv3=0;
delay_ms(500);
niv3=1;
niv5=0;
delay_ms(75);
niv2=1;
niv4=0;
delay_ms(75);
niv1=1;
niv3=0;
delay_ms(500);
col21=0;col22=0;
col12=1;col11=1;
delay_ms(75);
col16=0;col17=0;
col6=1;col7=1;
delay_ms(75);
col12=0;col11=0;
col1=col2=1;
delay_ms(75);
}
void cubos2(int){
col1=1;col2=1;col6=1;col7=1;niv1=1;niv2=1;
delay_ms(200);
col3=1;col8=1;col13=1;col11=1;col12=1;niv3=1;
delay_ms(200);
col4=1;col9=1;col14=1;col19=1;col18=1;col17=1;col16=1;niv4=1;
delay_ms(200);
col5=1;col10=1;col15=1;col20=1;col25=1;col24=1;col23=1;col22=1;col21=1;niv5=1;
delay_ms(200);
col5=0;col10=0;col15=0;col20=0;col25=0;col24=0;col23=0;col22=0;col21=0;niv5=0;
delay_ms(200);
col4=0;col9=0;col14=0;col19=0;col18=0;col17=0;col16=0;niv4=0;
delay_ms(200);
col3=0;col8=0;col13=0;col11=0;col12=0;niv3=0;
delay_ms(200);
col3=1;col8=1;col13=1;col11=1;col12=1;niv3=1;
delay_ms(200);
col4=1;col9=1;col14=1;col19=1;col18=1;col17=1;col16=1;niv4=1;
delay_ms(200);
col5=1;col10=1;col15=1;col20=1;col25=1;col24=1;col23=1;col22=1;col21=1;niv5=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=0;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=1;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=0;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=0;
delay_ms(200);
col13=col14=col15=col18=col23=niv3=1;
delay_ms(200);
col7=col8=col9=col10=col12=col17=col22=niv2=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col11=col16=col21=niv1=1;
delay_ms(200);
col1=col2=col3=col4=col5=col6=col10=col11=col15=col20=col16=col21=col22=col23=col24=col25=niv1=niv5=0;
delay_ms(200);
col7=col8=col9=col12=col14=col17=col18=col19=niv2=niv4=0;
delay_ms(200);
col13=niv3=0;
delay_ms(200);
}
Void caer(int){
nivel5on(1);
delay_ms(50);
nivel4on(1);
delay_ms(50);
nivel3on(1);
delay_ms(50);
nivel2on(1);
delay_ms(50);
nivel1on(1);
delay_ms(50);
}
Void subir(int){
nivel1on(1);
delay_ms(50);
nivel2on(1);
delay_ms(50);
nivel3on(1);
delay_ms(50);
nivel4on(1);
delay_ms(50);
nivel5on(1);
delay_ms(50);
}
void main(){ //PROGRAMA PRINCIPAL
set_tris_a(0xff);
set_tris_b(0xff);
set_tris_c(0xff);
set_tris_e(0xff);
set_tris_d(0b00011111);
delay_ms(100);
while (true){ //CICLO INFINITO
allcolson(1);
for(i=0;i<=1;i++){ //niveles uno por uno
allcolson(1);
upslowon(1);
upslowoff(1);
}
allcolsoff(1);
for(a=0;a<=254;a++){ //silueta del cubo
while(i<=254){
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_a(0xff);
output_b(0b00011000);
output_c(0b11100011);
output_e(0b111);
output_d(0b00010001);
delay_ms(5);
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_a(0b010001);
output_c(0b01000000);
output_e(0b100);
output_d(0xff);
delay_ms(5);
i++;
}
}
a=0;
for(i=0;i<=254;i++){ //silueta del cubo pequeño
while(a<=254){
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_b(0b10100111);
output_c(0b00011100);
output_d(0b00001010);
delay_ms(5);
output_a(0x00);//apaga
output_b(0x00);//las
output_c(0x00);//filas
output_d(0x00);//y
output_e(0x00);//columnas
delay_us(1);
output_b(0b00000101);
output_c(0b00010100);
output_d(0b00001110);
delay_ms(5);
a++;
}
}
{ //enciende el led del medio
allcolsoff(1);
col13=1;
nivel3on(1);
delay_ms(1500);
}
for(i=0;i<=20;i++){ //aspas giratorias(vista vertical)
output_d(0xff);//enciende todos los niveles
delay_us(1);
output_a(0b000100);
output_b(0b11110010);
output_c(0b00001001);
output_e(0b001);
delay_ms(200);
output_a(0b010001);
output_b(0b01000101);
output_c(0b01010100);
output_e(0b100);
delay_ms(250);
}
output_d(0x00);
delay_ms(500);
{ //Espiral cuadrado
allcolsoff(1);
output_d(0b00000001);
espiralcuadro(1);
output_d(0b00000011);
espiralcuadro(1);
output_d(0b00000111);
espiralcuadro(1);
output_d(0b00001111);
espiralcuadro(1);
output_d(0xff);
espiralcuadro(1);
delay_ms(300);
}
output_d(0x00);
for(a=0;a<=10;a++){ //rotador de diagonales
rotadordiagonales(1);
}
for(a=0;a<=15;a++){ //rotador de diagonales2
rotadordiagonales2(1);
}
for(i=0;i<=1;i++){ //360
output_b(0b01000000);
upslowon(1);
output_b(0b01100000);
delay_ms(50);
output_b(0b01110000);
delay_ms(200);
output_a(0b100000);
delay_ms(50);
output_b(0b01110001);
delay_ms(50);
output_a(0b100001);
delay_ms(50);
output_a(0b100011);
delay_ms(50);
output_a(0b100111);
output_b(0b01110011);
delay_ms(50);
output_a(0b101111);
delay_ms(50);
output_b(0b01110111);
delay_ms(50);
output_a(0xff);
output_b(0b01111111);
delay_ms(50);
output_b(0b01111111);
delay_ms(50);
output_b(0xff);
output_c(0b00000001);
delay_ms(50);
output_c(0b00100001);
delay_ms(50);
output_c(0b00110001);
output_e(0b100);
delay_ms(50);
output_e(0b110);
delay_ms(50);
output_c(0b00111001);
output_e(0xff);
delay_ms(50);
output_c(0b10111001);
delay_ms(50);
output_c(0b11111101);
delay_ms(50);
output_c(0xff);
delay_ms(150);
upslowoff(1);
allcolsoff(1);
delay_ms(500);
}
{allcolsoff(1); //Caer y Subir
col1=1;
caer(1);
allcolsoff(1);
col2=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col4=1;
subir(1);
allcolsoff(1);
col5=1;
caer(1);
allcolsoff(1);
col10=1;
subir(1);
allcolsoff(1);
col9=1;
caer(1);
allcolsoff(1);
col8=1;
subir(1);
allcolsoff(1);
col7=1;
caer(1);
allcolsoff(1);
col6=1;
subir(1);
allcolsoff(1);
col11=1;
caer(1);
allcolsoff(1);
col12=1;
subir(1);
allcolsoff(1);
col13=1;
caer(1);
allcolsoff(1);
col14=1;
subir(1);
allcolsoff(1);
col15=1;
caer(1);
allcolsoff(1);
col20=1;
subir(1);
allcolsoff(1);
col19=1;
caer(1);
allcolsoff(1);
col18=1;
subir(1);
allcolsoff(1);
col17=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col21=1;
caer(1);
allcolsoff(1);
col22=1;
subir(1);
allcolsoff(1);
col23=1;
caer(1);
allcolsoff(1);
col24=1;
subir(1);
allcolsoff(1);
col25=1;
caer(1);
allcolsoff(1);
col4=1;
subir(1);
allcolsoff(1);
col13=1;
caer(1);
allcolsoff(1);
col15=1;
subir(1);
allcolsoff(1);
col1=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col21=1;
caer(1);
allcolsoff(1);
col25=1;
subir(1);
allcolsoff(1);
col11=1;
caer(1);
allcolsoff(1);
col19=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col8=1;
subir(1);
allcolsoff(1);
col20=1;
caer(1);
allcolsoff(1);
col7=1;
subir(1);
allcolsoff(1);
col2=1;
caer(1);
allcolsoff(1);
col22=1;
subir(1);
allcolsoff(1);
col12=1;
caer(1);
allcolsoff(1);
col16=1;
subir(1);
allcolsoff(1);
col3=1;
caer(1);
allcolsoff(1);
col24=1;
subir(1);
allcolsoff(1);
col7=1;
caer(1);
allcolsoff(1);
col11=1;
subir(1);
allcolsoff(1);
col5=1;
caer(1);
allcolsoff(1);
col23=1;
subir(1);
allcolsoff(1);
col15=1;
caer(1);
allcolsoff(1);
col6=1;
subir(1);
}
cubos1(1);
output_d(0x00);
cubos2(1);
output_d(0x00);
col1=col5=col21=col25=1;
upslowon(1);
col11=col15=col3=col23=1;
delay_ms(250);
col8=col18=col12=col14=1;
delay_ms(170);
allcolson(1);
for(i=0;i<=10;i++){
output_d(0xff);
delay_ms(50);
output_d(0x00);
delay_ms(50);
}
}
}