'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 10/05/2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
;Programa para control computarizado con Visual Basic
INCLUDE "modedefs.bas" ;incluyen los modos de comunicación
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE pic16F628A, WDT_ON ' Watchdog Timer ON
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer
@ DEVICE pic16F628A, BOD_ON
@ DEVICE pic16F628A, MCLR_ON ' Master Clear Opción interno
@ DEVICE pic16F628A, LVP_OFF ' Bajo voltaje de programación
@ DEVICE pic16F628A, CPD_OFF ' Protección del código de memoria OFF
@ DEVICE pic16F628A, PROTECT_OFF' protección de código OFF
CMCON = 7
TRISA=%0
TRISB=%1100
serial VAR BYTE ;variable de almacenamiento de 255
sec1 VAR BIT ;variable sec1 de 1 bit 0 o 1
sec2 VAR BIT ;variable sec2 de 1 bit 0 o 1
sec3 VAR BIT ;variable sec3 de 1 bit 0 o 1
sec4 var bit
sec5 var bit
sec6 var bit
sec7 var bit
sec8 var bit
sec9 var bit
sec10 var bit
sec11 var bit
sec12 var bit
sec1=0 ;valores iniciales para las variables
sec2=0
sec3=0
sec4=0
sec5=0
sec6=0
sec7=0
sec8=0
sec9=0
sec10=0
sec11=0
sec12=0
SL1 VAR porta.6 ;nombre para los pines
SL2 VAR porta.7
SL3 VAR portb.6
SL4 var portb.7
SRF1 var porta.0
SRF2 var porta.1
SRF3 var porta.2
SRF4 var porta.3
ED1 var portb.2
ED2 var portb.3
SD1 var portb.4
SD2 var portb.5
prueba var porta.4
LOW prueba
PAUSE 3000
HIGH prueba
LOW prueba
pause 500
high prueba
pause 500
low prueba
pause 500
high prueba
pause 500
low prueba
pause 1000 ;led para saber si ya arrancó el PIC
Inicio:
SERIN portb.0,T9600,serial ;esperar por dato serial y guardarlo
select case serial
case "A"
IF sec1=0 THEN ;bandera para la chicharra 1 On
HIGH SL1 ;y 0 es OFF
SEROUT portb.1,T9600,["A"] ;enviar H diciendo que está prendi
else
LOW SL1
SEROUT portb.1,T9600,["B"] ;enviar I diciendo que está OFF
ENDIF
toggle sec1
case "B"
IF sec2=0 THEN
HIGH SL2
SEROUT portb.1,T9600,["C"] ;envía D diciendo q´ el led es ON
else
LOW SL2
SEROUT portb.1,T9600,["D"] ;envía E diciendo q´el led es OFF
eNDIF
toggle sec2
case "C"
IF sec3=0 THEN
HIGH SL3
SEROUT portb.1,T9600,["E"] ;envía G diciendo q´ el relé es ON
else
LOW SL3
SEROUT portb.1,T9600,["F"] ;envía F diciendo q´ el relé es OFF
ENDIF
toggle Sec3
case "D"
IF sec4=0 THEN ;bandera para la chicharra 1 On
HIGH sl4
SEROUT portb.1,T9600,["G"] ;y 0 es OFF
else
LOW SL4
SEROUT portb.1,T9600,["H"]
ENDIF
toggle sec4
case "E"
IF sec5=0 THEN ;bandera para la chicharra 1 On
HIGH SRF1
SEROUT portb.1,T9600,["I"] ;y 0 es OFF
else
LOW SRF1
SEROUT portb.1,T9600,["J"]
ENDIF
toggle sec5
case "F"
IF sec6=0 THEN ;bandera para la chicharra 1 On
HIGH SRF2
SEROUT portb.1,T9600,["K"] ;y 0 es OFF
else
LOW SRF2
SEROUT portb.1,T9600,["L"]
ENDIF
toggle sec6
case "H"
IF sec7=0 THEN ;bandera para la chicharra 1 On
HIGH SRF3
SEROUT portb.1,T9600,["M"] ;y 0 es OFF
else
LOW SRF3
SEROUT portb.1,T9600,["N"]
ENDIF
toggle sec6
case "I"
if portb.2 then
IF sec9=0 THEN ;bandera para la chicharra 1 On
HIGH SD1
SEROUT portb.1,T9600,["P"] ;y 0 es OFF
else
LOW SD1
SEROUT portb.1,T9600,["Q"]
ENDIF
toggle Sec9
endif
case "J"
if Portb.3 then
IF sec10=0 THEN ;bandera para la chicharra 1 On
HIGH SD2
SEROUT portb.1,T9600,["R"] ;y 0 es OFF
else
LOW SD2
SEROUT portb.1,T9600,["S"]
ENDIF
toggle Sec10
endif
end select
GOTO inicio