CCS C İLE PİC PROGRAMLAMA DERS -1-

Slides:



Advertisements
Benzer bir sunumlar
Bilgi Teknolojisinin Temel Kavramları
Advertisements

Anakartlar Sistemin merkezi bileşenidir.
ANAKART.
TEMEL DONANIM (HARDWARE)
BİLGİSAYAR KULLANIMI KURSU
Dijital Dünyada Yaşamak
Bilgi Teknolojisinin Temel Kavramları
BİLGİSAYAR SİSTEMİ.
Sakarya Üniversitesi Mekatronik Mühendisliği Gökhan ATALI
Bölüm 1: Introductions (Tanıtım,Tanım)
ORT – 104 Hoş Geldiniz.
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
ANA KARTLAR VE KASALAR.
5. EGITIM Mikrodenetleyiciler PIC16F628 – PIC16F877
Donanımlar Uzm. Murat YAZICI.
DONANIM. Donanım nedir? Donanım bilgisayarı oluşturan her türlü fiziksel parçaya verilen verilen addır. Donanım bir merkezi işlem biriminden (Central.
PROGRAMLAMA VE ASSEMBLY DİLİ
16F628 TANIMLAMA KISMI Devrenizi çalıştırmak için 16F628 mikrodenetleyicisini programlarken kullanacağınız tanımlama kısmı verilmiştir. Defterinize not.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
DERS 5 PIC 16F84 PROGRAMLAMA.
Bilgisayar nedir? Bilgisayar; Zor ve karışık hesaplar yapabilen büyük miktarlardaki bilgileri depolama kapasitesine sahip otomatik bir cihazdır.
Ders 2 Donanım Birimleri.
BİLGİSAYAR SİSTEMLERİ
Dersin Kapsamı Bilgisayar Nedir, Ne Yapar?
DEPOLAMA.
DEPOLAMA.
DEPOLAMA.
TÜMLEŞİK DEVRELER VE SAYISAL SİSTEMLER
Bilgi Teknolojisinin Temel Kavramları
Ağ nedir?_____________________
MOSTEM Teknik Öğretmenleri
Dijital Çıkış Mantığı.
Bilgisayar Mühendisliği Bölümü
Mikrodenetleyiciler.
CCS C İLE PIC PROGRAMLAMA DERS-2-
CCS C İLE PIC PROGRAMLAMA DERS-4-
Hafta2 Bilgisayar Donanımı Dersi
ARDUINO DİJİTAL PİN KONTROLÜ
CCS C İLE PIC PROGRAMLAMA DERS-3-
Bilgi Teknolojisinin Temel Kavramları
Bilgisayar İle İlgili Temel Kavramlar
ÇEVREMİZDEKİ TEKNOLOJİK ALETLER İYİ Kİ VAR !
Ağ Donanımları Ağ Nedir ? Ağ Donanımları Bridge Hub Switch Router
İnformasiya texnologiyaları kafedrası Mövzu № 9. Assembler. ( Assembler anlayışı. Assemblerin təyinatı. Assemblerdə operatorların formatı. Direktivlər.
Anakart Bilgisayarın tüm parçalarını üzerinde barındıran ve bu parçalar arasında iletişimi sağlayan birincil devre kartıdır. Anakartlar elektriği geçirmeyen.
Öğr.Gör.Volkan ALTINTAŞ
DEPOLAMA.
Bilgisayar Donanımı Dersi
DERS 5 PIC 16F84 PROGRAMLAMA.
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar İle İlgili Temel Kavramlar
DERS 9 PIC 16F84 PROGRAMLAMA.
Bilgisayar Donanım ve Sistem Yazılımı
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
Bilgisayar İle İlgili Temel Kavramlar
Mikroişlemcili Sistem Tasarımı
Bilgisayara Giriş Seyfullah BAŞKÖYLÜ.
Bilgisayarın çalışması için gerekli tüm bileşenleri taşıyan ve bu bileşenlerin iletişimini sağlayan temel donanım öğesidir.anakart; işlemci, bellek, kartlar.
İşletim Sistemleri (Operating Systems)
Bilgisayar Mühendisliğine Giriş
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
ANAKARTLAR.
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

CCS C İLE PİC PROGRAMLAMA DERS -1-

MİKRODENETLEYİCİ NEDİR???  Mikrodenetleyici programlanabilme, bir programı içerisinde depolayıp daha sonra çalıştırabilme özelliklerine sahip tek bir chip'ten oluşan bilgisayardır. Bu özelliği mikrodenetleyicileri mikroişlemcilerden ayıran özelliğidir.

MİKRODENETLEYİCİ NEDİR???  Mikrodenetleyicilerde bir CPU ( Central Process Unit ) , RAM ( Random Access Memory), ROM ( Read Only Memory ) , input - output ( giriş - çıkış  I/O ) uçları , seri ve parelel portlar , sayıcılar ( counter ) ve bazı mikrodenetleyicilerde de Analog 'dan Digital 'e ( A/D ) ya da Digital 'den Analog 'a ( D/A ) çeviriciler (konvertör ) bulunur. Mikroişlemciler kullanılarak oluşturulan sistemlerde ise ( örneğin kullandığımız bilgisayarlar ) bu özelliklerin her biri için ayrı mikroişlemci kullanılır.

MİKRODENETLEYİCİ NEDİR???  Mikrodenetleyicileri mikroişlemcilerden ayıran diğer bir özellikleri gerçek zamanlı uygulamalarda çalışmalarıdır. Gerçek zamanlı uygulamalarda (işlemcinin dışındaki elektronik ortamdan) gelen işaretler çok hızlı değişim gösterebilir. Bu nedenle bunları işleyip gereken çıkışları aynı hızlılıkta dış dünyaya uygulamak gerekebilir. Mikrodenetleyiciler böyle bir performansı, çok küçük boyutlarda ve çok daha az güç tüketerek gerçekleştirebilirler. Sonuç olarak mikroişlemciler ve mikrodenetleyiciler temelde aynı alt yapı çalışma mantığına sahip olmakla birlikte kullanım yeri ve amacına göre iki ayrı grup ürün olarak değerlendirilebilir.

MİKRODENETLEYİCİLERE GENEL BİR BAKIŞ Günümüzde mikrodenetleyiciler; Banka ATM’leri,Eylemsiz rehber sistemleri, uçuş kontrol donanım/yazılımı ve uçak ve füzelerdeki diğer tümleşik sistemlerden oluşan havacılık elektroniği parçaları, Cep telefonları, Yönlendirici (router), timeserver ve güvenlik duvarı (firewall) gibi bilgisayar ağ ekipmanları, bilgisayar yazıcıları, fotokopi makineleri, disket sürücüler (floppy disket sürücüler ve sabit disk sürücüler), termostat, klima, sprinkler ve güvenlik izleme sistemleri gibi ev otomasyonu ürünleri, hesap makineleri, mikro dalga fırınlar, çamaşır makinesi, televizyon setleri ve DVD oynatıcı/kaydedici gibi ev elektroniği ürünleri,tıbbi ekipmanlar, çok işlevli kol saatleri, internet radyo alıcıları, TV set top box ve dijital uydu alıcılar gibi çokluortam uygulamaları, çok işlevli yazıcılar ,PDA’lar gibi küçük avuç içi bilgisayarlar, PDA ve Java ,destekli gelişmiş cep telefonları, endüstriyel otomasyon ve izleme için PLC'ler, video oyun konsolları ve avuç içi oyun konsolları, taşınabilir bilgisayarlar, telefon santralleri, otomobillerde, haberleşme cihazları, kontrol sistemleri vb. alanlarda kullanılmaktadırlar.

CCS C İLE PIC PROGRAMLAMA PIC(PERIPHERAL INTERFACE CONTROLLER)

Memory clear(reset) Vdd=Vcc=V+ GND=Vss=V- Vdd=Vcc=V+ GND=Vss=V- Kristal bacakları

Besleme Uçları ve Bağlantıları Vss=Negatif Besleme(V-) Vdd=Pozitif Besleme(V+) Besleme gerilimleri değişik durumlara göre 2V ile 5.5V arasında olabilir. Genelde laboratuvar çalışmalarında 5V idealdir.

Osilatör(Kristal) Konfigürasyonları PIC hafızasındaki komutları işlemek için bir sinyale ihtiyaç duyar. Bu sinyale clock sinyali yani saat sinyali denir. PIC bu clock sinyalini osilatör uçlarına bağlanan osilatör devresinden alır. PIC mikrodenetleyicisi, girişine bağlanan osilatör frekansını (fosc) 4’e bölerek komut işlemek için kullanır. Bu şekilde bir komutun işlenmesi için gereken zaman (clock cycle, TCY=Tkomut) ortaya çıkar. fkomut= fosc/4, Tkomut=1/fkomut Örneğin PIC denetleyici girişine 20 Mhz’lik bir osilatör bağlanmışsa PIC denetleyici bunu 4’e böler ve sonuçta 5 Mhz’lik bir uygulama frekansı ile çalışır. Bu da; fkomut= fosc/4=20Mhz/4=5Mhz Tkomut=1/fkomut=1/5Mhz=1/5.106hz=0.0000002sn=0.2 usn ‘de bir komut işleneceği anlamına gelir.

HS-Yüksek Hızlı Kristal/Resonatör Osilatör PIC denetleyicilere bağlanabilen osilatör tipleri şunlardır. LP-Düşük Güçlü Kristal Osilatör XT-Kristal/Resonatör Osilatör HS-Yüksek Hızlı Kristal/Resonatör Osilatör RC –Direnç/Kondansatör Osilatör

Kristal Osilatörler Temel Bağlantı Şekli ISIS Simülasyonunda Kullanacağımız

CCS C DERLEYİCİSİ

CCS C de proje oluşturma 

CCS C ÖN İŞLEMCİ KOMUTLARI… #define :Bu komut ile sabit tanımlaması yapılır. Örnek: #define pi 3.14 #include:Bu komut ile kullanılacak mikrodenetleyicinin tanımlama dosyası derleyiciye tanıtılır. Örnek: #include<16f876.h>

#FUSES: Bu komut ile kullanılan mikrodenetleyici ile ilgili konfigurasyon bitlerinin durumu belirtilir. Örnek: #fuses HS, NOWDT… #USE DELAY: Program yazarken «delay» gecikme komutunun kullanılabilmesi için bu ön işlemci komutunun kullanılması gerekir. Bu komutun kullanımı; #use delay(clock=4000000) şeklindedir. Bu komutla derleyiciye 4 Mhz’lik(40000000hz) bir osilatör frekansında çalıştığımız bildirilmektedir. Clock ifadesi eşitliğine kullanılan osilatör frekansı hz(hertz) olarak yazılmalıdır.

#use standart_io(): PIC mikrodenetleyicilerinde hangi portun hangi pinlerinin giriş ve/veya çıkış olarak kullanılacağının programda bildirilmesi gereklidir. CCS C derleyicisinde bu iş için komut mevcuttur. Fakat derleyicide bu iş için başka komut kullanılmamışsa #use standart _io() komutu standart olarak kullanılmış sayılır. Örnek: # use standart_io(a)

CCS C PROGRAMI GENEL GÖVDESİ //Program hakkında tanıtıcı bilgiler /********************************************* Program ismi: CCS ile PIC programlama ders -1- Programın amacı: PIC16F876 ile programlama Kullanılan mikrodenetleyici:PIC16F876 Yazan: Hacettepe Robot Topluluğu *********************************************/ #include<16f876.h> #fuses HS,NOWDT,… #use delay (clock=2000000) int8 x; char bilgi; void main() { Komut veya komutlar; }

15 DAKİDA ARA ZAMANI 

Port Giriş/ Çıkış İşlemleri Port giriş/çıkış komutları portların giriş veya çıkış olarak kullanılıp kullanılmayacağı, port ve/veya port pinlerinin çıkış durumlarını, port girişlerindeki bilgilerin okunması gibi işlemlerin gerçekleştirilmesini sağlayan komutlardır.

SET_TRIS_X() KOMUTU Bu komut port pinlerinin hangisinin giriş pini, hangisinin çıkış pini olacağını belirtir. Komuttaki «X» yerine işlem yapılacak portun ismi (A,B,C,…), parantez içine ise heksadesimal olarak 8 bitlik değer girilir. Pin değeri «0» girilmişse o pinin çıkış pini olarak kullanılacağı, «1» girilmişse o pinin giriş pini olarak kullanılacağı anlamındadır. Kullanımı; set_tris_x(değer); set_tris_b(0b00001111); set_tris_b(0x0F); şeklindedir. Yukarıda verilen iki örnek komutta aynı anlamdadır. Sadece birinde değer binary(ikilik taban), diğerinde heksadesimal(onaltılık taban) sayı olarak girilmiştir. Bu komut bize B portunun B0,B1,B2,B3 pinlerinin giriş olarak kullanılacağını, B4,B5,B6,B7 pinlerinin ise çıkış olarak kullanılacağını belirtir.

OUTPUT_LOW() KOMUTU Bu komut ile istenen portun istenen biti lojik-0(0 V) yapılır. Yani istenen ucun çıkışı 0(sıfır) yapılır. Komutta parantez içine işlem yapılacak pin ismi girilir. output_low(pin ismi); output_low(pin_A2); komutu ile A portunun A2 numaralı ucu lojik-0 yapılmış olur.

OUTPUT_HIGH() KOMUTU Bu komut ile istenen portun istenen biti lojik-1 (5V) yapılır. Yani istenen ucun çıkışı 1(bir) yapılır. Komutta parantez içine işlem yapılacak pin ismi girilir. output_high(pin ismi); output_high(pin_B3); komutu ile B portunun B3 numaralı ucu lojik-1 yapılmış olur.

OUTPUT_X KOMUTU Bu komut ile bir portun tüm bitlerine tek komutla çıkış değerleri yüklenir. output_port ismi (değer); output_B(0x0F); komutu ile B portunun B0,B1,B2,B3 bitlerinin çıkışları lojik-1, B4,B5,B6,B7 bitlerinin çıkışı ise lojik-0 yapılıyor(0x0F=00001111). Parantez içine yazılan değer 8 bitlik bir sayı olmak zorundadır.

INPUT() KOMUTU Bu komut ile PIC mikrodenetleyicisinin istenen pininin durumunu okumaya yarar. Yani istenen giriş pininin lojik olarak değerini okur. Bu fonksiyon istenen pin çıkış olarak yönlendirilmiş olsa bile pini giriş olarak yönlendirir ve değeri öyle okur. Değişken ismi=input(pin ismi); bilgi=input(pin_A2); komutu ile A2 pini girişinden dijital bilgi(0-FALSE veya 1- TRUE) okunmakta ve «bilgi» değişkenine aktarılmaktadır.

INPUT_X() KOMUTU Bu komut ile istenen giriş portu değeri tümüyle okunur. Değişken=input_port ismi(); data=input_c(); komutu ile C portunun komple durumu «data» adlı değişkene aktarılmış olunur. Komutta kullanılacak değişken 8 bitlik olmalıdır.

Veee ilk projemiz 

KENDİ DEVREMİZİ TASARLIYORUZ… PROTEUS ISIS ÇİZİMİ

BİZİ DİNLEDİĞİNİZ İÇİN TEŞEKKÜR EDERİZ  BU SLAYTIN HAZIRLANMASINDA SERDAR ÇİÇEK’İN CCS C İLE PIC PROGRAMLAMA KİTABI KAYNAK OLARAK KULLANILMIŞTIR.