⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 家庭无线报警系统.lst

📁 家庭无线报警系统,主要功能有修改系统密码
💻 LST
📖 第 1 页 / 共 5 页
字号:
0245 7B14            438        MOV R3,#20;定义接收数据的总长度
0247 120A08          439        LCALL TGSJ;调用接收串口数据子程序
                     440     ;**********************************************
024A                 441     PDCX:;判断查询信息
024A 7A08            442        MOV R2,#8;要对比的字节数2*4=8
024C 7800            443        MOV R0,#00H;RAM内密码的起始地址00H
024E 900C10          444        MOV DPTR,#CX;查询67E58BE2
0251 1203B5          445        LCALL PDDXNR;调用判断短信内容
0254 B4FF17          446        CJNE A,#0FFH,PDJF;如果内容不是查询则调用判断解防
0257 C298            447        CLR RI;软件清除串口中断标记
0259 7B08            448        MOV R3,#8;跳过8个数据
025B 120A08          449        LCALL TGSJ;调用跳过串口数据子程序
025E 309705          450        JNB LED,DFASF;如果LED=0则发"系统已设防"
0261 120882          451        LCALL FAJF;调用发送"系统已解防"子程序
0264 6174            452        AJMP SCC
0266 120854          453     DFASF:LCALL FASF;调用发送"系统已设防"子程序
0269 6174            454        AJMP SCC
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     8

                     455     ;**********************************************
026B                 456     DPDSQ:
026B 1202F0          457        LCALL PDSQ;短信授权检测
                     458     ;**********************************************
                     459     ;检测"(解)防",PDU码--0489E39632
                     460     ;30 34 38 (39 45 33) 39 36 33 32
                     461     ;解防 89E39632
026E                 462     PDJF:
026E 9003E8          463        MOV DPTR,#1000;延时1秒
0271 120A56          464        LCALL DelayXmS
0274 1204A6          465        LCALL CMGR;再次调用读短信子程序
0277 7B4A            466        MOV R3,#74;跳过74个数据
0279 120A08          467        LCALL TGSJ;调用跳过串口数据子程序
027C C298            468        CLR RI;软件清除串口中断标记
027E 1209DA          469        LCALL PDRI;等待下一个串口数据
0281 E599            470        MOV A,SBUF;将串口寄存器中接收到的数据给A
0283 B4386A          471        CJNE A,#38H,PDSQ;判断串口数据8
0286 C298            472        CLR RI;软件清除串口中断标记
0288 1209DA          473        LCALL PDRI;等待下一个串口数据
028B E599            474        MOV A,SBUF;将串口寄存器中接收到的数据给A
028D B43922          475        CJNE A,#39H,SHEFAN;判断串口数据9转为判断是否为(设)防 8BBE9632
0290 C298            476        CLR RI;软件清除串口中断标记
0292 1209DA          477        LCALL PDRI;等待下一个串口数据
0295 E599            478        MOV A,SBUF;将串口寄存器中接收到的数据给A
0297 B44556          479        CJNE A,#45H,PDSQ;判断串口数据E
029A C298            480        CLR RI;软件清除串口中断标记
029C 1209DA          481        LCALL PDRI;等待下一个串口数据
029F E599            482        MOV A,SBUF;将串口寄存器中接收到的数据给A
02A1 B4334C          483        CJNE A,#33H,PDSQ;判断串口数据3
02A4 C298            484        CLR RI;软件清除串口中断标记
02A6 1204E6          485        LCALL FANG;调用(防)接收串口数据子程序 判断是否有断的PDU 9632
02A9 602C            486        JZ SC;A=0则SC(删除短信)
02AB D297            487        SETB LED;解防
02AD 120882          488             LCALL FAJF
02B0 6174            489        AJMP SCC
                     490     ;**********************************************
                     491     ;检测"(设)防",PDU码--048BBE9632
                     492     ;30 34 38 (42 42 45) 39 36 33 32
02B2                 493     SHEFAN:;(设)
02B2 E599            494        MOV A,SBUF;将串口寄存器中接收到的数据给A
02B4 B44239          495        CJNE A,#42H,PDSQ;判断串口数据B
02B7 C298            496        CLR RI;软件清除串口中断标记
02B9 1209DA          497        LCALL PDRI;等待下一个串口数据
02BC E599            498        MOV A,SBUF;将串口寄存器中接收到的数据给A
02BE B4422F          499        CJNE A,#42H,PDSQ;判断串口数据B
02C1 C298            500        CLR RI;软件清除串口中断标记
02C3 1209DA          501        LCALL PDRI;等待下一个串口数据
02C6 E599            502        MOV A,SBUF;将串口寄存器中接收到的数据给A
02C8 B44525          503        CJNE A,#45H,PDSQ;判断串口数据E
02CB C298            504        CLR RI;软件清除串口中断标记
02CD 1204E6          505        LCALL FANG;调用(防)接收串口数据子程序
02D0 6005            506        JZ SC
02D2 C297            507        CLR LED;设防
02D4 120854          508             LCALL FASF
02D7                 509      SC:
02D7 6174            510        AJMP SCC     
                     511     ;**********************************************
