sibycharley
New Member
below i hav written a code that i believe can do the the a/d con version and serially transmit the the conversions to the pc, but while testing the o/p portb where the converted values are given i am not having a stable o/p ie whatever is the analog i/p all pins are are showing low and high values in fast succession. plz someone suggest me way to overcome this problem.
LIST P=16F73
INCLUDE "P16F73.INC"
COUNT1 equ H'23'
COUNT2 equ H'24'
MOVLW D'300'
MOVF COUNT1
MOVLW D'124'
MOVF COUNT2
ORG0X000
GOTO START
START
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP0
CLRF TRISB
MOVLW B'00000001'
MOVWF TRISA
MOVLW B'11000000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF ADCON1
MOVLW 1
MOVWF SPBRG
BCF STATUS,RP0
MOVLW B'01000001'
MOVWF ADCON0
MOVLW B'10010000'
MOVWF RCSTA
BSF STATUS,RP0
MOVLW B'00100010'
MOVWF TXSTA
BCF STATUS,RP0
MAIN
BSF ADCON0,2
CHECK
BTFSC ADCON0,2
GOTO CHECK
;BSF STATUS,RP0
MOVF ADRES,W
;BCF STATUS,RP0
MOVWF PORTB
MOVF PORTB,W
DELAY
Loop1
decfsz COUNT2,f
goto Loop1
Loop2
decfsz COUNT1,f
goto Loop2
PR_Loop
BTFSC PIR1,TXIF
GOTO Stuff_Chr
GOTO PR_Loop
Stuff_Chr
MOVWF TXREG
RETURN
GOTO MAIN
END
LIST P=16F73
INCLUDE "P16F73.INC"
COUNT1 equ H'23'
COUNT2 equ H'24'
MOVLW D'300'
MOVF COUNT1
MOVLW D'124'
MOVF COUNT2
ORG0X000
GOTO START
START
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP0
CLRF TRISB
MOVLW B'00000001'
MOVWF TRISA
MOVLW B'11000000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF ADCON1
MOVLW 1
MOVWF SPBRG
BCF STATUS,RP0
MOVLW B'01000001'
MOVWF ADCON0
MOVLW B'10010000'
MOVWF RCSTA
BSF STATUS,RP0
MOVLW B'00100010'
MOVWF TXSTA
BCF STATUS,RP0
MAIN
BSF ADCON0,2
CHECK
BTFSC ADCON0,2
GOTO CHECK
;BSF STATUS,RP0
MOVF ADRES,W
;BCF STATUS,RP0
MOVWF PORTB
MOVF PORTB,W
DELAY
Loop1
decfsz COUNT2,f
goto Loop1
Loop2
decfsz COUNT1,f
goto Loop2
PR_Loop
BTFSC PIR1,TXIF
GOTO Stuff_Chr
GOTO PR_Loop
Stuff_Chr
MOVWF TXREG
RETURN
GOTO MAIN
END