sorry for replaying later i was steel dealing with other problem.
the following is my code.
;**************************************************************************
;filename voltmeter
;***************************************************************************
#include<p16F690.inc>
digit1 equ 0x21
digit2 equ 0x22
digit3 equ 0x23
OFFSET EQU 0x24
TEMP2 equ 0x25
DELAY5 equ 0x26
SHORTDEL equ 0x27
CNTOUT equ 0x28
CNTMID equ 0x29
CNTIN equ 0x30
;****************************************************************************
INIT
BSF STATUS,6 ;SELECT BANK2
BCF STATUS,5 ;
MOVLW B'00010000' ;TURNS OFF DIGITAL FILTER FOR AN3,WHICH IS MY ADC PIN PORTA,4
MOVWF ANSEL ;
MOVWF B'00000000' ;ALL DIGITAL I/O PINS
MOVWF ANSELH ;
BCF STATUS,6 ;SELECT BANK1
BSF STATUS,5 ;
MOVLW B'00000000' ;PORTC AS AN OUTPUT
MOVWF TRISC ;
MOVLW B'110000' ;SET RA4/AN3 AS AN ANALOG ALL OTHERS DIGITAL OUTPUT
MOVWF TRISA ;
BCF STATUS,6 ;SELECT BANK0
BCF STATUS,5 ;
CLRF PORTC ;MAKE I/O PORTC ALL OUTPUT
CLRF PORTA ;
MOVLW 0x3F ;A2D Clock Fosc/8
MOVWF ADCON1
BANKSEL OPTION_REG
BCF OPTION_REG,7 ;CLEAR OPTION_REG,7; ENABLING WEAK PULLUPS
BANKSEL ADCON0
CLRF ADCON0 ;
MOVLW B'10010000' ;Right, Vdd Vref, AN3[I'M NOT SURE ABOUT THIS]
MOVWF ADCON0 ;
BANKSEL WPUA ;
MOVLW B'100111' ;SET PULLUPS 1 EQU PULLUP ON
MOVWF WPUA ;
BANKSEL INTCON ;
BCF INTCON,2 ;
CLRF INTCON ;
;*****************************************************************************
;***************"My problem is the conversion of anolog input and display the digital output"******
MAIN
test BSF ADCON0,GO ;start conversion
BTFSS ADCON0,GO ;this bit will change to zero when the conversion is complete
GOTO test
swapf ADRESH,w ; Copy the display to the LEDs
movwf TEMP2
;****************************************************************************
Loop
MOVLW B'00100' ;PASS THE SIGNAL TO THE ONE TRANSISTOR(SET 1PIN OF PORTA)
MOVWF PORTA ;THE FIRST DIGIT MUST SWICH ON
CALL LOOKUP ;SEVEN-SEGMENT MUST DISPLAY THE VULUE OF THE VOLTAGE(TESTED VULUE)
CALL SHORTDEL ;1SECOND DELAY
GOTO Loop
;*****************************************************************************
LOOKUP ;Lookup table to display THE CORRECT VALUE
MOVLW high BASEADD ;Get the high base address byte
MOVWF PCLATH ;Store in PC High Latch
MOVLW low BASEADD ;Get low base address
ADDWF OFFSET,w ;Add offset to address
BTFSC STATUS,C ;Test for a possible roll-over
INCF PCLATH,f ;and increment PCLATCH
MOVWF PCL ;change PC to execute jump
BASEADD
RETLW b'00111111' ;7 Seg value to display when 0
RETLW b'00000110' ;7 Seg value to display when 1
RETLW b'01011011' ;7 Seg value to display when 2
RETLW b'01001111' ;7 Seg value to display when 3
RETLW b'01100110' ;7 Seg value to display when 4
RETLW b'01101101' ;7 Seg value to display when 5
RETLW b'01111100' ;7 Seg value to display when 6
RETLW b'00000111' ;7 Seg value to display when 7
RETLW b'01111111' ;7 Seg value to display when 8
RETLW b'01100111' ;7 Seg value to display when 9
RETLW b'01110111' ;7 Seg value to display when A
RETLW b'01111100' ;7 Seg value to display when B
RETLW b'00111001' ;7 Seg value to display when C
RETLW b'01011110' ;7 Seg value to display when D
RETLW b'01111001' ;7 Seg value to display when E
RETLW b'01110001' ;7 Seg value to display when F
RETURN
;*******************************************************************************
DELAY5
movlw .50
goto X1
SHORTDEL
movlw .10 ;Short delay
X1
movwf CNTOUT
LOOPOUT
movlw .100
movwf CNTMID
LOOPMID
movlw .249
movwf CNTIN
LOOPIN
nop
decfsz CNTIN,f
goto LOOPIN
decfsz CNTMID,f
goto LOOPMID
decfsz CNTOUT,f
goto LOOPOUT
RETURN
;***********2 sec. delay**************************
ORG 0x2007 ;select config word
DW 0x30C4 ;settings for external master clear
end
---------- Post added at 15:48 ---------- Previous post was at 15:43 ----------
sorry if its not clear i didn't able to attach this document.Maybe its should copy and pasted to the MPLAB where it will be clear.
thanx for reply.