#include "htc.h"; __CONFIG(0xFF32); // SET UP CONFIGURATION BITS #define _XTAL_FREQ 20000000 void random( void ); // RELATIVELY RANDOM void sorban( void ); // CONSECUTIVELY void villog( void ); // SEPARATE BLINK void minden( void ); // ALL BLINK void counter( void ); void osszes( void ); void vosszes( void ); void hsorban(void); volatile int HUNDRED = 0; interrupt isr() // INTERRUPT SERVICE ROUTINE 10HZ/0.1S { if ((TMR1IF == 1) && (TMR1IE == 1)) { TMR1IE = 0; if(HUNDRED > 10000) HUNDRED = 0; HUNDRED = HUNDRED + 1; // INCREMENT VOLATILE COUNT VARIABLE TMR1H = 0xEC; // REARM MSB REGISTER TMR1L = 0x7E; // REARM LSB REGISTER TMR1IF = 0; // CLEAR TIMER1 INTERRUPT FLAG TMR1IE = 1; } if((TMR0IE == 1) && (TMR0IF == 1)) { TMR0IF = 0; } } void main() { int kukac = 0; int fos = 0; TRISA = 0x00; // SET PORT A DIRECTION PORTA = 0x00; // CLEAR DATA LATCH TRISB = 0x00; // SET PORT B DIRECTION PORTB = 0x00; // CLEAR DATA LATCH TRISC = 0x00; // SET PORT C DIRECTION PORTC = 0x00; // CLEAR DATA LATCH T1CON = 0x3D; // SETUP TIMER1 CONFIGURATION REGISTER TMR1H = 0xEC; // MSB OF PRELOAD VALUE TMR1L = 0x7E; // LSB OF PRELOAD VALUE INTCON = 0x00; // CONFIGURE INTERRUPTS PIE1 = 0x00; // ENABLE TIMER1 INTERRUPT PIR1 = 0x00; // CLEAR INTERRUPT FLAG FOR START CMCON = 0x07; // DISABLE COMPARATORS SSPCON = 0x00; // DISABLE MSSP MODULE TXSTA = 0x00; // DISABLE TRANSMISSION RCSTA = 0x00; // DISABLE SERIAL PORT ADCON0 = 0x00; // DISABLE AD MODULE ADCON1 = 0x07; // PINS ALL DIGITAL CCP1CON = 0x00; // PWM MODE ENABLED CHANNEL 1 CCP2CON = 0x00; // PWM MODE ENABLED CHANNEL 2 OPTION_REG = 0x00; // DISABLE PULLUPS, PRESCALER 1:2 ASSIGNED TO TIMER0 while(1) // FOREVER { for(kukac = 0; kukac < 40000;kukac++) { if(kukac == 20000) { fos++; if(fos<10) minden();//elorehatra if((fos>=10)&&(fos<20)) sorban();//eg az egesz if((fos>=20)&&(fos<30)) vosszes();//villog az egesz if((fos>=30)&&(fos<40)) villog();//kettessevel villog if((fos>=40)&&(fos<50)) hsorban();//sorba harmasaval if((fos>=50)&&(fos<60)) osszes();//sorba if(fos>=60) fos = 0; } } } } void sorban(void) { RA0 = 1;__delay_ms(200);RA0 = 0;asm("nop");//J RA3 = 1;__delay_ms(200);RA3 = 0;asm("nop");//O RA2 = 1;__delay_ms(200);RA2 = 0;asm("nop");//C RA1 = 1;__delay_ms(200);RA1 = 0;asm("nop");//U RC3 = 1;__delay_ms(200);RC3 = 0;asm("nop");//R RA5 = 1;__delay_ms(200);RA5 = 0;asm("nop");//I RB7 = 1;__delay_ms(200);RB7 = 0;asm("nop");//E RB6 = 1;__delay_ms(200);RB6 = 0;asm("nop");//L RB5 = 1;__delay_ms(200);RB5 = 0;asm("nop");//E RB4 = 1;__delay_ms(200);RB4 = 0;asm("nop");//C RB3 = 1;__delay_ms(200);RB3 = 0;asm("nop");//T RC6 = 1;__delay_ms(200);RC6 = 0;asm("nop");//R RB1 = 1;__delay_ms(200);RB1 = 0;asm("nop");//O RB0 = 1;__delay_ms(200);RB0 = 0;asm("nop");//N RC7 = 1;__delay_ms(200);RC7 = 0;asm("nop");//I RC4 = 1;__delay_ms(200);RC4 = 0;asm("nop");//C RC5 = 1;__delay_ms(200);RC5 = 0;asm("nop");//E } void hsorban(void) { RA0 = 1; RA1 = 1; RB7 = 1; RB4 = 1; RB1 = 1; RC4 = 1; __delay_ms(200); RA0 = 0;asm("nop");//J RA1 = 0;asm("nop");//U RB7 = 0;asm("nop");//E RB4 = 0;asm("nop");//C RB1 = 0;asm("nop");//O RC4 = 0;asm("nop");//C RA3 = 1; RC3 = 1; RB6 = 1; RB3 = 1; RB0 = 1; RC5 = 1; __delay_ms(200); RA3 = 0;asm("nop");//O RC3 = 0;asm("nop");//R RB6 = 0;asm("nop");//L RB3 = 0;asm("nop");//T RB0 = 0;asm("nop");//N RC5 = 0;asm("nop");//E RA2 = 1; RA5 = 1; RB5 = 1; RC6 = 1; RC7 = 1; __delay_ms(200); RA2 = 0;asm("nop");//C RA5 = 0;asm("nop");//I RB5 = 0;asm("nop");//E RC6 = 0;asm("nop");//R RC7 = 0;asm("nop");//I RA0 = 1; RA1 = 1; RB7 = 1; RB4 = 1; RB1 = 1; RC4 = 1; __delay_ms(200); RA0 = 0;asm("nop");//J RA1 = 0;asm("nop");//U RB7 = 0;asm("nop");//E RB4 = 0;asm("nop");//C RB1 = 0;asm("nop");//O RC4 = 0;asm("nop");//C RA3 = 1; RC3 = 1; RB6 = 1; RB3 = 1; RB0 = 1; RC5 = 1; __delay_ms(200); RA3 = 0;asm("nop");//O RC3 = 0;asm("nop");//R RB6 = 0;asm("nop");//L RB3 = 0;asm("nop");//T RB0 = 0;asm("nop");//N RC5 = 0;asm("nop");//E RA2 = 1; RA5 = 1; RB5 = 1; RC6 = 1; RC7 = 1; __delay_ms(200); RA2 = 0;asm("nop");//C RA5 = 0;asm("nop");//I RB5 = 0;asm("nop");//E RC6 = 0;asm("nop");//R RC7 = 0;asm("nop");//I RA0 = 1; RA1 = 1; RB7 = 1; RB4 = 1; RB1 = 1; RC4 = 1; __delay_ms(200); RA0 = 0;asm("nop");//J RA1 = 0;asm("nop");//U RB7 = 0;asm("nop");//E RB4 = 0;asm("nop");//C RB1 = 0;asm("nop");//O RC4 = 0;asm("nop");//C RA3 = 1; RC3 = 1; RB6 = 1; RB3 = 1; RB0 = 1; RC5 = 1; __delay_ms(200); RA3 = 0;asm("nop");//O RC3 = 0;asm("nop");//R RB6 = 0;asm("nop");//L RB3 = 0;asm("nop");//T RB0 = 0;asm("nop");//N RC5 = 0;asm("nop");//E RA2 = 1; RA5 = 1; RB5 = 1; RC6 = 1; RC7 = 1; __delay_ms(200); RA2 = 0;asm("nop");//C RA5 = 0;asm("nop");//I RB5 = 0;asm("nop");//E RC6 = 0;asm("nop");//R RC7 = 0;asm("nop");//I RA0 = 1; RA1 = 1; RB7 = 1; RB4 = 1; RB1 = 1; RC4 = 1; __delay_ms(200); RA0 = 0;asm("nop");//J RA1 = 0;asm("nop");//U RB7 = 0;asm("nop");//E RB4 = 0;asm("nop");//C RB1 = 0;asm("nop");//O RC4 = 0;asm("nop");//C RA3 = 1; RC3 = 1; RB6 = 1; RB3 = 1; RB0 = 1; RC5 = 1; __delay_ms(200); RA3 = 0;asm("nop");//O RC3 = 0;asm("nop");//R RB6 = 0;asm("nop");//L RB3 = 0;asm("nop");//T RB0 = 0;asm("nop");//N RC5 = 0;asm("nop");//E RA2 = 1; RA5 = 1; RB5 = 1; RC6 = 1; RC7 = 1; __delay_ms(200); RA2 = 0;asm("nop");//C RA5 = 0;asm("nop");//I RB5 = 0;asm("nop");//E RC6 = 0;asm("nop");//R RC7 = 0;asm("nop");//I RA0 = 1; RA1 = 1; RB7 = 1; RB4 = 1; RB1 = 1; RC4 = 1; __delay_ms(200); RA0 = 0;asm("nop");//J RA1 = 0;asm("nop");//U RB7 = 0;asm("nop");//E RB4 = 0;asm("nop");//C RB1 = 0;asm("nop");//O RC4 = 0;asm("nop");//C RA3 = 1; RC3 = 1; RB6 = 1; RB3 = 1; RB0 = 1; RC5 = 1; __delay_ms(200); RA3 = 0;asm("nop");//O RC3 = 0;asm("nop");//R RB6 = 0;asm("nop");//L RB3 = 0;asm("nop");//T RB0 = 0;asm("nop");//N RC5 = 0;asm("nop");//E RA2 = 1; RA5 = 1; RB5 = 1; RC6 = 1; RC7 = 1; __delay_ms(200); RA2 = 0;asm("nop");//C RA5 = 0;asm("nop");//I RB5 = 0;asm("nop");//E RC6 = 0;asm("nop");//R RC7 = 0;asm("nop");//I } void villog(void) { RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); RA0 = 1;asm("nop");//J RA2 = 1;asm("nop");//C RC3 = 1;asm("nop");//R RB7 = 1;asm("nop");//E RB5 = 1;asm("nop");//E RB3 = 1;asm("nop");//T RB1 = 1;asm("nop");//O RC7 = 1;asm("nop");//I RC5 = 1;asm("nop");//E __delay_ms(200); RA0 = 0;asm("nop");RA2 = 0;asm("nop");RC3 = 0;asm("nop"); RB7 = 0;asm("nop");RB5 = 0;asm("nop");RB3 = 0;asm("nop"); RB1 = 0;asm("nop");RC7 = 0;asm("nop");RC5 = 0;asm("nop"); RA3 = 1;asm("nop");//O RA1 = 1;asm("nop");//U RA5 = 1;asm("nop");//I RB6 = 1;asm("nop");//L RB4 = 1;asm("nop");//C RC6 = 1;asm("nop");//R RB0 = 1;asm("nop");//N RC4 = 1;asm("nop");//C __delay_ms(200); RA3 = 0;asm("nop");RA1 = 0;asm("nop"); RA5 = 0;asm("nop");RB6 = 0;asm("nop"); RB4 = 0;asm("nop");RC6 = 0;asm("nop"); RB0 = 0;asm("nop");RC4 = 0;asm("nop"); } void minden(void) { RA0 = 1;__delay_ms(150);RA0 = 0;asm("nop");//J RA3 = 1;__delay_ms(150);RA3 = 0;asm("nop");//O RA2 = 1;__delay_ms(150);RA2 = 0;asm("nop");//C RA1 = 1;__delay_ms(150);RA1 = 0;asm("nop");//U RC3 = 1;__delay_ms(150);RC3 = 0;asm("nop");//R RA5 = 1;__delay_ms(150);RA5 = 0;asm("nop");//I RB7 = 1;__delay_ms(150);RB7 = 0;asm("nop");//E RB6 = 1;__delay_ms(150);RB6 = 0;asm("nop");//L RB5 = 1;__delay_ms(150);RB5 = 0;asm("nop");//E RB4 = 1;__delay_ms(150);RB4 = 0;asm("nop");//C RB3 = 1;__delay_ms(150);RB3 = 0;asm("nop");//T RC6 = 1;__delay_ms(150);RC6 = 0;asm("nop");//R RB1 = 1;__delay_ms(150);RB1 = 0;asm("nop");//O RB0 = 1;__delay_ms(150);RB0 = 0;asm("nop");//N RC7 = 1;__delay_ms(150);RC7 = 0;asm("nop");//I RC4 = 1;__delay_ms(150);RC4 = 0;asm("nop");//C RC5 = 1;__delay_ms(150);RC5 = 0;asm("nop");//E RC4 = 1;__delay_ms(150);RC4 = 0;asm("nop");//C RC7 = 1;__delay_ms(150);RC7 = 0;asm("nop");//I RB0 = 1;__delay_ms(150);RB0 = 0;asm("nop");//N RB1 = 1;__delay_ms(150);RB1 = 0;asm("nop");//O RC6 = 1;__delay_ms(150);RC6 = 0;asm("nop");//R RB3 = 1;__delay_ms(150);RB3 = 0;asm("nop");//T RB4 = 1;__delay_ms(150);RB4 = 0;asm("nop");//C RB5 = 1;__delay_ms(150);RB5 = 0;asm("nop");//E RB6 = 1;__delay_ms(150);RB6 = 0;asm("nop");//L RB7 = 1;__delay_ms(150);RB7 = 0;asm("nop");//E RA5 = 1;__delay_ms(150);RA5 = 0;asm("nop");//I RC3 = 1;__delay_ms(150);RC3 = 0;asm("nop");//R RA1 = 1;__delay_ms(150);RA1 = 0;asm("nop");//U RA2 = 1;__delay_ms(150);RA2 = 0;asm("nop");//C RA3 = 1;__delay_ms(150);RA3 = 0;asm("nop");//O RA0 = 1;__delay_ms(150);RA0 = 0;asm("nop");//J } void osszes( void ) { PORTA = 0xFF; PORTB = 0xFF; PORTC = 0xFF; __delay_ms(200); } void vosszes( void ) { RA0 = 1;asm("nop");RA3 = 1;asm("nop");RA2 = 1;asm("nop"); RA1 = 1;asm("nop");RC3 = 1;asm("nop");RA5 = 1;asm("nop"); RB7 = 1;asm("nop");RB6 = 1;asm("nop");RB5 = 1;asm("nop"); RB4 = 1;asm("nop");RB3 = 1;asm("nop");RC6 = 1;asm("nop"); RB1 = 1;asm("nop");RB0 = 1;asm("nop");RC7 = 1;asm("nop"); RC4 = 1;asm("nop");RC5 = 1;asm("nop"); __delay_ms(1000); RA0 = 0;asm("nop");RA3 = 0;asm("nop");RA2 = 0;asm("nop"); RA1 = 0;asm("nop");RC3 = 0;asm("nop");RA5 = 0;asm("nop"); RB7 = 0;asm("nop");RB6 = 0;asm("nop");RB5 = 0;asm("nop"); RB4 = 0;asm("nop");RB3 = 0;asm("nop");RC6 = 0;asm("nop"); RB1 = 0;asm("nop");RB0 = 0;asm("nop");RC7 = 0;asm("nop"); RC4 = 0;asm("nop");RC5 = 0;asm("nop"); __delay_ms(1000); }