
Rev. 1.00
5�
��ne 1�� �01�
Rev. 1.00
53
��ne 1�� �01�
HT46R003B
Cost-Effective A/D 8-bit OTP MCU
HT46R003B
Cost-Effective A/D 8-bit OTP MCU
Example: using the interrupt method to detect the end of conversion
clr
ADE
;
disable
A/D
Converter
interrupt
mov a,00000001B
mov ACSR,a ; select f
SYS
/8 as A/D clock and ADONB=0
mov a,00011111B
mov ADPCR,a ; setup ADCR register to configure I/O Port as A/D inputs
mov a,00000000B
mov ADCR,a ; select AN0 to be connected to the A/D converter:
:
:
Start_conversion:
clr START
set START ; reset A/D
clr START ; start A/D
clr ADF ; clear A/D Converter interrupt request flag
set
ADE
;
enable
A/D
Converter
interrupt
set EMI ; enable global interrupt
:
:
;
A/D
Converter
interrupt
service
routine
ADC_ISR:
mov acc_stack,a ; save ACC to user defined memory
mov a,STATUS
mov status_stack,a ; save STATUS to user defined memory
:
:
mov a,ADRL ; read low byte conversion result value
mov adrl_buffer,a ; save result to user defined register
mov a,ADRH ; read high byte conversion result value
mov adrh_buffer,a ; save result to user defined register
:
:
EXIT_ISR:
mov a,status_stack
mov STATUS,a ; restore STATUS from user defined memory
mov a, acc_stack ; restore ACC from user defined memory
clr ADF ; clear A/D Converter interrupt flag
reti
Note: To power off A/D Converter module, it is necessary to set ADONB as “1” or set the
PCR4~PCR0 bits as a zero value.