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

📄 sys_adc.asm

📁 電 熨 斗 程 序
💻 ASM
字号:
;==========================================================================================;		     		    SH69P822;;	 (c) Copyright 2006-2007, Sino Wealth Microelectronics Corporation Limited;		 	All Rights Reserved;; module name :	Sys_ADC.asm			version : 1.0; function    : ; by	      : CLR; in	      : 2007-02-13;;==========================================================================================;==========================================================================================;			ADCProcessor;Function: after each ADC is done,insert the imcoming rzADC_Data[H,L] to an array which;	   contain 5 valueBuf and they're sort from the smllest to the biggest,;	   if all 5 ADC is done,that's to say all 5 incoming rzADC_Data[H,L] is sorted and;	   stored in this array,we get a middle one value as the tempertary ADC result ;	   this tempertary ADC result may not be a stable one,it must endure the debounce ;	   process to certify it is a stable AD result.;	   ;the sort process is defined in this file and the debounce process defined in IO_ScanRT.asm;==========================================================================================ADCProcessor:		lda		rzADC_GODONE	,0		ba3		ADCProcessor_Over		ADC_SaveResult:					lda		zADC_Times	,0		bnz		?notFirst		ldi		zWk4		,0x00		jmp		?saveData		?notFirst:		sta		zWk2		,0		sbim		zWk2		,0x01	?compare:		ldi		rzDPL		,zADCBuf&0x0f		ldi		rzDPM		,(zADCBuf>>4)&0x07		ldi		rzDPH		,(zADCBuf>>7)&0x07		lda		zWk2		,0		sta		zWk0		,0		addm		zWk0		,0		addm		rzDPL		,0		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzINX		,0		sta		zWk0		,0		adim		rzDPL		,0x01		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzINX		,0		sta		zWk1		,0		lda		zWk0		,0		sub		rzADC_DATAL	,0		lda		zWk1		,0		sbc		rzADC_DATAH	,0		bc		?beginMove	?continueCompare:		sbim		zWk2		,0x01		bnc		?beginMove		jmp		?compare	?beginMove:			sbi		zADC_Times	,0x01		sta		zWk3		,0				adi		zWk2		,0x01		sta		zWk4		,0	?move:		ldi		rzDPL		,zADCBuf&0x0f		ldi		rzDPM		,(zADCBuf>>4)&0x07		ldi		rzDPH		,(zADCBuf>>7)&0x07		lda		zWk3		,0		sta		zWk0		,0		addm		zWk0		,0		addm		rzDPL		,0		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzINX		,0		sta		zWk0		,0		adim		rzDPL		,0x01		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzINX		,0		sta		zWk1		,0					adim		rzDPL		,0x01		eor		rzDPL		,0		adcm		rzDPM		,0		lda		zWk0		,0		sta		rzINX		,0		adim		rzDPL		,0x01		eor		rzDPL		,0		adcm		rzDPM		,0		lda		zWk1		,0		sta		rzINX		,0		lda		zWk3		,0		baz		?saveData		sbim		zWk3		,0x01		lda		zWk4		,0		sub		zWk3		,0		bc		?move	?saveData:					ldi		rzDPL		,zADCBuf&0x0f		ldi		rzDPM		,(zADCBuf>>4)&0x07		ldi		rzDPH		,(zADCBuf>>7)&0x07		lda		zWk4		,0		addm		zWk4		,0		addm		rzDPL		,0		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzADC_DATAL	,0		sta		rzINX		,0		sta		zWk0		,0		adim		rzDPL		,0x01		eor		rzDPL		,0		adcm		rzDPM		,0		lda		rzADC_DATAH	,0		sta		rzINX		,0			?saveOK:		sbi		zADC_Times	,0x04			bnz		Restart_ADC		ldi		zADC_Times	,0x0f		lda		zADCBuf+4	,0		sta		zADCValue	,0		lda		zADCBuf+5	,0		sta		zADCValue+1	,0Restart_ADC:			adim		zADC_Times	,0x01							orim		rzADC_GODONE	,1000b		ADCProcessor_Over:			jmp		Exit_ADCProcessor;--------------------------------------End--------------------------------------------	

⌨️ 快捷键说明

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