PROGRAMLAMA VE ASSEMBLY DİLİ

Slides:



Advertisements
Benzer bir sunumlar
X86 Assembly Programlama Dilinde
Advertisements

TAM SAYILAR.
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
DERS 7 PIC 16F84 PROGRAMLAMA.
Ders Adı: Sayısal Elektronik
MATEMATİK.
PIC Mikrodenetleyiciler
EN KÜÇÜK ORTAK KAT.
Bölüm 2: Program Denetimi
MATLAB’İN SAYI YUVARLAMA FONKSİYONLARI
VERİ TİPLERİ VE DEĞİŞKENLER
MikroC ile PIC Programlama
ORT – 104 Hoş Geldiniz.
Programlamanın Yapı Taşları
MikroC ile PIC Programlama
Fonksiyonlar ve Alt Programlar
PIC MIKRODENETLEYICILER-3: GECİKME ve KESME PROGRAMLARI
Öğr.Gör.Bülent Çobanoğlu
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
DERS 6 PIC 16F84 PROGRAMLAMA.
ÇARPMA İŞLEMLERİ.
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Hazırlayan: KENDOKU NASIL OYNANIR? Hazırlayan:
MikroC ile PIC Programlama
DERS 6 PIC 16F84 PROGRAMLAMA.
5. EGITIM Mikrodenetleyiciler PIC16F628 – PIC16F877
ÖĞRENMEDE BİLGİ Yılmaz KILIÇASLAN.
DERS 8 PIC 16F84 PROGRAMLAMA.
PROGRAMLAMA VE ASSEMBLY DİLİ
Mikroişlemci (μP) Mikroişlemci çoğu zaman bilgisayarların beyni olarak adlandırılır. Bilgisayar yazılımındaki tüm işlemleri yapmakla sorumludur ve merkezi.
İSTANBUL İLİNDEKİ ENDÜSTRİ MESLEK LİSELERİN KONUMUNU BELİRTEN HARİTA
Akış Kontrol Mekanizmaları
DERS 5 PIC 16F84 PROGRAMLAMA.
TAM SAYILAR.
D O G A L S A Y I L A R.
ALİ YALKIN İLKÖĞRETİM OKULU 3/A SINIFI ÖĞRENCİ ÇALIŞMA SAYFASI ADI VE SOYADI: …………………………………………………… 14 Ocak 2011 Cuma ALİ YALKIN İLKÖĞRETİM OKULU 3/A SINIFI.
KESMELER (Interrupts)
DOĞAL SAYILARDA ÇARPMA İŞLEMİ.
DERS 9 PIC 16F84 PROGRAMLAMA.
TAM SAYILARDA TOPLAMA VE ÇIKARMA
Ders Kodu: EET134 Ders Adı: Sayısal Elektronik Ders Hocası: Assist. Prof. Dr. MUSTAFA İLKAN.
DİJİTAL ÇIKIŞ KOMUTLARI
Bilgisayar, Yazılım ve Algoritma
SAYI SİSTEMLERİ EĞİTİM ÖĞRETİM YILI ÖZEL MOSB ATL VE AML
Dijital Çıkış Mantığı.
ANALOG-SAYISAL BÜYÜKLÜK VE SAYI SİSTEMLERİ
ARDUINO DİJİTAL PİN KONTROLÜ
3. HAFTA 3. Hafta.
ARDUINO İLE SAYAÇ UYGULAMASI
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
RASYONEL SAYILAR.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BASYS KARTININ TANITIMI. KARTIN GÖRÜNÜMÜ KARTIN ÖZELLİKLERİ 100,000 lojik kapılı Xilinx Spartan 3E FPGA; JTAG programlama bağlantı noktası FPGA biçimlendirme.
Mikroişlemciler ve Mikrodenetleyiciler: PIC Programlama
C Programlama Dili Bilgisayar Mühendisliği.
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
DERS 9 PIC 16F84 PROGRAMLAMA.
DERS 10 PIC 16F84 ile ZAMAN GECİKME DÖNGÜLERİ
DERS 6 PIC 16F84 PROGRAMLAMA.
ELT205 MİKRODENETLEYİCİLER DERSİ
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Display (7 Sengment Display) Uygulamaları SİSTEM KONTROL UYGULAMALARI
INTERCONNECTION PROTOCOLS
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Bilişim Teknolojileri Öğrt.
Sunum transkripti:

PROGRAMLAMA VE ASSEMBLY DİLİ 6.Hafta Mikrodenetleyiciler

7 Segment Display 7 segment display sürmenin iki yolu bulunmaktadır. Ya, gösterilecek bilgiyi kendi tampon hafızasında saklayacak olan bir display sürücüsü kullanmak (7447 – 4511 ) gibi. Bunlara ayrıca 74595 gibi shift registerleri de dahil edebiliriz. Ya da bir mikro kontrolcü yardımı ile multiplex tarama yaptırıp gerekli bilgiyi zaman paylaşımlı olarak ilgli displayler de göstermektir. 7 segment bir displayde 7 adet segment led bulunur. Bu ledlerin birer uçları ortaktır. Ortak uç Anot ise display ortak anot, katod ise display ortak katod diye anılır. Ortak Anot sistemlerde ortak uçtan pozitif besleme (+) ve segmentlerede negatif besleme verilir (GND).Ortak katod displaylerde ise ortak katod ucuna GND , segmentlere ise pozitif besleme tatbik edilir. Voltaj seviyesi segmentin ihtiva ettiği led adedine göre değişir. Küçük displaylerde her segment de tek led yer alır ve genelde 1,6V-2,0V arasında bir voltaj tatbik edilir. Büyük displaylerde her segment de birden fazla led yer almaktadır. Bunun bir kısmı seri bir kısmı ise paralel bağlanmıştır. Voltaj seviyesi için displayin data sheetine bakmak en doğrusu olacaktır. Mikrodenetleyiciler

Displayin a – b – c - d – e – f – g şeklinde adlandırılan segmentleri bulunmaktadır. Bu gösterimde display de A harfini göstermek için a+b+c+e+f+g segmentlerinin aktif hale getirilmesi gerektiği kolaylıkla anlaşılabilmektedir. Başka bir örnek vermek gerekir ise 2 rakamı için (f+a+b+g+e+d) segmentleri aktif hale getirilmelidir. Display sürücüleri tam anlamı ile bu işi yaparlar. Bilgi ABCD girişlerinden binary kodlanmış desimal olarak verilir. Sürücü gösterilecek harf yada rakama karşılık gelen segment çıkışlarını aktif ederek ilgili görüntüyü displayde oluşturur.

4 haneli bir sayıcımız olduğunu düşünür isek her bir hane için bir display sürücüsü kullanmamız gerekecektir. Halbuki aynı işi yalnızca 4 adet display ve 1 adet işlemci kullanarak yapabilmek mümkündür. Bu işlem tabiiki multiplex tarama yolu ile yapılabilmektedir. Diyelim ki 1234 rakamlarını 4 adet display de göstereceğiz.Multiplex tarama mantığına göre işlem şu şekilde olmaktadır.Hemen belirtelim bütün displaylerin segmentleri bir birine bağlıdır. Yani bütün a lar, bütün b ler ve bütün c ler bir birlerine bağlıdır. Dolayısıyla a segmentini aktif yaparsanız normal olarak 4 adet displaydeki bütün a segmentleri aktif olacaktır. Bunun önüne geçmek ve yalnızca bize lazım olan displayin a segmentini aktif yapabilmek için displaylerin ortak anot yada katodları da kontrol altında tutulur. Böylece sisteme 4 rakamı ile ilgili segment bilgisini verdikten sonra yalnızca ilk displayin ortak ucuna gerekli besleme bir transistörle anahtarlanarak verilir. Böylece, rakam o displayde belirir. Bu görüntü burada bir kaç ms ekranda tutulur ve display ortak ucundan kapatılır. Daha sonra segment hattına 3 bilgisi verilir ve bu seferde sağdan 2. displayin ortak ucuna besleme verilir. Böylece sağdan 2. displayde 3 rakamı belirir ve bu görüntü de orada bir kaç ms ekranda tutularak görüntü kapatılır. Bu şekilde diğer displaylerde sırası ile 2 ve 1 bilgisi verilerek bu işlem tekrarlanır. Gözümüz aradaki kesintileri algılayamayacak ve görüntü olarak ve kesiksiz bir şekilde displaylerde 1234 rakamlarını görecektir.

MULTIPLEXING

7 segmentli display üzerinde “5” sayısını gösteren program.

Örnek: PORTBnin uçlarına bağlı 7 segment displayde «5» rakamını gösteren program. list p=pic16f877a #include<p16f877a.inc> org 0x000 goto basla basla: clrf PORTB ; PortB ye bağlı ledleri söndür bsf STATUS,5 ; Bank1‟e geç clrf TRISB ; PortB‟nin uçlarını çıkış yap bcf STATUS,5 ;Bank0‟a geç movlw 0x05 call tablo movwf PORTB dongu: goto dongu tablo: addwf PCL,f ; PCL + W = PCL retlw 0x3F ;0 retlw 0x06 ;1 retlw 0x5B ;2 retlw 0x4F ;3 retlw 0x66 ;4 retlw 0x6D ;5 retlw 0x7D ;6 retlw 0x07 ;7 retlw 0x7F ;8 retlw 0x6F ;9 retlw 0x77 ;A retlw 0x7C ;B retlw 0x39 ;C retlw 0x5E ;D retlw 0x79 ;E retlw 0x71 ;F retlw 0x80 ; . end

Örnek: PORTB nin uçlarına bağlı 7 segment display de 0~F arasında saydıran program. tablo: addwf PCL,f ; PCL + W = PCL retlw 0x3F ;0 retlw 0x06 ;1 retlw 0x5B ;2 retlw 0x4F ;3 retlw 0x66 ;4 retlw 0x6D ;5 retlw 0x7D ;6 retlw 0x07 ;7 retlw 0x7F ;8 retlw 0x6F ;9 retlw 0x77 ;A retlw 0x7C ;B retlw 0x39 ;C retlw 0x5E ;D retlw 0x79 ;E retlw 0x71 ;F retlw 0x80 ; . gecikme: movlw 0xFF movwf sayac1 ;d'255'=M dongu11: movwf sayac2 ; d'255'=N dongu12: decfsz sayac2,f goto dongu12 decfsz sayac1,f goto dongu11 return end list p=pic16f877a #include<p16f877a.inc> sayac1 equ 0x20 sayac2 equ 0x21 say equ 0x22 org 0x000 goto basla basla: clrf say ; sayaci sifirla clrf PORTB ; PortB ye bagli ledleri söndür bsf STATUS,5 ; Bank1 e geç clrf TRISB ; PortB nin uçlarini cikis yap bcf STATUS,5 ;Bank0 a geç dongu: movf say,w ; sayaci w ye tasi call tablo ; 7 segment karsiligini bul movwf PORTB ; displaye yolla call gecikme ; gorulebilmesi icin bekle incf say ; sayaci arttir btfsc say,4 ; 4. bit (t) sifirsa bir komut atla ; 000t xxxx clrf say ; sayaci sifirla goto dongu

MULTIPLEXING

Örnek: PORTB nin uçlarına bağlı 7 segment display e «2A9C» sayısını gösteren program. C0-C3 e Digit secim bitleri movlw 0x04 ; 3. digit sec movwf PORTC ; 3. digit sec movlw 0x0A ; 3. digit icin A call tablo ; 7 segment karsiligini bul movwf PORTB ; displaye yolla call gecikme ; gorulebilmesi icin bekle clrf PORTB ; Segmentte yana led yok movlw 0x08 ; 4. digit sec movwf PORTC ; 4. digit sec movlw 0x02 ; 4. digit icin 2 goto dongu tablo: addwf PCL,f ; PCL + W = PCL retlw 0x3F ;0 retlw 0x06 ;1 …. retlw 0x71 ;F retlw 0x80 ; . gecikme: movlw 0x30 movwf sayac1 ;d'255'=M dongu11: decfsz sayac1,f goto dongu11 return end list p=pic16f877a #include<p16f877a.inc> sayac1 equ 0x20 org 0x000 goto basla basla: clrf PORTB ; Segmentte yana led yok clrf PORTC ; PortC de digit secilmedi bsf STATUS,5 ; Bank1 e geç clrf TRISB ; PortB nin uçlarini cikis yap clrf TRISC ; PortC nin uçlarini cikis yap bcf STATUS,5 ;Bank0 a geç dongu: ; 2A9C movlw 0x01 ; 1. digit sec movwf PORTC ; 1. digit sec movlw 0x0C ; 1. digit icin C call tablo ; 7 segment karsiligini bul movwf PORTB ; displaye yolla call gecikme ; gorulebilmesi icin bekle movlw 0x02 ; 2. digit sec movwf PORTC ; 2. digit sec movlw 0x09 ; 2. digit icin 9