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

📄 function.lst

📁 一整套电梯控制器源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
  56   3      			pData[2] = pData[2]|cTemp;
  57   3      		}else if((cIdx>=24) && (cIdx<32)){
  58   3      			pData[3] = pData[3]|cTemp;
  59   3      		}else if((cIdx>=32) && (cIdx<40)){
  60   3      			pData[4] = pData[4]|cTemp;
  61   3      		}else if((cIdx>=40) && (cIdx<48)){
  62   3      			pData[5] = pData[5]|cTemp;
  63   3      		}else if((cIdx>=48) && (cIdx<56)){
  64   3      			pData[6] = pData[6]|cTemp;
  65   3      		}
  66   2      	}else{
  67   2      		if((cIdx>=0) && (cIdx<8)){
  68   3      			Set0Data(&(pData[0]), cMOD);
  69   3      /*			switch(cMOD){
  70   3      			case 0: pData[0] = pData[0]&0xFE; break;	// 1111,1110
  71   3      			case 1: pData[0] = pData[0]&0xFD; break;	// 1111,1101
  72   3      			case 2: pData[0] = pData[0]&0xFB; break;	// 1111,1011
  73   3      			case 3: pData[0] = pData[0]&0xF7; break;	// 1111,0111
  74   3      			case 4: pData[0] = pData[0]&0xEF; break;	// 1110,1111
  75   3      			case 5: pData[0] = pData[0]&0xDF; break;	// 1101,1111
  76   3      			case 6: pData[0] = pData[0]&0xBF; break;	// 1011,1111
  77   3      			case 7: pData[0] = pData[0]&0x7F; break;	// 0111,1111
  78   3      			default: break;
  79   3      	        }*/
  80   3      		}else if((cIdx>=8) && (cIdx<16)){
C51 COMPILER V6.12  FUNCTION                                                               06/05/2005 15:44:45 PAGE 6   

  81   3      			Set0Data(&(pData[1]), cMOD);
  82   3      /*			switch(cMOD){
  83   3      			case 0: pData[1] = pData[1]&0xFE; break;	// 1111,1110
  84   3      			case 1: pData[1] = pData[1]&0xFD; break;	// 1111,1101
  85   3      			case 2: pData[1] = pData[1]&0xFB; break;	// 1111,1011
  86   3      			case 3: pData[1] = pData[1]&0xF7; break;	// 1111,0111
  87   3      			case 4: pData[1] = pData[1]&0xEF; break;	// 1110,1111
  88   3      			case 5: pData[1] = pData[1]&0xDF; break;	// 1101,1111
  89   3      			case 6: pData[1] = pData[1]&0xBF; break;	// 1011,1111
  90   3      			case 7: pData[1] = pData[1]&0x7F; break;	// 0111,1111
  91   3      			default: break;
  92   3      			}*/
  93   3      		}else if((cIdx>=16) && (cIdx<24)){
  94   3      			Set0Data(&(pData[2]), cMOD);
  95   3      /*			switch(cMOD){
  96   3      			case 0: pData[2] = (*pData)&0xFE; break;	// 1111,1110
  97   3      			case 1: pData[2] = (*pData)&0xFD; break;	// 1111,1101
  98   3      			case 2: pData[2] = (*pData)&0xFB; break;	// 1111,1011
  99   3      			case 3: pData[2] = (*pData)&0xF7; break;	// 1111,0111
 100   3      			case 4: pData[2] = (*pData)&0xEF; break;	// 1110,1111
 101   3      			case 5: pData[2] = (*pData)&0xDF; break;	// 1101,1111
 102   3      			case 6: pData[2] = (*pData)&0xBF; break;	// 1011,1111
 103   3      			case 7: pData[2] = (*pData)&0x7F; break;	// 0111,1111
 104   3      			default: break;
 105   3      			}*/
 106   3      		}else if((cIdx>=24) && (cIdx<32)){
 107   3      			Set0Data(&(pData[3]), cMOD);
 108   3      /*			switch(cMOD){
 109   3      			case 0: pData[3] = (*pData)&0xFE; break;	// 1111,1110
 110   3      			case 1: pData[3] = (*pData)&0xFD; break;	// 1111,1101
 111   3      			case 2: pData[3] = (*pData)&0xFB; break;	// 1111,1011
 112   3      			case 3: pData[3] = (*pData)&0xF7; break;	// 1111,0111
 113   3      			case 4: pData[3] = (*pData)&0xEF; break;	// 1110,1111
 114   3      			case 5: pData[3] = (*pData)&0xDF; break;	// 1101,1111
 115   3      			case 6: pData[3] = (*pData)&0xBF; break;	// 1011,1111
 116   3      			case 7: pData[3] = (*pData)&0x7F; break;	// 0111,1111
 117   3      			default: break;
 118   3      			}*/
 119   3      		}else if((cIdx>=32) && (cIdx<40)){
 120   3      			Set0Data(&(pData[4]), cMOD);
 121   3      /*			switch(cMOD){
 122   3      			case 0: pData[4] = (*pData)&0xFE; break;	// 1111,1110
 123   3      			case 1: pData[4] = (*pData)&0xFD; break;	// 1111,1101
 124   3      			case 2: pData[4] = (*pData)&0xFB; break;	// 1111,1011
 125   3      			case 3: pData[4] = (*pData)&0xF7; break;	// 1111,0111
 126   3      			case 4: pData[4] = (*pData)&0xEF; break;	// 1110,1111
 127   3      			case 5: pData[4] = (*pData)&0xDF; break;	// 1101,1111
 128   3      			case 6: pData[4] = (*pData)&0xBF; break;	// 1011,1111
 129   3      			case 7: pData[4] = (*pData)&0x7F; break;	// 0111,1111
 130   3      			default: break;
 131   3      			}*/
 132   3      		}else if((cIdx>=40) && (cIdx<48)){
 133   3      			Set0Data(&(pData[5]), cMOD);
 134   3      /*			switch(cMOD){
 135   3      			case 0: pData[5] = (*pData)&0xFE; break;	// 1111,1110
 136   3      			case 1: pData[5] = (*pData)&0xFD; break;	// 1111,1101
 137   3      			case 2: pData[5] = (*pData)&0xFB; break;	// 1111,1011
 138   3      			case 3: pData[5] = (*pData)&0xF7; break;	// 1111,0111
 139   3      			case 4: pData[5] = (*pData)&0xEF; break;	// 1110,1111
 140   3      			case 5: pData[5] = (*pData)&0xDF; break;	// 1101,1111
 141   3      			case 6: pData[5] = (*pData)&0xBF; break;	// 1011,1111
 142   3      			case 7: pData[5] = (*pData)&0x7F; break;	// 0111,1111
C51 COMPILER V6.12  FUNCTION                                                               06/05/2005 15:44:45 PAGE 7   

 143   3      			default: break;
 144   3      			}*/
 145   3      		}else if((cIdx>=48) && (cIdx<56)){
 146   3      			Set0Data(&(pData[6]), cMOD);
 147   3      /*			switch(cMOD){
 148   3      			case 0: pData[6] = (*pData)&0xFE; break;	// 1111,1110
 149   3      			case 1: pData[6] = (*pData)&0xFD; break;	// 1111,1101
 150   3      			case 2: pData[6] = (*pData)&0xFB; break;	// 1111,1011
 151   3      			case 3: pData[6] = (*pData)&0xF7; break;	// 1111,0111
 152   3      			case 4: pData[6] = (*pData)&0xEF; break;	// 1110,1111
 153   3      			case 5: pData[6] = (*pData)&0xDF; break;	// 1101,1111
 154   3      			case 6: pData[6] = (*pData)&0xBF; break;	// 1011,1111
 155   3      			case 7: pData[6] = (*pData)&0x7F; break;	// 0111,1111
 156   3      			default: break;
 157   3      			}*/
 158   3      		}
 159   2      	}
 160   1      
 161   1      }
 162          //设置“内选数据”“内选可停”“上呼可停”“下呼可停”索引值为cIdx的数据,数据只能为0/1
 163          void SetArrayData_INTERRUPT(uchar *pData, uchar cIdx, uchar cVal)
 164          {
 165   1      	uchar  cTemp= cVal;
 166   1      	uchar  cMOD = cIdx%8;
 167   1      	uchar  cMoveBit = cMOD;	//移动位数
 168   1      	if(cVal==1){
 169   2      		cTemp = cTemp<<cMoveBit;
 170   2      		if((cIdx>=0) && (cIdx<8)){
 171   3      			pData[0] = pData[0]|cTemp;
 172   3      		}else if((cIdx>=8) && (cIdx<16)){
 173   3      			pData[1] = pData[1]|cTemp;
 174   3      		}else if((cIdx>=16) && (cIdx<24)){
 175   3      			pData[2] = pData[2]|cTemp;
 176   3      		}else if((cIdx>=24) && (cIdx<32)){
 177   3      			pData[3] = pData[3]|cTemp;
 178   3      		}else if((cIdx>=32) && (cIdx<40)){
 179   3      			pData[4] = pData[4]|cTemp;
 180   3      		}else if((cIdx>=40) && (cIdx<48)){
 181   3      			pData[5] = pData[5]|cTemp;
 182   3      		}else if((cIdx>=48) && (cIdx<56)){
 183   3      			pData[6] = pData[6]|cTemp;
 184   3      		}
 185   2      	}else{
 186   2      		if((cIdx>=0) && (cIdx<8)){
 187   3      			Set0Data(&(pData[0]), cMOD);
 188   3      /*			switch(cMOD){
 189   3      			case 0: pData[0] = (*pData)&0xFE; break;	// 1111,1110
 190   3      			case 1: pData[0] = (*pData)&0xFD; break;	// 1111,1101
 191   3      			case 2: pData[0] = (*pData)&0xFB; break;	// 1111,1011
 192   3      			case 3: pData[0] = (*pData)&0xF7; break;	// 1111,0111
 193   3      			case 4: pData[0] = (*pData)&0xEF; break;	// 1110,1111
 194   3      			case 5: pData[0] = (*pData)&0xDF; break;	// 1101,1111
 195   3      			case 6: pData[0] = (*pData)&0xBF; break;	// 1011,1111
 196   3      			case 7: pData[0] = (*pData)&0x7F; break;	// 0111,1111
 197   3      			default: break;
 198   3      	        }*/
 199   3      		}else if((cIdx>=8) && (cIdx<16)){
 200   3      			Set0Data(&(pData[1]), cMOD);
 201   3      /*			switch(cMOD){
 202   3      			case 0: pData[1] = (*pData)&0xFE; break;	// 1111,1110
 203   3      			case 1: pData[1] = (*pData)&0xFD; break;	// 1111,1101
 204   3      			case 2: pData[1] = (*pData)&0xFB; break;	// 1111,1011
C51 COMPILER V6.12  FUNCTION                                                               06/05/2005 15:44:45 PAGE 8   

 205   3      			case 3: pData[1] = (*pData)&0xF7; break;	// 1111,0111
 206   3      			case 4: pData[1] = (*pData)&0xEF; break;	// 1110,1111
 207   3      			case 5: pData[1] = (*pData)&0xDF; break;	// 1101,1111
 208   3      			case 6: pData[1] = (*pData)&0xBF; break;	// 1011,1111
 209   3      			case 7: pData[1] = (*pData)&0x7F; break;	// 0111,1111
 210   3      			default: break;
 211   3      			}*/
 212   3      		}else if((cIdx>=16) && (cIdx<24)){
 213   3      			Set0Data(&(pData[2]), cMOD);
 214   3      /*			switch(cMOD){
 215   3      			case 0: pData[2] = (*pData)&0xFE; break;	// 1111,1110
 216   3      			case 1: pData[2] = (*pData)&0xFD; break;	// 1111,1101
 217   3      			case 2: pData[2] = (*pData)&0xFB; break;	// 1111,1011
 218   3      			case 3: pData[2] = (*pData)&0xF7; break;	// 1111,0111
 219   3      			case 4: pData[2] = (*pData)&0xEF; break;	// 1110,1111
 220   3      			case 5: pData[2] = (*pData)&0xDF; break;	// 1101,1111
 221   3      			case 6: pData[2] = (*pData)&0xBF; break;	// 1011,1111
 222   3      			case 7: pData[2] = (*pData)&0x7F; break;	// 0111,1111
 223   3      			default: break;
 224   3      			}*/
 225   3      		}else if((cIdx>=24) && (cIdx<32)){
 226   3      			Set0Data(&(pData[3]), cMOD);
 227   3      /*			switch(cMOD){
 228   3      			case 0: pData[3] = (*pData)&0xFE; break;	// 1111,1110
 229   3      			case 1: pData[3] = (*pData)&0xFD; break;	// 1111,1101
 230   3      			case 2: pData[3] = (*pData)&0xFB; break;	// 1111,1011
 231   3      			case 3: pData[3] = (*pData)&0xF7; break;	// 1111,0111
 232   3      			case 4: pData[3] = (*pData)&0xEF; break;	// 1110,1111
 233   3      			case 5: pData[3] = (*pData)&0xDF; break;	// 1101,1111
 234   3      			case 6: pData[3] = (*pData)&0xBF; break;	// 1011,1111
 235   3      			case 7: pData[3] = (*pData)&0x7F; break;	// 0111,1111
 236   3      			default: break;
 237   3      			}*/
 238   3      		}else if((cIdx>=32) && (cIdx<40)){
 239   3      			Set0Data(&(pData[4]), cMOD);
 240   3      /*			switch(cMOD){
 241   3      			case 0: pData[4] = (*pData)&0xFE; break;	// 1111,1110
 242   3      			case 1: pData[4] = (*pData)&0xFD; break;	// 1111,1101
 243   3      			case 2: pData[4] = (*pData)&0xFB; break;	// 1111,1011
 244   3      			case 3: pData[4] = (*pData)&0xF7; break;	// 1111,0111
 245   3      			case 4: pData[4] = (*pData)&0xEF; break;	// 1110,1111
 246   3      			case 5: pData[4] = (*pData)&0xDF; break;	// 1101,1111
 247   3      			case 6: pData[4] = (*pData)&0xBF; break;	// 1011,1111
 248   3      			case 7: pData[4] = (*pData)&0x7F; break;	// 0111,1111
 249   3      			default: break;
 250   3      			}*/
 251   3      		}else if((cIdx>=40) && (cIdx<48)){
 252   3      			Set0Data(&(pData[5]), cMOD);
 253   3      /*			switch(cMOD){
 254   3      			case 0: pData[5] = (*pData)&0xFE; break;	// 1111,1110
 255   3      			case 1: pData[5] = (*pData)&0xFD; break;	// 1111,1101
 256   3      			case 2: pData[5] = (*pData)&0xFB; break;	// 1111,1011
 257   3      			case 3: pData[5] = (*pData)&0xF7; break;	// 1111,0111
 258   3      			case 4: pData[5] = (*pData)&0xEF; break;	// 1110,1111
 259   3      			case 5: pData[5] = (*pData)&0xDF; break;	// 1101,1111
 260   3      			case 6: pData[5] = (*pData)&0xBF; break;	// 1011,1111
 261   3      			case 7: pData[5] = (*pData)&0x7F; break;	// 0111,1111
 262   3      			default: break;
 263   3      			}*/
 264   3      		}else if((cIdx>=48) && (cIdx<56)){
 265   3      			Set0Data(&(pData[6]), cMOD);
 266   3      /*			switch(cMOD){
C51 COMPILER V6.12  FUNCTION                                                               06/05/2005 15:44:45 PAGE 9   

 267   3      			case 0: pData[6] = (*pData)&0xFE; break;	// 1111,1110
 268   3      			case 1: pData[6] = (*pData)&0xFD; break;	// 1111,1101
 269   3      			case 2: pData[6] = (*pData)&0xFB; break;	// 1111,1011
 270   3      			case 3: pData[6] = (*pData)&0xF7; break;	// 1111,0111
 271   3      			case 4: pData[6] = (*pData)&0xEF; break;	// 1110,1111
 272   3      			case 5: pData[6] = (*pData)&0xDF; break;	// 1101,1111
 273   3      			case 6: pData[6] = (*pData)&0xBF; break;	// 1011,1111
 274   3      			case 7: pData[6] = (*pData)&0x7F; break;	// 0111,1111
 275   3      			default: break;
 276   3      			}*/
 277   3      		}
 278   2      	}
 279   1      
 280   1      }
