P2C-Plus Pascal örnek program kodu

Başlatan ibrsel, 17 Ağustos 2006, 23:43:52

ibrsel

Bir önceki mesajımda programı indirmek için link vermiştim...Programı indiren arkadaşlar için belki bu örnek program işlerine yarayabilir...


//If there are 8 LEDs connected to the port B
//the lit LED will continuously move up and down
//(example for PIC target)

program TEST;

const var a: array[2..9] of char := ( 1, 2, 4, 8, 16, 32, 64, 128 );
var i, i16: integer;
var i8: char;

procedure delay;
var i, j: char;
 begin
   i := 0;
   while i < 150 do
     begin
       i := i + 1;
       j := 0;
       while j < 200 do
         begin
           j := j + 1;
           nop;
         end;
     end;
 end;

begin
   //Initialization
   disable_interrupt( 'GIE' );
   set_bit( 'STATUS', 'RP0' );
   set_tris_a( 0 );
   set_tris_b( 0 );
   clear_bit( 'STATUS', 'RP0' );
   output_port_a( 0 );
   output_port_b( 0 );
   
   while 1 do
   begin
     for i8 := 2 to 9 do
     begin
       OUTPUT_PORT_B( a[i8] );
       delay;
       nop;
     end;
     
     for i8 := 8 downto 3 do
     begin
       OUTPUT_PORT_B( a[i8] );
       delay;
       nop;
     end;
   
     for i16 := 2 to 9 do
     begin
       OUTPUT_PORT_B( a[i16] );
       delay;
     end;
     
     for i16 := 8 downto 3 do
     begin
       OUTPUT_PORT_B( a[i16] );
       delay;
     end;
     
     for i16 := 259 to 266 do
     begin
       OUTPUT_PORT_B( a[i16-257] );
       delay;
     end;
     
     for i16 := 265 downto 258 do
     begin
       OUTPUT_PORT_B( a[i16-257] );
       delay;
     end;
   
     for i8 := 2 to 9 do
     begin
       OUTPUT_PORT_B( a[i8] );
       delay;
     end;
     
     for i8 := 8 downto 3 do
     begin
       OUTPUT_PORT_B( a[i8] );
       delay;
     end;
   
     for i16 := 2 to 9 do
     begin
       OUTPUT_PORT_B( a[i16] );
       delay;
     end;
     
     for i16 := 8 downto 3 do
     begin
       OUTPUT_PORT_B( a[i16] );
       delay;
     end;
     
     for i16 := 259 to 266 do
     begin
       OUTPUT_PORT_B( a[i16-257] );
       delay;
     end;
     
     for i16 := 265 downto 258 do
     begin
       OUTPUT_PORT_B( a[i16-257] );
       delay;
     end;
   end;    
end.