📄 main.src
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
; C:\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
XICON DATA 0C0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
AUXR DATA 08EH
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
ISP_CONTR DATA 0E7H
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
WDT_CONTR DATA 0E1H
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
IPH DATA 0B7H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
AUXR1 DATA 0A2H
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?ini_sfr?MAIN SEGMENT CODE
?PR?disp_logo?MAIN SEGMENT CODE
?PR?samp?MAIN SEGMENT CODE
?DT?samp?MAIN SEGMENT DATA OVERLAYABLE
?PR?filter?MAIN SEGMENT CODE
?DT?filter?MAIN SEGMENT DATA OVERLAYABLE
?PR?data_manage?MAIN SEGMENT CODE
?PR?_renovate_disp?MAIN SEGMENT CODE
?DT?_renovate_disp?MAIN SEGMENT DATA OVERLAYABLE
?PR?main?MAIN SEGMENT CODE
?DT?MAIN SEGMENT DATA
?BI?MAIN SEGMENT BIT
EXTRN DATA (Time_int_t0)
EXTRN BIT (Samp_ok)
EXTRN DATA (Samp_data_c)
EXTRN DATA (Samp_data_h)
EXTRN DATA (Samp_data_l)
EXTRN CODE (?C?LMUL)
EXTRN CODE (?C?LSTIDATA)
EXTRN CODE (?C?LLDIDATA)
EXTRN CODE (?C?LLDIDATA0)
EXTRN CODE (?C?ULCMP)
EXTRN CODE (?C?ULDIV)
EXTRN CODE (?C?UIDIV)
EXTRN CODE (?C?IMUL)
EXTRN CODE (?C_STARTUP)
PUBLIC Filter_result
PUBLIC Firstint
PUBLIC Measure
PUBLIC P_buff
PUBLIC Firstfilt
PUBLIC Sampbuff
PUBLIC Dispbuff
PUBLIC Last_samp_data
PUBLIC Time_samp
PUBLIC main
PUBLIC _renovate_disp
PUBLIC data_manage
PUBLIC filter
PUBLIC samp
PUBLIC disp_logo
PUBLIC ini_sfr
RSEG ?DT?filter?MAIN
?filter?BYTE:
i?343: DS 1
ORG 1
j?344: DS 1
ORG 2
temp?345: DS 4
RSEG ?DT?samp?MAIN
?samp?BYTE:
temp1?241: DS 2
ORG 2
temp2?242: DS 4
RSEG ?DT?_renovate_disp?MAIN
?_renovate_disp?BYTE:
Measure?547: DS 4
ORG 4
temp?549: DS 4
RSEG ?DT?MAIN
Time_samp: DS 1
Last_samp_data: DS 4
Dispbuff: DS 4
Sampbuff: DS 12
P_buff: DS 1
Measure: DS 4
Filter_result: DS 4
RSEG ?BI?MAIN
Firstfilt: DBIT 1
Firstint: DBIT 1
; #include <reg51.h>
;
; #define uchar unsigned char
; #define uint unsigned int
; #define ulong unsigned long
;
; sfr IPH=0xB7;
; sfr AUXR=0x8E;
; sfr AUXR1=0xA2;
; sfr XICON=0xC0;
; sfr WDT_CONTR=0xE1;
; sfr ISP_CONTR=0xE7;
;
; uchar Dispbuff[4];
; bit Firstint;
; bit Firstfilt;
; ulong Filter_result;
; ulong Last_samp_data;
; ulong Measure;
; ulong Sampbuff[3];
; uchar Time_samp;
; uchar P_buff;
;
; extern uchar Samp_data_h;
; extern uchar Samp_data_l;
; extern uchar Samp_data_c;
; extern uchar Time_int_t0;
; extern bit Samp_ok;
;
; #pragma noaregs
;
; void ini_sfr()
RSEG ?PR?ini_sfr?MAIN
ini_sfr:
; SOURCE LINE # 32
; {
; SOURCE LINE # 33
; PSW=0x00;
; SOURCE LINE # 34
CLR A
MOV PSW,A
; AUXR=0x03;
; SOURCE LINE # 35
MOV AUXR,#03H
; AUXR1=0x00;
; SOURCE LINE # 36
MOV AUXR1,A
; ISP_CONTR=0x00;
; SOURCE LINE # 37
MOV ISP_CONTR,A
; WDT_CONTR=0x38;
; SOURCE LINE # 38
MOV WDT_CONTR,#038H
; XICON=0x00;
; SOURCE LINE # 39
MOV XICON,A
; IP=0x02; //int0=2,t0=1,t1=0
; SOURCE LINE # 40
MOV IP,#02H
; IPH=0x01;
; SOURCE LINE # 41
MOV IPH,#01H
; TCON=0x01; //int0:下降沿中断
; SOURCE LINE # 42
MOV TCON,#01H
; TMOD=0x11; //T0:16位计数器,T1:16位定时器
; SOURCE LINE # 43
MOV TMOD,#011H
; TH1=0xE3; //22.1184/4ms
; SOURCE LINE # 44
MOV TH1,#0E3H
; TL1=0x33;
; SOURCE LINE # 45
MOV TL1,#033H
; TH0=0x00;
; SOURCE LINE # 46
MOV TH0,A
; TL0=0x00;
; SOURCE LINE # 47
MOV TL0,A
; SCON=0x00;
; SOURCE LINE # 48
MOV SCON,A
; Firstint=0;
; SOURCE LINE # 49
CLR Firstint
; Firstfilt=1;
; SOURCE LINE # 50
SETB Firstfilt
; Samp_data_h=0;
; SOURCE LINE # 51
MOV Samp_data_h,A
; Samp_data_l=0;
; SOURCE LINE # 52
MOV Samp_data_l,A
; Samp_data_c=0;
; SOURCE LINE # 53
MOV Samp_data_c,A
; Time_int_t0=0;
; SOURCE LINE # 54
MOV Time_int_t0,A
; Samp_ok=0;
; SOURCE LINE # 55
CLR Samp_ok
; IE=0x8B;
; SOURCE LINE # 56
MOV IE,#08BH
; TR1=1;
; SOURCE LINE # 57
SETB TR1
; }
; SOURCE LINE # 58
RET
; END OF ini_sfr
;
; void disp_logo()
RSEG ?PR?disp_logo?MAIN
disp_logo:
USING 0
; SOURCE LINE # 60
; {
; SOURCE LINE # 61
; uchar i=250;
; SOURCE LINE # 62
;---- Variable 'i?140' assigned to Register 'R7' ----
MOV R7,#0FAH
; Dispbuff[0]=43;
; SOURCE LINE # 63
MOV Dispbuff,#02BH
; Dispbuff[1]=22;
; SOURCE LINE # 64
MOV Dispbuff+01H,#016H
; Dispbuff[2]=11;
; SOURCE LINE # 65
MOV Dispbuff+02H,#0BH
; Dispbuff[3]=0;
; SOURCE LINE # 66
CLR A
MOV Dispbuff+03H,A
?C0002:
; while(i--)
; SOURCE LINE # 67
XCH A,R6
MOV A,R7
XCH A,R6
DEC R7
MOV A,R6
JZ ?C0004
; PCON|=0x01;
; SOURCE LINE # 68
ORL PCON,#01H
SJMP ?C0002
; }
; SOURCE LINE # 69
?C0004:
RET
; END OF disp_logo
;
; void samp()
RSEG ?PR?samp?MAIN
samp:
USING 0
; SOURCE LINE # 71
; {
; SOURCE LINE # 72
; uint temp1;
; ulong temp2;
; Time_samp=4;
; SOURCE LINE # 75
MOV Time_samp,#04H
; P_buff=0;
; SOURCE LINE # 76
CLR A
MOV P_buff,A
?C0005:
; while(--Time_samp)
; SOURCE LINE # 77
DEC Time_samp
MOV A,Time_samp
JZ ?C0009
; {
; SOURCE LINE # 78
?C0007:
; while(Samp_ok==0);
; SOURCE LINE # 79
JNB Samp_ok,?C0007
?C0008:
; Samp_ok=0;
; SOURCE LINE # 80
CLR Samp_ok
; temp1=Samp_data_h;
; SOURCE LINE # 81
MOV temp1?241,#00H
MOV temp1?241+01H,Samp_data_h
; temp1=(temp1<<8)|Samp_data_l;
; SOURCE LINE # 82
MOV A,temp1?241+01H
MOV temp1?241,A
MOV A,Samp_data_l
MOV temp1?241+01H,A
; temp2=65535*Samp_data_c;
; SOURCE LINE # 83
MOV R7,Samp_data_c
CLR A
MOV R4,A
MOV R5,A
MOV R6,A
MOV R3,#0FFH
MOV R2,#0FFH
MOV R1,A
MOV R0,A
LCALL ?C?LMUL
MOV temp2?242+03H,R7
MOV temp2?242+02H,R6
MOV temp2?242+01H,R5
MOV temp2?242,R4
; Sampbuff[P_buff++]=(temp1+temp2);
; SOURCE LINE # 84
MOV A,temp1?241+01H
ADD A,temp2?242+03H
MOV R7,A
MOV A,temp1?241
ADDC A,temp2?242+02H
MOV R6,A
CLR A
ADDC A,temp2?242+01H
MOV R5,A
CLR A
ADDC A,temp2?242
MOV R4,A
MOV R3,P_buff
INC P_buff
MOV A,R3
ADD A,ACC
ADD A,ACC
ADD A,#LOW (Sampbuff)
MOV R0,A
LCALL ?C?LSTIDATA
; }
; SOURCE LINE # 85
SJMP ?C0005
; }
; SOURCE LINE # 86
?C0009:
RET
; END OF samp
;
; void filter()
RSEG ?PR?filter?MAIN
filter:
USING 0
; SOURCE LINE # 88
; {
; SOURCE LINE # 89
; uchar i,j;
; ulong temp;
; for(i=0;i<=1;i++)
; SOURCE LINE # 92
CLR A
MOV i?343,A
?C0010:
; for(j=0;j<=(1-i);j++)
; SOURCE LINE # 93
CLR A
MOV j?344,A
?C0013:
CLR C
MOV A,#01H
SUBB A,i?343
MOV R7,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -