adchange.asm

来自「应用松翰母体写的一款电磁炉」· 汇编 代码 · 共 56 行

ASM
56
字号
;********************************************************
;  PROJECT NAME : nimh charger				*
;  Author	: borg					*
;  VERSION	: V0.0			      		*
;  BODY		: SN8P2704a				*
;  COMPILER	: 1.99N					*
;  function	: 12 bit ADCChange			*
;  input	:					*
;  output	: data1, data2				*
;  use register	: data1, data2, temp1, temp5, temp4	*
;  use flag	: 					*
;  run cycles	: 					*
; *******************************************************
; 一共进行16次$12 bit ADC转换
; 然后把转换的值加在一起求出平均值放在data1(low byte)和data2(high byte)
adcchange:
;	mov	ADM,A
	clr	Data1
	clr	Data2
	clr	Temp4
	mov_	Temp5,#16
	b0bset	FADLEN			;select 12-bits ADC’s resolution
;	bclr	fgie
	bset	fadcks0
	bset	fadcks1
adcchange10:
	b0bclr	FEOC			;Progressing ADC
	b0bset	FADS			;start ADC
	nop
	
adcchange20:

	b0bts1	FEOC			;test the end of ADC
	jmp	adcchange20

	mov	A,ADR			;其中的低四位是ADC转换结果的低四位
	and	A,#0FH
	mov	Temp1,A
	swap	Temp1
	add	Temp4,A
	mov	A,ADB
	adc	Data1,A			;//;//For the low byte add carry
	mov	A,#0
	adc	Data2,A
	decms	Temp5
	jmp	adcchange10

	mov	A,temp4			;//if the low bit of the Sum.>80h  ++1
	sub	A,#80h
	mov	A,#00h
	adc	Data1,A
	adc	Data2,A
	
adcchange90:
;	bset	fgie
	ret

⌨️ 快捷键说明

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