#include
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000
#endif
__CONFIG(UNPROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO & LVPDIS);
void wait(t) {
unsigned int i;
for(i=1;i}
void P1(){
PORTA=0x10; PORTB=0x20;
wait(5);
PORTA=0x11; //PORTB=0x20;
wait(5);
PORTA=0x13; //PORTB=0x20;
wait(5);
PORTA=0x7; //PORTB=0x20;
wait(5);
PORTA=0x46; //PORTB=0x20;
wait(5);
PORTA=0x44; PORTB=0x22;
wait(5);
PORTA=0x40; PORTB=0x23;
wait(5);
PORTA=0x80; //PORTB=0x23;
wait(5);
PORTA=0x88; PORTB=0x21;
wait(5);
PORTA=0x89; PORTB=0x20;
wait(5);
PORTA=0x19; //PORTB=0x20;
wait(5);
PORTA=0x11; //PORTB=0x20;
wait(5);
PORTA=0x10; //PORTB=0x20;
wait(5);
}
void P2(){
PORTA=0x10; PORTB=0x40;
wait(5);
PORTA=0x11; //PORTB=0x40;
wait(5);
PORTA=0x13; //PORTB=0x40;
wait(5);
PORTA=0x7; //PORTB=0x40;
wait(5);
PORTA=0x46; //PORTB=0x40;
wait(5);
PORTA=0x44; PORTB=0x42;
wait(5);
PORTA=0x40; PORTB=0x43;
wait(5);
PORTA=0x80; //PORTB=0x43;
wait(5);
PORTA=0x88; PORTB=0x41;
wait(5);
PORTA=0x89; PORTB=0x40;
wait(5);
PORTA=0x19; //PORTB=0x40;
wait(5);
PORTA=0x11; //PORTB=0x40;
wait(5);
PORTA=0x10; //PORTB=0x40;
wait(5);
}
void P3(){
PORTA=0x10; PORTB=0x80;
wait(5);
PORTA=0x11; //PORTB=0x80;
wait(5);
PORTA=0x13; //PORTB=0x80;
wait(5);
PORTA=0x7; //PORTB=0x80;
wait(5);
PORTA=0x46; //PORTB=0x80;
wait(5);
PORTA=0x44; PORTB=0x82;
wait(5);
PORTA=0x40; PORTB=0x83;
wait(5);
PORTA=0x80; //PORTB=0x83;
wait(5);
PORTA=0x88; PORTB=0x81;
wait(5);
PORTA=0x89; PORTB=0x80;
wait(5);
PORTA=0x19; //PORTB=0x80;
wait(5);
PORTA=0x11; //PORTB=0x80;
wait(5);
PORTA=0x10; //PORTB=0x80;
wait(5);
}
//All Brink
void P4(){
unsigned int i;
for(i=1;i<=15;i++){
PORTA=0xFF; PORTB=0xFF;
__delay_ms(2);
PORTA=0x00; PORTB=0x00;
__delay_ms(18);
}
for(i=1;i<=15;i++){
PORTA=0xFF; PORTB=0xFF;
__delay_ms(6);
PORTA=0x00; PORTB=0x00;
__delay_ms(14);
}
for(i=1;i<=15;i++){
PORTA=0xFF; PORTB=0xFF;
__delay_ms(10);
PORTA=0x00; PORTB=0x00;
__delay_ms(10);
}
for(i=1;i<=15;i++){
PORTA=0xFF; PORTB=0xFF;
__delay_ms(14);
PORTA=0x00; PORTB=0x00;
__delay_ms(6);
}
for(i=1;i<=15;i++){
PORTA=0xFF; PORTB=0xFF;
__delay_ms(18);
PORTA=0x00; PORTB=0x00;
__delay_ms(2);
}
for(i=1;i<=5;i++){
PORTA=0xFF; PORTB=0xE3;
wait(50);
PORTA=0x00; PORTB=0x00;
wait(20);
}
}
//Bottom to Top
void P5(){
unsigned int i;
for(i=1; i<=8; i++){
PORTA=0xFF; PORTB=0x23;
wait(20);
//PORTA=0xFF;
PORTB=0x43;
wait(20);
//PORTA=0xFF;
PORTB=0x83;
wait(20);
//PORTA=0xFF;
PORTB=0x43;
wait(20);
}
}
//Front to Back
void P6(){
unsigned int i;
for(i=1; i<=8; i++){
PORTA=0x07; PORTB=0xE0;
wait(20);
PORTA=0x58; PORTB=0xE0;
wait(20);
PORTA=0x80; PORTB=0xE3;
wait(20);
PORTA=0x58; PORTB=0xE0;
wait(20);
}
}
//Left to Right
void P7(){
unsigned int i;
for(i=1; i<=8; i++){
PORTA=0x89; PORTB=0xE0;
wait(20);
PORTA=0x12; PORTB=0xE1;
wait(20);
PORTA=0x44; PORTB=0xE2;
wait(20);
PORTA=0x12; PORTB=0xE1;
wait(20);
}
}
//Rotate
void P8(){
unsigned int i;
PORTA=0x10; PORTB=0x20;
wait(20);
PORTA=0x10; PORTB=0x60;
wait(20);
PORTA=0x10; PORTB=0xE0;
wait(20);
for(i=1; i<=8; i++){
PORTA=0x58; PORTB=0xE0;
wait(20);
PORTA=0x11; PORTB=0xE2;
wait(20);
PORTA=0x12; PORTB=0xE1;
wait(20);
PORTA=0x94; PORTB=0xE0;
wait(20);
}
}
//Diagonal
void P9(){
unsigned int i;
unsigned int j;
for(j=1; j<=8; j++){
for(i=1; i<=20; i++){
PORTA=0x10; PORTB=0xE0;
wait(2);
PORTA=0x58; PORTB=0x40;
wait(2);
PORTA=0x12; PORTB=0x41;
wait(2);
}
for(i=1; i<=20; i++){
PORTA=0x85; PORTB=0x22;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x85; PORTB=0x82;
wait(2);
}
for(i=1; i<=20; i++){
PORTA=0x4A; PORTB=0x21;
wait(2);
PORTA=0x85; PORTB=0x42;
wait(2);
PORTA=0x4A; PORTB=0x81;
wait(2);
}
}
}
//Satellite Orbit
void P10(){
unsigned int i;
unsigned int j;
unsigned int k;
for(k=1; k<=3; k++){
for(j=1; j<=4; j++){
for(i=1; i<=4; i++){
PORTA=0x00; PORTB=0x82;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x01; PORTB=0x20;
wait(2);
}
PORTA=0x12; PORTB=0x41;
wait(15);
for(i=1; i<=4; i++){
PORTA=0x04; PORTB=0x80;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x80; PORTB=0x20;
wait(2);
}
for(i=1; i<=4; i++){
PORTA=0x40; PORTB=0x80;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x08; PORTB=0x20;
wait(2);
}
}
for(j=1; j<=4; j++){
PORTA=0x11; PORTB=0x42;
wait(15);
PORTA=0x12; PORTB=0x41;
wait(15);
PORTA=0x94; PORTB=0x40;
wait(15);
PORTA=0x58; PORTB=0x40;
wait(15);
}
for(j=1; j<=4; j++){
for(i=1; i<=4; i++){
PORTA=0x01; PORTB=0x80;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x00; PORTB=0x22;
wait(2);
}
PORTA=0x12; PORTB=0x41;
wait(15);
for(i=1; i<=4; i++){
PORTA=0x04; PORTB=0x20;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x80; PORTB=0x80;
wait(2);
}
for(i=1; i<=4; i++){
PORTA=0x08; PORTB=0x80;
wait(2);
PORTA=0x10; PORTB=0x40;
wait(2);
PORTA=0x40; PORTB=0x20;
wait(2);
}
}
}
}
main()
{
PORTA = 0;
PORTB = 0;
TRISA=0;
TRISB=0;
TRISA5=1;
// note : RA5 is Input only
// note : RA4 should be pulled up for Output
CMCON = 0x07;
unsigned int i;
while(1){
P4();
P5();
P6();
P7();
P8();
P9();
P10();
for(i=1;i<3;i++){
P1();
P2();
P3();
P2();
}
P1();
}
}