📄 adin.inc
字号:
;
;-----------------------------------------------------------
; ADIN.INC MPB 10-1-06
; Include file to read analogue input
; Receives channel selection in W
; Returns 8-bit voltage in W
;-----------------------------------------------------------
Count EQU 20 ; Delay count
ADcon EQU 21 ; ADC control word
Vin EQU 22 ; Input voltage
; Setup ADC .................................................
adin CLRF ADcon ; Zero control bits
MOVWF ADcon ; load channel number
BCF STATUS,C ; Clear carry flag
RLF ADcon ; to position..
RLF ADcon ; ...channel select bits
MOVLW B'01000001' ; Analogue input setup code
XORWF ADcon ; Form control code
MOVWF ADCON0 ; f/8, RA0, done, enable
BANKSEL ADCON1 ; Bank 1
MOVLW B'00000011' ; Analogue input setup code
MOVWF ADCON1 ; Left justify, analogue
BANKSEL ADCON0 ; Bank 0
; Sample & hold settling delay 20us .........................
getADC MOVLW 007 ;
MOVWF Count ;
down DECFSZ Count ;
GOTO down ;
; Read input ................................................
BSF ADCON0,GO ; start ADC..
wait BTFSC ADCON0,GO ; and wait..
GOTO wait ; for finish
MOVF ADRESH,W ; store result
; Set level indicator .......................................
MOVWF Vin ; Get input volts
MOVLW 080 ; Half scale
BSF STATUS,C ; Compare
SUBWF Vin ;
BTFSC STATUS,C ;
GOTO ledon ; input high
BCF PORTB,1 ; below 1.25V
MOVF ADRESH,W ; reload result
RETURN ; done
ledon BSF PORTB,1 ; above 1.25V
MOVF ADRESH,W ; reload result
RETURN ; done
; ...........................................................
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -