#INCLUDE "DEFS.INC" ; ; .ORG 0 LJMP START ; ; SBUF .EQU 099H TH1 .EQU 08DH TL1 .EQU 08BH PCON .EQU 087H SCON .EQU 098H TI .EQU 099H RI .EQU 098H .ORG 100H NUM2 .EQU 51 NUM1 .EQU 50 NUM4 .EQU 53 NUM3 .EQU 52 NUM6 .EQU 55 NUM5 .EQU 54 NUM8 .EQU 57 NUM7 .EQU 56 NUM10 .EQU 59 NUM9 .EQU 58 NUMF .EQU 61 NUM11 .EQU 60 ;=========================================== AT .TEXT "ATZ" ATK .DB 0DH,0H ATCMGS .TEXT "AT+CMGS=55" ATCMGSK .DB 0DH,0H SMS .TEXT "0001000B91" ;9750582073F1 ;=====;"0001000B919712836618F9000020416650DA0C81402090E83C6FB7E0E173592E02D9CB721708E682C5C4" SMSK1 .DB 0H ;NUM2 .TEXT "0" ;NUM1 .TEXT "0" ;NUM4 .TEXT "0" ;NUM3 .TEXT "0" ;NUM6 .TEXT "0" ;NUM5 .TEXT "0" ;NUM8 .TEXT "0" ;NUM7 .TEXT "0" ;NUM10 .TEXT "0" ;NUM9 .TEXT "0" ;NUMF .TEXT "F" ;NUM11 .TEXT "0" ;SMSEND .TEXT "000020416650DA0C81402090E83C6FB7E0E173592E02D9CB721708E682C5C4" ;SMSK .DB 1AH,0DH,0H SMSEND1 .TEXT "00082A0422042004150412041E0413041000210020041E0442043A0440002E0020043A0430043F043E0442002E" SM1K .DB 1AH,0DH,0H,0H SMSEND2 .TEXT "00082A0422042004150412041E041304100021002000200020002004110430043304300436043D0438043A002E" SM2K .DB 1AH,0DH,0H,0H SMSEND3 .TEXT "00082A0422042004150412041E0413041000210020041E0442043A0440002E002004340432043504400438002E" SM3K .DB 1AH,0DH,0H,0H SMSEND4 .TEXT "00082A0422042004150412041E04130410002100200423043404300440043D044B04390020043404300442002E" SM4K .DB 1AH,0DH,0H,0H ;============= VOLTEND .TEXT "00082A0412043D0438043C0430043D0438043500210020041D043504420020043F043804420430043D0438044F" VOLTK .DB 1AH,0DH,0H,0H ;============= ATEO .TEXT "ATE0" ATEOK .DB 0DH,0H ATCPBS .DB 41H,54H,2BH,43H,50H,42H,53H,3DH,22H,53H,4DH,22H,0DH,0H ATCPBR .TEXT "AT+CPBR=1" ATCPBRK .DB 0DH,0H ATE1 .TEXT "ATE1" ATE1K .DB 0DH,0H ;================================================== START MOV IE,#0 MOV TMOD,#20h MOV TH1,#0FDh MOV TL1,#0FDh MOV PCON,#10000000B MOV SCON,#50h SETB TR1 SETB P3.2 SETB P3.3 SETB P3.4 SETB P3.5 SETB P3.7 SETB P1.2 ;контроль питания. SETB P1.0 SETB P1.1 ;================ATZ->OK================ MOV P1,#01111111b MOV DPTR,#AT ACALL PUTSTR ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH LCALL OKEY JZ ATOKD LJMP ERRORF ATOKD MOV P1,#11111111b ;================AT+CPBS="SM"===получаем доступ к сим ====== MOV DPTR,#ATCPBS ACALL PUTSTR ACALL TENGETCH ACALL GETCH ACALL GETCH ACALL GETCH LCALL OKEY JZ ATCPBSD LJMP ERRORF ATCPBSD MOV P1,#01111111b ;===============AT+CPBR=1===считываем первую ячейку======== MOV DPTR,#ATCPBR ACALL PUTSTR ACALL TENGETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH CJNE A,#43h,NOZAP ; сравнение и переход если не равно + (нет записи) LJMP YEPZAP NOZAP LJMP ERRORF MOV P1,#11111111b YEPZAP ACALL TENGETCH ; номер MOV NUM1,A ACALL GETCH MOV NUM2,A ACALL GETCH MOV NUM3,A ACALL GETCH MOV NUM4,A ACALL GETCH MOV NUM5,A ACALL GETCH MOV NUM6,A ACALL GETCH MOV NUM7,A ACALL GETCH MOV NUM8,A ACALL GETCH MOV NUM9,A ACALL GETCH MOV NUM10,A ACALL GETCH MOV NUM11,A MOV A,#46h ; ??????????????? MOV NUMF,A MOV P1,#01111111b LCALL TENGETCH LCALL TENGETCH ACALL GETCH ACALL GETCH ACALL GETCH MOV P1,#11111111b ;============================== DEGURKA MOV A,P3 JNB ACC.7,OXPAHA ; переход если 0 LJMP DEGURKA OXPAHA LCALL PROCED LJMP DEGURKA ;============================================ ;++++++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++++++++++++++++++++++++++ PROCED MOV R5,#0 ;питание CLR PSW.5 OPROS ACALL DEL100 CPL P1.7 MOV A,P3 ; снятие с охраны? JNB ACC.7,DALEE ; переход если 0 MOV P1,#11111111b RET DALEE ;------------------------ CJNE R5,#0,NOVOLT ; сравнили если R5 НЕ равен 0 то опрашивать не надо MOV A,P1 JB ACC.2,VVC ;перех если =1 MOV R7,#7 LCALL PROGR MOV R5,#1 VVC NOVOLT ;----------------------- JNB PSW.5,NOSRABOT ; переход если бит = 0 ;=======задержка 5 мин======= MOV P1,#01111111b ACALL PAUSEL ; MOV R5,#0 CLR PSW.5 MOV P1,#11111111b MOV A,P3 ; снятие с охраны? JNB ACC.7,DALEE1 ; переход если 0 MOV P1,#11111111b RET DALEE1 ;============================ NOSRABOT MOV A,P3 JNB ACC.5,KAPOT ; проверка 1шл. LJMP SHL2 KAPOT MOV R7,#1 LCALL PROGR SHL2 MOV A,P3 JNB ACC.4,BAGAZ ; проверка 2шл. LJMP SHL3 BAGAZ MOV R7,#2 LCALL PROGR SHL3 MOV A,P3 JNB ACC.3,DVERI ; проверка 3шл. LJMP SHL4 DVERI MOV R7,#3 LCALL PROGR SHL4 MOV A,P3 JNB ACC.2,UDAR ; проверка 3шл. удар LJMP SHL5 UDAR MOV R7,#4 LCALL PROGR SHL5 LJMP OPROS ; программа PROGR ;===========Сработка========== MOV P1,#01111111b ;===============AT+cmgs=18 отсылаем sms ============ MOV DPTR,#ATCMGS ACALL PUTSTR ;====вставить задержку.!!!!!!!!!!!!!!!!!! ; ACALL DEL1001 DEL1001 MOV R1,#512 DLY11 MOV R6,#512 DJNZ R6,$ DJNZ R1,DLY11 ;===========SMS===================== MOV DPTR,#SMS ACALL PUTSTR MOV A,NUM2 LCALL PUTCH MOV A,NUM1 LCALL PUTCH MOV A,NUM4 LCALL PUTCH MOV A,NUM3 LCALL PUTCH MOV A,NUM6 LCALL PUTCH MOV A,NUM5 LCALL PUTCH MOV A,NUM8 LCALL PUTCH MOV A,NUM7 LCALL PUTCH MOV A,NUM10 LCALL PUTCH MOV A,NUM9 LCALL PUTCH MOV A,#46H LCALL PUTCH MOV A,NUM11 LCALL PUTCH ;=======какой шлейф?======== CJNE R7,#1,SHLE2 MOV DPTR,#SMSEND1 LJMP SEND SHLE2 CJNE R7,#2,SHLE3 MOV DPTR,#SMSEND2 LJMP SEND SHLE3 CJNE R7,#3,SHLE4 MOV DPTR,#SMSEND3 LJMP SEND SHLE4 CJNE R7,#4,VOLT1 MOV DPTR,#SMSEND4 SEND LCALL PUTSTR SETB PSW.5 RET ;------------------------------------- VOLT1 MOV DPTR,#VOLTEND LCALL PUTSTR RET ;--------------------------- TENGETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH ACALL GETCH RET OKEY ACALL GETCH ACALL GETCH ACALL GETCH CJNE A,#4Fh,ERRL ; сравнение и переход если не равно ACALL GETCH CJNE A,#4Bh,ERRL ; OK ACALL GETCH ACALL GETCH MOV A,#0 ;возвращаем в А 0 если ОК RET ERRL MOV A,#1 RET ERRORF MOV P1,#11111111b LJMP START PUTSTR CLR A MOVC A,@A+DPTR JZ PUTSTR_E ACALL PUTCH INC DPTR SJMP PUTSTR PUTSTR_E RET PUTCH MOV SBUF,A JNB TI,$ CLR TI ;------zadergka------------------------------------ ; MOV R1,#10 ;DLY12 MOV R6,#10 ; DJNZ R6,$ ; DJNZ R1,DLY12 ;------------------------------------------------------------- RET GETCH CLR A JNB RI,GETCH MOV A,SBUF CLR RI RET PAUSEL MOV R3,#5 PUA LCALL PAUSER MOV A,P3 JNB ACC.7,DALEE2 ; переход если 0 MOV P1,#11111111b RET DALEE2 DJNZ R3,PUA RET PAUSER MOV A,#255 MOV R4,#255 L100 LCALL DEL100 LCALL DEL100 DJNZ R4,L100 RET DEL100 MOV R1,#255 DLY1 MOV R6,#255 DJNZ R6,$ DJNZ R1,DLY1 RET ; ; .END