⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12ad.src

📁 应用tlc1543及cd4067对35路信号进行采集
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	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 + -