PİC16F88 fuse ve analog giriş ayarları

Başlatan frederic, 24 Ocak 2011, 21:11:23

FUNKY


evet arkadaşlar eğer proğramda  veri=ADIN 0 komutunu kullanırsak ne yaparsak yapalım kendisi ADON bitini 1 yapıp  adc çalışıyor..

ben    de  aşağıdaki  koddaki gibi bir yazımla halletim  bir de dışarıya buton koydum  adc alıp almamasını  görmek için  .sorunsuz çalışıyor

[IMG]http://dc311.4shared.com/img/v39CVyIe/0.7160342827399755/18fadc.bmp[/img]

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 25.01.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device = 16F88
Xtal 4                           '4 MHz  lik kristal kullanılacak

'OSCCON = %01100000                '4 MHz  lik kristal için osccon ayarı
'OSCTUNE = 0x00                          '??
TRISA=%00000011
PORTA=%00000011
CMCON = 0x07                             'comparatörleri kapat
ADCON1 = %10000000                '7. biti 1 yap
ANSEL =%00000001                               'an0 analog giriş
'*********************************
Declare LCD_DTPin PORTB.4       'DATA girişi PORTB'nin 4. ucundan başlayacak
Declare LCD_ENPin PORTB.3       'LCD'nin ENable ucu
Declare LCD_RSPin PORTB.2       'LCD'nin Register Select ucu
Declare LCD_Interface 4       'LCD veri yolu 4 bit olacak
Declare LCD_Lines 2                    'LCD 2 satırdan oluşuyor                 
'*********************************
Declare Adin_Res 10        '10 bit çözünürlükte okuma yapilmaktadir
Declare Adin_Tad  FRC                 'Osilatör seçimi yapilmaktadir.
Declare ADIN_DELAY 50               'Okuma hizi 50msn olarak belirlenmistir.
Symbol buton =PORTA.1
Dim veri As Word
Dim adcon As ADCON0.0
Dim AD_RESULT As ADRESL.Word ' Convert the ADRESL register into a WORD variable 
Dim sayi As Bit

Symbol godone =ADCON0.2

DelayUS 500



basla:       
 If buton=0 Then
 sayi=0
 Else 
 sayi=1
 EndIf 
 adcon=sayi
 DelayUS 50
 godone=sayi
 While godone =1 :Wend
 veri=AD_RESULT
 
 Print At 1,1,"adc:",Dec4 veri
 
 
 GoTo basla