domingo, 19 de noviembre de 2006

programa para controlar motor p-p

List P= 16f84
RADIX Hex
mvp EQU 0x10
ESTADO EQU 0x03
PORTA EQU 0x05
REG0 EQU 0x0c
REG1 EQU 0x0d
REG2 EQU 0x0e
TMRO1 EQU 0x01
PORTA1 EQU 0x0f
PORTB EQU 0x06
REG3 EQU 0x11
pq EQU 0x12
six EQU 0x13
ab EQU 0x14
org 0000h
goto inicio
org 0030h
inicio:
bsf ESTADO,5
movlw 0ffh
movwf PORTB
movlw 10h
movwf PORTA
movlw b'11010110'
movwf TMRO1
bcf ESTADO,5
movlw 06h
movwf JJ
movlw 01h
movwf PORTA
most:
movlw 01
movwf pq
movf PORTB,0
movwf REG0
andlw 03h
movwf REG1
incf REG1,1
movf REG1,0
movwf six
movf REG0,0
andlw 0f0h
movwf REG3
swapf REG3,0
movwf REG2
incf REG2,1
incf REG2,1

incf REG2,1
movf REG2,0
movwf ab
btfss PORTA,4
goto most
btfss PORTB,3
goto j
goto k
j:
btfss PORTB,2
goto x
goto y
x:

gg:
btfss PORTA,4
goto most
movlw 08h
movwf mvp
rota:
call velocidad
btfss PORTA,4
goto most
s: movf mvp,0
movwf PORTA
rrf mvp,1
btfss mvp,7
goto rota
movlw 08h
movwf mvp
goto s

y:
gg1:
btfss PORTA,4
goto most
movlw 01
movwf mvp
rota1:
call velocidad
btfss PORTA,4
goto most
s2: movf mvp,0
movwf PORTA
rlf mvp,1
btfss mvp,1
goto rota1
movlw 01h
movwf mvp
goto s2
k:
btfss PORTB,2
goto j2
goto k2
j2:

movlw 08h
movwf mvp
rota2:
call velocidad
btfss PORTA,4
goto most
s3: movf mvp,0
movwf PORTA
rrf mvp,1
decfsz REG2,1
goto rota20
m: btfsc PORTA,4
goto m
goto most

rota20:
btfss mvp,7
goto rota2
movlw 08h
movwf mvp
goto s3

k2:

movlw 01h
movwf mvp
rota3:
btfss PORTA,4
goto most
decfsz REG2,1
goto rota30
espera1:

btfsc PORTA,4
goto espera1
goto most
call velocidad

s4: movf mvp,0
movwf PORTA
rlf mvp,1

rota30:
btfss mvp,5
goto rota3
movlw 01h
movwf mvp
incf REG2,1
goto s4


velocidad:movf six,0
movwf REG1
movlw 18h
movwf pq
izq:
clrf TMRO1
explora:
btfss TMRO1,06
goto explora
decfsz pq,1
goto izq
decfsz REG1,1
goto bc
return
bc:
movlw 18h
movwf pq
goto izq
end

No hay comentarios: