ꢀ
status_stack,aꢀ
a,ADRLꢀꢀꢀ
;ꢀsaveꢀSTATUSꢀtoꢀuserꢀdefinedꢀmemory
HT46R068B/HT46R069B
Enhanced A/D Type 8-bit OTP MCU
Example: using the interrupt method to detect the end of conversion
clr
mov
movꢀ
mov
movꢀ
mov
movꢀ
mov
movꢀ
:
EADI
; disable ADC interrupt
a,00000001B
ACSR,aꢀ ꢀ
a,0Fh
ANCSR0,aꢀꢀ
a, 00h
ANCSR1,aꢀ
a,00000000B
ADCR,ꢀaꢀꢀ
ꢀ
ꢀ
ꢀ
ꢀ
;ꢀselectꢀfSYS/8 as A/D clock and ADONB=0
;
setupꢀANCSR0ꢀandꢀANCSR1ꢀtoꢀconfigureꢀpinsꢀAN0~AN3
;
;
;ꢀselect AN0 to be connected to the A/D converter
Start_conversion:
ꢀ
ꢀ
ꢀ
ꢀ
clrꢀ
setꢀ
clrꢀ
clrꢀ
set
setꢀ
:
START
STARTꢀ
STARTꢀ
ADFꢀ
EADI
EMIꢀꢀ
ꢀ
ꢀ
ꢀ
;ꢀresetꢀA/D
;ꢀstartꢀA/D
;ꢀclearꢀADCꢀinterruptꢀrequestꢀflag
; enable ADC interrupt
;ꢀenableꢀglobalꢀinterrupt
ꢀ
ꢀ
:
; ADC interrupt service routine
ADC_:
ꢀ
movꢀ
mov
movꢀ
:
acc_stack,aꢀꢀ ;ꢀsaveꢀACCꢀtoꢀuserꢀdefinedꢀmemory
a,STATUS
:
ꢀ
ꢀ
ꢀ
ꢀ
movꢀ
movꢀ
movꢀ
movꢀ
:
;ꢀreadꢀlowꢀbyteꢀconversionꢀresultꢀvalue
adrl_buffer,aꢀ ;ꢀsaveꢀresultꢀtoꢀuserꢀdefinedꢀregister
a,ADRHꢀꢀꢀ ;ꢀreadꢀhighꢀbyteꢀconversionꢀresultꢀvalue
adrh_buffer,aꢀꢀ;ꢀsaveꢀresultꢀtoꢀuserꢀdefinedꢀregister
:
EXIT_ISR:
ꢀ
ꢀ
ꢀ
ꢀ
movꢀ
movꢀ
movꢀ
clrꢀ
reti
a,status_stack
STATUS,aꢀꢀ
a,acc_stackꢀ
;ꢀrestoreꢀSTATUSꢀfromꢀuserꢀdefinedꢀmemory
;ꢀrestoreꢀACCꢀfromꢀuserꢀdefinedꢀmemory
;ꢀclearꢀADCꢀinterruptꢀflag
ADFꢀ
ꢀ
Note: To power off ADC module, it is necessary to set ADONB as "1".
Rev. 1.00
71
�anꢀaꢁꢂ ꢃꢄꢅ ꢃ011