Hacettepe Robot Topluluğu



Benzer belgeler
ESM-361 Mikroişlemciler. 1. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

GAZİANTEP ÜNİVERSİTESİ

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

Bir mikroişlemci temel olarak üç kısımdan oluşur. Bunlar merkezi işlem birimi (CPU), giriş çıkış birimi (G/Ç) ve bellektir.

BÖLÜM Mikrodenetleyicisine Giriş

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Haftalık Ders Saati Okul Eğitimi Süresi

B.Ç. / E.B. MİKROİŞLEMCİLER

İşletim Sistemleri (Operating Systems)

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

KONTROL VE OTOMASYON KULÜBÜ

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Mikroişlemciler. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

B.Ç. / E.B. MİKROİŞLEMCİLER

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

RF İLE ÇOK NOKTADAN KABLOSUZ SICAKLIK ÖLÇÜMÜ

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

BM-311 Bilgisayar Mimarisi

1.1. Yazılım Geliştirme Süreci

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Mikrobilgisayar Sistemleri ve Assembler

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

EEM 419-Mikroişlemciler Güz 2017

Donanımlar Hafta 1 Donanım

BİLGİSAYAR SİSTEMLERİ

Bilgisayar Mimarisi Nedir?

MİKROİŞLEMCİ MİMARİLERİ

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

Çalışma Açısından Bilgisayarlar

İşletim Sistemlerine Giriş

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

MKT2012,Proje Tabanlı Mekatronik Eğitim Çalıştayı, Mayıs 2012, Çankırı-Ilgaz, TÜRKĐYE

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bilgisayarın Yapıtaşları

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir.

Bölüm 4. Sistem Bileşenleri. Bilgisayarı. Discovering. Keşfediyorum Computers Living in a Digital World Dijital Dünyada Yaşamak

MİKRODENETLEYİCİLER. Yrd.Doç.Dr. İlker ÜNAL

1 GİRİŞ 1 Bu Kitap Kimlere Hitap Eder 1 Kitabın İşleyişi 2 Kitabın Konuları 3 Kitabı Takip Etmek İçin Gerekenler 6 Kaynak Kodu ve Simülasyonlar 6

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

Mikroişlemciler ve Mikrodenetleyiciler

ÇİZGİ İZLEYEN ROBOTU YAPIMI

PIC MİKRODENETLEYİCİLER İÇİN. mikrobasic DERLEYİCİSİ

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Ana Bellek (RAM) İşlemci (CPU) Depolama

8. MİKROİŞLEMCİ MİMARİSİ

Bilgisayarda Programlama. Temel Kavramlar

EEM 419-Mikroişlemciler Güz 2016

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Yazılım Mühendisliğine Giriş 2018 GÜZ

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Ders devam zorunluluğu bulunmaktadır ve 2 hafta derse katılmayan öğrenci devamsızlıktan kalacaktır.

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Mikroişlemcili Sistemler ve Laboratuvarı 5.HAFTA:BÖLÜM-1

Şekil-1. Dr. Özgür AKIN

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

Birol Çapa Özen Özkaya Güz Dönemi Eğitimleri

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

PIC Mikrodenetleyicileri

Merkezi İşlem Birimi (CPU)

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

PIC16F877A nın Genel Özellikleri

Adres Yolu (Address Bus) Bellek Birimi. Veri Yolu (Databus) Kontrol Yolu (Control bus) Şekil xxx. Mikrodenetleyici genel blok şeması

DOKUMANLAR

Bilgisayarların Gelişimi

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

YILDIZ TEKNIK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKULTESİ ELEKLTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Java Temel Özellikleri

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Linux Assembly Programlamaya Giriş

Temel Bilgisayar Bilgisi

KULLANIM KILAVUZU PIC ULAK. USB PIC Programlayıcı 3.3V ve 5V Güç Kaynağ Seri USB Dönüştürücü Bağlantı Portları

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

BİLGİSAYAR KULLANMA KURSU

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

Transkript:

Hacettepe Robot Topluluğu

PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş

HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran 2007 Mikroişlemci Nedir? Mikroişlemci, ön belleğine yazılan programı işleterek istenilen çıkışlara yönlendiren birimdir. Sayısal bilgisayarlar üç temel kısımdan (mikroişlemci, giriş/çıkış birimleri ve bellek) ve bunlara ek olarak bazı destek devrelerden oluşur. Her bir temel kısım en basitten en karmaşığa kadar çeşitlilik gösterir. Mikroişlemci/Merkezi Đşlem Birimi (Central Proccesing Unit - CPU): Sistemin kalbidir. Birim hesapları yapmak ve verileri idare etmek için 4, 8, 16, 32, 64 bitlik veri formatında çalışır, belki gelecekte bu sayı çok artacaktır. Giriş/Çıkış Birimi (Input/Output): Sayısal, analog ve özel fonksiyonlardan oluşur. Mikroişlemcinin dış dünya ile ilişkisini sağlar. Mikroişlemciye verilen ve işlemlerden alınan veriler bu birim üzerinden sağlanır. Bellek: Mikroişlemcinin işleyeceği komutlar ve veriler belleklerde tutulur. Bilginin işlenmesi sırasında ortaya çıkan ara değerler ve sonuçları da mutlaka belleklerde tutulmak zorundadur. Mikrodenetleyici Nedir? Mikrodenetleyici; mikroişlemci, giriş/çıkış birimleri ve bellekten oluşan bir entegredir. Mikrodenetleyiciler bir yazılım olmadan hiçbir işe yaramayan bir plastik, metal ve temizlenmiş kum yığınıdır. Kendisini kontrol eden bir yazılım olduğunda ise neredeyse sınırsız bir uygulamaya sahiptir. Mikrodenetleyicinin Avantajları Mikrodenetleyicilerin mikroişlemcilere olan avantajları oldukça fazladır. Örneğin mikroişlemcili bir sistem yapıldığında mikroişlemcinin yanısıra bellekler (RAM, ROM veya EPROM), giriş/çıkış birimi ve buna benzer birçok sistem kullanılmaktadır. Bu karışık sistemin hem tasarlanması ve yapımı zordur hem de maliyeti daha yüksektir. Mikrodenetleyicilerde bir sistemin çalıştırılabilmesi için yalnızca bir mikrodenetleyici ve osilatör devresi yeterli gelmektedir. Sistemde gerekli olan ön bellek ve G/Ç birimi mikrodenetleyici içinde bir yonga halindedir. Assembly Dili Nedir? Assembly, sadece 1'lerden ve 0'lardan oluşan makine dillerinin insanlar tarafından daha anlaşılır hale getirilmesi ihtiyacından doğmuş bir programlama dilidir. Örneğin bir mikroişlemcinin bir

1. Ders: PIC Programlamaya Giriş veriyi bir yerden başka bir yere taşıması için kullanılan 10011101 diye bir komut olduğunu düşünelim. Đşte Assembly dilinin yaptığı iş bu komutu Đngilizce taşımak anlamına gelen "move" eylemine ithafen MOV şekline dönüştürmektir. Yani programınızı yazarken siz 10011101 yerine MOV yazarsınız, daha sonra Assembly derleyicisi bunu otomatik olarak 10011101 sayısal ifadesine dönüştürür. Bu tür kelimeleri akılda tutmak sayısal ifadeleri akılda tutmaktan daha kolay olduğundan hem kolay ve hızlı bir yazım sağlanır hem de önceden yazılmış olan programların okunup anlaşılması kolaylaşır. Assembly, programlama dillerinin en ilkelidir de diyebiliriz ama programlama dillerinde ilkellik demek temellik demektir, bu da herhangi bir programlama dilinde yapmanız mümkün olmayan şeyleri de bu dille yapabilmeniz anlamına gelir. Assembly dili mikroişlemcilerin asıl dili olan 0 ve 1'lerden oluşan dile en yakın dildir. Diğer dillerde yazdığımız programlar öncelikle Assembly diline derlenirler (0 ve 1'lere) daha sonra makineye (işlemciye, denetleyiciye, bilgisayara) iletilirler. Yani diğer dillerdeki herhangi bir komut kesinlikle Assembly dili kullanılarak oluşturulabilir. Assembly dili, bu anlamda diğer dillerin yapı taşıdır, yani Assembly ile yazılamayacak program yoktur ama diğer programlama dilleri ile yazılamayacak program çeşitleri mutlaka mevcuttur. Tabii ki bu diğer diller gereksiz manasında anlaşılmamalıdır. Eğer kapsamı küçük bir donanım için bir program yazıyorsak Assembly kullanarak çok daha verimli programlar elde edebiliriz. Özellikle işlem kapasitesi küçük bir işlemci kullanıyorsak bir önceki cümle geçerliliğini arttırır (pipelining ve paralel işleme desteklemeyen işlemciler). PIC 16F84 mikrodenetleyicisi de kapasitesi az olan bir denetleyici sayılır. Fakat geniş kapasiteli bir işlemci veya denetleyici kullanıyorsak programımızı diğer dillerle yazıp sadece özel özen gerektiren yerlerde Assembly kullanmak bizi daha verimli sonuçlara ulaştırabilir. PIC Çeşitleri Günümüzde Microchip firması, standart ürettiği PIC ailelerinin dışında birçok özelleşmiş PIC aileleri de üretmektedir. Mesela USB veri alışveriş yongasının dahili olarak bulunduğu PIC'lerden tutun da RF iletişim için özelleşmiş PIC'lere kadar birçok değişik özellikte PIC üretilmektedir. Standart PIC aileleri ise kaç bitlik komutlardan oluştuklarına (merkezi işlem biriminin dahili olarak kaç bitlik veri yoluna sahip olduğuna) göre isimlendirilirler. Mesela bu komutlar 16(C/F)5xx serisi işlemcilerde 12 bit, 16(C/F)XX işlemcilerde 14 bittir. PIC programcıları program kodlarını yazarken bir komutun kaç bitlik kelime boyundan oluştuğu ile pek fazla ilgilenmezler. Seçilen bir çipi programlarken uyulması gereken kuralların ve o çiple ilgili özelliklerin bilinmesi yeterlidir. Bu özellikler PIC'in bellek miktarı, G/Ç portu sayısı, A/D dönüştürücüye sahip olup olmadığı, kesme (interrupt) fonksiyonlarının bulunup bulunmadığı, bellek tipinin ne olduğu (Flash, EPROM, EEPROM vb.) gibi bilgilerdir.

HUNRobotX - PIC Assembly Dersleri Neden PIC? PIC, kaynaklarına en kolay ulaşılabilen ve amatör çalışmalar için fiyatı oldukça uygun olan bir işlemcidir. Hatta profesyonel çalışmalarda bile kullanılabilecek kadar güvenilir kod korumasına sahiptir. Mesela 16F84 tipi bir işlemci flash program hafızasına sahiptir, 1 milyondan fazla kere silinip tekrar programlanabilmesine ve diğer birçok gelişmiş özelliğine karşın fiyatı sadece 4-5 YTL civarındadır. Nasıl Programlanır? PIC'i programlamak için öncelikle yazdığımız programı HEX koduna (0 ve 1'lerden oluşan makine dilinin 16'lık sayı sisteminde yazılmış hali) çeviren derleyiciye ihtiyacımız vardır. Eğer programı yazmak için Assembly dilini kullanıyorsak herhangi bir Ascii karakter koduna göre çalışan program kullanmamız yeterlidir. Bu programlara örnek olarak Windows altında Notepad veya Linux altında Gedit, KWrite gibi programlar verilebilir. Yazdığımız programı derleyici ile derledikten sonra (Assembly dili için Mpasm adlı program kullanılır) PIC'i programlayacak olan elektronik devrenin (programlayıcı) bilgisayar arayüzü çalıştırılır. Programcının bilgisayar arayüzüne derlenen dosya'nın yani HEX dosyasının yeri gösterilir. Artık programlama işlemi yapılabilir. Sonuç olarak bir PIC'i programlamak için; program(.asm), derlenmiş program(.hex), programcı arayüzü ve programcı devresi gerekir. PIC kullanarak bir program veya çalışan bir devre yaparken izlenecek adımlar şunlardır: 1) Ne yapacağımızı tasarlamalı ve tam olarak tanımlamalıyız, 2) Donanım tasarımını tam olarak bitirmeliyiz, 3) Yapacağımız programla ilgili akış diagramı çıkartmalıyız, 4) Assembly programını bir Ascii editör programına yazmalıyız ve uzantısını.asm olarak kaydetmeliyiz, 5) Mpasm programını kullanarak bunu derlemeliyiz, 6) Programlayıcı elektronik devre yardımı ile HEX dosyasını PIC'in içine yüklemeliyiz. Not: Buradaki bilgilerden çok daha geniş kapsamlısını internetten bulabilirsiniz. Data sheet'ten okuduktan sonra deneme yanılma ile uygulama yapmak en güzel öğrenme yoludur. Bağlantılar http://robot.ee.hacettepe.edu.tr/ http://www.microchip.com/