Aquest grup va codificar el sentit de gir amb l'interruptor connectat a RB4 i el mode manual amb l'interruptor connectat a RA5. En mode manual, el polsador de la placa (RA3) fa avançar els passos. Els diferents modes es controlen segons la següent taula:
| RB5 | RB7 | Mode |
| 0 | 0 | Aturat |
| 0 | 1 | Full step |
| 1 | 0 | Wave drive |
| 1 | 1 | Half step |
El seu programa es basa en tenir una funció per a cada mode en lque s'envia un valor o un altre al motor segons el sentit de gir triat. Després de cada pas, es mira si està en manual o no; si està en manual, s'espera a que el polsador s'activi. El programa final és:
#include <p16F690.inc> __config (_INTRC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_OFF&_MCLRE_OFF&_CP_OFF&_BOR_OFF&_IESO_OFF&_FCMEN_OFF)
cblock 0x20 Delay1 Delay2 temps endc
org 0 Inici bsf STATUS,RP0 bcf OPTION_REG,7 movlw 0xFF movwf TRISA movwf WPUA movlw 0xFF movwf TRISB clrf TRISC movlw 0x10 movwf ADCON1 bcf STATUS,RP0 bsf STATUS,RP1 movlw 0xFF movwf WPUB movlw 0xF7 movwf ANSEL movlw 0x00 movwf ANSELH bcf STATUS,RP0 bcf STATUS,RP1 movlw 0x01 movwf ADCON0 movlw 0x00 movwf PORTC ; MainLoop bsf ADCON0,GO btfsc ADCON0,GO goto $-1 movf ADRESH,w addlw 1 movwf Delay2 movf Delay2,w movwf temps btfss PORTB,5 goto InterruptorCero btfss PORTB,7 goto wavedrive goto halfstep ; InterruptorCero btfss PORTB,7 goto parado goto fullstep ; parado movlw 0x00 movwf PORTC goto MainLoop
manual btfss PORTA,5 return btfsc PORTA,3 goto manual btfss PORTA,3 goto $-1 return ; Bucle movf temps,w movwf Delay2 bucle decfsz Delay1,f goto bucle decfsz Delay2 goto bucle return ; PostPaso movwf PORTC call manual call Bucle return ; wavedrive movlw b'00010001' call PostPaso movlw b'10001000' btfss PORTB,4 movlw b'01000100' call PostPaso movlw b'00100010' call PostPaso movlw b'01000100' btfss PORTB,4 movlw b'10001000' call PostPaso goto MainLoop ; halfstep movlw b'10011001' btfss PORTB,4 movlw b'01010101' call PostPaso movlw b'10001000' btfss PORTB,4 movlw b'01000100' call PostPaso movlw b'10101010' btfss PORTB,4 movlw b'01100110' call PostPaso movlw b'00100010' btfss PORTB,4 movlw b'00100010' call PostPaso movlw b'01100110' btfss PORTB,4 movlw b'10101010' call PostPaso movlw b'01000100' btfss PORTB,4 movlw b'10001000' call PostPaso movlw b'01010101' btfss PORTB,4 movlw b'10011001' call PostPaso movlw b'00010001' btfss PORTB,4 movlw b'00010001' call PostPaso goto MainLoop ; fullstep movlw b'10011001' btfss PORTB,4 movlw b'01010101' call PostPaso movlw b'10101010' btfss PORTB,4 movlw b'01100110' call PostPaso movlw b'01100110' btfss PORTB,4 movlw b'10101010' call PostPaso movlw b'01010101' btfss PORTB,4 movlw b'10011001' call PostPaso goto MainLoop end

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.