C51 COMPILER V6.12  FUNCTION                                                               06/05/2005 15:44:45 PAGE 10  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _GetArrayData (BEGIN)
;---- Variable 'pData' assigned to Register 'R1/R2/R3' ----
;---- Variable 'cIdx' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 4
                                           ; SOURCE LINE # 5
                                           ; SOURCE LINE # 6
;---- Variable 'ret' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
                                           ; SOURCE LINE # 7
0002 ED                MOV     A,R5
0003 5407              ANL     A,#07H
0005 FE                MOV     R6,A
;---- Variable 'cMOD' assigned to Register 'R6' ----
                                           ; SOURCE LINE # 8
;---- Variable 'cMoveBit' assigned to Register 'R6' ----
                                           ; SOURCE LINE # 9
0006 ED                MOV     A,R5
0007 C3                CLR     C
0008 9400              SUBB    A,#00H
000A 4018              JC      ?C0001
000C ED                MOV     A,R5
000D 9408              SUBB    A,#08H
000F 5013              JNC     ?C0001
                                           ; SOURCE LINE # 10
0011 120000      E     LCALL   ?C?CLDPTR
0014 FC                MOV     R4,A
0015 A806              MOV     R0,AR6
0017 08                INC     R0
0018 8002              SJMP    ?C0085
001A         ?C0084:
001A C3                CLR     C
001B 13                RRC     A
001C         ?C0085:
001C D8FC              DJNZ    R0,?C0084
001E 5401              ANL     A,#01H
0020 FF                MOV     R7,A
                                           ; SOURCE LINE # 11
0021 020000      R     LJMP    ?C0002
0024         ?C0001:
0024 ED                MOV     A,R5
0025 C3                CLR     C
0026 9408              SUBB    A,#08H
0028 401B              JC      ?C0003
002A ED                MOV     A,R5
002B 9410              SUBB    A,#010H
002D 5016              JNC     ?C0003
                                           ; SOURCE LINE # 12
002F 900001            MOV     DPTR,#01H
0032 120000      E     LCALL   ?C?CLDOPTR
0035 FC                MOV     R4,A
0036 A806              MOV     R0,AR6
0038 08                INC     R0
0039 8002              SJMP    ?C0087
003B         ?C0086:
003B C3                CLR     C
003C 13                RRC     A

⌨️ 快捷键说明

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