sábado, 24 de noviembre de 2007

PROGRAMA

Para emitirle la información al pic se utilizo un programa llamado MPLAB IDE v7.61que nos configura por medio de un motor de cruce el circuito realalt donde nos da la opción de que es trasferible.
El programa es:
MPLAB IDE V7.61

#INCLUDE p16f84a.inc
#INCLUDE bancos.inc
;----------------------------------------------------------------------------------------
;EL SENSOR CNY_70 ENTREGA UN UNO 1 CUANDO SENSA LA LINEA NEGRA Y CERO 0
;CUANDO SENSA LA SUPERFICIE BLANCA
;SENSOR 3 ENTREGA 5V (1) CUANDO DETECTAA UN OBJETO CON SUPERFICIE NEGRA Y CERO (0) CUANDO
;CAMINO ESTA LIBRE.


;S1 SENSOR PARA DETECCION DE OBSTACULOS CONECTADO A LA ENTRADA RB0
;S2 SENSOR IZQUIERDA CONECTADO A LA ENTRADA RB1
;S3 SENSOR DERECHA CONECTADO A LA ENTRADA RB2
;COMBINACIONES COMBINACIONES
; DE ENTRADA DE SALIDA
; S1 S2 S3
; RB2 RB1 RB0 (PUERTOS) RA2 RA1 RA0
; 0 0 0 EL ROBOT ESTA FUERA DE LINEA ----------------- 0 0 0 NO SE ACTIVA NINGUN MOTOR
; 0 0 1 EL ROBOT HAY OBSTACULO PER NO ESTA SOBRE LA LI. 0 0 0 SE ACTIVA EL MOTOR DE
; 0 1 0 EL ROBOT SE DESVIO HACIA LA DERECHA---------- 1 0 0
; 0 1 1 EL ROBOT ESTA SOBRE LA LINEA NEGRA----------- 1 1 0
; 1 0 0 SE DETECTA OBSTACULO SIN LINEA NEGRA------- 0 0 0
; 1 0 1 SE DETECTA OBSTACULO CON DESVIO A LA DER--- 0 0 PULSOS
; 1 1 0 SE DETECTA OBSTACULO CON DESVIO A LA IZQ --- 0 0 PULSOS
; 1 1 1 SE DETECTA OBSTACULO SIN DESVIO --- 0 0 PULSOS
;LAS PRIMERAS 4 COMBINACIONES
; HACEN QUE EL ROBOT FUNCIONE SI OBSTACULOS
;LA SALIDA RA0 CONTROLA EL MOTOR DEDERECHA
;LA SALIDA RA1 CONTROLA EL MOTOR IZAQUIERDA
; LOS MOTORES SE ACTIVAN CON 1 Y SE DESACTIVAN CON 0

;----------------------------------------------------------------------------------------
CBLOCK 0X20
DATO, VAR1
ENDC
;----------------------------------------------------------------------------
org 00
goto inicio
org 05
goto inicio
;-----------------------------------------------------------------------------
inicio
banco1
CLRF TRISA;LIMPIA EL CONTENIDO DEL REGISTRO TRISA PARA CONFIGURAR RA0,RA,1,RA2, COMO DE SALIDA
MOVLW B'00000111' ;
MOVWF TRISB ; CONFIGURA RB0,RB1,RB2 COMO PINES DE SALIDA
banco0 ;REGRESO AL BANCO 0 PARA PODER MENEJAR LOS PUERTOS

CLRF PORTA;BORRA PUERTO A Y PUERTO B
CLRF PORTB
LEE MOVFW PORTB; LEE EL PUERTO B PARA LA SEÑAL DE LOS SENSORES
ANDLW 0X07 ;
MOVWF DATO; 00000XXX INFORMACION DE LOS SENSORES
;------------------------LECTURA E INTERPRETACION DE SENSORES=-------------
;------------------------------------------------------------------------------------------------
MOVLW .0
SUBWF DATO,W ;RESTA PARA COMPARAR
BTFSC STATUS,Z;PREGUNTA SI EL RESULTADO ES CERO
GOTO OFF
;------------------------------------------------------------------------------------------------
MOVLW .1
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OFF
;------------------------------------------------------------------------------------------------
MOVLW .2
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .3
SUBWF DATO,W
BTFSC STATUS,Z
GOTO CR_IZ
;------------------------------------------------------------------------------------------------
MOVLW .4
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .5
SUBWF DATO,W
BTFSC STATUS,Z
GOTO CR_DR
;------------------------------------------------------------------------------------------------
MOVLW .6
SUBWF DATO,W
BTFSC STATUS,Z
GOTO OBJET
;------------------------------------------------------------------------------------------------
MOVLW .7
SUBWF DATO,W
BTFSC STATUS,Z
GOTO AVAN
GOTO LEE
;------------------------------------------------------------------------------------------------
;------------------------RUTINAS DE CONTROL---------------------------------------------
;----------------------APAGADO DE MORORES NO ACCION ---------------------------
OFF MOVLW .0
MOVWF PORTA
BSF PORTB,7
GOTO LEE
;----------------------CORRECCION CUANDO DESVIO A LA IZQUIERDA -----------
CR_IZ MOVLW .2
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;----------------------CORRECCION CUANDO DESVIO A LA DERECHA--------------
CR_DR MOVLW .1
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;----------------------AVANCE EN CONDICIONES NORMALES--------------------------
AVAN MOVLW .3
MOVWF PORTA
BCF PORTB,7
GOTO LEE
;---------------------CUANDO SE DETECTA UN OBJETO---------------------------------
OBJET MOVLW .4
MOVWF PORTA
BCF PORTB,7
GOTO LEE

end

1 comentario:

dianailse07 dijo...

la parte de

cblock
DATO, VAR1
ENDC

COMO SERIA EN EL PIC16F628?