0-5v adc binary gösterim

Başlatan huseyin0579, 29 Aralık 2016, 18:44:12

huseyin0579

Hocam adc ile ilgili problem yaşıyorum yardımcı olabilir'misiniz. Hocam ben programı yazmaya çalışıyorum. İsis simülasyonundaki çalışmayı eklediğim dosyadaki pot.hex ile deneyebilir'siniz. Program 0-5v aralığındaki değişken voltaj ile 3 - 255 binary sayım yapıyor. Bu sayım değeri adc başladığında 3 sayısından başlayacak ve adc voltajı 0 olursa led'lerde sıfırlanacak benim eklediğimde b=%00000011 bu şekilde kalıyor. Hocam adc voltaj ölçümü yani sayım başladığında toggle olarak yanık kalan led sönecek ve adc 0 olursa bu led tekrar eski konumuna gelecek yanık kalacak yani ledin sönüp tekrar yanık konuma geçmesi adc ölçümün başlayıp bitmesine bağlı, adc kanal için gerilim bölücü dirençleri pot ekleyerek ayarlamak istedim gereksiz derseniz iptal olabilir.
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 26.11.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC16F88
@ DEVICE PIC16F88,WDT_ON
@ DEVICE PIC16F88,PWRT_ON
@ DEVICE PIC16F88,MCLR_OFF
@ DEVICE PIC16F88,INTRC_OSC_NOCLKOUT
@ DEVICE PIC16F88,LVP_OFF
@ DEVICE PIC16F88,BOD_ON
@ DEVICE PIC16F88,FCMEN_OFF
@ DEVICE PIC16F88,IESO_OFF
@ DEVICE PIC16F88,CCPMX_OFF
@ DEVICE PIC16F88,DEBUG_OFF
@ DEVICE PIC16F88,WRT_OFF
@ DEVICE PIC16F88,CPD_OFF

DEFINE OSC 4
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 2
DEFINE ADC_SAMPLEUS 50

OPTION_REG.7=0
OSCCON=%01101100   

CMCON=7

TRISA=%00000100
TRISB=%00000000
PORTA=0
PORTB=0

ANSEL=%00000100
ADCON1=%10000000

SAYI var BYTE 56
HAM  VAR WORD 66

SYMBOL LED1=PORTA.0
SYMBOL LED2=PORTA.1

HIGH LED1
pause 1000
LOW LED1


BASLA:
      HIGH LED2
      PAUSE 100
     
      ADCIN 2,SAYI             
      HAM=SAYI
      HAM=(HAM*/251)/100     
      SAYI=SAYI+3:LOW LED2
      PORTB=SAYI     
      IF SAYI>255 then SAYI=255
     
         
GOTO BASLA

END


huseyin0579

Hocam sayım 3 - 255 aralığında olması şart değil desimal 3 değeri binary olarak b=%00000011 bu şekilde başlayacak ve örnek olması için 15 desimal sayı değeri binary karşılığı b=%00001111 bu değer olabilir 255 olması şart değil ben programla uğraşırım, 0-5v arasındaki voltaj ile ham değer için uygun adc voltaj aralığı ne olmalı 15 sayısına uyum sağlaması için?

huseyin0579

Hocam programı biraz düzelttim üst değer olarak 15 sayısını geçiyor. Bu problemden başka sorun yok o kısmı ayarlayamadım maksimum sayım değeri 15'i geçmeyecek ama geçiyor adc kademe değeride tam uyumlu değil galiba !...
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 26.11.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE PIC16F88
@ DEVICE PIC16F88,WDT_ON
@ DEVICE PIC16F88,PWRT_ON
@ DEVICE PIC16F88,MCLR_OFF
@ DEVICE PIC16F88,INTRC_OSC_NOCLKOUT
@ DEVICE PIC16F88,LVP_OFF
@ DEVICE PIC16F88,BOD_ON
@ DEVICE PIC16F88,FCMEN_OFF
@ DEVICE PIC16F88,IESO_OFF
@ DEVICE PIC16F88,CCPMX_OFF
@ DEVICE PIC16F88,DEBUG_OFF
@ DEVICE PIC16F88,WRT_OFF
@ DEVICE PIC16F88,CPD_OFF

DEFINE OSC 4
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 2
DEFINE ADC_SAMPLEUS 50

OPTION_REG.7=0
OSCCON=%01101100   

CMCON=7

TRISA=%00000100
TRISB=%00000000
PORTA=0
PORTB=0

ANSEL=%00000100
ADCON1=%10000000

SAYI var BYTE 56
HAM  VAR WORD 66

SYMBOL LED1=PORTA.0
SYMBOL LED2=PORTA.1

HIGH LED1
pause 1000
LOW LED1
HIGH LED2

BASLA:
     
      LOW LED2
       
     
      ADCIN 2,SAYI             
      HAM=SAYI
      HAM=(HAM*/251)/100     
      SAYI=SAYI+2
      PORTB=SAYI     
      IF SAYI>15 then SAYI=15
      IF SAYI=2 THEN:GOSUB CIK
         
GOTO BASLA
CIK:
   PORTB=0
   HIGH LED2
   PAUSE 500
   RETURN
END

ete

Bana yetti artık senin işlerinle uğraşmak. Kendin çöz bu sorunları. Ben yeterincee çözdüm sanırım.

Ete

Powered by EzPortal