;------------------------------------------------------------- ;Aplicación -> seguridad y alumbrado ;Fecha -> octubre 2005 ; con modem sms ;------------------------------------------------------------- MIDA 20M scan equ 99 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp inic &lea ld aux10 tim tielea 100 out aux11 set aux10 ld aux11 jz &lea call leavar reset aux10 reset aux11 clear disl listo com 0 inic ld batt ;se activa con la alrma en activ jnz inic1 jmp inic2 inic1 call ala ;subrutina seguridad sensores inic2 ld dispa jnz inic3 call gsm call aluin ;subrutina encendido lamp inic3 call ajus ;subrutina menu fin end ;------------------------------------------------------------- ;gsm. inicio subrutina para mensajeria gsm -------------------------------------- ; llamar a modem remoto y establecer conexion-------------------------- gsm ld llamar jz gsm1 clear disl numero at 0 clear disl llamard com 0 ;colgar una llamada y pasar a modos comandos---------------------------- gsm1 ld cuelga jz gsm2 at 2 clear disl colgar com 0 ;responder llamada entrante-------------------------------------------- gsm2 movri cmod movci 2 cpei desc jmp gsm3 desc at 1 clear disl lineas com 0 setri cmod -2 ;leer mensaje sms nuevo------------------------------------------------- gsm3 ld r_sms jz gsm4 reset t_mod movri n_sms at 4 verif ld 76 jz verif clear com 9 loc 11 lecb 2 4 stoi recmen call cont jmp gsm51 com 0 set t_mod ;borrar mensaje sms del modem gsm--------------------------------------------- gsm4 ld borrar jz gsm5 movri reg_int at 5 clear disl borrando com 0 ;enviar mensaje sms--------------------------------------------- gsm5 ld enviar jz gsm6 gsm51 clear call mensa at 3 ; clear ; disl enviar_m ; com 0 setri temtie 30 call tempo clear disch 65 disch 84 disch 43 disch 67 disch 77 disch 71 disch 68 disch 61 disch 49 disch 44 disch 52 disch 13 com 1 setri temtie 100 call tempo gsm6 ret ;gsm. fin subrutina para mensajeria gsm -------------------------------------- ;------------------------------------------- ;-------------------------------------------- ;--------------------------------------- ;ala-------------------------------- ala ala0 reset aux1 ;reset reles inicio monitoria sensores reset aux2 reset aux3 reset aux8 reset salida reset salida1 ldnt sensor ;sensor se activa de primero no temporiza la sirena jnz ala01 ldnt puerta ;puerta primero espera 3 segudos al sensor jnz ala00 jmp fala ala00 ldnt sensor ;tempo de 3 segundos por puerta para acivar jnz ala1 ;si en la espera llega sensor espera 10 segundos mas reset salida ;call ajus ld aux1 tim tieesp1 30 out salida1 set aux1 ld salida1 jz ala00 ;termina tempo y espera sensor sino dispara ldnt sensor jnz ala1 ala01 set salida ;dispara sin tempo jmp ala2 ala1 reset salida ;si se activo puerta sensor espera otros 10 seg reset salajus call ajus ld salajus jnz fala ld aux8 tim tieesp 100 out salida set aux8 ld salida ;fintiempos si no clear se dispara jz ala1 ala2 set dispa set 102 set 103 set 104 ld 130 jz ala22 ld tel jz telca ;0 telefono casa jmp telce ;1 telefono celular telca ;clear ; disl tel_cas ; AT 0 jmp ala22 telce ;clear ; disl tel_cel ; AT 0 ala22 reset salajus call ajus ;alarma disparada espera 30 segundos para silenciar sola ld salajus jnz fala ld aux2 tim tieala 300 out aux3 set aux2 ld aux3 jz ala22 AT 2 movri 42 stoi alarho movri 41 stoi alarmi movri 44 stoi alardi fala ret ;ajus---------------------------------------------------- ajus ld clear ;proced de enter o clear jz ajus1 ; AT 2 ;reset general de perifericos reset dispa reset 102 reset 103 reset 104 clear disl cleon com 0 set salajus reset salida call beep ;suena dos veces se desartiva call beep reset batt clear disl alarof com 0 movri 42 stoi ahoff movri 41 stoi amoff movri 44 stoi adoff write 0 1 call gsm51 jmp ajus3 ajus1 ld batt jnz ajus3 ld enter ;activa alarma jz ajus3 clear disl enton com 0 reset aux4 reset aux5 ajus2 ld puerta ;puerta cerrada en espera jz abrio clear disl puece com 0 jmp ajus2 abrio ld puerta ;abrio puerta en espera ;clear ;disl pueop ;com 0 jz abrio ;cerro puerta inicia activacion por tiempo activ ld aux4 ;tempo activacion alarma tim tieini 30 out aux5 set aux4 ld aux5 jz activ call beep ;sonido alarma activada set batt clear disl alaron com 0 movri 42 stoi ahon movri 41 stoi amon movri 44 stoi adon write 0 1 call gsm51 ajus3 ret ;----------------------------------------------------- beep set 101 ;sonido acti desacti ld aux6 tim timbeep 3 out aux7 set aux6 ld aux7 jz beep reset aux6 reset 101 ret ;------------------------------------------------- aluin ink 61 ;prende y apaga el circuito...interesante xor 102 out aux102 ld aux102 out 102 ink 63 xor 103 out aux103 ld aux103 out 103 movri on103 ;horario encendido 103 movri diaho cpei al000 jmp al001 al000 set 103 al001 movri on104 ;horario encendido 104 movri diaho cpei al002 jmp al003 al002 set 104 al003 ld 103 ;si se encendio 103 lo apaga en 1 hora auto jz alu01 jmp alu02 alu01 movri 43 ;guarda horario+60 movri off103 addi stoi tie103 movri tie103 movci 1439 ;23 horas 59 minutos horario cpgei alu0a jmp alu40 alu0a movri tie103 ;si es mayora a 1439 HAce la resta movci 1439 subi stoi tie103 jmp alu40 alu02 movri tie103 ;compara horario con tie103 movri 43 cpei alu03 jmp alu40 alu03 reset 103 movci 1500 stoi on103 ;PARA EL 104=============== alu40 ld 104 ;si se encendio 104 lo apaga en 1 hora auto jz alu41 jmp alu42 alu41 movri 43 ;guarda horario+60 movri off104 addi stoi tie104 movri tie104 movci 1439 ;23 horas 59 minutos horario cpgei alu4a jmp edia0 alu4a movri tie104 ;si es mayora a 1439 hace la resta movci 1439 subi stoi tie104 jmp edia0 alu42 movri tie104 ;compara horario con tie104 movri 43 cpei alu43 jmp edia0 alu43 reset 104 movci 1500 stoi on104 edia0 movri dia ;solo pasa una vez al dia movri hoy cpei diaex ;pregunta si el dia es el de hoy si no sigue aq cambiar el dia movri dia stoi hoy edia1 movri dia ;busca el dia lo encuentra y cambia las variables de on off movri dia1 cpei adia1 jmp edia2 adia1 movri diaon1 stoi diaon movri diatm1 stoi diatm jmp diaex edia2 movri dia movri dia2 cpei adia2 jmp edia3 adia2 movri diaon2 stoi diaon movri diatm2 stoi diatm jmp diaex edia3 movri dia movri dia3 cpei adia3 jmp edia4 adia3 movri diaon3 stoi diaon movri diatm3 stoi diatm jmp diaex edia4 movri dia movri dia4 cpei adia4 jmp edia5 adia4 movri diaon4 stoi diaon movri diatm4 stoi diatm jmp diaex edia5 movri dia movri dia5 cpei adia5 jmp edia6 adia5 movri diaon5 stoi diaon movri diatm5 stoi diatm jmp diaex edia6 movri dia movri dia6 cpei adia6 jmp edia7 adia6 movri diaon6 stoi diaon movri diatm6 stoi diatm jmp diaex edia7 movri dia movri dia7 cpei adia7 jmp diaex adia7 movri diaon7 stoi diaon movri diatm7 stoi diatm jmp diaex diaex movri diaho ;ejecuta secuencias de encendido apagado movri diaon cpli ilufi ;menor va a ret sigue apagada movri diaho ;el horario paso a diaon(hora de encendido) movri diatm cpli laon ;pero en menor que el tiempo de apagado jmp laof ;horario mayor que el tiempo de apagado laon set lamp jmp ilufi laof reset lamp ilufi movri diaho stoi horario ret ;-------------------------------------- ;mensa. arma el mensaje mensa mensa1 ld 900 ;lee un reg rele y lo pasa a un int. con 1 o 0 jnz mensa11 setri 900i 0 jmp mensa2 mensa11 setri 900i 1 mensa2 ld 103 jnz mensa21 setri 103i 0 jmp mensa3 mensa21 setri 103i 1 mensa3 CLEAR ;Borra el buffer intermedio. disch 91 ;[ DISRI 44 0 ;Copia al buffer el contenido del reg. 400;(día) DISCH 47 ;Copia al buffer el carácter ASCII 47 (/). DISRI 45 0 ;Copia al buffer el contenido del reg. 402;(mes) DISCH 47 ;Copia al buffer el carácter ASCII 47 (/). DISRI 46 0 ;Copia al buffer el contenido del reg. 403;(año). disch 93 ;] DISCH 32 ;Copia al buffer el carácter ASCII 32;(espacio en blanco). disch 91 DISRI 42 0 ;Copia al buffer el contenido del reg. 452;(hora). DISCH 58 ;Copia al buffer el carácter ASCII 58 (:) DISRI 41 0 ;Copia al buffer el contenido del reg. 451;(minutos) disch 93 DISCH 32 ;Copia al buffer el carácter ASCII 32;(espacio en blanco). DISCH 57 ;900= DISCH 48 DISCH 48 disch 61 ;= disri 900i 0 DISCH 32 ;Copia al buffer el carácter ASCII 32;(espacio en blanco). DISCH 49 ;103= DISCH 48 DISCH 51 disch 61 ;= disri 103i 0 DISCH 32 ;Copia al buffer el carácter ASCII 32;(espacio en blanco). mensaf ret ;--------------------------------------- ;cont. control por sms cont movri recmen movci 1230 cpei cont1 jmp cont2 cont1 reset 103 cont2 movri recmen movci 1231 cpei cont21 jmp cont3 cont21 set 103 cont3 movri recmen movci 9000 cpei cont31 jmp cont4 cont31 reset 900 cont4 movri recmen movci 9001 cpei cont41 jmp cont5 cont41 set 900 cont5 contf ret ;----------------------------------------- ;parametros: temtie=registro valor de tiempo tempo reset temaux1 reset temaux2 tempo1 ld temaux1 timr timtem temtie out temaux2 set temaux1 ld temaux2 jz tempo1 tempof ret ;===================================== leavar ; inicio reg. para subrutina gsm----------------- ;[REG_RELAYS] llamar equ 270 cuelga equ 271 enviar equ 272 borrar equ 273 r_sms equ 132 t_mod equ 134 ;scan equ 99 ;[REG_INTEGERS] cmod equ 23 n_sms equ 24 reg_int equ 270 ;[TIM] ;[CNT] ;[NOP] llamard lite "LLAMADA" enviar_m lite "envia SMS" numero lite "3103150030" numero_m lite "3102036819" mensaje lite "ALARMA 1" borrando lite "borrar SMS" colgar lite "Colgar" lineas lite "descolgar" borsms lite "AT+CMGD=1,4" ;VARIABLES PARA INICIAR setri 20 55 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OJO clear disl numero_m at 6 ; fin reg. subrutina gsm----------------------- ;[REG_RELAYS] sensor equ 0 puerta equ 1 clear equ 62 enter equ 60 salida equ 100 lamp equ 102 aux1 equ 250 aux2 equ 251 aux3 equ 252 aux4 equ 253 ;aux encendido aux5 equ 254 ;aux encendido aux6 equ 255 aux7 equ 256 ilu1 equ 257 ilu2 equ 258 aux102 equ 259 ;aux para on/off lamp aux103 equ 260 ;aux para on/off 103 salajus equ 261 ;indica cauando se entro a ajus aux8 equ 262 aux10 equ 263 aux11 equ 264 salida1 equ 265 conec equ 266 ;DELA 270 A LA 280 OCUPADA ARRIBA temaux1 equ 281 ;de tempo temaux2 equ 282 batt equ 900 tel equ 901 dispa equ 902 ;[REG_INTEGERS] dia equ 47 diaho equ 43 diaon equ 250 diatm equ 251 hoy equ 252 horario equ 253 recmen equ 268 ;recibe mensaje sms ;270 ocupada arriba dia1 equ 301 dia2 equ 302 dia3 equ 303 dia4 equ 304 dia5 equ 305 dia6 equ 306 dia7 equ 307 diaon1 equ 310 diatm1 equ 311 diaon2 equ 312 diatm2 equ 313 diaon3 equ 314 diatm3 equ 315 diaon4 equ 316 diatm4 equ 317 diaon5 equ 318 diatm5 equ 319 diaon6 equ 320 diatm6 equ 321 diaon7 equ 322 diatm7 equ 323 on103 equ 324 ;se programa para que se prenda en un horario definido ;cuando off se setea a 1500 tie103 equ 325 ;horario apagado 103 on104 equ 326 tie104 equ 327 off103 equ 328 ;default 60 minutos off104 equ 329 ;default 15 minutos ahoff equ 330 ;hora off alarma amoff equ 331 ;minuto off adoff equ 332 ;dia off ahon equ 333 ;hora on amon equ 334 ;minuto on adon equ 335 ;dia on alarho equ 336 ;disparo hora alarmi equ 337 alardi equ 338 900i equ 340 ;forma entero del reg rele 900 103i equ 341 temtie equ 343 ;tiempo de tempo ;[REG_FLOATS] ;[TIM] tieesp equ 200 ;3 seg desde abre puerta o 10 seg con sensor tieala equ 201 ;30 seg para apagar sola tieini equ 202 ;3 seg en ajus timbeep equ 203 ilutem equ 204 tieesp1 equ 205 tielea equ 206 timtem equ 207 ;tempo de tempo ;[CNT] ;[TEXTO] alaron lite "ala on" alarof lite "ala off" listo lite "listo" enton lite "ent on" cleon lite "cle on" puece lite "pue cer" pueop lite "pue abi" tel_cas lite "9,2481430" tel_cel lite "82,033102036819" ;tel_cas lite "12" ;----------------------------------------------- file 0,500d,520t,330i,331i,332i,333i,334i,335i,len=200,type=c ; AT E0 &D0 &K3 SO=5 &W echo no, no dtr, con handshake hardware, aa de 5 timbres, para grabar en eeprom ;tiempos de prueba movci 1 stoi dia1 movci 2 stoi dia2 movci 3 stoi dia3 movci 4 stoi dia4 movci 5 stoi dia5 movci 6 stoi dia6 movci 0 stoi dia7 reset aux102 reset aux10 reset aux11 set conec movci 1140 ;lunes stoi diaon1 movci 1260 stoi diatm1 movci 1140 ;martes stoi diaon2 movci 1270 stoi diatm2 movci 1200 ;miercoles stoi diaon3 movci 1359 stoi diatm3 movci 1145 ;jueves stoi diaon4 movci 1340 stoi diatm4 movci 1240 ;viernes stoi diaon5 movci 1360 stoi diatm5 movci 1140 ;sabado stoi diaon6 movci 1320 stoi diatm6 movci 1140 ;domingo stoi diaon7 movci 1380 stoi diatm7 movci 1500 stoi on103 movci 1500 stoi on104 movci 60 stoi off103 movci 15 stoi off104 ret