SN8P2808
8-bit micro-controller build-in 4*32 LCD and 12-bit ADC.
¾
例:设置AIN1 为12 位ADC, VREFH 选择AVREFH 引脚输入的外部电压源作为ADC 参考电压,ADC 时钟源为
Fcpu,使用ADC 中断处理结果。
; 使能ADC 功能,并延迟100u 为AD 转换做准备。
ADC0:
B0BSET
CALL
FADENB
Delay100uS
; 使能ADC 电路。
; 延迟100us 等待ADC 电路开始转换。
; 设置 P4 口为I/O 模式。
MOV
B0MOV
B0BCLR
A, #0FDH
P4UR, A
FP41M
; 禁止P4.1 上拉电阻。
; 设置P4.1 为输入模式。
; 或
MOV
A, #02H
B0MOV
P4CON, A
; 设置P4.1 为模拟输入模式。
; 使能外部参考输入源。
; 设置VREFH 为外部输入电压。
B0BCLR
FREFS
; 设置ADC 时钟源 = Fcpu。
MOV
B0MOV
A, #40H
ADR, A
; ADC 时钟源 = Fcpu。
; 使能 AIN0 (P4.1)。
MOV
A, #91H
ADM,A
B0MOV
; 使能 ADC,并选择AIN1 为输入引脚。
; 设置ADC 中断。
B0BCLR
FADCIRQ
FADCIEN
FGIE
; 清ADC 中断请求标志位。
; 使能ADC 中断允许控制位。
; 使能全局中断控制位。
B0BSET
B0BSET
; 开始 AD 转换。
B0BSET
FADS
; 开始转换。
…
…
…
ADC_INT_SR:
PUSH
B0BTS1
JMP
B0BCLR
FADCIRQ
ADC_INT_EXIT
FADCIRQ
A, ADB
; 检测是否有ADC 中断请求标志位。
; 清ADC 中断请求标志位。
; 得到AIN1 通道转换数据的bit11 ~ bit4。
B0MOV
B0MOV
B0MOV
AND
B0MOV
B0BCLR
Adc_Buf_Hi, A
A, ADR
A, 0FH
Adc_Buf_Low, A
FADENB
; 得到AIN1 通道转换数据的bit3 ~ bit0。
; 关闭AD 转换。
ADC_INT_EXIT:
POP
.
RETI
SONiX TECHNOLOGY CO., LTD
Page 102
Version 1.1