02D9                 512     INTIT_MM:;密码初始化
02D9 7A0B            513        MOV R2,#11;要对比的字节数3*4=11
02DB 7800            514        MOV R0,#00H;RAM内密码的起始地址00H
02DD 900C18          515        MOV DPTR,#CCH;密码的表首址
02E0 1203B5          516        LCALL PDDXNR;调用判断短信内容
02E3 B4FFF1          517        CJNE A,#0FFH,SC;如果密码不对则调用删除短信 
02E6 1208D4          518             LCALL MMCCH;调用密码初始化
02E9 12079D          519        LCALL FDX;发送授权成功的短信息通知客户!
02EC 1205C6          520             LCALL XMM;写入密码
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     9

02EF 22              521        RET
                     522     ;**********************************************
02F0                 523     PDSQ:;短信授权检测
                     524        ;如果电话号码不是默认值,就检测信息内容
02F0 9003E8          525        MOV DPTR,#1000
02F3 120A56          526        LCALL DelayXmS
02F6 1204A6          527        LCALL CMGR;再次调用读短信子程序
02F9 7B4A            528        MOV R3,#74;跳过74个数据
02FB 120A08          529        LCALL TGSJ;调用跳过串口数据子程序
                     530     ;校验"密码" "5BC67801"
02FE 7A08            531        MOV R2,#8;要对比的字节数2*4=8
0300 7800            532        MOV R0,#00H;RAM内密码的起始地址00H
0302 900C08          533        MOV DPTR,#MM;密码的表首址
0305 1203B5          534        LCALL PDDXNR;调用判断短信内容
0308 B4FF69          535        CJNE A,#0FFH,SCC;如果密码不对则调用删除短信
                     536     ;校验":" "003A"
030B C298            537        CLR RI;软件清除串口中断标记
030D 1209DA          538        LCALL PDRI;等待下一个串口数据
0310 E599            539        MOV A,SBUF;将串口寄存器中接收到的数据给A
0312 B4305F          540        CJNE A,#"0",SCC;判断串口数据 0
0315 C298            541        CLR RI;软件清除串口中断标记
0317 1209DA          542        LCALL PDRI;等待下一个串口数据
031A E599            543        MOV A,SBUF;将串口寄存器中接收到的数据给A
031C B43055          544        CJNE A,#"0",SCC;判断串口数据 0
031F C298            545        CLR RI;软件清除串口中断标记
0321 1209DA          546        LCALL PDRI;等待下一个串口数据
0324 E599            547        MOV A,SBUF;将串口寄存器中接收到的数据给A
0326 B4334B          548        CJNE A,#"3",SCC;判断串口数据 3
0329 C298            549        CLR RI;软件清除串口中断标记
032B 1209DA          550        LCALL PDRI;等待下一个串口数据
032E E599            551        MOV A,SBUF;将串口寄存器中接收到的数据给A
0330 B44141          552        CJNE A,#"A",SCC;判断串口数据 A
                     553        ;校验存放在5CH-73H的内存中密码"******"5BB65EAD62A58B667CFB7EDF
0333 7A18            554        MOV R2,#24;要对比的字节数6*4=24
0335 785C            555        MOV R0,#5CH;RAM内密码的起始地址5CH
0337 1203B5          556        LCALL PDDXNR;调用判断短信内容
033A B4FF9C          557        CJNE A,#0FFH,INTIT_MM;如果密码不对则调用删除短信
033D C298            558        CLR RI;软件清除串口中断标记
033F 1209DA          559        LCALL PDRI;等待下一个串口数据
0342 E599            560        MOV A,SBUF;将串口寄存器中接收到的数据给A
0344 B4362A          561        CJNE A,#36H,FSQR;判断串口数据 6
0347 C298            562        CLR RI;软件清除串口中断标记
0349 1209DA          563        LCALL PDRI;等待下一个串口数据
034C E599            564        MOV A,SBUF;将串口寄存器中接收到的数据给A
034E B43520          565        CJNE A,#35H,FSQR;判断串口数据 5
0351 C298            566        CLR RI;软件清除串口中断标记
0353 1209DA          567        LCALL PDRI;等待下一个串口数据
0356 E599            568        MOV A,SBUF;将串口寄存器中接收到的数据给A
0358 B43316          569        CJNE A,#33H,FSQR;判断串口数据 3
035B C298            570        CLR RI;软件清除串口中断标记
035D 1209DA          571        LCALL PDRI;等待下一个串口数据
0360 E599            572        MOV A,SBUF;将串口寄存器中接收到的数据给A
0362 B4390C          573        CJNE A,#39H,FSQR;判断串口数据 9
                     574        ;检测到"改"的汉字内码6539
                     575        ;密码"******"存放在5CH-73H的内存中
                     576        ;将"改"后面的两个汉字作为密码保存到单片机5CH-73H的内存中!
