/* PROJECT-STEMCOMPUTER */ /* Van Montfort Jo 2008 */ #include #include "lcdlib.h" /* Set 19.6 MHz clock frequency */ #pragma CLOCK_FREQ 19660800 /* Set PIC16 configuration word */ #pragma DATA 0x2007, _HS_OSC & _WDT_OFF & _LVP_OFF void delay ( int size ) { int i, j ; for ( i=0 ; i < size ; i = i + 1 ){ for ( j=0 ; j < 300 ; j++ ){ } } } void setup_hardware (){ lcd_start (); trisb = 0xff; trisa = 0x00; } void display_value (int value){ lcd_cursor (2,0); lcd_print_ch ('0'+value); } void display_value1 (int value1){ lcd_cursor (6,0); lcd_print_ch ('0'+value1); } void display_value2 (int value2){ lcd_cursor (10,0); lcd_print_ch ('0'+value2); } void display_value3 (int value3){ lcd_cursor (14,0); lcd_print_ch ('0'+value3); } void display_value4 (int value4){ lcd_cursor (2,1); lcd_print_ch ('0'+value4); } void display_points (){ lcd_cursor (1,0); lcd_print_ch (':'); lcd_cursor (5,0); lcd_print_ch (':'); lcd_cursor (9,0); lcd_print_ch (':'); lcd_cursor (13,0); lcd_print_ch (':'); lcd_cursor (1,1); lcd_print_ch (':'); } void swapper (int*ptr,int*ptr1){ int temp = *ptr; *ptr = *ptr1; *ptr1 = temp; } void main (){ setup_hardware (); int a=0,b=0,c=0,d=0,e=0; int s[5]; s[0]='a'; s[1]='b'; s[2]='c'; s[3]='d'; s[4]='e'; while (1){ if (portb & 0x01){ a = a +1; delay (320); } if (portb & 0x02){ b = b + 1; delay (320); } if (portb & 0x04){ c = c + 1; delay (320); } if (portb & 0x08){ d = d + 1; delay (320); } if (portb & 0x10){ e = e + 1; delay (320); } if (portb & 0x40){ if (a>b){ swapper (&a,&b); swapper (&s[0],&s[1]); } if (b>c){ swapper (&b,&c); swapper (&s[1],&s[2]); } if (c>d){ swapper (&c,&d); swapper (&s[2],&s[3]); } if (d>e){ swapper (&d,&e); swapper (&s[3],&s[4]); } lcd_cursor (0,0); lcd_print_ch (s[4]); lcd_cursor (4,0); lcd_print_ch (s[3]); lcd_cursor (8,0); lcd_print_ch (s[2]); lcd_cursor (12,0); lcd_print_ch (s[1]); lcd_cursor (0,1); lcd_print_ch (s[0]); display_value (e); display_value1 (d); display_value2 (c); display_value3 (b); display_value4 (a); display_points (); } if (portb & 0x20){ lcd_clear (); a=b=c=d=e=0; s[0]='a'; s[1]='b'; s[2]='c'; s[3]='d'; s[4]='e'; } } }