Danke, Dominic! So hat es prima geklappt, aber es bleibt ein 
überlauffehler(nehme ich an), das Program läuft nur 1 mal hin und her. 
Ich habe es mit einem schlechten Schlechten Programmierstil gelöst:
| 1 | while(1) {
 | 
| 2 |     int x = 0x01,y = 0x80,i;
 | 
| 3 |     LATA = x | y;
 | 
| 4 |     delay();
 | 
| 5 | 
 | 
| 6 |     for(i=0;i<7;i++) {  
 | 
| 7 |         x = x << 1;
 | 
| 8 |         y = y >> 1;
 | 
| 9 |         LATA = x | y;
 | 
| 10 |         delay();
 | 
| 11 |     }
 | 
| 12 | 
 | 
| 13 |     for(i=7;i<0;i--) {  
 | 
| 14 |         x = x >> 1;
 | 
| 15 |         y = y << 1;
 | 
| 16 |         LATA = x | y;
 | 
| 17 |          delay();
 | 
| 18 |     }
 | 
| 19 | }
 | 
Der Idee nach, sollten die Bits immer weiter verschoben werden. Also x: 
0x01, 0x02, 0x04 etc. und y 0x80, 0x40, 0x20 etc... Am Ende soll doch 
x=0x80 sein und y=0x01, jedoch läuft das Programm nur 1 mal hin und 
zurück. Weiß jmd, woran es liegen könnte?