📄 adda.src
字号:
; adda.SRC generated from: adda.c
$NOMOD51
NAME ADDA
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
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
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
RD BIT 0B0H.7
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
ES BIT 0A8H.4
P2_7 BIT 0A0H.7
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
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
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?main?ADDA SEGMENT CODE
?DT?main?ADDA SEGMENT DATA OVERLAYABLE
?PR?initial?ADDA SEGMENT CODE
?PR?_delay?ADDA SEGMENT CODE
?PR?_sendda?ADDA SEGMENT CODE
?DT?_sendda?ADDA SEGMENT DATA OVERLAYABLE
?PR?getad?ADDA SEGMENT CODE
?PR?serdate?ADDA SEGMENT CODE
?DT?serdate?ADDA SEGMENT DATA OVERLAYABLE
EXTRN CODE (?C_STARTUP)
EXTRN CODE (?C?FCASTC)
EXTRN CODE (?C?FPMUL)
EXTRN CODE (?C?FPADD)
EXTRN CODE (?C?CASTF)
PUBLIC serdate
PUBLIC getad
PUBLIC _sendda
PUBLIC _delay
PUBLIC initial
PUBLIC main
RSEG ?DT?main?ADDA
?main?BYTE:
refint?040: DS 2
aint?041: DS 2
RSEG ?DT?_sendda?ADDA
?_sendda?BYTE:
ab?345: DS 2
RSEG ?DT?serdate?ADDA
?serdate?BYTE:
tmp2?551: DS 1
; #pragma SRC
; #include <stdio.h>
; #include <reg51.h>
;
;
; #define TRUE 1
; #define FALSE 0
;
; #define DELAY_VALUE 3
;
; #define ATODHIGH 0x0700 //00000111
; #define ATODLOW 0x0F00 //00001111
; #define DTOAHIGH 0x1100 //00010001
; #define DTOALOW 0x1200 //00010010
; #define ADDARATE 1.1304
; #define STEPLENGTH 3
;
; #define PinLamp P1_0 //指示灯驱动管脚
; #define PinSpeaker P1_1 //蜂鸣器驱动管脚
; #define PinADStatus P1_2 //AD的状态显示
; #define PinADCS P2_4 //AD的选中信号
; #define XBYTE ((unsigned char volatile xdata*) 0)
;
; sbit P0_0=P0^0;
; sbit P0_1=P0^1;
; sbit P0_2=P0^2;
; sbit P0_3=P0^3;
; sbit P0_4=P0^4;
; sbit P0_5=P0^5;
; sbit P0_6=P0^6;
; sbit P0_7=P0^7;
;
; sbit P1_0=P1^0;
; sbit P1_1=P1^1;
; sbit P1_2=P1^2;
; sbit P1_3=P1^3;
; sbit P1_4=P1^4;
; sbit P1_5=P1^5;
; sbit P1_6=P1^6;
; sbit P1_7=P1^7;
;
; sbit P2_0=P2^0;
; sbit P2_1=P2^1;
; sbit P2_2=P2^2;
; sbit P2_3=P2^3;
; sbit P2_4=P2^4;
; sbit P2_5=P2^5;
; sbit P2_6=P2^6;
; sbit P2_7=P2^7;
;
;
; void initial(void); //初始化子程序
; void delay(unsigned char i);
; void sendda(unsigned short ab);
; unsigned short getad(void);
; unsigned short serdate(void);
;
; void main(void)
RSEG ?PR?main?ADDA
main:
USING 0
; SOURCE LINE # 58
; {
; SOURCE LINE # 59
; unsigned short refint=0,aint=0;
; SOURCE LINE # 60
CLR A
MOV refint?040,A
MOV refint?040+01H,A
MOV aint?041,A
MOV aint?041+01H,A
; initial();
; SOURCE LINE # 61
LCALL initial
?C0001:
; while(1)
; SOURCE LINE # 62
; {
; SOURCE LINE # 63
; refint=serdate();
; SOURCE LINE # 64
LCALL serdate
MOV refint?040,R6
MOV refint?040+01H,R7
; aint=getad();
; SOURCE LINE # 65
LCALL getad
MOV aint?041,R6
MOV aint?041+01H,R7
; if(aint>=refint)
; SOURCE LINE # 66
CLR C
MOV A,aint?041+01H
SUBB A,refint?040+01H
MOV A,aint?041
SUBB A,refint?040
JC ?C0003
; {
; SOURCE LINE # 67
; aint-=STEPLENGTH;
; SOURCE LINE # 68
MOV A,#0FDH
ADD A,aint?041+01H
MOV aint?041+01H,A
MOV A,#0FFH
; }
; SOURCE LINE # 69
SJMP ?C0017
?C0003:
; else if(aint<refint)
; SOURCE LINE # 70
CLR C
MOV A,aint?041+01H
SUBB A,refint?040+01H
MOV A,aint?041
SUBB A,refint?040
JNC ?C0004
; {
; SOURCE LINE # 71
; aint+=STEPLENGTH;
; SOURCE LINE # 72
MOV A,#03H
ADD A,aint?041+01H
MOV aint?041+01H,A
CLR A
?C0017:
ADDC A,aint?041
MOV aint?041,A
; }
; SOURCE LINE # 73
?C0004:
; sendda(aint);
; SOURCE LINE # 74
MOV R7,aint?041+01H
MOV R6,aint?041
LCALL _sendda
; }
; SOURCE LINE # 75
SJMP ?C0001
; END OF main
; }
;
;
; void initial(void)
RSEG ?PR?initial?ADDA
initial:
; SOURCE LINE # 79
; {
; SOURCE LINE # 80
; P1_0=TRUE; //发光二极管设为不亮
; SOURCE LINE # 81
SETB P1_0
; P1_1=TRUE; //蜂鸣器不叫
; SOURCE LINE # 82
SETB P1_1
; }
; SOURCE LINE # 83
RET
; END OF initial
;
; void delay(unsigned char i) //延迟子程序
RSEG ?PR?_delay?ADDA
_delay:
USING 0
; SOURCE LINE # 85
;---- Variable 'i?242' assigned to Register 'R7' ----
; {
; SOURCE LINE # 86
; short j=0;
; SOURCE LINE # 87
;---- Variable 'j?243' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
; short k=0;
; SOURCE LINE # 88
;---- Variable 'k?244' assigned to Register 'R2/R3' ----
; k=i*DELAY_VALUE;
; SOURCE LINE # 89
MOV A,R7
MOV B,#03H
MUL AB
MOV R2,B
MOV R3,A
?C0008:
; while (j<k)j++;
; SOURCE LINE # 90
CLR C
MOV A,R5
SUBB A,R3
MOV A,R2
XRL A,#080H
MOV R0,A
MOV A,R4
XRL A,#080H
SUBB A,R0
JNC ?C0010
INC R5
CJNE R5,#00H,?C0016
INC R4
?C0016:
SJMP ?C0008
; }
; SOURCE LINE # 91
?C0010:
RET
; END OF _delay
;
; void sendda(unsigned short ab)
RSEG ?PR?_sendda?ADDA
_sendda:
USING 0
; SOURCE LINE # 93
MOV ab?345,R6
MOV ab?345+01H,R7
; {
; SOURCE LINE # 94
;
; XBYTE[DTOAHIGH]=(unsigned char)(ab/256);
; SOURCE LINE # 96
MOV A,ab?345
MOV DPTR,#01100H
MOVX @DPTR,A
; delay(DELAY_VALUE);
; SOURCE LINE # 97
MOV R7,#03H
LCALL _delay
; XBYTE[DTOALOW]=ab-(unsigned short)((unsigned char)(ab/256)*256);
; SOURCE LINE # 98
CLR C
MOV A,ab?345+01H
SUBB A,#00H
MOV DPTR,#01200H
MOVX @DPTR,A
; delay(DELAY_VALUE);
; SOURCE LINE # 99
MOV R7,#03H
LJMP _delay
; END OF _sendda
; }
;
; unsigned short getad(void)
RSEG ?PR?getad?ADDA
getad:
USING 0
; SOURCE LINE # 102
; {
; SOURCE LINE # 103
; unsigned short ab;
; unsigned char tmp1,tmp2;
; PinADCS=TRUE;
; SOURCE LINE # 106
SETB P2_4
; PinADStatus=TRUE;
; SOURCE LINE # 107
SETB P1_2
?C0012:
; while(PinADStatus==TRUE);
; SOURCE LINE # 108
JB P1_2,?C0012
?C0013:
; tmp1=XBYTE[ATODHIGH];
; SOURCE LINE # 109
MOV DPTR,#0700H
MOVX A,@DPTR
MOV R7,A
;---- Variable 'tmp1?447' assigned to Register 'R7' ----
; tmp2=XBYTE[ATODLOW];
; SOURCE LINE # 110
MOV DPTR,#0F00H
MOVX A,@DPTR
;---- Variable 'tmp2?448' assigned to Register 'R5' ----
MOV R5,A
; ab=(unsigned short)tmp1*256+(unsigned short)tmp2;
; SOURCE LINE # 111
MOV A,R7
MOV R6,A
MOV R4,#00H
CLR A
ADD A,R5
MOV R7,A
MOV A,R4
ADDC A,R6
MOV R6,A
;---- Variable 'ab?446' assigned to Register 'R6/R7' ----
; return ab;
; SOURCE LINE # 112
; }
; SOURCE LINE # 113
?C0014:
RET
; END OF getad
;
; unsigned short serdate(void)
RSEG ?PR?serdate?ADDA
serdate:
USING 0
; SOURCE LINE # 115
; {
; SOURCE LINE # 116
; unsigned short ab;
; unsigned char tmp1,tmp2;
; tmp1 = XBYTE[DTOAHIGH];
; SOURCE LINE # 119
MOV DPTR,#01100H
MOVX A,@DPTR
MOV R7,A
;---- Variable 'tmp1?550' assigned to Register 'R7' ----
; tmp2 = XBYTE[DTOALOW];
; SOURCE LINE # 120
MOV DPTR,#01200H
MOVX A,@DPTR
MOV tmp2?551,A
; ab=(unsigned short)(((float)tmp1*256+(float)tmp2)*ADDARATE);
; SOURCE LINE # 121
MOV R4,AR7
CLR A
LCALL ?C?FCASTC
CLR A
MOV R3,A
MOV R2,A
MOV R1,#080H
MOV R0,#043H
LCALL ?C?FPMUL
PUSH AR4
PUSH AR5
PUSH AR6
PUSH AR7
MOV R4,tmp2?551
CLR A
LCALL ?C?FCASTC
POP AR3
POP AR2
POP AR1
POP AR0
LCALL ?C?FPADD
MOV R3,#0F2H
MOV R2,#0B0H
MOV R1,#090H
MOV R0,#03FH
LCALL ?C?FPMUL
LCALL ?C?CASTF
;---- Variable 'ab?549' assigned to Register 'R6/R7' ----
; return ab;
; SOURCE LINE # 122
; }
; SOURCE LINE # 123
?C0015:
RET
; END OF serdate
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -