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

📄 homesec1.lst

📁 This Home Security hardware and software. The CPU is MCS-51 series. The source code is developed b
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 1   


DOS C51 COMPILER V5.02, COMPILATION OF MODULE HOMESEC1
OBJECT MODULE PLACED IN HOMESEC1.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE HOMESEC1.C CD SB DB OE PL(69) PW(132) ROM(COMPACT) SMALL OT(6,SPEED) REGFILE(HOMESECU.REG) 

stmt level    source

   1          // 瘤糯捞 焊靛 七傀绢
   2          // 哪颇老矾 : KEIL C DEMO
   3          // 2003.12.15
   4          // 公茄抛农愁矾瘤 
   5          #include <AT89X51.h>
   6          // 屈 急攫
   7          #define byte	unsigned char
   8          // 副饭捞 柯 烹脚 内靛 
   9          #define RLY0_ON	11
  10          #define RLY1_ON	12
  11          #define RLY2_ON	13
  12          #define RLY3_ON	14
  13          #define RLY4_ON	15
  14          #define RLY5_ON	16
  15          #define RLY6_ON	17
  16          #define RLY7_ON	18
  17          // 副饭捞 坷橇 烹脚 内靛 
  18          #define RLY0_OFF	21
  19          #define RLY1_OFF	22
  20          #define RLY2_OFF	23
  21          #define RLY3_OFF	24
  22          #define RLY4_OFF	25
  23          #define RLY5_OFF	26
  24          #define RLY6_OFF	27
  25          #define RLY7_OFF	28
  26          // 季辑 柯 烹脚 内靛 
  27          #define SEN0_ON	31
  28          #define SEN1_ON	32
  29          #define SEN2_ON	33
  30          #define SEN3_ON	34
  31          #define SEN4_ON	35
  32          #define SEN5_ON	36
  33          #define SEN6_ON	37
  34          #define SEN7_ON	38
  35          // 季辑 坷橇 烹脚 内靛 
  36          #define SEN0_OFF	41
  37          #define SEN1_OFF	42
  38          #define SEN2_OFF	43
  39          #define SEN3_OFF	44
  40          #define SEN4_OFF	45
  41          #define SEN5_OFF	46
  42          #define SEN6_OFF	47
  43          #define SEN7_OFF	48
  44          // 傈眉 蔼 夸没 内靛 
  45          #define SEN_RQ		51
  46          // 器飘 巧 概俏
  47          sbit lamp = P3^2;
  48          sfr sensor = 0x80;//P0
  49          sfr relay = 0xA0; //P2
  50          // 烹脚 荐脚 滚欺 
  51          #define rsize 20
  52          #define RTIME	1
  53          byte rbuf[rsize];
  54          byte rcount=0,rtime=0,pcount=0;
  55          byte rbuf1, rbuf2;
  56          byte oldBuf=255;
  57          bit isTx;
  58          // ETC
  59          #define LAMPTIME 5000
  60          
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 2   

  61          // 老矫 措扁 窃荐
  62          delay(byte d)
  63          {
  64   1      	byte d2;
  65   1      	while(d--){
  66   2      		d2 = 0xff;
  67   2      		while(d2--);
  68   2      	}
  69   1      }
  70          // 烹脚 价脚 措扁 窃荐
  71          wait_ti()
  72          {
  73   1      	byte i = 255;
  74   1      	while(!TI && i--);
  75   1      }
  76          // sensor ON/OFF 内靛 价脚 
  77          send_sensor_code(byte b)
  78          {
  79   1      	byte i;
  80   1      	byte oldB,newB;
  81   1      	for(i=0;i<8;i++){
  82   2      		wait_ti();
  83   2                      oldB=oldBuf & (1 << i);
  84   2                      newB=b & (1 << i);
  85   2      
  86   2      		if (oldB != newB) {
  87   3      			if (newB) SBUF=SEN0_OFF + i; 	
  88   3      			else SBUF = SEN0_ON + i;			
  89   3      	        }
  90   2      	}
  91   1      
  92   1      	oldBuf=b;
  93   1      }
  94          // 林 窃荐 
  95          main()
  96          {
  97   1      	int lamp_count;
  98   1      	byte sen_buf;
  99   1      	// 扁夯蔼 汲沥 
 100   1      	// SP = 0x50;
 101   1      	relay = 0x00;
 102   1      	// 烹脚 棺 烹脚 牢磐反飘 汲沥
 103   1      	EA	= 0;
 104   1      	PCON	= 0;//
 105   1      	SCON	= 0x50;
 106   1      	TMOD	= 0x21;
 107   1      	TH1	= 0x0fd;
 108   1      	TL0	= 0x00;
 109   1      	TH0	= 0x00;
 110   1      	TR1 = 1;
 111   1      	ES = 1; 
 112   1      	EA = 1;
 113   1      	// 泪矫 措扁 
 114   1      	delay(255);
 115   1      	// 皑瘤 涝仿 烹脚栏肺 免仿
 116   1      	sen_buf = sensor;
 117   1      	send_sensor_code(sen_buf);
 118   1      	while(1){
 119   2      		if(!lamp_count--){
 120   3      			lamp = !lamp;// 伐橇 柯 坷橇 
 121   3      			lamp_count = LAMPTIME;
 122   3      		}
 123   2      		if((rcount>0)&&(rtime--)) continue;// 烹脚 荐脚 辆丰 眉农 (矫埃瞒)
 124   2      			
 125   2      		if((rcount==0)&&(sen_buf!=sensor)){
 126   3      			sen_buf =sensor;
 127   3      			send_sensor_code(sen_buf);
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 3   

 128   3      		}
 129   2      		if(rcount==0) continue;
 130   2      		if(pcount>=rcount){
 131   3      			 rcount = pcount = 0;
 132   3      			 continue;
 133   3      		}
 134   2      		rtime = 0;
 135   2      		rbuf2 = rbuf[pcount++];
 136   2      		if (rbuf2==SEN_RQ){	// 季辑 皑瘤 葛滴 夸没 窍搁 
 137   3      			sen_buf = sensor;
 138   3      			send_sensor_code(sen_buf);	// 季辑 惑怕 焊郴绊
 139   3      		} else
 140   2      		if (rbuf2>=RLY0_ON && rbuf2<=RLY7_ON){	// 副饭捞 柯 夸没捞搁
 141   3      			relay |= (1 << (rbuf2-RLY0_ON));
 142   3      		} else
 143   2      		if (rbuf2>=RLY0_OFF && rbuf2<=RLY7_OFF){	// 副饭捞 坷橇 夸没捞搁 
 144   3      			relay &= ~(1 << (rbuf2-RLY0_OFF));
 145   3      		}
 146   2      	}
 147   1      }
 148          ser_int() interrupt SIO_VECTOR
 149          {
 150   1      	if (RI){                           //Recive Buffer is Fill
 151   2      		rbuf1 = SBUF;
 152   2      		RI = 0;
 153   2      		rtime = RTIME;
 154   2      		if(rcount<rsize) rbuf[rcount++]=rbuf1;
 155   2      		else rtime=0;
 156   2      	} else if (TI)
 157   1      		TI = 0;
 158   1      }
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _delay (BEGIN)
;---- Variable 'd' assigned to Register 'R7' ----
;---- Variable 'd2' assigned to Register 'R6' ----
                                           ; SOURCE LINE # 62
                                           ; SOURCE LINE # 63
0000         ?C0001:
                                           ; SOURCE LINE # 65
0000 AD07          MOV     R5,AR7
0002 1F            DEC     R7
0003 ED            MOV     A,R5
0004 600A          JZ      ?C0005
                                           ; SOURCE LINE # 66
0006 7EFF          MOV     R6,#0FFH
0008         ?C0003:
                                           ; SOURCE LINE # 67
0008 AD06          MOV     R5,AR6
000A 1E            DEC     R6
000B ED            MOV     A,R5
000C 60F2          JZ      ?C0001
000E 80F8          SJMP    ?C0003
                                           ; SOURCE LINE # 68
                                           ; SOURCE LINE # 69
0010         ?C0005:
0010 22            RET     
             ; FUNCTION _delay (END)

             ; FUNCTION wait_ti (BEGIN)
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 72
                                           ; SOURCE LINE # 73
;---- Variable 'i' assigned to Register 'R7' ----
0000 7FFF          MOV     R7,#0FFH
0002         ?C0006:
                                           ; SOURCE LINE # 74
0002 209906        JB      TI,?C0008
0005 AE07          MOV     R6,AR7
0007 1F            DEC     R7
0008 EE            MOV     A,R6
0009 70F7          JNZ     ?C0006
                                           ; SOURCE LINE # 75
000B         ?C0008:
000B 22            RET     
             ; FUNCTION wait_ti (END)

             ; FUNCTION _send_sensor_code (BEGIN)
;---- Variable 'b' assigned to Register 'R5' ----
0000 AD07          MOV     R5,AR7
                                           ; SOURCE LINE # 77
                                           ; SOURCE LINE # 78
                                           ; SOURCE LINE # 81
;---- Variable 'i' assigned to Register 'R4' ----
0002 E4            CLR     A
0003 FC            MOV     R4,A
0004         ?C0009:
                                           ; SOURCE LINE # 82
0004 120000  R     LCALL   wait_ti
                                           ; SOURCE LINE # 83
0007 7401          MOV     A,#01H
0009 A804          MOV     R0,AR4
000B 08            INC     R0
000C 8002          SJMP    ?C0036
000E         ?C0035:
000E C3            CLR     C
000F 33            RLC     A
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 5   

0010         ?C0036:
0010 D8FC          DJNZ    R0,?C0035
0012 FF            MOV     R7,A
0013 5500    R     ANL     A,oldBuf
0015 FE            MOV     R6,A
;---- Variable 'oldB' assigned to Register 'R6' ----
                                           ; SOURCE LINE # 84
0016 EF            MOV     A,R7
0017 5D            ANL     A,R5
0018 FF            MOV     R7,A
;---- Variable 'newB' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 86
0019 6E            XRL     A,R6
001A 600F          JZ      ?C0011
                                           ; SOURCE LINE # 87
001C EF            MOV     A,R7
001D 6007          JZ      ?C0013
001F EC            MOV     A,R4
0020 2429          ADD     A,#029H
0022 F599          MOV     SBUF,A
0024 8005          SJMP    ?C0011
0026         ?C0013:
                                           ; SOURCE LINE # 88
0026 EC            MOV     A,R4
0027 241F          ADD     A,#01FH
0029 F599          MOV     SBUF,A
                                           ; SOURCE LINE # 89
                                           ; SOURCE LINE # 90
002B         ?C0011:
002B 0C            INC     R4
002C BC08D5        CJNE    R4,#08H,?C0009
002F         ?C0010:
                                           ; SOURCE LINE # 92
002F 8D00    R     MOV     oldBuf,R5
                                           ; SOURCE LINE # 93
0031 22            RET     
             ; FUNCTION _send_sensor_code (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 95
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 101
0000 E4            CLR     A
0001 F5A0          MOV     relay,A
                                           ; SOURCE LINE # 103
0003 C2AF          CLR     EA
                                           ; SOURCE LINE # 104
0005 F587          MOV     PCON,A
                                           ; SOURCE LINE # 105
0007 759850        MOV     SCON,#050H
                                           ; SOURCE LINE # 106
000A 758921        MOV     TMOD,#021H
                                           ; SOURCE LINE # 107
000D 758DFD        MOV     TH1,#0FDH
                                           ; SOURCE LINE # 108
0010 F58A          MOV     TL0,A
                                           ; SOURCE LINE # 109
0012 F58C          MOV     TH0,A
                                           ; SOURCE LINE # 110
0014 D28E          SETB    TR1
                                           ; SOURCE LINE # 111
0016 D2AC          SETB    ES
                                           ; SOURCE LINE # 112
0018 D2AF          SETB    EA
                                           ; SOURCE LINE # 114
001A 7FFF          MOV     R7,#0FFH
001C 120000  R     LCALL   _delay
C51 COMPILER V5.02,  SN-  HOMESEC1                                                                     12/16/03  11:46:23  PAGE 6   

                                           ; SOURCE LINE # 116
;---- Variable 'sen_buf' assigned to Register 'R3' ----
001F AB80          MOV     R3,sensor
                                           ; SOURCE LINE # 117
0021 AF03          MOV     R7,AR3
0023 120000  R     LCALL   _send_sensor_code
0026         ?C0016:
                                           ; SOURCE LINE # 118
                                           ; SOURCE LINE # 119
0026 E500    R     MOV     A,lamp_count+01H

⌨️ 快捷键说明

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