;**********************************************************************
; *
; Filename: MICRO_SUMO *
; Date: *
; File Version: 1.0 *
; *
; Author: AKENAFAB *
; *
; *
; *
;**********************************************************************
list p=12f629 ; list directive to define processor
#include <p12f629.inc> ; processor specific variable definitions
errorlevel -302 ; suppress message 302 from list file
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
#DEFINE BANK0 BCF STATUS,5
#DEFINE BANK1 BSF STATUS,5
#DEFINE PORT GPIO
;***** VARIABLE DEFINITIONS
CBLOCK 0X20
COUNTER
REPEAT
PDel0
PDel1
REPEAT2
ENDC
;**********************************************************************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
ORG 0x020 ;
main
;---- ----------- --- CONFIGURACION OSCILADOR INTERNO 4MHz ---- ----- -----
BANK0
call 0x3FF
BANK1
movwf OSCCAL
BANK0
;--------------------------------------------------------
; --------------- INICIO DE PROGRAMA ----------------
; --------------- CONFIGURACION DEL PUERTO -------------
BANK0 ;CAMBIO A BANCO 0
CLRF GPIO
MOVLW 0X07
MOVWF CMCON ;COMPARADORES APAGADOS
BANK1 ;CAMBIO A BANCO 1
MOVLW B'001011' ;GP0-GP1 = pna1,PNA2
MOVWF TRISIO ;GP2= IR LED ~ 38 KHz
;GP4=Motor1 GP5=Motor2
BANK0 ;CAMBIO BANCO 0
;---------------------------------------------------------------------------
INICIO
MOVLW .50 ; 50 VECES SE REALIZA LA PWM
MOVWF REPEAT
CALL IR_BEACON_1 ; LLAMA SUBRUTINA PWM 38KHz 50%
BTFSC PORT,0 ; DETECTA SEÑAL IR?
GOTO NO
BSF PORT,5 ; SI, ACTIVA MOTOR1
PNA2
BTFSC PORT,1 ; DETECTA SEÑAL IR?
GOTO NO2 ;
BSF PORT,4 ;SI, ACTIVA MOTOR2
GOTO INICIO
NO
BCF PORT,5 ;ALTO MOTOR1
GOTO PNA2
NO2
BCF PORT,4 ;ALTO MOTOR2
GOTO INICIO ;REGRESOS AL INICIO DEL PROGRAMA
;------------------ Modulación 38Kz --- 26 us ---
IR_BEACON_1
BSF PORT,GP2 ;Ir LED ENCENDIDO
;NOP ; CON LOS 2 NOPS SE OPTIENE 38.5 KHz
;NOP ; SIN LOS NOPS SE OBTIENE 41.6KHZ
MOVLW .5
MOVWF COUNTER
DECFSZ COUNTER,F
GOTO $-1
BCF PORT,GP2 ;Ir LED APAGADO
nop
nop
NOP
DECFSZ REPEAT,F
GOTO IR_BEACON_1
RETURN
;----------------------__________________________--------------------------
;----------- Valor de Calibracion ---------
ORG 0X3FF
RETLW 0X080
;------------------------------------------
END ; directive 'end of program'