Pot Okuyucu

Başlatan onurinci, 27 Ekim 2013, 15:36:20

onurinci

Hocam selam ,bir mile bağlı liner telli potu değişik formatlarda görebilmek için uğraşıyorum.devreye ilk gerilim verdiğimde tam istediğim gibi okuma oluşuyor,fakat mile azıcık dokunayım ,yani potansimometre değer değiştirdiğinde bloke olup kalıyor.acaba potumu çok hızlı okuyorum ,yoksa lcd'ye gereğinden hızlı bilgi yolluyorum ?.
elimde decimal örnek var onu deniyorum aynı devrede güzel çalışıyor.acaba nerede tıkandım?.
saygılar.


Edit Sayın hocam İlginize gerek kalmadı ,hatamı buldum sonucu portlarda led olarak görmek için
PORTB=A2D_VALUE  satırı ilave etmiştim kaldırınca düzeldi kalın sağlıcakla.


http://www.dosya.tc/server18/gfz5RD/PotReader..rar.html
[' Displaying the potentiometer wiper position on the LCD 

@ Device PIC16F88,WDT_OFF,PWRT_ON,PROTECT_OFF, CPD_OFF,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT,LVP_OFF

' OSCCON = $60       'Sets the internal oscillator in the
'16F88 to 4 MHz
DEFINE OSC 4


OSCCON = %01101110       ' 4 MHz internal Clock
CMCON = %00000111        ' Turn off comparator bits and set pins to digital I/O
                                 
TRISA=%00000001 :PORTA=0
TRISB=%00000000 :PORTB=0

      CLEAR             ' clear memory
Define LCD_DREG PORTB   ' Define LCD connections
Define LCD_DBIT 4
Define LCD_RSREG PORTB
Define LCD_RSBIT 0
Define LCD_EREG PORTB
Define LCD_EBIT 1


      PAUSE 500               ' wait for LCD to start up

NUMB VAR byte                 ' assign variable
A2D_VALUE VAR byte            ' create A2D_Value to store result
ANSEL = %00000001             'Leaves AN0 in analog mode
'ADCON1 = %00000000           ' set PORTA analog input
'ADCON1 = %00000010           ' set PORTA analog input
      LCDOUT $FE, 1           ' clear the LCD
                              ' define ADCIN parameters
DEFINE ADC_BITS 8             ' set number of bits in result
DEFINE ADC_CLOCK 3            ' set clock source (3=rc)
DEFINE ADC_SAMPLEUS 50        ' set sampling time in uS   50
     
Start:
      ADCIN 0, A2D_VALUE      ' read channel 0 to A2D_Value
      LCDOUT $FE, $80, "VALUE= ", HEX2 A2D_VALUE, " ", DEC3 A2D_VALUE
'      LCDOUT $FE, $80, "VALUE= ", HEX2 A2D_VALUE, " ", DEC3 A2D_VALUE, " "
      LCDOUT $FE, $C0, BIN8 A2D_VALUE
PORTB=A2D_VALUE               ' the pause must come right after setting
                              ' PORTB and before PORTD is used again
      PAUSE 250
      GOTO Start
END/code]

buda çalışan

[code][@ Device PIC16F88,WDT_OFF,PWRT_ON,PROTECT_OFF, CPD_OFF,MCLR_OFF,BOD_OFF,INTRC_OSC_NOCLKOUT,LVP_OFF
DEFINE OSC 4

' OSCCON = $60       'Sets the internal oscillator in the  16F88 to 4 MHz
   
OSCCON = %01101110       ' 4 MHz internal Clock
CMCON = %00000111        ' Turn off comparator bits and set pins to digital I/O
                                 
TRISA=%00000001 :PORTA=0
TRISB=%00000000 :PORTB=0

      CLEAR             ' clear memory
Define LCD_DREG PORTB   ' Define LCD connections
Define LCD_DBIT 4
Define LCD_RSREG PORTB
Define LCD_RSBIT 0
Define LCD_EREG PORTB
Define LCD_EBIT 1


x  var byte             'Byte for potentiometer input
ANSEL = %00000001       'Leaves AN0 in analog mode, but                 
                        'changes other analog bits to digital.
                        'See table below.
    pause 1000          'Pause to allow LCD to setup
   
Start:

    adcin 0, x                 'Read analog voltage on AN0 and
                               'convert to 8-bit digital value
                               'and store as x. 

    lcdout $FE,1,"POT =", #x   'Clears LCD screen, displays
                               '"POT =" and the 8-bit value of x   
   
    pause 500                  'Pause 1/2 second
    goto Start

end/code]

Powered by EzPortal