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

📄 家庭无线报警系统.lst

📁 家庭无线报警系统,主要功能有修改系统密码
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     1


MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN 家庭无线报警系统.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 家庭无线报警系统.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;采用AT89S51单片机,晶振11.0592MHZ,通讯速率9600,采用TTL串口通讯
                       2     ;LED缓存第1行是40H-4FH,上面行
                       3     ;LED缓存第2行是30H-3FH,下面行
                       4     ;手机号码缓存在50H-5BH的12个内存中
                       5     ;密码"车辆报警"存放在5CH-73H的24个内存中6个中文字
                       6     ;手机号码存放在74H-7FH的12个内存中
                       7     ;设防标志存放在位地址7FH中
0000                   8     ORG 0000H
0000 0128              9        AJMP MAIN;转入主程序
0003                  10     ORG 0003H ;外部中断P3.2脚INT0入口地址 
0003 00               11        NOP
0004 00               12        NOP
0005 00               13        NOP
0006 00               14        NOP
0007 00               15        NOP
0008 00               16        NOP
0009 32               17        RETI
000B                  18     ORG 000BH;中断陷阱
000B 00               19        NOP
000C 00               20        NOP
000D 00               21        NOP
000E 00               22        NOP
000F 00               23        NOP
0010 00               24        NOP
0011 32               25        RETI
0013                  26     ORG 0013H;中断陷阱
0013 00               27        NOP
0014 00               28        NOP
0015 00               29        NOP
0016 00               30        NOP
0017 00               31        NOP
0018 00               32        NOP
0019 32               33        RETI
001B                  34     ORG 001BH;中断陷阱
001B 00               35        NOP
001C 00               36        NOP
001D 00               37        NOP
001E 00               38        NOP
001F 00               39        NOP
0020 00               40        NOP
0021 32               41        RETI
0023                  42     ORG 0023H
0023 00               43        NOP
0024 00               44        NOP
0025 00               45        NOP
0026 00               46        NOP
0027 32               47        RETI
  00A0                48     LCD_RS BIT P2.0;RS
  00A1                49     LCD_RW BIT P2.1;RW
  00A2                50     LCD_EN BIT P2.2;E
  0090                51     FOK    EQU P1.0;定义为啦叭
  0091                52     SX     EQU P1.1;定义手机模块上线标志
  0092                53     SJKJ   EQU P1.2;定义手机模块激活控制端
                      54     ;  SJGJ  EQU P2.3;定义手机模块关机控制端
                      55     ;        EQU P2.4;定义
  0097                56     LED    EQU P1.7;定义
                      57     ;        EQU P2.6;定义
  0096                58     DY     EQU P1.6;定义电源断线控制端
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     2

                      59     
  00B2                60     VT     EQU P3.2;定义解码有效标志
  00B4                61     DM     EQU P3.4;定义大门控制端
  00B5                62     HW     EQU P3.5;定义红外报警端
  00B6                63     YKSF   EQU P3.6;定义遥控设防端
  00B7                64     YKJSF  EQU P3.7;定义遥控解设防端
  00B3                65     DD     EQU P3.3;定义低电压报告
                      66     
0028                  67     MAIN:
0028 11A5             68        CALL SET_LCD;LCD 初始化设置   
002A C292             69        CLR SJKJ
                      70        ;以下为主程序进行CPU中断方式设置
002C D288             71        SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发,报警触发控制端
002E 759850           72        MOV SCON,#50H;设置成串口1方式
0031 758920           73        MOV TMOD,#20H;波特率发生器T1工作在模式2上
0034 758DFD           74        MOV TH1,#0FDH;预置初值(按照波特率9600BPS预置初值)
0037 758BFD           75        MOV TL1,#0FDH;预置初值(按照波特率9600BPS预置初值)
003A D28E             76        SETB TR1;启动定时器T1
003C 758700           77        MOV PCON,#00H
003F 1208B0           78        LCALL YUSJ;开机清除接收短消息手机号码
0042 D292             79        SETB SJKJ;打开手机
0044 9001F4           80        MOV DPTR,#500;延时500ms
0047 120A56           81        LCALL DELAYXMS;开机延时
004A C292             82        CLR SJKJ;复位手机控制
004C 12051B           83        LCALL ATE0OK;开机发送ATE0指令!
004F 120459           84        LCALL CNMI ;发送(AT+CNMI=1,1,0,0,1),短信到达TE 新信息指示
0052 12095B           85        LCALL SCQBDX;调用删除SIM卡中所有短信的子程序
                      86        ;完成和手机通信握手,和SIM卡删除所有短消息初始化
0055                  87     START:
0055 120537           88        LCALL XRSJ;读出授权电话号码及密码,写入内存中
0058 120A4B           89        LCALL MJCS;串口接收模块数据OK响一声
005B 120A4B           90        LCALL MJCS;串口接收模块数据OK响一声
005E C291             91        CLR SX;模块上线
                      92     ;**********************************************
0060                  93     KKS:
0060 209822           94        JB RI,UART;检测到RI变1就退出
0063 20B208           95        JB VT,PDYKSH;解码有效标志=0则转PDYKSH判断遥控信号
0066 20981C           96        JB RI,UART;检测到RI变1就退出
0069 30961C           97        JNB DY,DYBJ;电源断线控制端=0则转DYBJ电源报警
006C 0160             98        AJMP KKS
                      99     ;**********************************************
006E                 100     PDYKSH:
006E 90000A          101        MOV DPTR,#10;延时10mS
0071 120A56          102        LCALL DelayXmS;开机延时
0074 20B2F7          103        JB VT,PDYKSH;延时防止误码报
0077 20B413          104        JB DM,DMBJ;大门报警端=0则转DMBJ大门报警  
007A 20B518          105        JB HW,HWBJ;红外报警端=0则转HWBJ红外报警  
007D 20B61D          106        JB YKSF,YKSFSZ;遥控设防端=0则转遥控设防设置
0080 20B71E          107        JB YKJSF,YKJSFSZ;遥控解设防端=0则转遥控解设防设置
0083 0160            108        AJMP KKS
                     109     ;**********************************************
0085                 110     UART:
0085 020134          111        LJMP UARTI 
0088                 112     DYBJ:;电源报警
0088 120826          113        LCALL FDYBJ
008B 0160            114        AJMP KKS
008D                 115     DMBJ:;大门报警
008D 2097D0          116        JB LED,KKS;如果设防标志SFBZ=0则退出
0090 1207C8          117        LCALL FDMBJ
0093 0160            118        AJMP KKS
0095                 119     HWBJ:;红外报警
0095 2097C8          120        JB LED,KKS;如果设防标志SFBZ=0则退出
0098 1207F7          121        LCALL FHWBJ
009B 0160            122        AJMP KKS
009D                 123     YKSFSZ:;设防
009D C297            124             CLR LED
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     3

009F 0160            125        AJMP KKS
00A1                 126     YKJSFSZ:;解设防
00A1 D297            127             SETB LED
00A3 0160            128        AJMP KKS
                     129     ;-----------------------------------------------------
                     130     ;LCD 初始化设置
                     131     ;-----------------------------------------------------
00A5                 132     SET_LCD:
00A5 C2A2            133        CLR LCD_EN
00A7 11DC            134        CALL INIT_LCD ;初始化 LCD
00A9 900003          135        MOV DPTR,#3
00AC 120A56          136        LCALL DelayXmS
00AF 900BC4          137        MOV DPTR,#TAB8 ;指针指到显示信息1
00B2 7840            138        MOV R0,#40H
00B4 7900            139             MOV R1,#0
00B6 11D2            140             CALL ZSJ;转数据到显示缓冲区
00B8 7401            141        MOV A,#1 ;显示在第一行
00BA 7840            142        MOV R0,#40H
00BC 7900            143             MOV R1,#0
00BE 11F5            144        CALL LCD_SHOW
00C0 900BD4          145        MOV DPTR,#TAB9 ;指针指到显示信息2
00C3 7830            146        MOV R0,#30H
00C5 7900            147             MOV R1,#0
00C7 11D2            148             CALL ZSJ;转数据到显示缓冲区
00C9 7402            149        MOV A,#2 ;显示在第二行
00CB 7830            150        MOV R0,#30H
00CD 7900            151             MOV R1,#0
00CF 11F5            152        CALL LCD_SHOW
00D1 22              153        RET
                     154     ;-----------------------------------------------------
                     155     ;转数据到显示缓冲区
                     156     ;-----------------------------------------------------
00D2                 157      ZSJ:
00D2 E4              158             CLR A
00D3 93              159        MOVC A,@A+DPTR ;由消息区取出字符
00D4 F6              160             MOV @R0,A
00D5 08              161             INC R0
00D6 A3              162             INC DPTR
00D7 09              163             INC R1
00D8 B910F7          164             CJNE R1,#10H,ZSJ
00DB 22              165             RET
                     166     ;-----------------------------------------------------
                     167     ;LCD 接口初始化
                     168     ;8 位I/O 控制
                     169     ;-----------------------------------------------------
00DC                 170     INIT_LCD:
00DC 7438            171        MOV A,#38H ;双列显示,字形5*7 点阵
00DE 312A            172        CALL WCOM;写入命令
00E0 900003          173        MOV DPTR,#3
00E3 120A56          174        LCALL DelayXmS
00E6 740C            175        MOV A,#0CH ;开显示,关光标,
00E8 312A            176        CALL WCOM;写入命令
00EA 900003          177        MOV DPTR,#3
00ED 120A56          178        LCALL DelayXmS
00F0 7401            179        MOV A,#01H ;清除 LCD 显示屏
00F2 312A            180        CALL WCOM;写入命令
00F4 22              181        RET
                     182     ;----------------------------------------------------
                     183     ;在LCD 的第一行或第二行显示信息字符
                     184     ;----------------------------------------------------
00F5                 185     LCD_SHOW: 
00F5 B40106          186        CJNE A,#1,LINE2 ;判断是否为第一行
00F8 7480            187      LINE1: MOV A,#80H ;设置 LCD 的第一行地址
00FA 312A            188        CALL WCOM ;写入命令
00FC 8004            189        JMP FILL
00FE 74C0            190      LINE2: MOV A,#0C0H ;设置 LCD 的第二行地址
A51 MACRO ASSEMBLER  糭____线__綺蟔__                                                     01/23/2008 12:02:46 PAGE     4

0100 312A            191        CALL WCOM ;写入命令
0102                 192      FILL: 
0102 E4              193        CLR A ;填入字符
0103 E6              194        MOV A,@R0 ;由消息区取出字符
0104 09              195             INC R1
0105 B91101          196             CJNE R1,#11H,LC1;判断是否为结束码
0108 22              197        RET
0109 312F            198      LC1: CALL WDATA ;写入数据
010B 08              199        INC R0
010C 80F4            200        JMP FILL ;继续填入字符
010E 22              201        RET
                     202     ;-----------------------------------------------------*/
                     203     ; 写指令、数据使能子程序
                     204     ;-----------------------------------------------------
010F                 205     ENABLE: ;写指令使能
010F C2A0            206        CLR LCD_RS ;RS=L,LCD_RW=L,D0-D7=指令码,E=高脉冲
0111 C2A1            207        CLR LCD_RW
0113 D2A2            208        SETB LCD_EN
0115 3125            209        CALL DELAY0
0117 C2A2            210        CLR LCD_EN
0119 22              211        RET
011A                 212     ENABLE1: ;写数据使能
011A D2A0            213        SETB LCD_RS ;RS=H,RW=L,D0-D7=数据,E=高脉冲
011C C2A1            214        CLR LCD_RW

⌨️ 快捷键说明

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