0365 7B18            577        MOV R3,#24;定义接收数据的总长度为24个
0367 785C            578        MOV R0,#5CH;数据从内存的5CH开始依次往后存放
0369 120A15          579        LCALL GPSSJ;调用接收串口数据子程序
036C 7B08            580        MOV R3,#8;跳过8个数据
036E 120A08          581        LCALL TGSJ;调用跳过串口数据子程序
0371                 582      FSQR:
0371 120378          583        LCALL JPA
0374                 584      SCC:;删除短信
0374 120990          585        LCALL SCJSDX
0377 22              586        RET
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE    10

0378                 587     JPA:;把短信授权的手机号码存储起来
0378 9003E8          588        MOV DPTR,#1000
037B 120A56          589        LCALL DELAYXMS
037E 1204A6          590        LCALL CMGR;再次调用读短信子程序
0381 7B2A            591        MOV R3,#42;跳过42个数据
0383 120A08          592        LCALL TGSJ;调用跳过串口数据子程序
                     593        ;把短信授权的手机号码存储起来
                     594        ;手机号码存放在74H-7F的内存中
0386 7B0C            595        MOV R3,#12;定义接收手机号码的数据长度
0388 7874            596        MOV R0,#74H;数据在内存的存放位置
038A 120A15          597        LCALL GPSSJ;调用接收串口数据子程序
038D 9003E8          598        MOV DPTR,#1000
0390 120A56          599        LCALL DELAYXMS
                     600        ;校验短信授权的手机号码
0393 1204A6          601        LCALL CMGR;再次调用读短信子程序
0396 7B2A            602        MOV R3,#42;跳过42个数据
0398 120A08          603        LCALL TGSJ;调用跳过串口数据子程序
                     604     ;   LCALL DXJC;检测电话号码
039B 7874            605        MOV R0,#74H
039D 7A0C            606        MOV R2,#12
039F 71B5            607        ACALL PDDXNR
03A1 60D5            608        JZ JPA
03A3 900064          609        MOV DPTR,#100
03A6 120A56          610        LCALL DELAYXMS
03A9 12079D          611        LCALL FDX;发送授权成功的短信息通知客户!
03AC 7003            612        JNZ JPA1
03AE 12079D          613        LCALL FDX;发送授权成功的短信息通知客户!
03B1 1205A4          614      JPA1:LCALL BCDM;保存授权电话号码及密码
03B4 22              615        RET
                     616     
                     617     
                     618     
                     619     
                     620     
                     621     
03B5                 622     PDDXNR:;判断短信内容
03B5 7B00            623        MOV R3,#0;
03B7                 624      ZPD:
03B7 B80006          625        CJNE R0,#00H,R_RAM;
03BA EB              626        MOV A,R3;
03BB 93              627        MOVC A,@A+DPTR;取要对比的对照码
03BC F5F0            628        MOV B,A;把对比码存入B
03BE 8003            629        JMP SCOM
03C0                 630      R_RAM:
03C0 86F0            631        MOV B,@R0;
03C2 08              632        INC R0
03C3                 633      SCOM:
03C3 C298            634        CLR RI
03C5 1209DA          635        LCALL PDRI
03C8 E599            636        MOV A,SBUF;接收串口数据
03CA B5F006          637        CJNE A,B,BYZ;如果不一至则A变0再反回
03CD 0B              638        INC R3
03CE DAE7            639        DJNZ R2,ZPD;如果要判断的
03D0 74FF            640        MOV A,#0FFH
03D2 22              641        RET
03D3 E4              642      BYZ:CLR A
03D4 22              643        RET
                     644     ;发送AT指令!
03D5                 645     FAT:
03D5 7441            646        MOV A,#41H;将ASCII码A发送到串口去
03D7 120A27          647        LCALL FS
03DA 7454            648        MOV A,#54H;将ASCII码T发送到串口去
03DC 120A27          649        LCALL FS
03DF 22              650        RET
                     651     ;发送ATH,挂机
03E0                 652     ATH:
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE    11

03E0 1203D5          653        LCALL FAT
03E3 7448            654        MOV A,#48H
03E5 120A27          655        LCALL FS
03E8 120406          656        LCALL HC;回车!
03EB 22              657        RET
                     658     ;发送ATA,应答

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -