Pic 16F877A Config Ayarları

Başlatan ahmet5454, 07 Temmuz 2022, 22:21:09

ahmet5454

Selamlar ustalarım pic 16F877A ile yaptığım yazılımda config ayarları doğrumudur acaba?
Yapmak istediğim ayarlar bütün pinlerin dijital giriş ve çıkış olmasıdır kontrol edebilirmisiniz?Yardımcı olabilecek ustalarıma şimdiden teşekkürler
@ __CONFIG _CPD_OFF & _WDT_OFF & _XT_OSC &  _BODEN_OFF &  _LVP_OFF & _DEBUG_OFF & _PWRTE_OFF & _WRT_1FOURTH 

 DEFINE OSC 4



               
    
    TRISA  = %00000011      ' PORTA'nın RA4 ve RA5 hariç tamamı çıkış
    TRISB  = %00000000      ' PORTB'nin tüm pinleri çıkış
    TRISC  = %00000000      ' PORTC tamamı çıkış
    TRISD =  %00000000 
    TRISE  = %00000000
  
 
    ADCON1 = %00000110 	    ' PORTA ve PORTE tümü dijital giriş
    CMCON=7
    ' VRCON=0
    PORTA=0
    PORTB=0
    PORTC=0
    PORTD=0
    PORTE=0
    Pause 1500  
               
 BASLA:                
   IF PORTA.0=1	 THEN
   PORTB.0=1
   ENDIF
   
   IF PORTA.1=1	 THEN
   PORTB.0=0
   ENDIF
   
   
   
   
   GOTO BASLA
        End

mehmet

Bu mcunun kataloğuna bir kaç
dakika göz gezdirseniz olmaz mı?

ADC konusu içerisinde hangi
yazmaç; hangi şartlarda ne değer
alacağı, tablo halinde gösterilmektedir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

ahmet5454

#2
Selam mehmet hocam inanın user manueline defalarca baktım ama anlayamıyorum.İnternettende cok arastirmama rağmen aciklayaci kaynak bulamadım.Eger siz çok iyi biliyorsanız gerekirse ücrete mukabil öğretebilirseniz çok sevinirim

mehmet

Selamlar...

Zaten iyi bilmediğim için ilgili mcuların
kataloglarını baş ucu kitabı yapıyorum.

Microchip PIC serisi mcuların genelinde
CONFIGx değerlerini programlama aşamasında
veriyoruz. Program işletilmesi esnasında
değişiklik yapamıyoruz malumunuz.

Diğer yazmaçlarda (registerlerde) yine mcu
elverdiği ölçüde istediğimiz zaman okuma
ve yazma yapabiliyoruz.

En basit haliyle TRISx ve PORTx yazmaçlarını
istediğimiz zaman düzenleyebiliyoruz ve
mcu buna göre davranıyor.

PIC16F877A gibi biraz eski mcularda ADC modülünü
biraz kısıtlı olarak düzenleyebiliyoruz.
DS39582C - Sayfa 127 / Bölüm 11 'de ADC işlemleri
anlatılmakta.

ADCON0 ile; ADC çevrim osilatörü, o an için
okunacak ADC kanal seçimi, ADC çevrimi
başlatılması yapılmakta ve ADC çevrimi sonlanması
haber veren bit bulunmakta.

ADCON1 ile; hangi ADC kanallarını kullanacağımızı
belirleyeceğimiz bitler ve yine ADC çevrim
osilatörü bitlerinin devamı bulunmakta.

ADC çevrim osilatörünü kolaylık açısından Frc
olarak seçiyorum.

DS39582C - Sayfa 128 / Bölüm 11-2 'de ADC kanal
seçimi tablosu bulunmakta. Son sütun kanal ve
gerilim referansını belirtmekte.
Basit işlerde gerilim referansı sıfır olan
satırları kullanmak daha uygun olacaktır. Zira
Vref+ -> +5V 'a ve Vref- -> GND 'ye bağlı
olmaktadır.

Geri kalan ADC okuma işlemlerini BASIC ile
halledebiliyorsunuz. (Ben PBP, PROTON bilmiyorum.)

Ancak basit register ayarlarında yardımcı olmaya
çalışıyorum.

Kolaylıklar.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

ete

İşin temeli yada sırrı diyelim aşağıdaki tablonun değerlendirmesinde.
Öncelikle sana kaç analog giriş lazım ise tablonun en son sütununa bakıp orada (analog_kanal_Sayısı/0) seçeneğini bulman gerekiyor. Sana 2 analog kanal lazım. Yani (2/0) şeklinde bir seçenek araman gerekiyor. Burada /0 ,harici ref gerekmeden işlemci besleme bacaklarının ref olarak kullanılmasına işaret ediyor. O nedenle sıfır alternatiflerine bakman gerekir. Tabloya bakarsan 2/0 diye bir alternatif olmadığını ona en yakın 3/0 olduğunu görebilirsin. İşte senin seçimin o satır olacak.
Tablonun ilk sütünu (soldan) o seçeneğe ait bit konfigürasyonunu gösteriyor. Sonraki sütunlar ise pinlerin ne durumda olacağını gösteriyor.
Dikkat edilirse 3/0 seçeneğide ADC için +VREF için VDD  , -VREF için ise VSS gösterilmiş yani besleme bacakları. Sola doğru ilerlersek AN0 için A yani analog, AN1 için A yine analog, AN2 için ise D yani Digital olduğu belirtiliyor. AN3 için yine A yani analog ve diğer pinlerinde D olduğunu görebilirsin. Seçim yapmanın temeli bu ve yanlızca bu işlemci için geçerli. Diğer işlemcilerde bu seçim meselesi farkedebilir. Yeni nesil işlemcilerde zaten ANSEL (Analog Select) registeri yardımı ile kolayca seçilebiliyorlar. 

Umarım bir şeyler anlamışsındır.

Ete

ahmet5454

Mehmet hocam ete hocam Çok çok teşekkürler ediyorum sağolun varolun

Powered by EzPortal