?? clbj.txt
字號:
DCSJ:
;+CPBR: 1,"13906079959",129,""
MOV R3,#12;跳過12個數據
LCALL TGSJ;調用跳過串口數據子程序
XRSJ1:
RET
;寫入授權電話號碼及密碼
BCDM:
;AT+CPBW=1,"13906079959"
DDH:;寫入授權電話號碼
LCALL CPBW
MOV A,#31H
LCALL FS
MOV A,#2CH
LCALL FS
MOV A,#22H
LCALL FS
LCALL JSFSJ;調用寫入授權電話號碼13906079959
MOV A,#22H
LCALL FS
LCALL HC
LCALL PDOK
JZ DDH
;寫入密碼
;AT+CPBW=2,"8F 66 8F 86 62 A5 8B 66"
XMM:
LCALL CPBW
MOV A,#32H
LCALL FS
MOV A,#2CH
LCALL FS
MOV A,#22H
LCALL FS
;寫入"車輛報警"4個漢字 從內存64H-73H一共16個內存
MOV R3,#16;定義發送的數據總長度為16個
MOV R0,#64H;數據從內存的64H開始
LCALL HZSZ;調用發送內存數據的子程序
MOV A,#22H
LCALL FS
LCALL HC
LCALL PDOK
JZ XMM
RET
JCDYH:
CLR RI;清除有串口數據標志
LCALL PDRI;2秒內檢測串口是否有數據返回?
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0DH,WD;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0AH,WD;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#3EH,WD;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#20H,WD;判斷串口數據
CLR RI;軟件清除串口中斷標記
;判斷手機是不是回答>代碼? 0D 0A 3E 20
MOV A,#0FFH;檢測到>,對A置1
RET
WD:CLR A;沒有檢測到>,對A清零
CLR RI;清除有串口數據標志
RET
;檢測手機是否回答OK?
PDOK:
LCALL PDDA
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#4FH,SB;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#4BH,SB;判斷串口數據
LCALL PDDA
;判斷是不是手機回答的OK代碼? 0D 0A 4F 4B 0D 0A
MOV A,#0FFH;檢測到OK,對A置1
RET
;檢測手機是否回答0D/0A?
PDDA:
CLR RI;清除有串口數據標志
LCALL PDRI;2秒內檢測串口是否有數據返回?
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0DH,SB;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0AH,SB;判斷串口數據
CLR RI;軟件清除串口中斷標記
RET
SB:CLR A;沒有檢測到OK,對A清零
CLR RI;清除有串口數據標志
RET
;發送AT+CLCC,來電顯示
;00 43 00 4C 00 43 00 43
CLCC:
LCALL ATC
MOV A,#4CH
LCALL FS
MOV A,#43H
LCALL FS
MOV A,#43H
LCALL FS
LCALL HC;回車!
RET
;發送AT+CPAS查詢手機狀態子程序
CPAS:
LCALL ATC
MOV A,#50H
LCALL FS
MOV A,#41H
LCALL FS
MOV A,#53H
LCALL FS
LCALL HC;回車!
;手機狀態子程序
;跳過9個內存
MOV R3,#9;定義接收數據的總長度
LCALL TGSJ;調用接收串口數據子程序
MOV R0,#25H;數據在內存的存放位置
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
MOV @R0,A
INC R0;內存單元地址
;跳過8個內存
MOV R3,#8;定義接收數據的總長度
LCALL TGSJ;調用接收串口數據子程序
RET
;發送AT+CMGS=150,發送短信
;00 43 00 4D 00 47 00 53 00 3D
CMGS:
LCALL ATC
MOV A,#4DH
LCALL FS
MOV A,#47H
LCALL FS
MOV A,#53H
LCALL FS
MOV A,#3DH
LCALL FS
MOV A,#31H
LCALL FS
MOV A,#35H
LCALL FS
MOV A,#30H
LCALL FS
LCALL HC;回車!
LCALL JCDYH;調用等待手機回答“>”的子程序
JNC CSJ;檢測到>,轉入CSJ
MOV DPTR,#2000;延時2秒
LCALL DelayXmS
AJMP CMGS
CSJ:
LCALL DXZT;調用發固定的短信字頭089168子程序
LCALL HMCS;調用發送短信中心號碼子程序13800597500
LCALL DZZB;調用短信中部固定數據11000B81
LCALL JSFSJ;調用發送短信接收方手機號碼子程序13906079959
LCALL DYZXSJ;調用下部固定數據0008A9
RET
;發送短信固定字頭089168子程序
DXZT:
MOV A,#30H
LCALL FS
MOV A,#38H
LCALL FS
MOV A,#39H
LCALL FS
MOV A,#31H
LCALL FS
MOV A,#36H
LCALL FS
MOV A,#38H
LCALL FS
RET
;發送短信中心號碼子程序
;短信中心的號碼存放在58H-63H的內存中
HMCS:
MOV A,58H
LCALL FS
MOV A,59H
LCALL FS
MOV A,5AH
LCALL FS
MOV A,5BH
LCALL FS
MOV A,5CH
LCALL FS
MOV A,5DH
LCALL FS
MOV A,5EH
LCALL FS
MOV A,5FH
LCALL FS
MOV A,60H
LCALL FS
MOV A,61H
LCALL FS
MOV A,62H
LCALL FS
MOV A,63H
LCALL FS
RET
;發送短信中間固定數據11000B81子程序
DZZB:
MOV A,#31H
LCALL FS
MOV A,#31H
LCALL FS
MOV A,#30H
LCALL FS
MOV A,#30H
LCALL FS
MOV A,#30H
LCALL FS
MOV A,#42H
LCALL FS
MOV A,#38H
LCALL FS
MOV A,#31H
LCALL FS
RET
;發送短信息接收方手機號碼子程序
;手機號碼存放在74H-7F的內存中
JSFSJ:
MOV A,74H
LCALL FS
MOV A,75H
LCALL FS
MOV A,76H
LCALL FS
MOV A,77H
LCALL FS
MOV A,78H
LCALL FS
MOV A,79H
LCALL FS
MOV A,7AH
LCALL FS
MOV A,7BH
LCALL FS
MOV A,7CH
LCALL FS
MOV A,7DH
LCALL FS
MOV A,7EH
LCALL FS
MOV A,7FH
LCALL FS
RET
;發送短信中間固定數據0008A9子程序
DYZXSJ:
MOV A,#30H
LCALL FS
MOV A,#30H
LCALL FS
MOV A,#30H
LCALL FS
MOV A,#38H
LCALL FS
MOV A,#41H
LCALL FS
MOV A,#39H
LCALL FS
RET
;短信發送檢測,+CMGS: 138
FSCG:CLR RI;清除有串口數據標志
LCALL PDDXRI;5秒內檢測串口是否有數據返回?
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0DH,SBB;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#0AH,SBB;判斷串口數據
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#2BH,SBB;判斷串口數據+
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#43H,SBB;判斷串口數據C
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#4DH,SBB;判斷串口數據M
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#47H,SBB;判斷串口數據G
CLR RI;軟件清除串口中斷標記
LCALL PDRI;等待下一個串口數據
MOV A,SBUF;將串口寄存器中接收到的數據給A
CJNE A,#53H,SBB;判斷串口數據S
CLR RI;軟件清除串口中斷標記
;檢測到"CMGS"的ASCII碼--------
;跳過5個內存(: 116)
MOV R3,#5;定義接收數據的總長度
LCALL TGSJ;調用接收串口數據子程序
AJMP FSCG1
SBB:LCALL SB
FSCG1:
RET
;發送ATD,撥打電話13906079959
ATD:
LCALL AT
MOV A,#44H
LCALL FS
MOV A,75H
LCALL FS
MOV A,74H
LCALL FS
MOV A,77H
LCALL FS
MOV A,76H
LCALL FS
MOV A,79H
LCALL FS
MOV A,78H
LCALL FS
MOV A,7BH
LCALL FS
MOV A,7AH
LCALL FS
MOV A,7DH
LCALL FS
MOV A,7CH
LCALL FS
MOV A,7FH
LCALL FS
MOV A,#3BH
LCALL FS
LCALL HC;回車!
RET
;發送"恭喜您!您已經獲得車輛報警系統的控制權限!"短消息的子程序
FDX:
MOV DPTR,#500
LCALL DELAYXMS
LCALL CMGS;發送AT+CMGS=150短信長度子程序
;發送漢字的字數(24+4個漢字)
MOV A,#33H
LCALL FS
MOV A,#38H
LCALL FS
;準備發送"恭喜您!您已經獲得車輛報警系統的控制權限!密碼:"漢字
MOV DPTR,#TAB1
MOV R1,#96;發送24個漢字
LCALL FSS;調用發送漢字的子程序
;發送"車輛報警"4個漢字 從內存64H-73H一共16個內存
MOV R3,#16;定義發送的數據總長度為16個
MOV R0,#64H;數據從內存的64H開始
LCALL HZSZ;調用發送內存數據的子程序
MOV A,#1AH;發送16進制的1A結束字符
LCALL FS
LCALL FSCG;調用短信發送檢測子程序
RET
;發送"有人動您的車,請察看!"短消息的子程序
FBJDX:
LCALL CMGS;發送AT+CMGS=150短信長度子程序
;發送漢字的字數(11個漢字)
MOV A,#31H
LCALL FS
MOV A,#36H
LCALL FS
;準備發送"有人動您的車,請察看!"
MOV DPTR,#TAB2
MOV R1,#44;發送11個漢字
LCALL FSS;調用發送漢字的子程序
MOV A,#1AH;發送16進制的1A結束字符
LCALL FS
RET
;發送"車輛電源異常,請檢查!"短消息的子程序
FDYBJ:
LCALL CMGS;發送AT+CMGS=150短信長度子程序
;發送漢字的字數(11個漢字)
MOV A,#31H
LCALL FS
MOV A,#36H
LCALL FS
;準備發送"車輛電源異常,請檢查!"
MOV DPTR,#TAB3
MOV R1,#44;發送11個漢字
LCALL FSS;調用發送漢字的子程序
MOV A,#1AH;發送16進制的1A結束字符
LCALL FS
LCALL FSCG;調用短信發送檢測子程序
JNZ FDYBJ1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FDYBJ
FDYBJ1:
RET
;發送"車門已被打開,請檢查!"短消息的子程序
FCMBJ:
LCALL CMGS;發送AT+CMGS=150短信長度子程序
;發送漢字的字數(11個漢字)
MOV A,#31H
LCALL FS
MOV A,#36H
LCALL FS
;準備發送"車門已被打開,請檢查!"
MOV DPTR,#TAB4
MOV R1,#44;發送11個漢字
LCALL FSS;調用發送漢字的子程序
MOV A,#1AH;發送16進制的1A結束字符
LCALL FS
LCALL FSCG;調用短信發送檢測子程序
JNZ FCMBJ1
MOV DPTR,#500
LCALL DELAYXMS
AJMP FCMBJ
FCMBJ1:
RET
;發送"行李廂異常,請檢查!"短消息的子程序
FXLBJ:
LCALL CMGS;發送AT+CMGS=150短信長度子程序
;發送漢字的字數(10個漢字)
MOV A,#31H
LCALL FS
MOV A,#34H
LCALL FS
;準備發送"行李廂異常,請檢查!"
MOV DPTR,#TAB5
MOV R1,#40;發送10個漢字
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -