************************************************************************
* BACA 8 CHANNEL ADC DATA (ADC0808/0809) OLEH DST-51 DAN KIRIM KE SERIAL
* PC
* Registers:
*	- DPTR	: DPH.5 ... DPH.7 --> ADC Address
*		: DPL.0 ... DPL.2 --> ADC Channel
*	- A	: Data
*	- B	: Delay
* 
* DST-51 Internal routine yang digunakan:
*	- Init_Serial
*	- Serial_Out
*	- ASCII_Out
* Program ini digunakan untuk hanya KIT ADC-0809 Testing 
* Design by: Paulus Andi Nalwan, ST
**************************************

	.CODE
ASCII_Out	EQU	197H
Init_Serial	EQU	1B8H
Serial_Out	EQU	1C8H

	Org	2000H
	Ajmp	Start
	Org	2003H		;External INT0
	Reti
	Org	200BH		;Timer 0 Interrupt
	Reti
	Org	2013H		;External INT1
	Reti
	Org	201BH		;Timer 1 Interrupt
	Reti
	Org	2023H		;Serial I/O Interrupt
	Reti

Start:
	Mov	Dptr,#08000H	;ADC pada alamat 800XH, CS4 pada DST-51
	Lcall	Init_Serial	;Inisial Serial Port

Loop:
	Acall	ADC		;Akses ADC
	Acall	Delay		;
	Mov	A,#' '		;
	Lcall	Serial_Out	;Kirim Spasi
	Inc	Dptr		;Tunjuk ke channel berikut

	Mov	A,DPL		;
	Cjne	A,#08H,Loop	;Channel 8? Belum Loop
	Ajmp	*		;Berhenti

ADC:
	Mov	A,#00H			;Start Conversion
	Movx	@Dptr,A			;
	Jb	INT0,*			;Tunggu EOC
	Acall	Delay
	Mov	A,#00H			;Read Convert Data
	Movc	A,@A+Dptr		;
	Lcall	ASCII_Out		;Send to Serial Out
	Ret

Delay:
	Push	B
	Mov	B,#0FFH
	Djnz	B,*
	Pop	B
	Ret


