LIST P=16F84
; include "P16F628A.inc"
TEMP EQU 0x0c
ADON EQU 0X00
ADIF EQU 0X06
GO_DONE EQU 0X02
TMR2ON EQU 0X02
RP0 EQU 0x05
RP1 EQU 0x06
W EQU H'0000'
F EQU H'0001'
;----- Register Files------------------------------------------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003'
FSR EQU H'0004'
PORTA EQU H'0005'
PORTB EQU H'0006'
PCLATH EQU H'000A'
INTCON EQU H'000B'
PIR1 EQU H'000C'
PIR2 EQU H'000D'
TMR1L EQU H'000E'
TMR1H EQU H'000F'
T1CON EQU H'0010'
TMR2 EQU H'0011'
T2CON EQU H'0012'
CCPR1L EQU H'0015'
CCPR1H EQU H'0016'
CCP1CON EQU H'0017'
RCSTA EQU H'0018'
TXREG EQU H'0019'
RCREG EQU H'001A'
ADRESH EQU H'001E'
ADCON0 EQU H'001F'
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
PIE1 EQU H'008C'
PCON EQU H'008E'
PR2 EQU H'0092'
TXSTA EQU H'0098'
SPBRG EQU H'0099'
EEDATA EQU H'009A'
ANSEL EQU H'009B'
CMCON EQU H'009C'
EECON2 EQU H'009D'
ADRESL EQU H'009E'
ADCON1 EQU H'009F'
org 0x00
;this is where the program starts
clrf PORTA
clrf PORTB
CLRF STATUS
movlw 0x07
movwf CMCON
bsf STATUS ,RP0 ;bank 1
CLRF TRISA
CLRF TRISB
BCF STATUS ,RP0
CLRF T2CON
MOVLW D'000'
MOVWF CCPR1L
BSF STATUS,RP0
MOVLW d'255'-1
MOVWF PR2
BCF STATUS,RP0
MOVLW b'00001100'
MOVWF CCP1CON
BSF T2CON,TMR2ON
BSF STATUS,RP0
MOVLW b'00000001'
MOVWF TRISA
MOVLW b'00000001'
MOVWF ANSEL
MOVLW b'01000000'
MOVWF ADCON1
BCF STATUS,RP0
MOVLW b'01000000'
MOVWF ADCON0
LOOP CALL ADC
MOVWF CCPR1L
GOTO LOOP
ADC BSF ADCON0,ADON
BCF PIR1,ADIF
MOVLW d'13'
MOVWF TEMP
ACQ DECFSZ TEMP,F
GOTO ACQ
BSF ADCON0,GO_DONE
ADX BTFSC ADCON0,GO_DONE
GOTO ADX
MOVF ADRESH,W
BCF ADCON0,ADON
RETURN
end