;*********************************************
; Processor: PIC12F683 at 4 MHz using intosc
;******************************************
list P=12F683, R=DEC
#include "P12F683.INC"
__config _FCMEN_OFF & _IESO_OFF & _PWRTE_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _CP_OFF & _CPD_OFF & _INTOSCIO
cblock 0x20
Loop1, Loop2, adfelso, adalso
endc
org 0x00
banksel GPIO
clrf GPIO
movlw b'00000111'
movwf CMCON0
clrf TMR2
banksel ANSEL
movlw b'01010001' ; Fosc/16, only GP0 analog input
movwf ANSEL
movlw b'11001001'
movwf TRISIO
bsf STATUS,RP0
movlw b'11111111'
movwf PR2
clrf INTCON
clrf PIE1
bcf STATUS,RP0
movlw b'00000101'
movwf T2CON
clrf CCPR1L
movlw b'10001100' ; PWM on, active L upper 2 byte 00
movwf CCP1CON
movlw b'00001111'
movwf CCPR1L ; basement value
goto main
adc0
bsf ADCON0,0 ; turn on adc.
movlw 0x0
nop
nop
nop
nop
nop
nop
nop
nop
nop
bsf ADCON0,1 ; GO!
btfsc ADCON0,1 ; are we really done???
goto $-1
movfw ADRESH
movwf adfelso
banksel ADRESL
movfw ADRESL
bcf STATUS,RP0
movwf adalso
banksel ADCON0
bcf ADCON0,0
nop
nop
nop
nop
nop
return
frw
bcf T2CON,2
nop
nop
nop
nop
bsf GPIO,5
bcf GPIO,4
nop
bsf T2CON,2
goto main
;
rew
bcf T2CON,2
nop
nop
nop
nop
bsf GPIO,4
bcf GPIO,5
nop
bsf T2CON,2
goto main
main
call adc0
bcf STATUS,RP0 ; Bank0
movfw adalso
movwf CCPR1L
nop
nop
nop
btfss GPIO,1
goto frw
btfsc GPIO,1
goto rew
nop
nop
goto main
end