📄 main.src
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
; d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)
$NOMOD51
NAME MAIN
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T2_EX BIT 090H.1
T1 BIT 0B0H.5
EA BIT 0A8H.7
T2 BIT 090H.0
IE DATA 0A8H
P0_0 BIT 080H.0
P0_1 BIT 080H.1
P2_0 BIT 0A0H.0
P0_2 BIT 080H.2
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
EXF2 BIT 0C8H.6
RD BIT 0B0H.6
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P2_7 BIT 0A0H.7
IP DATA 0B8H
RI BIT 098H.0
CY BIT 0D0H.7
INT0 BIT 0B0H.2
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.7
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
PCON DATA 087H
SBUF DATA 099H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
TF0 BIT 088H.5
ET1 BIT 0A8H.3
TF1 BIT 088H.7
ET2 BIT 0A8H.5
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
IT0 BIT 088H.0
EX0 BIT 0A8H.0
TH1 DATA 08DH
IT1 BIT 088H.2
EX1 BIT 0A8H.2
TB8 BIT 098H.3
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
PT2 BIT 0B8H.5
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
T2MOD DATA 0C9H
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
F1 BIT 0D0H.1
PSW DATA 0D0H
?PR?init?MAIN SEGMENT CODE
?PR?_Get_Value?MAIN SEGMENT CODE
?PR?_Set_Display?MAIN SEGMENT CODE
?PR?_Display_Lookup_Table?MAIN SEGMENT CODE
?PR?_Display_Acord_Byte?MAIN SEGMENT CODE
?DT?_Display_Acord_Byte?MAIN SEGMENT DATA OVERLAYABLE
?PR?_Calculate_Tem?MAIN SEGMENT CODE
?PR?_Calculate_Pre?MAIN SEGMENT CODE
?PR?INT_UART_Tx_Rx?MAIN SEGMENT CODE
?PR?UART_Start?MAIN SEGMENT CODE
?PR?initial_timer0?MAIN SEGMENT CODE
?PR?initial_timer2?MAIN SEGMENT CODE
?PR?INT_TIMER2_overflow?MAIN SEGMENT CODE
?PR?main?MAIN SEGMENT CODE
?C_INITSEG SEGMENT CODE
?DT?MAIN SEGMENT DATA
EXTRN CODE (_abs)
EXTRN CODE (?C?SIDIV)
EXTRN CODE (?C?UIDIV)
EXTRN CODE (?C_STARTUP)
PUBLIC Speed
PUBLIC Speed_Count
PUBLIC Alarm_Count
PUBLIC Dispaly_Count
PUBLIC Capture_Count
PUBLIC Pre_Oil
PUBLIC Tem_Oil
PUBLIC Tem_Water
PUBLIC main
PUBLIC INT_TIMER2_overflow
PUBLIC initial_timer2
PUBLIC initial_timer0
PUBLIC UART_Start
PUBLIC INT_UART_Tx_Rx
PUBLIC _Calculate_Pre
PUBLIC _Calculate_Tem
PUBLIC _Display_Acord_Byte
PUBLIC _Display_Lookup_Table
PUBLIC _Set_Display
PUBLIC _Get_Value
PUBLIC init
XSEG AT 0F800H
Address_Dispaly1: DS 1
XSEG AT 0F400H
Address_Dispaly2: DS 1
XSEG AT 0F200H
Address_Dispaly3: DS 1
XSEG AT 02000H
Address_Tem_Water: DS 1
XSEG AT 0F100H
Address_Dispaly4: DS 1
XSEG AT 00H
Address_Tem_Oil: DS 1
XSEG AT 01000H
Address_Pre_Oil: DS 1
RSEG ?DT?_Display_Acord_Byte?MAIN
?_Display_Acord_Byte?BYTE:
ORG 5
Temp_Remain?447: DS 2
Temp_Divide?448: DS 2
ORG 0
Temp_Byte?449: DS 1
Temp_Remain?450: DS 2
Temp_Divide?451: DS 2
RSEG ?DT?MAIN
Tem_Water: DS 10
Tem_Oil: DS 10
Pre_Oil: DS 10
Capture_Count: DS 2
Dispaly_Count: DS 2
Alarm_Count: DS 2
Speed_Count: DS 2
Speed: DS 1
RSEG ?C_INITSEG
DB 002H
DB Speed_Count
DW 00000H
DB 002H
DB Capture_Count
DW 00000H
DB 002H
DB Dispaly_Count
DW 00000H
DB 002H
DB Alarm_Count
DW 00000H
; //#include <reg51.h>
; #include<intrins.h>
; #include<math.h>
; #include <AT89X55.H>
;
; #define M 5//speed test ,one cycle contain M pulses
;
; int Tem_Oil[5];//-20--150;the last byte is average value
; int Tem_Water[5];///-20--150
; unsigned int Pre_Oil[5];//0-1200kpa
; unsigned char Speed;//300--9999
;
; unsigned int Speed_Count=0;//for test speed
; unsigned int Capture_Count=0;
; unsigned int Dispaly_Count=0;
; unsigned int Alarm_Count=0;
;
; void init()
RSEG ?PR?init?MAIN
init:
; SOURCE LINE # 18
; {
; SOURCE LINE # 19
;
;
;
; Speed_Count=0;//for test speed
; SOURCE LINE # 23
CLR A
MOV Speed_Count,A
MOV Speed_Count+01H,A
; Capture_Count=0;
; SOURCE LINE # 24
MOV Capture_Count,A
MOV Capture_Count+01H,A
; Dispaly_Count=0;
; SOURCE LINE # 25
MOV Dispaly_Count,A
MOV Dispaly_Count+01H,A
; Alarm_Count=0;
; SOURCE LINE # 26
MOV Alarm_Count,A
MOV Alarm_Count+01H,A
;
; }
; SOURCE LINE # 28
RET
; END OF init
;
; static xdata unsigned char Address_Tem_Oil _at_ 0x0000;
; static xdata unsigned char Address_Pre_Oil _at_ 0x1000;
; static xdata unsigned char Address_Tem_Water _at_ 0x2000;
;
; static xdata unsigned char Address_Dispaly1 _at_ 0xf800;
; static xdata unsigned char Address_Dispaly2 _at_ 0xf400;
; static xdata unsigned char Address_Dispaly3 _at_ 0xf200;
; static xdata unsigned char Address_Dispaly4 _at_ 0xf100;
;
; unsigned char Get_Value(unsigned char Choice)//get value of test from fixed address
RSEG ?PR?_Get_Value?MAIN
_Get_Value:
USING 0
; SOURCE LINE # 39
;---- Variable 'Choice?140' assigned to Register 'R7' ----
; {
; SOURCE LINE # 40
; unsigned char value=0;
; SOURCE LINE # 41
;---- Variable 'value?141' assigned to Register 'R6' ----
CLR A
MOV R6,A
; switch(Choice)
; SOURCE LINE # 42
MOV A,R7
ADD A,#0FEH
JZ ?C0004
DEC A
JZ ?C0005
ADD A,#02H
JNZ ?C0002
; {
; SOURCE LINE # 43
; case 1: //for tempreture of oil
; SOURCE LINE # 44
?C0003:
; Address_Tem_Oil=0x33;
; SOURCE LINE # 45
MOV DPTR,#Address_Tem_Oil
; _nop_();//delay 30 us
; SOURCE LINE # 46
; value=Address_Tem_Oil;
; SOURCE LINE # 47
; break;
; SOURCE LINE # 48
SJMP ?C0078
;
;
; case 2: //for pressure of oil
; SOURCE LINE # 51
?C0004:
; Address_Pre_Oil=0x33;
; SOURCE LINE # 52
MOV DPTR,#Address_Pre_Oil
?C0077:
; _nop_();//delay 30 us
; SOURCE LINE # 53
; value=Address_Pre_Oil;
; SOURCE LINE # 54
; break;
; SOURCE LINE # 55
SJMP ?C0078
;
; case 3: //for tempreture of water
; SOURCE LINE # 57
?C0005:
; Address_Tem_Water=0x33;
; SOURCE LINE # 58
MOV DPTR,#Address_Tem_Water
?C0078:
MOV A,#033H
MOVX @DPTR,A
; _nop_();//delay 30 us
; SOURCE LINE # 59
NOP
; value=Address_Tem_Water;
; SOURCE LINE # 60
MOVX A,@DPTR
MOV R6,A
; break;
; SOURCE LINE # 61
; default:
; SOURCE LINE # 62
; break;
; SOURCE LINE # 63
; }
; SOURCE LINE # 64
?C0002:
; return value;
; SOURCE LINE # 65
MOV R7,AR6
; }
; SOURCE LINE # 66
?C0007:
RET
; END OF _Get_Value
;
; Set_Display(unsigned char Choice,unsigned char Value_Diaplay)
RSEG ?PR?_Set_Display?MAIN
L?0088:
USING 0
LCALL _Display_Lookup_Table
MOV Temp_Byte?449,R7
L?0089:
MOV R5,Temp_Byte?449
MOV R7,#01H
_Set_Display:
; SOURCE LINE # 68
;---- Variable 'Value_Diaplay?243' assigned to Register 'R5' ----
;---- Variable 'Choice?242' assigned to Register 'R7' ----
; {
; SOURCE LINE # 69
; switch(Choice)
; SOURCE LINE # 70
MOV A,R7
ADD A,#0FEH
JZ ?C0010
DEC A
JZ ?C0011
DEC A
JZ ?C0012
ADD A,#03H
JNZ ?C0014
; {
; SOURCE LINE # 71
; case 1: //for display 1
; SOURCE LINE # 72
?C0009:
; Address_Dispaly1=Value_Diaplay;
; SOURCE LINE # 73
MOV DPTR,#Address_Dispaly1
MOV A,R5
MOVX @DPTR,A
;
; break;
; SOURCE LINE # 75
RET
;
;
; case 2: //for display 2
; SOURCE LINE # 78
?C0010:
; Address_Dispaly2=Value_Diaplay;
; SOURCE LINE # 79
MOV DPTR,#Address_Dispaly2
MOV A,R5
MOVX @DPTR,A
; break;
; SOURCE LINE # 80
RET
;
; case 3: //for display 3
; SOURCE LINE # 82
?C0011:
; Address_Dispaly3=Value_Diaplay;
; SOURCE LINE # 83
MOV DPTR,#Address_Dispaly3
MOV A,R5
MOVX @DPTR,A
; break;
; SOURCE LINE # 84
RET
;
; case 4: //for display 4
; SOURCE LINE # 86
?C0012:
; Address_Dispaly4=Value_Diaplay;
; SOURCE LINE # 87
MOV DPTR,#Address_Dispaly4
MOV A,R5
MOVX @DPTR,A
; default:
; SOURCE LINE # 88
; break;
; SOURCE LINE # 89
; }
; SOURCE LINE # 90
;
; }
; SOURCE LINE # 92
?C0014:
RET
; END OF _Set_Display
;
; //TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H, 88H,83H,0C6H,0A1H,86H,8EH
;
; unsigned char Display_Lookup_Table(unsigned char byte)
RSEG ?PR?_Display_Lookup_Table?MAIN
_Display_Lookup_Table:
USING 0
; SOURCE LINE # 96
;---- Variable 'Byte_code?345' assigned to Register 'R6' ----
;---- Variable 'byte?344' assigned to Register 'R7' ----
; {
; SOURCE LINE # 97
; unsigned char Byte_code;
; switch(byte)
; SOURCE LINE # 99
MOV A,R7
CJNE A,#0CH,?C0071
?C0071:
JNC ?C0015
MOV DPTR,#?C0072
MOV R0,A
ADD A,R0
ADD A,R0
JMP @A+DPTR
?C0072:
LJMP ?C0016
LJMP ?C0017
LJMP ?C0018
LJMP ?C0019
LJMP ?C0020
LJMP ?C0021
LJMP ?C0022
LJMP ?C0023
LJMP ?C0024
LJMP ?C0025
LJMP ?C0026
LJMP ?C0027
; {
; SOURCE LINE # 100
; case 0:
; SOURCE LINE # 101
?C0016:
; Byte_code=0xC0;
; SOURCE LINE # 102
MOV R6,#0C0H
; break;
; SOURCE LINE # 103
SJMP ?C0015
; case 1:
; SOURCE LINE # 104
?C0017:
; Byte_code=0xF9;
; SOURCE LINE # 105
MOV R6,#0F9H
; break;
; SOURCE LINE # 106
SJMP ?C0015
; case 2:
; SOURCE LINE # 107
?C0018:
; Byte_code=0xA4;
; SOURCE LINE # 108
MOV R6,#0A4H
; break;
; SOURCE LINE # 109
SJMP ?C0015
; case 3:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -