📄 12ad.src
字号:
MOV DPTR,#j?148
MOVX A,@DPTR
ADDC A,R6
MOV R6,A
MOV DPTR,#adresult
MOV B,#0CH
MOV A,R7
LCALL ?C?OFFXADD
MOV A,R6
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
PUSH DPH
PUSH DPL
MOV DPTR,#t?145
MOVX A,@DPTR
POP DPL
POP DPH
MOV B,#02H
LCALL ?C?OFFXADD
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
MOVX @DPTR,A
; //adresult[8*i+j][t]=Read1543(ch);
; k++;
; SOURCE LINE # 79
MOV DPTR,#k?149+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0057
MOV DPTR,#k?149
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0057:
; }
; SOURCE LINE # 80
MOV DPTR,#j?148+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0058
MOV DPTR,#j?148
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0058:
CLR C
MOV DPTR,#j?148+01H
MOVX A,@DPTR
SUBB A,#08H
MOV DPTR,#j?148
MOVX A,@DPTR
SUBB A,#00H
JNC $ + 5H
LJMP ?C0025
; }
; SOURCE LINE # 81
?C0018:
MOV DPTR,#i?147+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0059
MOV DPTR,#i?147
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0059:
LJMP ?C0016
; }
; SOURCE LINE # 82
?C0028:
RET
; END OF _Getad
;
; /**********************排序子程序****************************/
;
; void Sort(uchar n)
RSEG ?PR?_Sort?12AD
_Sort:
USING 0
; SOURCE LINE # 86
;---- Variable 'n?251' assigned to Register 'R1' ----
MOV R1,AR7
; {
; SOURCE LINE # 87
; uint i,j,k,temp;
; for(i=0;i<34;i++) //共34路
; SOURCE LINE # 89
;---- Variable 'i?252' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0029:
; {for(j=0;j<n;j++) //n个数排序
; SOURCE LINE # 90
CLR A
MOV DPTR,#j?253
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
?C0032:
MOV A,R1
MOV R7,A
CLR C
MOV DPTR,#j?253+01H
MOVX A,@DPTR
SUBB A,R7
MOV DPTR,#j?253
MOVX A,@DPTR
SUBB A,#00H
JC $ + 5H
LJMP ?C0031
; for(k=0;k<n-j;k++)
; SOURCE LINE # 91
CLR A
MOV DPTR,#k?254
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
?C0035:
MOV A,R1
MOV R7,A
MOV DPTR,#j?253
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
CLR C
MOV A,R7
SUBB A,R3
MOV R7,A
CLR A
SUBB A,R2
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
CLR C
SUBB A,R7
MOV A,R2
SUBB A,R6
JC $ + 5H
LJMP ?C0034
; if (adresult[i][k]>adresult[i][k+1])
; SOURCE LINE # 92
MOV A,R3
ADD A,ACC
MOV R7,A
MOV A,R2
RLC A
MOV R6,A
MOV DPTR,#adresult+02H
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#adresult
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
SETB C
SUBB A,R3
MOV A,R6
SUBB A,R2
JNC $ + 5H
LJMP ?C0037
; {temp=adresult[i][k];adresult[i][k]=adresult[i][k+1];adresult[i][k+1]=temp;}
; SOURCE LINE # 93
MOV DPTR,#k?254+01H
MOVX A,@DPTR
ADD A,ACC
MOV R7,A
MOV DPTR,#k?254
MOVX A,@DPTR
RLC A
MOV R6,A
MOV DPTR,#adresult
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOVX A,@DPTR
MOV R7,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#temp?255
XCH A,R7
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
MOV DPTR,#k?254+01H
MOVX A,@DPTR
ADD A,ACC
MOV R7,A
MOV DPTR,#k?254
MOVX A,@DPTR
RLC A
MOV R6,A
MOV DPTR,#adresult+02H
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#adresult
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
MOV DPTR,#temp?255
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#adresult+02H
MOV B,#0CH
MOV A,R5
LCALL ?C?OFFXADD
MOV A,R4
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
?C0037:
MOV DPTR,#k?254+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JZ $ + 5H
LJMP ?C0035
MOV DPTR,#k?254
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0060:
LJMP ?C0035
?C0034:
MOV DPTR,#j?253+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JZ $ + 5H
LJMP ?C0032
MOV DPTR,#j?253
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0061:
LJMP ?C0032
; }
; SOURCE LINE # 94
?C0031:
INC R5
CJNE R5,#00H,?C0062
INC R4
?C0062:
MOV A,R5
XRL A,#022H
ORL A,R4
JZ $ + 5H
LJMP ?C0029
; }
; SOURCE LINE # 95
?C0039:
RET
; END OF _Sort
;
;
; /***********************平均值滤波子程序*************************/
;
; void Filter(uchar n)
RSEG ?PR?_Filter?12AD
_Filter:
USING 0
; SOURCE LINE # 100
MOV DPTR,#n?356
MOV A,R7
MOVX @DPTR,A
; {
; SOURCE LINE # 101
; uint i,j,sum = 0;
; SOURCE LINE # 102
CLR A
MOV DPTR,#sum?359
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
; for(i=0;i<34;i++)
; SOURCE LINE # 103
;---- Variable 'i?357' assigned to Register 'R2/R3' ----
MOV R3,A
MOV R2,A
?C0040:
; for (j=(Times-n)/2;j<=n;j++)
; SOURCE LINE # 104
MOV DPTR,#n?356
MOVX A,@DPTR
MOV R7,A
MOV DPTR,#Times
MOVX A,@DPTR
CLR C
SUBB A,R7
CLR C
RRC A
MOV R7,A
MOV DPTR,#j?358
CLR A
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
?C0043:
MOV DPTR,#n?356
MOVX A,@DPTR
MOV R1,A
MOV R7,A
INC DPTR
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
SETB C
SUBB A,R7
MOV A,R4
SUBB A,#00H
JNC ?C0042
; {sum+=adresult[i][j];
; SOURCE LINE # 105
MOV A,R5
ADD A,ACC
MOV R7,A
MOV A,R4
RLC A
MOV R6,A
MOV DPTR,#adresult
MOV B,#0CH
MOV A,R3
LCALL ?C?OFFXADD
MOV A,R2
MOV B,#0CH
MUL AB
ADD A,DPH
MOV DPH,A
MOV A,DPL
ADD A,R7
MOV DPL,A
MOV A,DPH
ADDC A,R6
MOV DPH,A
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
MOV DPTR,#sum?359+01H
MOVX A,@DPTR
ADD A,R7
MOVX @DPTR,A
MOV DPTR,#sum?359
MOVX A,@DPTR
ADDC A,R6
MOVX @DPTR,A
; Result[i]=sum/n;
; SOURCE LINE # 106
MOV A,R1
MOV R5,A
MOV R4,#00H
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
LCALL ?C?UIDIV
MOV A,R3
ADD A,ACC
ADD A,#LOW (Result)
MOV R0,A
MOV @R0,AR6
INC R0
MOV @R0,AR7
; }
; SOURCE LINE # 107
MOV DPTR,#j?358+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0043
MOV DPTR,#j?358
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0063:
SJMP ?C0043
?C0042:
INC R3
CJNE R3,#00H,?C0064
INC R2
?C0064:
MOV A,R3
XRL A,#022H
ORL A,R2
JZ $ + 5H
LJMP ?C0040
; }
; SOURCE LINE # 108
?C0046:
RET
; END OF _Filter
;
;
; /**************************Delay********************************/
;
; //void Delay(void)
; //{
; // uint i;
; // for(i=0;i<2000;i++);
; //}
; /***********************主程序***********************************/
;
; main()
RSEG ?PR?main?12AD
main:
USING 0
; SOURCE LINE # 120
; {
; SOURCE LINE # 121
; uchar i;
; Times=6;
; SOURCE LINE # 123
MOV DPTR,#Times
MOV A,#06H
MOVX @DPTR,A
; Begin:for(i=0;i<Times;i++)
; SOURCE LINE # 124
?main?Begin:
;---- Variable 'i?460' assigned to Register 'R3' ----
CLR A
MOV R3,A
?C0048:
MOV DPTR,#Times
MOVX A,@DPTR
MOV R2,A
MOV A,R3
CLR C
SUBB A,R2
JNC ?C0049
; {Getad(i);
; SOURCE LINE # 125
MOV R7,AR3
LCALL _Getad
; //for(j=0;j<1000;j++);
; //Delay();
; }
; SOURCE LINE # 128
INC R3
SJMP ?C0048
?C0049:
; Sort(Times);
; SOURCE LINE # 129
MOV R7,AR2
LCALL _Sort
; Filter(4);
; SOURCE LINE # 130
MOV R7,#04H
LCALL _Filter
; goto Begin;
; SOURCE LINE # 131
SJMP ?main?Begin
; END OF main
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -