📄 lpc935.src
字号:
; SOURCE LINE # 308
MOV R7,i?040
LCALL _Relay_On
; Cnt_Long_10us=0;
; SOURCE LINE # 309
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0021:
; while (Cnt_Long_10us<_2S);
; SOURCE LINE # 310
CLR A
MOV R7,#020H
MOV R6,#04EH
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0021
;
; }
; SOURCE LINE # 312
?C0020:
INC i?040
MOV A,i?040
CLR C
SUBB A,#03H
JC ?C0018
?C0019:
;
; Cnt_Long_10us=0;
; SOURCE LINE # 314
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0023:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 315
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0023
?C0024:
;
; for (i=0;i<3;i++)
; SOURCE LINE # 317
CLR A
MOV i?040,A
?C0025:
; {
; SOURCE LINE # 318
; Relay_Off(i);
; SOURCE LINE # 319
MOV R7,i?040
LCALL _Relay_Off
; Cnt_Long_10us=0;
; SOURCE LINE # 320
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0028:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 321
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0028
; }
; SOURCE LINE # 322
?C0027:
INC i?040
MOV A,i?040
CLR C
SUBB A,#03H
JC ?C0025
?C0026:
;
; Cnt_Long_10us=0;
; SOURCE LINE # 324
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0030:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 325
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0030
; }
; SOURCE LINE # 326
?C0003:
;
;
; if (Flag_10ms)
; SOURCE LINE # 329
JNB Flag_10ms,?C0032
; {
; SOURCE LINE # 330
; Flag_10ms=false;
; SOURCE LINE # 331
CLR Flag_10ms
; Cnt_10ms++;
; SOURCE LINE # 332
INC Cnt_10ms
; if (Cnt_10ms>100)
; SOURCE LINE # 333
MOV A,Cnt_10ms
SETB C
SUBB A,#064H
JC ?C0032
; {
; SOURCE LINE # 334
; Flag_Second=true;
; SOURCE LINE # 335
SETB Flag_Second
; Cnt_10ms=0;
; SOURCE LINE # 336
CLR A
MOV Cnt_10ms,A
; }
; SOURCE LINE # 337
; }
; SOURCE LINE # 338
?C0032:
;
; if (Flag_Second)
; SOURCE LINE # 340
JNB Flag_Second,?C0034
; {
; SOURCE LINE # 341
; Flag_Second=false;
; SOURCE LINE # 342
CLR Flag_Second
; Second++;
; SOURCE LINE # 343
INC Second
; Comm_LED=~Comm_LED;
; SOURCE LINE # 344
CPL Comm_LED
;
; SBUF=Solar_Vol;
; SOURCE LINE # 346
MOV SBUF,Solar_Vol
?C0035:
; while (!TI);
; SOURCE LINE # 347
JNB TI,?C0035
?C0036:
; TI=0;
; SOURCE LINE # 348
CLR TI
;
; SBUF=Battery_Vol;
; SOURCE LINE # 350
MOV SBUF,Battery_Vol
?C0037:
; while (!TI);
; SOURCE LINE # 351
JNB TI,?C0037
?C0038:
; TI=0;
; SOURCE LINE # 352
CLR TI
;
; if (Second>60)
; SOURCE LINE # 354
MOV A,Second
SETB C
SUBB A,#03CH
JC ?C0034
; { Minute++;
; SOURCE LINE # 355
INC Minute+01H
MOV A,Minute+01H
JNZ ?C0141
INC Minute
?C0141:
; Second=0;
; SOURCE LINE # 356
CLR A
MOV Second,A
; }
; SOURCE LINE # 357
;
; }
; SOURCE LINE # 359
?C0034:
;
;
; if(RecFlag)
; SOURCE LINE # 362
JNB RecFlag,?C0040
; {
; SOURCE LINE # 363
; RecFlag=false;
; SOURCE LINE # 364
CLR RecFlag
; Temp_Word=IR_Rec_Buf;
; SOURCE LINE # 365
MOV Temp_Word,IR_Rec_Buf
MOV Temp_Word+01H,IR_Rec_Buf+01H
; Temp_Word>>=8;
; SOURCE LINE # 366
MOV A,Temp_Word
MOV Temp_Word+01H,A
MOV Temp_Word,#00H
; SBUF=(byte)Temp_Word;
; SOURCE LINE # 367
MOV SBUF,Temp_Word+01H
?C0041:
; while (!TI);
; SOURCE LINE # 368
JNB TI,?C0041
?C0042:
; TI=0;
; SOURCE LINE # 369
CLR TI
;
; SBUF=(byte)IR_Rec_Buf;
; SOURCE LINE # 371
MOV SBUF,IR_Rec_Buf+01H
?C0043:
; while (!TI);
; SOURCE LINE # 372
JNB TI,?C0043
?C0044:
; TI=0;
; SOURCE LINE # 373
CLR TI
;
; // SBUF=Get_Remote_Key(IR_Rec_Buf);
; // while (!TI);
; // TI=0;
;
; Send_IR_Bit_Cnt=17;
; SOURCE LINE # 379
MOV Send_IR_Bit_Cnt,#011H
; IR_Data=IR_Rec_Buf;
; SOURCE LINE # 380
MOV IR_Data,IR_Rec_Buf
MOV IR_Data+01H,IR_Rec_Buf+01H
;
; } //end RecFlag
; SOURCE LINE # 382
?C0040:
;
; if (Flag_100us)
; SOURCE LINE # 384
JB Flag_100us,$ + 6H
LJMP ?C0001
; {
; SOURCE LINE # 385
; Flag_100us=false;
; SOURCE LINE # 386
CLR Flag_100us
; if (ADC_Time<8) //取8次然后求平均
; SOURCE LINE # 387
MOV A,ADC_Time
CLR C
SUBB A,#08H
JNC ?C0046
; {
; SOURCE LINE # 388
; ADC_Time++;
; SOURCE LINE # 389
INC ADC_Time
; ADCON0=0x05; //选择转换触发模式;并立即启动
; SOURCE LINE # 390
MOV ADCON0,#05H
; ADC_Solar+=AD0DAT0; //将AD转换获得的数据存入
; SOURCE LINE # 391
MOV R7,AD0DAT0
MOV A,R7
ADD A,ADC_Solar+01H
MOV ADC_Solar+01H,A
CLR A
ADDC A,ADC_Solar
MOV ADC_Solar,A
; ADCON0&=0xF7; //清除中断完成标志
; SOURCE LINE # 392
ANL ADCON0,#0F7H
;
; ADCON1=0x05; //选择转换触发模式;并立即启动
; SOURCE LINE # 394
MOV ADCON1,#05H
; ADC_Battery+=AD1DAT0; //将AD转换获得的数据存入
; SOURCE LINE # 395
MOV R7,AD1DAT0
MOV A,R7
ADD A,ADC_Battery+01H
MOV ADC_Battery+01H,A
CLR A
ADDC A,ADC_Battery
MOV ADC_Battery,A
; Battery_Vol=AD1DAT0;
; SOURCE LINE # 396
MOV Battery_Vol,AD1DAT0
; ADCON1&=0xF7; //清除中断完成标志
; SOURCE LINE # 397
ANL ADCON1,#0F7H
; }
; SOURCE LINE # 398
LJMP ?C0001
?C0046:
; else
; {
; SOURCE LINE # 400
; ADC_Time=0;
; SOURCE LINE # 401
CLR A
MOV ADC_Time,A
;
; ADC_Solar>>=3; //*8
; SOURCE LINE # 403
MOV A,ADC_Solar+01H
MOV R6,ADC_Solar
MOV R0,#03H
?C0142:
XCH A,R6
CLR C
RRC A
XCH A,R6
RRC A
DJNZ R0,?C0142
MOV ADC_Solar+01H,A
MOV ADC_Solar,R6
; Solar_Vol=(byte)ADC_Solar;
; SOURCE LINE # 404
MOV Solar_Vol,A
; ADC_Solar=0;
; SOURCE LINE # 405
CLR A
MOV ADC_Solar,A
MOV ADC_Solar+01H,A
;
; ADC_Battery>>=3; //*8
; SOURCE LINE # 407
MOV A,ADC_Battery+01H
MOV R6,ADC_Battery
MOV R0,#03H
?C0143:
XCH A,R6
CLR C
RRC A
XCH A,R6
RRC A
DJNZ R0,?C0143
MOV ADC_Battery+01H,A
MOV ADC_Battery,R6
; Battery_Vol=(byte)ADC_Battery;
; SOURCE LINE # 408
MOV Battery_Vol,A
; ADC_Battery=0;
; SOURCE LINE # 409
CLR A
MOV ADC_Battery,A
MOV ADC_Battery+01H,A
; }
; SOURCE LINE # 410
; }
; SOURCE LINE # 411
;
; }
; SOURCE LINE # 413
LJMP ?C0001
; END OF main
;
;
;
; switch (State) {
;
; case State_Idle:
; break;
;
;
; case State_PowerDown:
; break;
;
; case State_Wait:
; break;
;
; case State_Duration:
;
; break;
; }
;
; //**********************************************************
; if (Flag_10ms) {
; Flag_10ms=0;
; if (ScanKeyDelay!=0) {
; LED=On;
; ScanKeyDelay--;
; }
; else LED=Off;
;
; if(!(CMP1&0x02)) { //比较器输出,和CPU同步以允许软件进行读取。
; Ligth_Low_Cnt++;
; //LED=On;
; }
; else
; { Ligth_High_Cnt++;
; //LED=Off;
; }
;
; if (ScanKeyEn) {
; if (!Key_Test) {
; ScanKeyDelay=10;
; ScanKeyEn=0;
;
; } // if (!Key_Set)
;
; }//if (ScanKeyEn)
; }//if (Flag_10ms) {
;
;
; //********************************************************
; if (UART_Data) {
; UART_Data=0;
; }
;
; //********************************************************
;
;
; //************************************************************
;
;
; if (Write_Setting)
; {
;
; }
;
; } // end main()
;
;
; //**************************************************
;
;
;
; void Init_hw(void)
RSEG ?PR?Init_hw?LPC935
Init_hw:
; SOURCE LINE # 486
; {
; SOURCE LINE # 487
; P2M1=0x00;
; SOURCE LINE # 488
CLR A
MOV P2M1,A
; P2M2=0xfC;
; SOURCE LINE # 489
MOV P2M2,#0FCH
; P1M1=0x00;
; SOURCE LINE # 490
MOV P1M1,A
; P1M2=0xff;
; SOURCE LINE # 491
MOV P1M2,#0FFH
; P0M1=0x00;
; SOURCE LINE # 492
MOV P0M1,A
; P0M2=0xff;
; SOURCE LINE # 493
MOV P0M2,#0FFH
; DIVM=0;
; SOURCE LINE # 494
MOV DIVM,A
; EA=0;
; SOURCE LINE # 495
CLR EA
;
; TX_DATA_PIN=1; //turn off TX IR
; SOURCE LINE # 497
SETB TX_DATA_PIN
; }
; SOURCE LINE # 498
RET
; END OF Init_hw
;
; //**************************************************
; //串口 9600BAUDRATE N 8 1
; // Baudrate = CCLK [BRGR1BRGR0+16]
; // CCLK=4,000,000;
; // 9600=4000000(BRGR1BRGR0+16)
; // BRGR1BRGR0=4000000/9600-16 =400; BRGR1BRGR0=0x190H
; //
; void UART_init()
RSEG ?PR?UART_init?LPC935
UART_init:
; SOURCE LINE # 507
; {
; SOURCE LINE # 508
;
; SCON=0x50; //使能接收选择串口模式1
; SOURCE LINE # 510
MOV SCON,#050H
; SSTAT=0xE0; //选择独立的Tx/Rx中
; SOURCE LINE # 511
MOV SSTAT,#0E0H
; BRGR0=0xF0; //9600 baud @ 7.373MHz
; SOURCE LINE # 512
MOV BRGR0,#0F0H
; BRGR1=0x02;
; SOURCE LINE # 513
MOV BRGR1,#02H
; // BRGR0=0x90; //9600 baud @ 4MHz
; // BRGR1=0x01; //
; BRGCON =0x03; //使能BRG
; SOURCE LINE # 516
MOV BRGCON,#03H
; ESR=1; //ESR=Enable Serial Recieve
; SOURCE LINE # 517
SETB ESR
; // EST=1; //EST=Enable Serial Transmit
; }
; SOURCE LINE # 519
RET
; END OF UART_init
CSEG AT 00023H
LJMP Rcv_ISR
;
; void Rcv_ISR() interrupt 4
RSEG ?PR?Rcv_ISR?LPC935
USING 0
Rcv_ISR:
PUSH PSW
MOV PSW,#00H
PUSH AR7
USING 0
; SOURCE LINE # 521
; { //当接收完一个字节RI置1进入Recieve中
; byte temp;
; EA=0; //
; SOURCE LINE # 524
CLR EA
; // while(!RI) //等待接收完时RI置位
; temp=SBUF; //保存所读取的数据
; SOURCE LINE # 526
;---- Variable 'temp?341' assigned to Register 'R7' ----
MOV R7,SBUF
; RI=0; //RI清0以等待下次发
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -