?? gsmal.asm
字號:
LCALL FSS;調(diào)用發(fā)送漢字的子程序
MOV A,#1AH;發(fā)送16進制的1A結(jié)束字符
LCALL FS
LCALL FSCG;調(diào)用短信發(fā)送檢測子程序
JNZ FXLBJ1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FXLBJ
FXLBJ1:
RET
;發(fā)送"車輛被劫,請速與110聯(lián)系!!"短消息的子程序
FJJBJ:
LCALL CMGS;發(fā)送AT+CMGS=150短信長度子程序
;發(fā)送漢字的字數(shù)(15個漢字)
MOV A,#31H
LCALL FS
MOV A,#45H
LCALL FS
;準備發(fā)送"車輛被劫,請速與110聯(lián)系!!"
MOV DPTR,#TAB6
MOV R1,#60;發(fā)送15個漢字
LCALL FSS;調(diào)用發(fā)送漢字的子程序
MOV A,#1AH;發(fā)送16進制的1A結(jié)束字符
LCALL FS
LCALL FSCG;調(diào)用短信發(fā)送檢測子程序
JNZ FJJBJ1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FJJBJ
FJJBJ1:
RET
;發(fā)送"解防"短消息的子程序
FAJF:
LCALL CMGS;發(fā)送AT+CMGS=150短信長度子程序
;發(fā)送漢字的字數(shù)(2個漢字)
MOV A,#30H
LCALL FS
MOV A,#34H
LCALL FS
;準備發(fā)送"解防!"
MOV DPTR,#TAB7
MOV R1,#8;發(fā)送2個漢字
LCALL FSS;調(diào)用發(fā)送漢字的子程序
MOV A,#1AH;發(fā)送16進制的1A結(jié)束字符
LCALL FS
LCALL FSCG;調(diào)用短信發(fā)送檢測子程序
JNZ FAJF1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FAJF
FAJF1:
RET
;發(fā)送"設(shè)防"短消息的子程序
FASF:MOV DPTR,#500
LCALL DELAYXMS
LCALL CMGS;發(fā)送AT+CMGS=150短信長度子程序
;發(fā)送漢字的字數(shù)(2個漢字)
MOV A,#30H
LCALL FS
MOV A,#34H
LCALL FS
;準備發(fā)送"設(shè)防!"
MOV DPTR,#TAB8
MOV R1,#8;發(fā)送2個漢字
LCALL FSS;調(diào)用發(fā)送漢字的子程序
MOV A,#1AH;發(fā)送16進制的1A結(jié)束字符
LCALL FS
LCALL FSCG;調(diào)用短信發(fā)送檢測子程序
JNZ FASF1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FASF
FASF1:
RET
;清除接收方手機號碼子程序
YUSJ:
MOV 74H,#30H
MOV 75H,#30H
MOV 76H,#30H
MOV 77H,#30H
MOV 78H,#30H
MOV 79H,#30H
MOV 7AH,#30H
MOV 7BH,#30H
MOV 7CH,#30H
MOV 7DH,#30H
MOV 7EH,#30H
MOV 7FH,#30H
;初始化"車輛報警"的內(nèi)碼
MOV 64H,#38H
MOV 65H,#46H
MOV 66H,#36H
MOV 67H,#36H
MOV 68H,#38H
MOV 69H,#46H
MOV 6AH,#38H
MOV 6BH,#36H
MOV 6CH,#36H
MOV 6DH,#32H
MOV 6EH,#41H
MOV 6FH,#35H
MOV 70H,#38H
MOV 71H,#42H
MOV 72H,#36H
MOV 73H,#36H
RET
;檢測13906079959,PDU碼--3109069759F9
;手機號碼存放在74H-7F的內(nèi)存中
DXJC:
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,74H,DXJC1;判斷串口數(shù)據(jù)3
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,75H,DXJC1;判斷串口數(shù)據(jù)1
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,76H,DXJC1;判斷串口數(shù)據(jù)0
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,77H,DXJC1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,78H,DXJC1;判斷串口數(shù)據(jù)0
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,79H,DXJC1;判斷串口數(shù)據(jù)6
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7AH,DXJC1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7BH,DXJC1;判斷串口數(shù)據(jù)7
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7CH,DXJC1;判斷串口數(shù)據(jù)5
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7DH,DXJC1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7EH,DXJC1;判斷串口數(shù)據(jù)F
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7FH,DXJC1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
AJMP DXJC2
DXJC1:LCALL SB
DXJC2:
RET
NOP
NOP
;檢測13906079959
DHHM:
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,75H,DHHM1;判斷串口數(shù)據(jù)1
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,74H,DHHM1;判斷串口數(shù)據(jù)3
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,77H,DHHM1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,76H,DHHM1;判斷串口數(shù)據(jù)0
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,79H,DHHM1;判斷串口數(shù)據(jù)6
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,78H,DHHM1;判斷串口數(shù)據(jù)0
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7BH,DHHM1;判斷串口數(shù)據(jù)7
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7AH,DHHM1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7DH,DHHM1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7CH,DHHM1;判斷串口數(shù)據(jù)5
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
CJNE A,7FH,DHHM1;判斷串口數(shù)據(jù)9
CLR RI;軟件清除串口中斷標記
AJMP DHHM2
DHHM1:LCALL SB
DHHM2:
RET
;刪除SIM卡中所有短信的子程序
SCQBDX:
LCALL CMGL
LCALL PDOK
JNZ DXSCT
JNB RI,$
MOV DPTR,#100
LCALL DELAYXMS
MOV R2,#1
DXSC:
LCALL DXSZ;調(diào)用將R2轉(zhuǎn)化成兩位ASCII數(shù)值子程序
;十位為20H,個位為21H
LCALL SCDD;調(diào)用刪除短信程序,同一條短信刪除1次
INC R2
CJNE R2,#26,DXSC;刪除超過25條也退出循環(huán)
DXSCT:
RET
SCDD:
LCALL SCDX;調(diào)用刪除第X條短信指令子程序
MOV A,20H
LCALL FS
MOV A,21H
LCALL FS
LCALL HC
MOV DPTR,#1200
LCALL DELAYXMS
RET
RET
;刪除短信的子程序
SCJSDX:
MOV R2,#1
DXSC1:
LCALL DXSZ;調(diào)用將R2轉(zhuǎn)化成兩位ASCII數(shù)值子程序
;十位為20H,個位為21H
LCALL SCDD1;調(diào)用刪除短信程序,同一條短信刪除1次
INC R2
CJNE R2,#5,DXSC1;刪除超過25條也退出循環(huán)
RET
;取出刪除短信條數(shù)的十位/個位
DXSZ:
MOV A,R2
MOV B,#10 ;取出十位和個位
DIV AB
ORL A,#00110000B;調(diào)整為ASCII碼
MOV 20H,A ;十位在a
MOV 21H,B ;個位在b
MOV A,21H
ORL A,#00110000B;調(diào)整為ASCII碼
MOV 21H,A
RET
SCDD1:
LCALL SCDX;調(diào)用刪除第X條短信指令子程序
MOV A,20H
LCALL FS
MOV A,21H
LCALL FS
LCALL HC
MOV DPTR,#1000
LCALL DELAYXMS
RET
;判斷串口數(shù)據(jù)時候發(fā)送成功?超時退出
PDTI:;占用R4/R5/R1
MOV R1,#200;5毫秒超時退出!
PSZ:
MOV R4,#5
DT2:MOV R5,#5
DT1:JB TI,KQ
DJNZ R5,DT1
JB TI,KQ
DJNZ R4,DT2;25毫秒檢測一次
DJNZ R1,PSZ;超時退出
KQ:
RET
;判斷串口數(shù)據(jù)是否接收成功?超時退出
PDRI:;占用R4/R5/R1
MOV R1,#60;300毫秒超時退出!
PBZ:MOV R4,#200
DY2:MOV R5,#25
DY1:JB RI,KKQ;檢測到RI變1就退出
DJNZ R5,DY1;25微秒檢測一次
JB RI,KKQ;檢測到RI變1就退出
SETB C;程序正常時C=1
DJNZ R4,DY2;內(nèi)循環(huán)50毫秒
DJNZ R1,PBZ;超時退出
CLR C;對串口接收超時退出C=0
CLR RI;清除有串口數(shù)據(jù)標志
KKQ:RET
;判斷短信是否發(fā)送成功?超時退出
PDDXRI:;占用R4/R5/R1
MOV R1,#1000;5秒超時退出!
PBZ1:MOV R4,#200
DY22:MOV R5,#25
DY33:JB RI,KKQ1;檢測到RI變1就退出
DJNZ R5,DY33;延時25微秒檢測一次
JB RI,KKQ1;檢測到RI變1就退出
SETB C;程序正常時C=1
DJNZ R4,DY22;內(nèi)循環(huán)50毫秒
DJNZ R1,PBZ1;超時退出
CLR C;對串口接收超時退出C=0
CLR RI;清除有串口數(shù)據(jù)標志
KKQ1:RET
;跳過接收數(shù)據(jù)的子程序(專門針對PDU碼數(shù)據(jù))
TGSJ:
SETB C
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
JNC XPAS;如果檢測到發(fā)生超時退出,就跳出這段程序
DJNZ R3,TGSJ;判斷是否已經(jīng)收全部數(shù)據(jù)?
XPAS:
RET
;接收短信授權(quán)后的手機號碼子程序
GPSSJ:
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數(shù)據(jù)
MOV A,SBUF;將串口寄存器中接收到的數(shù)據(jù)給A
MOV @R0,A
INC R0;內(nèi)存單元地址
DJNZ R3,GPSSJ;判斷是否已經(jīng)收全部數(shù)據(jù)?
RET
FS:
CLR TI;先對TI進行軟件復(fù)位
MOV SBUF,A
LCALL PDTI;調(diào)用檢測TI變?yōu)楦唠娖降淖映绦?RET
;發(fā)送漢字的子程序(DPTR存放漢字內(nèi)碼、R1存放漢字的字數(shù)X2)
FSS:
MOV R3,#0
CF2:CLR TI;對TI軟件復(fù)位
MOV A,R3
MOVC A,@A+DPTR;查表漢字的內(nèi)碼
MOV SBUF,A
JNB TI,$;如果TI為0說明發(fā)送沒有完成,程序等待
INC R3
MOV A,R3
DJNZ R1,CF2
RET
;這是發(fā)送內(nèi)存數(shù)據(jù)的子程序
HZSZ:
CLR TI;先對TI進行軟件復(fù)位
MOV A,@R0
MOV SBUF,A
LCALL PDTI;調(diào)用檢測TI變?yōu)楦唠娖降淖映绦?INC R0
DJNZ R3,HZSZ
RET
;鳴叫一聲子程序
MJCS:
CLR FOK
MOV DPTR,#2500
LCALL DELAYXMS
SETB FOK
RET
;***************************************************
;***************************************************
;入口參數(shù):DPTR=MS(毫秒1-65535mS)
DELAYXMS:
MOV A,DPH
MOV R7,#01
JZ DF1
MOV R7,DPH
DF1:
MOV A,DPl
MOV R6,#1
JZ DEL1
MOV R6,DPl
DEL1:
MOV B,#0
DJNZ B,$
DJNZ B,$
DJNZ R6,DEL1
DJNZ R7,DF1
RET
NOP
NOP
;恭喜您!您已經(jīng)獲得車輛報警系統(tǒng)的控制權(quán)限!密碼:
TAB1:DB 36H,30H,36H,44H,35H,35H,39H,43H; 606D559C
DB 36H,30H,41H,38H,30H,30H,32H,31H; 60A80021
DB 36H,30H,41H,38H,35H,44H,46H,32H; 60A85DF2
DB 37H,45H,43H,46H,38H,33H,42H,37H; 7ECF83B7
DB 35H,46H,39H,37H,38H,46H,36H,36H; 5F978F66
DB 38H,46H,38H,36H,36H,32H,41H,35H; 8F8662A5
DB 38H,42H,36H,36H,37H,43H,46H,42H; 8B667CFB
DB 37H,45H,44H,46H,37H,36H,38H,34H; 7EDF7684
DB 36H,33H,41H,37H,35H,32H,33H,36H; 63A75236
DB 36H,37H,34H,33H,39H,36H,35H,30H; 67439650
DB 30H,30H,32H,31H,35H,42H,43H,36H; 00215BC6
DB 37H,38H,30H,31H,30H,30H,33H,41H; 7801003A
;有人動您的車,請察看!16
TAB2:DB 36H,37H,30H,39H,34H,45H,42H,41H;67094EBA
DB 35H,32H,41H,38H,36H,30H,41H,38H;52A860A8
DB 37H,36H,38H,34H,38H,46H,36H,36H;76848F66
DB 30H,30H,32H,43H,38H,42H,46H,37H;002C8BF7
DB 35H,42H,44H,46H,37H,37H,30H,42H;5BDF770B
DB 30H,30H,32H,31H;0021
;車輛電源異常,請檢查!16
TAB3:DB 38H,46H,36H,36H,38H,46H,38H,36H;8F668F86
DB 37H,35H,33H,35H,36H,45H,39H,30H;75356E90
DB 35H,46H,30H,32H,35H,45H,33H,38H;5F025E38
DB 30H,30H,32H,43H,38H,42H,46H,37H;002C8BF7
DB 36H,38H,43H,30H,36H,37H,45H,35H;68C067E5
DB 30H,30H,32H,31H;0021
;車門已被打開,請檢查!16
TAB4:DB 38H,46H,36H,36H,39H,35H,45H,38H;8F6695E8
DB 35H,44H,46H,32H,38H,38H,41H,42H;5DF288AB
DB 36H,32H,35H,33H,35H,46H,30H,30H;62535F00
DB 30H,30H,32H,43H,38H,42H,46H,37H;002C8BF7
DB 36H,38H,43H,30H,36H,37H,45H,35H;68C067E5
DB 30H,30H,32H,31H;0021
;行李廂異常,請檢查!14
TAB5:DB 38H,38H,34H,43H,36H,37H,34H,45H;884C674E
DB 35H,33H,41H,32H,35H,46H,30H,32H;53A25F02
DB 35H,45H,33H,38H,30H,30H,32H,43H;5E38002C
DB 38H,42H,46H,37H,36H,38H,43H,30H;8BF768C0
DB 36H,37H,45H,35H,30H,30H,32H,31H;67E50021
;車輛被劫,請速與110聯(lián)系!!1E
TAB6:DB 38H,46H,36H,36H,38H,46H,38H,36H;8F668F86
DB 38H,38H,41H,42H,35H,32H,41H,42H;88AB52AB
DB 30H,30H,32H,43H,38H,42H,46H,37H;002C8BF7
DB 39H,30H,31H,46H,34H,45H,30H,45H;901F4E0E
DB 30H,30H,33H,31H,30H,30H,33H,31H;00310031
DB 30H,30H,33H,30H,38H,30H,35H,34H;00308054
DB 37H,43H,46H,42H,30H,30H,32H,31H;7CFB0021
DB 30H,30H,32H,31H;0021
;解防 04
TAB7:DB 38H,39H,45H,33H,39H,36H,33H,32H;89E39632
;設(shè)防 04
TAB8:DB 38H,42H,42H,45H,39H,36H,33H,32H;8BBE9632
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -