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

📄 da-ad.src

📁 51单片机实验例程
💻 SRC
📖 第 1 页 / 共 2 页
字号:
			; SOURCE LINE # 97
	MOV  	R7,#090H
	LCALL	_IRcvByte
	MOV  	A,R7
	MOV  	B,#02H
	MUL  	AB
	MOV  	D+04H,B
	MOV  	D+05H,A
; 			 break;  
			; SOURCE LINE # 98
	SJMP 	?C0012
; 
; 	 case 3: ISendByte(PCF8591,0x40);
			; SOURCE LINE # 100
?C0016:
	MOV  	R5,#040H
	MOV  	R7,#090H
	LCALL	_ISendByte
;              D[3]=IRcvByte(PCF8591)*2;  //ADC3   模数转换4
			; SOURCE LINE # 101
	MOV  	R7,#090H
	LCALL	_IRcvByte
	MOV  	A,R7
	MOV  	B,#02H
	MUL  	AB
	MOV  	D+06H,B
	MOV  	D+07H,A
; 			 break;  
			; SOURCE LINE # 102
	SJMP 	?C0012
; 
; 	 case 4: DACconversion(PCF8591,0x40, D[4]/4); //DAC	  数模转换
			; SOURCE LINE # 104
?C0017:
	MOV  	A,D+09H
	MOV  	R6,D+08H
	MOV  	R0,#02H
?C0035:
	XCH  	A,R6
	CLR  	C
	RRC  	A
	XCH  	A,R6
	RRC  	A
	DJNZ 	R0,?C0035
	MOV  	R3,A
	MOV  	R5,#040H
	MOV  	R7,#090H
	LCALL	_DACconversion
; 	         break;
			; SOURCE LINE # 105
;    }
			; SOURCE LINE # 106
?C0012:
; 
; 	      // D[4]=400;  //数字--->>模拟输出
; 		   D[4]=D[3];
			; SOURCE LINE # 109
	MOV  	D+08H,D+06H
	MOV  	D+09H,D+07H
;    if(++AD_CHANNEL>4) AD_CHANNEL=0;
			; SOURCE LINE # 110
	INC  	AD_CHANNEL
	MOV  	A,AD_CHANNEL
	SETB 	C
	SUBB 	A,#04H
	JC   	?C0018
	CLR  	A
	MOV  	AD_CHANNEL,A
?C0018:
; 
;  /********以下将AD的值送到LED数码管显示*************/
;        		
; 	 LedOut[0]=Disp_Tab[D[1]%10000/1000];
			; SOURCE LINE # 114
	MOV  	R6,D+02H
	MOV  	R7,D+03H
	MOV  	R4,#027H
	MOV  	R5,#010H
	LCALL	?C?UIDIV
	MOV  	R6,#03H
	MOV  	R7,#0E8H
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut
	LCALL	?C?LSTXDATA
;      LedOut[1]=Disp_Tab[D[1]%1000/100];
			; SOURCE LINE # 115
	MOV  	R6,D+02H
	MOV  	R7,D+03H
	MOV  	R4,#03H
	MOV  	R5,#0E8H
	LCALL	?C?UIDIV
	MOV  	R6,#00H
	MOV  	R7,#064H
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+04H
	LCALL	?C?LSTXDATA
;      LedOut[2]=Disp_Tab[D[1]%100/10]&0x7f;
			; SOURCE LINE # 116
	MOV  	R6,D+02H
	MOV  	R7,D+03H
	MOV  	R4,#00H
	MOV  	R5,#064H
	LCALL	?C?UIDIV
	MOV  	R6,#00H
	MOV  	R7,#0AH
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	ANL  	A,#07FH
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+08H
	LCALL	?C?LSTXDATA
;      LedOut[3]=Disp_Tab[D[1]%10];
			; SOURCE LINE # 117
	MOV  	R6,D+02H
	MOV  	R7,D+03H
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R5
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R4
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+0CH
	LCALL	?C?LSTXDATA
; 	 
; 	 LedOut[4]=Disp_Tab[D[0]%10000/1000];
			; SOURCE LINE # 119
	MOV  	R6,D
	MOV  	R7,D+01H
	MOV  	R4,#027H
	MOV  	R5,#010H
	LCALL	?C?UIDIV
	MOV  	R6,#03H
	MOV  	R7,#0E8H
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+010H
	LCALL	?C?LSTXDATA
;      LedOut[5]=Disp_Tab[D[0]%1000/100]&0x7f;
			; SOURCE LINE # 120
	MOV  	R6,D
	MOV  	R7,D+01H
	MOV  	R4,#03H
	MOV  	R5,#0E8H
	LCALL	?C?UIDIV
	MOV  	R6,#00H
	MOV  	R7,#064H
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	ANL  	A,#07FH
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+014H
	LCALL	?C?LSTXDATA
;      LedOut[6]=Disp_Tab[D[0]%100/10];
			; SOURCE LINE # 121
	MOV  	R6,D
	MOV  	R7,D+01H
	MOV  	R4,#00H
	MOV  	R5,#064H
	LCALL	?C?UIDIV
	MOV  	R6,#00H
	MOV  	R7,#0AH
	XCH  	A,R7
	XCH  	A,R5
	XCH  	A,R7
	XCH  	A,R6
	XCH  	A,R4
	XCH  	A,R6
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R7
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R6
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+018H
	LCALL	?C?LSTXDATA
;      LedOut[7]=Disp_Tab[D[0]%10];  
			; SOURCE LINE # 122
	MOV  	R6,D
	MOV  	R7,D+01H
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?UIDIV
	MOV  	A,#LOW (Disp_Tab)
	ADD  	A,R5
	MOV  	DPL,A
	MOV  	A,#HIGH (Disp_Tab)
	ADDC 	A,R4
	MOV  	DPH,A
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	R6,A
	MOV  	DPTR,#LedOut+01CH
	LCALL	?C?LSTXDATA
; 	  
; 	
; 	 for( i=0; i<8; i++) 
			; SOURCE LINE # 125
	CLR  	A
	MOV  	i?347,A
?C0019:
	CLR  	C
	MOV  	A,i?347
	XRL  	A,#080H
	SUBB 	A,#088H
	JC   	$ + 5H
	LJMP 	?C0010
; 	 {	 P1 = LedOut[i];
			; SOURCE LINE # 126
	MOV  	R7,i?347
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	R6,A
	MOV  	A,R7
	MOV  	R0,#02H
?C0036:
	CLR  	C
	RLC  	A
	XCH  	A,R6
	RLC  	A
	XCH  	A,R6
	DJNZ 	R0,?C0036
	ADD  	A,#LOW (LedOut)
	MOV  	DPL,A
	MOV  	A,#HIGH (LedOut)
	ADDC 	A,R6
	MOV  	DPH,A
	INC  	DPTR
	INC  	DPTR
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	P1,A
; 			
; 	  switch(i)					  
			; SOURCE LINE # 128
	MOV  	A,i?347
	CJNE 	A,#08H,?C0037
?C0037:
	JNC  	?C0022
	MOV  	DPTR,#?C0038
	MOV  	R0,A
	ADD  	A,R0
	ADD  	A,R0
	JMP  	@A+DPTR
?C0038:
	LJMP 	?C0023
	LJMP 	?C0024
	LJMP 	?C0025
	LJMP 	?C0026
	LJMP 	?C0027
	LJMP 	?C0028
	LJMP 	?C0029
	LJMP 	?C0030
; 	     {	    
			; SOURCE LINE # 129
; 			case 0:LS138A=0; LS138B=0; LS138C=0; break;         
			; SOURCE LINE # 130
?C0023:
	CLR  	LS138A
	SJMP 	?C0039
; 	        case 1:LS138A=1; LS138B=0; LS138C=0; break;             	
			; SOURCE LINE # 131
?C0024:
	SETB 	LS138A
?C0039:
	CLR  	LS138B
	CLR  	LS138C
	SJMP 	?C0022
; 	        case 2:LS138A=0; LS138B=1; LS138C=0; break; 
			; SOURCE LINE # 132
?C0025:
	CLR  	LS138A
	SJMP 	?C0040
; 	        case 3:LS138A=1; LS138B=1; LS138C=0; break; 
			; SOURCE LINE # 133
?C0026:
	SETB 	LS138A
?C0040:
	SETB 	LS138B
	CLR  	LS138C
	SJMP 	?C0022
; 			case 4:LS138A=0; LS138B=0; LS138C=1; break;
			; SOURCE LINE # 134
?C0027:
	CLR  	LS138A
	SJMP 	?C0041
; 			case 5:LS138A=1; LS138B=0; LS138C=1; break;
			; SOURCE LINE # 135
?C0028:
	SETB 	LS138A
?C0041:
	CLR  	LS138B
	SETB 	LS138C
	SJMP 	?C0022
; 			case 6:LS138A=0; LS138B=1; LS138C=1; break;
			; SOURCE LINE # 136
?C0029:
	CLR  	LS138A
	SJMP 	?C0042
; 			case 7:LS138A=1; LS138B=1; LS138C=1; break;
			; SOURCE LINE # 137
?C0030:
	SETB 	LS138A
?C0042:
	SETB 	LS138B
	SETB 	LS138C
; 			
; 	     }
			; SOURCE LINE # 139
?C0022:
; 	 
; 	     for (j = 0 ; j<90 ;j++) { ;}
			; SOURCE LINE # 141
;---- Variable 'j?348' assigned to Register 'R7' ----
	CLR  	A
	MOV  	R7,A
?C0031:
	INC  	R7
	CJNE 	R7,#05AH,?C0031
; 	  }
			; SOURCE LINE # 142
?C0021:
	INC  	i?347
	LJMP 	?C0019
; END OF main

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -