📄 adc_int.dt
字号:
;******************************************************************************
;Function : interruption, sampling ADE3
;******************************************************************************
;AD converter steps to set up :
;1. set ADE11-ADE0 ADICL in ADICH , enabling analog input channels,
;2. Register set up ADICH choice ADC reference voltage;
; 3. set ADIS3:ADIS0 in ADCR choose AD input channels
; Register set up the ADCKR1-ADCKR0 ADCR, chose to pre - ADC clock frequency
; AD home ADPD=1 began sampling.
;4. May need to enable ADC and total suspended
;5. According to the need for the calibration channel ADC
; 6. If the need to resort to interrupt function, which set TEST ADIE=1; implementation ENI orders
; 7. ADRUN=1 home ADCR which began AD converter
; 8. wait for the interruption or ADRUN was purged 0; If AD interruption, money ADIF.
; 9. Preservation conversion results. If so many AD converter, proceed to step 6
;********************************************************************************
ADC_LOW == 0X14
ADC_HIGH == 0X15
;
INCLUDE "EM78P510.INC"
;
ORG 0X0000
JMP RESET
;
ORG 0X0012
JMP ADC_INT
ADC_INT:
BANK 0
BC ISR, ADIF
BANK 3
MOV A, RD ;
BANK 0
AND A, @0X0F
MOV ADC_LOW,A
BANK 3
SWAPA RC
BANK 0
MOV ADC_HIGH, A
AND A, @0X0F0
OR ADC_LOW, A
MOV A, @0X0F
AND ADC_HIGH, A
RETI
RESET:
DISI
CALL SUB_RINIT
CALL SUB_ADJ
BS IMR, ADIE
BC ISR, ADIF
ENI
MAIN:
BANK 3
MOV A, @0X83 ;SELECT ADE3,ADRUN=1
OR ADCR, A
BANK 0
NOP
NOP
JMP MAIN
;
SUB_ADJ:
BANK 3
BS ADICH, CALI ;ENABLE CALIBRATION
_ADJ_LOOP:
BS ADCR, ADRUN
JBC ADCR, ADRUN
JMP $-1
MOV A, ADDL
AND A, @0X0F
JBS R3, Z
JMP _ADJ_DONE
MOV A, ADDH
JBS R3, Z
JMP _ADJ_DONE
MOV A, @0X10
ADD ADDL, A
JMP _ADJ_LOOP
_ADJ_DONE:
BC ADICH, CALI
BANK 0
RET
;
SUB_RINIT:
BANK 3
MOV A, @0X0F
MOV ADICL, A ;SELECT ADE0~ ADE3 AS ANALOG INPUT
CLR ADICH ;VREFS==VDD
MOV A, @0X60
MOV ADCR, A ;SELECT AD0,SELECT ADCKR1/ADCKR0=1:0,ADP=1
BANK 0
CLR ADC_LOW
CLR ADC_HIGH
RET
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -