Você está na página 1de 2

program carrito

SUB PROCEDURE INTERRUPT


Delay_ms(15)
' motor one
PORTA.0=0
PORTA.1=0
' motor two
PORTA.2=0
PORTA.3=0
Delay_ms(500)
' motor one
PORTA.0=0
PORTA.1=1
' motor two
PORTA.2=1
PORTA.3=0
Delay_ms(3000)
' motor one
PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=1
PORTA.3=0
Delay_ms(1000)
INTCON.INTF=0
end sub

sub procedure modo1


' motor one
PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=0
PORTA.3=1
end sub
sub procedure modo2
' motor one
PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=0
PORTA.3=1
Delay_ms(3000)
' motor one
PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=1
PORTA.3=0
Delay_ms(1000)
' motor one

PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=0
PORTA.3=1
Delay_ms(2000)
' motor one
PORTA.0=1
PORTA.1=0
' motor two
PORTA.2=1
PORTA.3=0
Delay_ms(1000)
end sub
main:
INTCON.GIE=1
INTCON.INTE=1

' Enable Global interrupt


' Enable Global interrupt

ADCON1 = $06
TRISA=0
TRISB=$0F
TRISC.2=0

' PORTB all digital

CCP1CON= $0F
PWM1_Init(1000)
PWM1_Start
PWM1_Change_Duty(50)
PORTA=0
REPITE:
if PORTB.1=0 then
modo1()
else
modo2()
end if
GOTO REPITE
END.

Você também pode gostar