#include <p18f452.h>
#include <delays.h>
void main(void)
{
long int i=0;

TRISC = 0x00;
TRISD = 0x00;

PORTCbits.RC0 = 0; // Enable A
PORTCbits.RC4 = 0; // Enable B

PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 0; //Input 3
PORTDbits.RD2 = 0; //Input 4



PORTCbits.RC0 = 1; // Enable A (Coil #1)		
PORTCbits.RC4 = 1; // Enable B (Coil #2)

while(1) //Step Forever
{

//Step 1 AB

Delay100TCYx(45);
PORTCbits.RC1 = 1; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 1; //Input 4
PORTDbits.RD2 = 0; //Input 3

Delay100TCYx(5);
PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 1; //Input 2

PORTDbits.RD3 = 0; //Input 4
PORTDbits.RD2 = 1; //Input 3



//Step 2 A*B


Delay100TCYx(45);
PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 1; //Input 2

PORTDbits.RD3 = 1; //Input 4
PORTDbits.RD2 = 0; //Input 3

Delay100TCYx(5);
PORTCbits.RC1 = 1; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 0; //Input 4
PORTDbits.RD2 = 1; //Input 3


//Step 3 A*B*


Delay100TCYx(45);
PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 1; //Input 2

PORTDbits.RD3 = 0; //Input 4
PORTDbits.RD2 = 1; //Input 3

Delay100TCYx(5);
PORTCbits.RC1 = 1; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 1; //Input 4
PORTDbits.RD2 = 0; //Input 3


//Step 4 AB*


Delay100TCYx(45);
PORTCbits.RC1 = 1; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 0; //Input 4
PORTDbits.RD2 = 1; //Input 3

Delay100TCYx(5);
PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 1; //Input 2

PORTDbits.RD3 = 1; //Input 4
PORTDbits.RD2 = 0; //Input 3


//Step 5 AB


Delay100TCYx(45);
PORTCbits.RC1 = 1; //Input 1
PORTCbits.RC2 = 0; //Input 2

PORTDbits.RD3 = 1; //Input 4
PORTDbits.RD2 = 0; //Input 3

Delay100TCYx(5);
PORTCbits.RC1 = 0; //Input 1
PORTCbits.RC2 = 1; //Input 2

PORTDbits.RD3 = 0; //Input 4
PORTDbits.RD2 = 1; //Input 3


}

}

