HT46R064B/065B/066B
范例: 使用中断的方式来检测转换结束
clr ADE ; disable ADC interrupt
mov a,00000001B
mov ACSR,a
mov a,00001000B
mov ADCR,a
; select fSYS/8 as A/D clock and ADONB=0
; setup ADCR register to configure Port as A/D inputs
; and select AN0 to be connected to the A/D
:
:
Start_conversion:
clr START
set START
; reset A/D
clr
clr
START
ADF
; start A/D
; clear ADC interrupt request flag
; enable ADC interrupt
; enable global interrupt
set ADE
set EMI
:
:
:
; ADC interrupt service routine
ADC_:
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
mov adrl_buffer,a
mov a,ADRH
mov adrh_buffer,a
; read low byte conversion result value
; save result to user defined register
; read high byte conversion result value
; save result to user defined register
:
:
EXIT_ISR:
mov a,status_stack
mov STATUS,a
mov a, acc_stack
; restore STATUS from user defined memory
; restore ACC from user defined memory
; clear ADC interrupt flag
clr
ADF
reti
注意: 如果需要关闭 ADC 模块的电源,则需要设置 ADONB 为 1。
Rev 1.00
2011-04-13
55