📄 main.src
字号:
; {
; SOURCE LINE # 244
; unsigned int Pre;
; if( (input>0 && input<21) || input==0)
; SOURCE LINE # 246
MOV A,R3
SETB C
SUBB A,#00H
JC ?C0057
MOV A,R3
SUBB A,#015H
JC ?C0056
?C0057:
MOV A,R3
JNZ ?C0055
?C0056:
; {
; SOURCE LINE # 247
; Pre=0;
; SOURCE LINE # 248
CLR A
MOV R4,A
MOV R5,A
; }
; SOURCE LINE # 249
?C0055:
; if(input>20 && input<91)
; SOURCE LINE # 250
MOV A,R3
SETB C
SUBB A,#014H
JC ?C0058
MOV A,R3
SUBB A,#05BH
JNC ?C0058
; {
; SOURCE LINE # 251
; Pre=2*input+20;
; SOURCE LINE # 252
MOV A,R3
MOV B,#02H
MUL AB
ADD A,#014H
MOV R5,A
CLR A
ADDC A,B
MOV R4,A
; }
; SOURCE LINE # 253
?C0058:
; if(input>90 && input<140)
; SOURCE LINE # 254
MOV A,R3
SETB C
SUBB A,#05AH
JC ?C0059
MOV A,R3
SUBB A,#08CH
JNC ?C0059
; {
; SOURCE LINE # 255
; Pre=(int) (200/49*input+(400-139*200/49));
; SOURCE LINE # 256
MOV A,R3
MOV B,#04H
MUL AB
ADD A,#059H
MOV R7,A
MOV A,B
ADDC A,#0FFH
MOV R4,A
MOV R5,AR7
; }
; SOURCE LINE # 257
?C0059:
; if(input>139 && input<180)
; SOURCE LINE # 258
MOV A,R3
SETB C
SUBB A,#08BH
JC ?C0060
MOV A,R3
SUBB A,#0B4H
JNC ?C0060
; {
; SOURCE LINE # 259
; Pre=(int) (5*input-295);
; SOURCE LINE # 260
MOV A,R3
MOV B,#05H
MUL AB
ADD A,#0D9H
MOV R5,A
MOV A,B
ADDC A,#0FEH
MOV R4,A
; }
; SOURCE LINE # 261
?C0060:
; if(input>179 && input<209)
; SOURCE LINE # 262
MOV A,R3
SETB C
SUBB A,#0B3H
JC ?C0061
MOV A,R3
SUBB A,#0D1H
JNC ?C0061
; {
; SOURCE LINE # 263
; Pre=(int) (200/29*input+(600-179*200/29));
; SOURCE LINE # 264
MOV A,R3
MOV B,#06H
MUL AB
ADD A,#059H
MOV R5,A
MOV A,B
ADDC A,#06H
MOV R4,A
; }
; SOURCE LINE # 265
?C0061:
; if(input>208 && input<234)
; SOURCE LINE # 266
MOV A,R3
SETB C
SUBB A,#0D0H
JC ?C0062
MOV A,R3
SUBB A,#0EAH
JNC ?C0062
; {
; SOURCE LINE # 267
; Pre=(int) (8*input-864);
; SOURCE LINE # 268
MOV A,R3
MOV B,#08H
MUL AB
ADD A,#0A0H
MOV R5,A
MOV A,B
ADDC A,#0FCH
MOV R4,A
; }
; SOURCE LINE # 269
?C0062:
; if(input>233 && input<256)
; SOURCE LINE # 270
MOV A,R3
SETB C
SUBB A,#0E9H
JC ?C0063
MOV A,#080H
SUBB A,#081H
JNC ?C0063
; {
; SOURCE LINE # 271
; Pre=(int) (200/22*input+(1000-233*200/22));
; SOURCE LINE # 272
MOV A,R3
MOV B,#09H
MUL AB
ADD A,#044H
MOV R5,A
MOV A,B
ADDC A,#07H
MOV R4,A
; }
; SOURCE LINE # 273
?C0063:
; return Pre;
; SOURCE LINE # 274
MOV R7,AR5
MOV R6,AR4
; }
; SOURCE LINE # 275
?C0064:
RET
; END OF _Calculate_Pre
CSEG AT 00023H
LJMP INT_UART_Tx_Rx
; void INT_UART_Tx_Rx() interrupt 4 using 3// serious interrupt
RSEG ?PR?INT_UART_Tx_Rx?MAIN
USING 3
INT_UART_Tx_Rx:
; SOURCE LINE # 276
; {
; }
; SOURCE LINE # 278
RETI
; END OF INT_UART_Tx_Rx
; void UART_Start()//serious interrupt initial
RSEG ?PR?UART_Start?MAIN
UART_Start:
; SOURCE LINE # 279
; {
; SOURCE LINE # 280
; TR1 = 0; //First before start the Timer we should shut it down. (TCON)
; SOURCE LINE # 281
CLR TR1
; // TCON = 0X40; //open Timer1
; TMOD = 0x20; //Mode 2: 8-bit auto-reload Timer.(TImer 1)
; SOURCE LINE # 283
MOV TMOD,#020H
; TH1 = 0xf4; //Equals to 169D
; SOURCE LINE # 284
MOV TH1,#0F4H
; TL1 = 0xf4;
; SOURCE LINE # 285
MOV TL1,#0F4H
; SCON = 0x50; //[Serial Control Register], Mode 1, 8-bit UART, Variable, Receiver enabled.
; SOURCE LINE # 286
MOV SCON,#050H
; PCON = PCON | 0x80; //[Power Configuration Register], select double baud rate in mode 2
; SOURCE LINE # 287
ORL PCON,#080H
; TR1 = 1; //Start the Timer 1
; SOURCE LINE # 288
SETB TR1
;
; RI=0;//Must be cleared by software.
; SOURCE LINE # 290
CLR RI
; TI=0;
; SOURCE LINE # 291
CLR TI
; EA = 1;//enable all interrupts
; SOURCE LINE # 292
SETB EA
; ES = 1;//1=Enable Serial port interrupt
; SOURCE LINE # 293
SETB ES
; }
; SOURCE LINE # 294
RET
; END OF UART_Start
;
; void initial_timer0(void ) //定时器0的初始化,作为计数器///////////reconfiguture
RSEG ?PR?initial_timer0?MAIN
initial_timer0:
; SOURCE LINE # 296
; {
; SOURCE LINE # 297
; IE =IE | 0x82;//enable all interrupt . enable timer 0 (0x92)
; SOURCE LINE # 298
ORL IE,#082H
; IP = 0x02; //let timer 0 high priority
; SOURCE LINE # 299
MOV IP,#02H
; TMOD =TMOD | 0x21;//timer 1 auto-reloaded to produce baru;timer 0 as timer
; SOURCE LINE # 300
ORL TMOD,#021H
; TH0=0x00;
; SOURCE LINE # 301
CLR A
MOV TH0,A
; TL0=0x00;
; SOURCE LINE # 302
MOV TL0,A
; TCON =TCON | 0x50;// start timer 1 and timer 0
; SOURCE LINE # 303
ORL TCON,#050H
; }
; SOURCE LINE # 304
RET
; END OF initial_timer0
; void initial_timer2(void ) //initial the timer2 interrupt
RSEG ?PR?initial_timer2?MAIN
initial_timer2:
; SOURCE LINE # 305
; //定时器2的初始化 作为定时器
; {
; SOURCE LINE # 307
; IE =IE | 0xa2;//enable all interrupt , and enable timer2
; SOURCE LINE # 308
ORL IE,#0A2H
; // IP = IP |0x20; //let timer 2 high priority
; TH2=0;
; SOURCE LINE # 310
CLR A
MOV TH2,A
; TL2=0; //initial value
; SOURCE LINE # 311
MOV TL2,A
; T2CON =T2CON |0x04;// timer 2 as timer
; SOURCE LINE # 312
ORL T2CON,#04H
; TR2=1; //开启定时器
; SOURCE LINE # 313
SETB TR2
; }
; SOURCE LINE # 314
RET
; END OF initial_timer2
CSEG AT 0002BH
LJMP INT_TIMER2_overflow
;
; void INT_TIMER2_overflow() interrupt 5
RSEG ?PR?INT_TIMER2_overflow?MAIN
USING 0
INT_TIMER2_overflow:
PUSH ACC
; SOURCE LINE # 316
; //定时器2的溢出中断处理函数,作为时间计时用
; {
;
; Speed_Count++;//for test speed
; SOURCE LINE # 320
INC Speed_Count+01H
MOV A,Speed_Count+01H
JNZ ?C0073
INC Speed_Count
?C0073:
; Capture_Count++;
; SOURCE LINE # 321
INC Capture_Count+01H
MOV A,Capture_Count+01H
JNZ ?C0074
INC Capture_Count
?C0074:
; Dispaly_Count++;
; SOURCE LINE # 322
INC Dispaly_Count+01H
MOV A,Dispaly_Count+01H
JNZ ?C0075
INC Dispaly_Count
?C0075:
; Alarm_Count++;
; SOURCE LINE # 323
INC Alarm_Count+01H
MOV A,Alarm_Count+01H
JNZ ?C0076
INC Alarm_Count
?C0076:
;
; TF2=0; //must be cleared by soft
; SOURCE LINE # 325
CLR TF2
; }
; SOURCE LINE # 326
POP ACC
RETI
; END OF INT_TIMER2_overflow
; void main()
RSEG ?PR?main?MAIN
main:
USING 0
; SOURCE LINE # 327
; {
; SOURCE LINE # 328
; /* int i;
;
; unsigned char Display_Type=1;
; init();
;
; //init test
;
; for( i=0;i<4;i++)
; {
; Tem_Oil[i]=Calculate_Tem ( Get_Value(1) );
; Pre_Oil[i]=Calculate_Pre (Get_Value(2) );
; Tem_Water[i]=Calculate_Tem ( Get_Value(3));
; }
; Tem_Oil[4]=(int)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4;
; Pre_Oil[4]=(int)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4;
; Tem_Water[4]=(int)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4;
;
;
; //enter cycle
; while(1)
; {
; if(Speed_Count==100)//for speed test
; {
; Speed=(TH0*256+TL0)*Speed_Count/(1000*M);
;
; }
;
; if(Capture_Count==250)//capture one time
; {
; for( i=0;i<4;i++)
; {
; Tem_Oil[i]=Calculate_Tem ( Get_Value(1) );
; Pre_Oil[i]=Calculate_Pre (Get_Value(2) );
; Tem_Water[i]=Calculate_Tem ( Get_Value(3));
; }
; Tem_Oil[4]=(int)(Tem_Oil[0]+Tem_Oil[1]+Tem_Oil[2]+Tem_Oil[3])/4;
; Pre_Oil[4]=(int)(Pre_Oil[0]+Pre_Oil[1]+Pre_Oil[2]+Pre_Oil[3])/4;
; Tem_Water[4]=(int)(Tem_Water[0]+Tem_Water[1]+Tem_Water[2]+Tem_Water[3])/4;
;
; }
;
; if(Dispaly_Count==1000)
; {
; switch(Display_Type)
; {
;
; case 1://dispaly pressure of oil
; Display_Acord_Byte(Pre_Oil[4] );
; break;
; case 2://dispaly tem of oil
; Display_Acord_Byte(Tem_Oil[4] );
; break;
; case 3://dispaly tem of water
; Display_Acord_Byte(Tem_Water[4] );
; break;
; case 4: //display speed of motor
; Display_Acord_Byte( Speed );
; break;
; default:
;
; break;
; }
; Display_Type++;
; if(Display_Type>4)
; Display_Type=1;
;
; }
;
;
;
; }
; */
; unsigned char Byte_Try;
; SOURCE LINE # 401
; //while(1)
; {
; P2=0;
; SOURCE LINE # 404
CLR A
MOV P2,A
; Byte_Try=Display_Lookup_Table(10);
; SOURCE LINE # 405
MOV R7,#0AH
LCALL _Display_Lookup_Table
;---- Variable 'Byte_Try?1256' assigned to Register 'R7' ----
; P0=Byte_Try;
; SOURCE LINE # 406
MOV P0,R7
; P2_3=1;
; SOURCE LINE # 407
SETB P2_3
; P2_3=0;
; SOURCE LINE # 408
CLR P2_3
;
;
; Byte_Try=Display_Lookup_Table(8);
; SOURCE LINE # 411
MOV R7,#08H
LCALL _Display_Lookup_Table
; P0=Byte_Try;
; SOURCE LINE # 412
MOV P0,R7
; P2_2=1;
; SOURCE LINE # 413
SETB P2_2
; P2_2=0;
; SOURCE LINE # 414
CLR P2_2
;
;
; Byte_Try=Display_Lookup_Table(11);
; SOURCE LINE # 417
MOV R7,#0BH
LCALL _Display_Lookup_Table
; P0=Byte_Try;
; SOURCE LINE # 418
MOV P0,R7
; P2_1=1;
; SOURCE LINE # 419
SETB P2_1
; P2_1=0;
; SOURCE LINE # 420
CLR P2_1
;
;
; Byte_Try=Display_Lookup_Table(5);
; SOURCE LINE # 423
MOV R7,#05H
LCALL _Display_Lookup_Table
; P0=Byte_Try;
; SOURCE LINE # 424
MOV P0,R7
; P2_0=1;
; SOURCE LINE # 425
SETB P2_0
; P2_0=0;
; SOURCE LINE # 426
CLR P2_0
;
;
; }
; SOURCE LINE # 429
;
; }
; SOURCE LINE # 431
RET
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -