;using the pic16877 ;I have a 4 Mhz cristal and the following codeing which should do this, ;the in put analog signal is a sin ;wave at 3 Hz with 2 Vpp. ;I am puting in a analog signal to pin 2 and trying to output the converted digital value ;to port D ;programing it with the PICKIT2. cplease check and respond. list p=16f877 #include radix dec errorlevel -302, -207 CONF_WORD = 0x3f31 ;SETUP CONSTANTS ;status equ 0x03 ;TRISA EQU 0X85 ;PROTA EQU RP0 ;TRISB EQU 0X86 ;PORTB EQU 0X06 ;TRISD EQU 0X88 ;PORTD EQU 0X08 ;ZERO EQU 0X02 ;ad CONVERSION'S REGISTERS ;RCIF EQU RP0 ;TXIF EQU 0X04 ;ADCON0 EQU 0X1F ;ADOCN1 EQU 0X9F ;ADRESH EQU 0X1E ;ADRESL EQU 0X9E ;PIE1 EQU 0X8C ;GO EQU 0X02 ;ADIE EQU 0X06 ;ADIF EQU 0X06 COUNT1 EQU 0X31 COUNT2 EQU 0X32 ORG 0X00 GOTO MAIN ORG 0X0004 MAIN BCF STATUS, RP0 CLRF PORTD MOVLW 0X09 MOVWF RCSTA BSF STATUS, RP0 ;SWITCH TO BANK 1 CLRF PORTD MOVLW 0XFF MOVWF TRISA ;**************************RS232***************************** MOVLW 0X20 MOVWF TXSTA MOVLW 0X09 MOVWF SPBRG ;**************************adc INITIALIZATION**************** BCF PIE1, ADIE ;DISABLE ADC INTERUPT BCF STATUS, RP0 ;SWITCH TO BANK0 CLRF PORTD MOVLW B'11000001' ;INTERNAL RC /OSC/AN0/GO/AD ON MOVWF ADCON0 BSF STATUS, RP0 ;SWITCH TO BANK1 MOVLW 0X00 MOVWF ADCON1 ;LEFT JUSTIFICATION BSF STATUS, RP0 BCF PIR1, ADIF ADC1 ;call delay1 bcf STATUS, RP0 bsf ADCON0, GO ADloop BTFSC ADCON0, GO GOTO ADloop BCF PIR1, ADIF MOVF ADRESH, W MOVWF PORTD GOTO ADC1 delay2 BCF STATUS, RP0 MOVLW 0XA4 MOVWF COUNT2 R100us DECFSZ COUNT2,F GOTO R100us RETURN delay1 BCF STATUS, RP0 MOVLW 0XFF MOVWF COUNT1 R10ms CALL delay2 DECFSZ COUNT1,F GOTO R10ms RETURN END