📄 main.ls1
字号:
208 ; #include <MAIN.H>
209 ; xdata struct Emu_Parameter Emu_Parameter;
210 ; xdata struct Emu_Parameter_change Emu_Parameter_change;
211 ; xdata struct real_energy real_energy;
212 ; xdata struct meter_para meter_para;
213 ; data unsigned char aa[2]={0x0f,0x01};
214 ; xdata unsigned char g_CommBuffer[50];
215 ; unsigned char NUM;
216 ; unsigned int timea;
217 ;
218 ; void main (void) //_at_ 0x100
219
---- 220 RSEG ?PR?main?MAIN
0000 221 main:
222 USING 0
223 ; SOURCE LINE # 12
224 ; {
225 ; SOURCE LINE # 13
226 ; //unsigned char i;
227 ; //i = temp2;
228 ; SP =0x7f;//程序堆栈指针
229 ; SOURCE LINE # 16
0000 75817F 230 MOV SP,#07FH
231 ; CKCON&= 0xf8;//定时器/计数器时钟控制Timer 使用clk/4 作为时钟
232 ; SOURCE LINE # 17
0003 538EF8 233 ANL CKCON,#0F8H
234 ; BWPR=0xC3 ;//使能写PMOD[1:0]操作
235 ; SOURCE LINE # 18
0006 759AC3 236 MOV BWPR,#0C3H
237 ; BWPR=0x9B;//开启所有受保护位的写使能
238 ; SOURCE LINE # 19
0009 759A9B 239 MOV BWPR,#09BH
240 ; CBORCFG|=0x80;//开启高频晶振电路功能
241 ; SOURCE LINE # 20
000C 43BC80 242 ORL CBORCFG,#080H
243 ; BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
244 ; SOURCE LINE # 21
000F 759AA8 245 MOV BWPR,#0A8H
0012 246 ?C0001:
247 ;
248 ; while((SYSSCR&0x80) != 0x80)//LOCK=1表示高频晶振已经稳定
249 ; SOURCE LINE # 23
0012 E5B6 250 MOV A,SYSSCR
0014 30E7FB 251 JNB ACC.7,?C0001
252 ; {;}
253 ; SOURCE LINE # 24
0017 254 ?C0002:
255 ; BWPR=0xC3;//使能写PMOD[1:0]操作
256 ; SOURCE LINE # 25
A51 MACRO ASSEMBLER MAIN 04/14/2007 11:59:56 PAGE 5
0017 759AC3 257 MOV BWPR,#0C3H
258 ; BWPR=0x9B;//开启所有受保护位的写使能
259 ; SOURCE LINE # 26
001A 759A9B 260 MOV BWPR,#09BH
261 ; CCLKCFG |=0x02;// ;//SYSCK1=1,fsys=fpri
262 ; SOURCE LINE # 27
001D 43BD02 263 ORL CCLKCFG,#02H
264 ; CFMCFG|=0xE4;// ;BROM EN可以调用Monitor Rom中程序,
265 ; SOURCE LINE # 28
0020 43BEE4 266 ORL CFMCFG,#0E4H
267 ; // BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
268 ; LcdDrvInit();
269 ; SOURCE LINE # 30
0023 120000 F 270 LCALL LcdDrvInit
271 ; BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
272 ; SOURCE LINE # 31
0026 759AA8 273 MOV BWPR,#0A8H
274 ; //usart_init();
275 ; //interrupt_init();
276 ; // init_ATT7027();
277 ; // load_Flash_write();
278 ; // CLRALL_LCD_BUF();
279 ; init_time();
280 ; SOURCE LINE # 37
0029 120000 F 281 LCALL init_time
282 ; EA =1 ;
283 ; SOURCE LINE # 38
002C D2AF 284 SETB EA
285 ; Autobaud();
286 ; SOURCE LINE # 39
002E 12FCBC 287 LCALL 0FCBCH
288 ; EICON|= 0x20;// ;BREAK PONIT IE
289 ; SOURCE LINE # 40
0031 43D820 290 ORL EICON,#020H
0034 291 ?C0003:
292 ; while(1)
293 ; SOURCE LINE # 41
294 ; {
295 ; SOURCE LINE # 42
296 ; /****************************************************/
297 ; //把这个放到WHILE(1)能编译过前面就不能进行仿真了
298 ;
299 ; if(RI == 1)
300 ; SOURCE LINE # 46
0034 309805 301 JNB RI,?C0005
302 ; {
303 ; SOURCE LINE # 47
304 ; Cmd_parser();
305 ; SOURCE LINE # 48
0037 12F903 306 LCALL 0F903H
307 ; RI = 0 ;
308 ; SOURCE LINE # 49
003A C298 309 CLR RI
310 ; }
311 ; SOURCE LINE # 50
003C 312 ?C0005:
313 ;
314 ; /* for(i=1;i<=24;i++)
315 ; {
316 ; LADR=i;
317 ; LDAT=0xf ;
318 ; } */
319 ; /****************************************************/
320 ; //RTC_CAL_TEMP();
321 ; EMU_Parameter_change1();
322 ; SOURCE LINE # 59
A51 MACRO ASSEMBLER MAIN 04/14/2007 11:59:56 PAGE 6
003C 120000 F 323 LCALL EMU_Parameter_change1
324 ; switch(NUM)
325 ; SOURCE LINE # 60
003F E500 F 326 MOV A,NUM
0041 14 327 DEC A
0042 B40900 328 CJNE A,#09H,?C0021
0045 329 ?C0021:
0045 4003 330 JC $ + 5H
0047 020000 F 331 LJMP ?C0016
004A 900000 F 332 MOV DPTR,#?C0022
004D 75F003 333 MOV B,#03H
0050 A4 334 MUL AB
0051 C583 335 XCH A,DPH
0053 25F0 336 ADD A,B
0055 C583 337 XCH A,DPH
0057 73 338 JMP @A+DPTR
0058 339 ?C0022:
0058 020000 F 340 LJMP ?C0007
005B 020000 F 341 LJMP ?C0008
005E 020000 F 342 LJMP ?C0009
0061 020000 F 343 LJMP ?C0010
0064 020000 F 344 LJMP ?C0011
0067 020000 F 345 LJMP ?C0012
006A 020000 F 346 LJMP ?C0013
006D 020000 F 347 LJMP ?C0014
0070 020000 F 348 LJMP ?C0015
349 ; {
350 ; SOURCE LINE # 61
351 ; case 1: // Time
352 ; SOURCE LINE # 62
0073 353 ?C0007:
354 ; UpdateLCD(0X11111111);
355 ; SOURCE LINE # 63
0073 7F11 356 MOV R7,#011H
0075 7E11 357 MOV R6,#011H
0077 7D11 358 MOV R5,#011H
0079 7C11 359 MOV R4,#011H
360 ; break;
361 ; SOURCE LINE # 64
007B 8058 362 SJMP ?C0032
363 ; case 2: // Date
364 ; SOURCE LINE # 65
007D 365 ?C0008:
366 ; UpdateLCD(0X22222222);
367 ; SOURCE LINE # 66
007D 7F22 368 MOV R7,#022H
007F 7E22 369 MOV R6,#022H
0081 7D22 370 MOV R5,#022H
0083 7C22 371 MOV R4,#022H
0085 372 ?C0024:
373 ; break;
374 ; SOURCE LINE # 67
0085 804E 375 SJMP ?C0032
376 ; case 3: // Energy
377 ; SOURCE LINE # 68
0087 378 ?C0009:
379 ; UpdateLCD(0X33333333);
380 ; SOURCE LINE # 69
0087 7F33 381 MOV R7,#033H
0089 7E33 382 MOV R6,#033H
008B 7D33 383 MOV R5,#033H
008D 7C33 384 MOV R4,#033H
008F 385 ?C0025:
386 ; break;
387 ; SOURCE LINE # 70
008F 8044 388 SJMP ?C0032
A51 MACRO ASSEMBLER MAIN 04/14/2007 11:59:56 PAGE 7
389 ; case 4: // PeakLevel
390 ; SOURCE LINE # 71
0091 391 ?C0010:
392 ; UpdateLCD(0X44444444);
393 ; SOURCE LINE # 72
0091 7F44 394 MOV R7,#044H
0093 7E44 395 MOV R6,#044H
0095 7D44 396 MOV R5,#044H
0097 7C44 397 MOV R4,#044H
0099 398 ?C0026:
399 ; break;
400 ; SOURCE LINE # 73
0099 803A 401 SJMP ?C0032
402 ; case 5: //Time
403 ; SOURCE LINE # 74
009B 404 ?C0011:
405 ; UpdateLCD(0X55555555);
406 ; SOURCE LINE # 75
009B 7F55 407 MOV R7,#055H
009D 7E55 408 MOV R6,#055H
009F 7D55 409 MOV R5,#055H
00A1 7C55 410 MOV R4,#055H
00A3 411 ?C0027:
412 ; break;
413 ; SOURCE LINE # 76
00A3 8030 414 SJMP ?C0032
415 ; case 6: // Energy
416 ; SOURCE LINE # 77
00A5 417 ?C0012:
418 ; UpdateLCD(0X66666666);
419 ; SOURCE LINE # 78
00A5 7F66 420 MOV R7,#066H
00A7 7E66 421 MOV R6,#066H
00A9 7D66 422 MOV R5,#066H
00AB 7C66 423 MOV R4,#066H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -