📄 16.src
字号:
; .\16.SRC generated from: 16.C
$NOMOD51
NAME _16
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
IE DATA 0A8H
P3_2 BIT 0B0H.2
P3_3 BIT 0B0H.3
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
P3_4 BIT 0B0H.4
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
AOUT BIT 0B0H.6
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.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
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
PT2 BIT 0B8H.5
TR0 BIT 088H.4
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
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_delay?16 SEGMENT CODE INBLOCK
?PR?serial?16 SEGMENT CODE INBLOCK
?PD?serial?16 SEGMENT XDATA INPAGE OVERLAYABLE
?PR?_adcsand?16 SEGMENT CODE INBLOCK
?PR?main?16 SEGMENT CODE INBLOCK
?PD?main?16 SEGMENT XDATA INPAGE OVERLAYABLE
?BA?16 SEGMENT DATA BITADDRESSABLE
?PD?16 SEGMENT XDATA INPAGE
?DT?16 SEGMENT DATA
EXTRN CODE (?C?CLDPTR)
EXTRN CODE (?C_STARTUP)
EXTRN CODE (?C?ISTPTR)
PUBLIC jj
PUBLIC ii
PUBLIC da?
PUBLIC ad
PUBLIC flag_4
PUBLIC flag_3
PUBLIC flag_2
PUBLIC flag_1
PUBLIC flag_0
PUBLIC flag
PUBLIC main
PUBLIC _adcsand
PUBLIC serial
PUBLIC _delay
RSEG ?PD?serial?16
?serial?BYTE:
pi?143: DS 3
RSEG ?PD?main?16
?main?BYTE:
i?345: DS 1
j?346: DS 1
pi?347: DS 3
RSEG ?BA?16
flag: DS 1
flag_0 EQU (flag+0).0
flag_1 EQU (flag+0).1
flag_2 EQU (flag+0).2
flag_3 EQU (flag+0).3
flag_4 EQU (flag+0).4
RSEG ?PD?16
ad: DS 8
ii: DS 2
jj: DS 1
RSEG ?DT?16
da?: DS 1
;
;
; /*------------------------------------------
; serial ad & da.c 外电压比较器
; Copyright 2002 DFJD Software, Inc.
; --------------------------------------------*/
;
; #include <reg52.h> /* special function register declarations */
; /* for the intended 8051 derivative */
; #include <stdio.h> /* prototype declarations for I/O functions */
;
; #define uint unsigned int
; #define uchar unsigned char
;
; uchar bdata flag;
; sbit flag_0=flag^0;
; sbit flag_1=flag^1;
; sbit flag_2=flag^2;
; sbit flag_3=flag^3;
; sbit flag_4=flag^4;
;
;
; sbit P3_2=P3^2;
; sbit P3_3=P3^3;
; sbit P3_4=P3^4;
; sbit P3_5=P3^5;
; sbit P3_7=P3^7;
;
;
;
; uchar data da; /* 收*/
; union /* 发*/
; {
; unsigned int t_buf[4];
; unsigned char t_buf8[8];
; } ad;
;
; uchar jj;
; uint ii;
; sbit AOUT=P3^6;
;
; void delay(uint i)
RSEG ?PR?_delay?16
_delay:
USING 0
; SOURCE LINE # 42
;---- Variable 'i?040' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 43
; uint j;
; for(j=0;j<i;j++);
; SOURCE LINE # 45
;---- Variable 'j?041' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0001:
CLR C
MOV A,R5
SUBB A,R7
MOV A,R4
SUBB A,R6
JNC ?C0004
INC R5
CJNE R5,#00H,?C0027
INC R4
?C0027:
SJMP ?C0001
; }
; SOURCE LINE # 46
?C0004:
RET
; END OF _delay
CSEG AT 00023H
AJMP serial
;
; serial() interrupt 4 using 1
RSEG ?PR?serial?16
USING 1
serial:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
USING 1
MOV PSW,#08H
; SOURCE LINE # 48
; {
; uchar i;
; uchar *pi;
; ES=0;
; SOURCE LINE # 52
CLR ES
; RI=0;
; SOURCE LINE # 53
CLR RI
; i=SBUF;
; SOURCE LINE # 54
;---- Variable 'i?142' assigned to Register 'R7' ----
MOV R7,SBUF
; if(i!=0xaa)
; SOURCE LINE # 55
MOV A,R7
XRL A,#0AAH
JZ ?C0005
; {
; SOURCE LINE # 56
; SBUF=0xff;
; SOURCE LINE # 57
MOV SBUF,#0FFH
?C0006:
; while(TI==0);
; SOURCE LINE # 58
JNB TI,?C0006
?C0007:
; TI=0;
; SOURCE LINE # 59
CLR TI
; ES=1;
; SOURCE LINE # 60
SETB ES
SJMP ?C0008
; return;
; }
; SOURCE LINE # 62
?C0005:
; SBUF=0xbb;
; SOURCE LINE # 63
MOV SBUF,#0BBH
?C0009:
; while(TI==0);
; SOURCE LINE # 64
JNB TI,?C0009
?C0010:
; TI=0;
; SOURCE LINE # 65
CLR TI
; pi=ad.t_buf8;
; SOURCE LINE # 66
MOV R2,#HIGH (ad)
MOV R1,#LOW (ad)
MOV R0,#LOW (pi?143)
MOV A,#0FEH
MOVX @R0,A
INC R0
MOV A,#HIGH (ad)
MOVX @R0,A
INC R0
MOV A,#LOW (ad)
MOVX @R0,A
; for(jj=0;jj<8;jj++)
; SOURCE LINE # 67
MOV R0,#LOW (jj)
CLR A
MOVX @R0,A
?C0011:
; {
; SOURCE LINE # 68
; SBUF=*pi;
; SOURCE LINE # 69
MOV R0,#LOW (pi?143)
MOVX A,@R0
MOV R3,A
INC R0
MOVX A,@R0
MOV R2,A
INC R0
MOVX A,@R0
MOV R1,A
ACALL ?C?CLDPTR
MOV SBUF,A
?C0014:
; while(TI==0);
; SOURCE LINE # 70
JNB TI,?C0014
?C0015:
; TI=0;
; SOURCE LINE # 71
CLR TI
; pi++;
; SOURCE LINE # 72
MOV R0,#LOW (pi?143+02H)
MOVX A,@R0
ADD A,#01H
MOVX @R0,A
DEC R0
MOVX A,@R0
ADDC A,#00H
MOVX @R0,A
; }
; SOURCE LINE # 73
MOV R0,#LOW (jj)
MOVX A,@R0
INC A
MOVX @R0,A
MOVX A,@R0
CJNE A,#08H,?C0011
?C0016:
; while(RI==0);
; SOURCE LINE # 74
JNB RI,?C0016
?C0017:
; RI=0;
; SOURCE LINE # 75
CLR RI
; da=SBUF;
; SOURCE LINE # 76
MOV da?,SBUF
; ES=1;
; SOURCE LINE # 77
SETB ES
; }
; SOURCE LINE # 78
?C0008:
POP PSW
POP DPL
POP DPH
POP ACC
RETI
; END OF serial
;
; uint adcsand (uchar i)
RSEG ?PR?_adcsand?16
_adcsand:
USING 0
; SOURCE LINE # 80
;---- Variable 'i?244' assigned to Register 'R3' ----
MOV R3,AR7
; {
; SOURCE LINE # 81
; // uint ii; /* 1000us<->1000mv */
; P1=0xfd; /*步骤1,p1.1=0, Cf放电 */
; SOURCE LINE # 83
MOV P1,#0FDH
; TR0=0;
; SOURCE LINE # 84
CLR TR0
; delay(10); /* dalay20us,Cf彻底放电*/
; SOURCE LINE # 85
MOV R7,#0AH
MOV R6,#00H
ACALL _delay
; TH0=0;
; SOURCE LINE # 86
CLR A
MOV TH0,A
; TL0=0;
; SOURCE LINE # 87
MOV TL0,A
; P1=i; /* p1.1=1开始积分*/
; SOURCE LINE # 88
MOV R7,AR3
MOV P1,R7
; TR0=1; /* 起动T0 */
; SOURCE LINE # 89
SETB TR0
?C0018:
; while(AOUT==1); /* 检测AOUT 是否跳变,aout=0,(v- > v+)积分时间到
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -