FPGA ile 2x16 LCD Uygulaması

Benzer belgeler
FPGA İLE UYGULAMA ÖRNEKLERİ

FPGA İLE UYGULAMA ÖRNEKLERİ

FPGA İLE UYGULAMA ÖRNEKLERİ FPGA ile Seri Haberleşme (RS232) Uygulaması

FPGA İLE UYGULAMA ÖRNEKLERİ

İçindekiler FPGA GELİŞTİRME KARTI ENERJİ BESLEMESİ:... 5 ENERJİ SİSTEMİ ŞEMASI:... 5 FPGA GELİŞTİRME KARTINA PROGRAM YÜKLEME:... 6

Programlanabilir Devreler

7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması

FPGA ile Gömülü Sistem Tasarımına Giriş

NX-CIF105 MODBUS CIF MANAGER. NX-CIF105 CIF MANAGER CIF105 Ayarları CIF Mapping yazılımı Yazılım yapısı

Altera ile proje hazırlama. Quarturs programı üzerinde Altera De0 kartı için proje hazırlama

ADUC841 MİKRODENETLEYİCİ TABANLI GELİŞTİRME KARTININ TANITIMI:

Deney 2: Flip-Floplar

EEM 419-Mikroişlemciler Güz 2017

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

Melih Hilmi ULUDAĞ. Yazılım Mühendisi Mekatronik Mühendisi. a aittir.

Mikroişlemcili Sistemler ve Laboratuvarı

Verilog HDL e Giriş Bilg. Yük. Müh. Selçuk BAŞAK

LCD (Liquid Crystal Display)

PIC Mikrodenetleyicileri

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

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

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

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

YENİ NESİL ÖKC İLE ON-LİNE İŞLEMLER (Hugin / Profilo)

LCD (Liquid Crystal Display )

«BM364» Veritabanı Uygulamaları

Mühendislik Tasarım-3 ve Bitirme Çalışması Konuları

VERILOG. Modüller

Föy Kitapçıg ı O NDOKUZ M AYIS Ü N I VERS I TES I B I LG I SAYAR M ÜHEND I SL I G I B ÖLÜMÜ S AYISAL TASARIM L ABORATUVARI

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

Chapter1: Introduction. Ders 1: Giriş. Digital System Designs and Practices Using Verilog HDL and 2008~2010, John Wiley 1-1

F2164 GPRS MODEMLER İLE MODBUS TCP PROTOKOLÜ KULLANARAK DİJİTAL VE ANALOG I/O KONTROLÜ UYGULAMASI KILAVUZU

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

FBs-serisi. Programlanabilir Kontrol Cihazı. Kullanım Kitabı - II [ İleri Düzey Uygulamalar. Önsöz, İçerik. FBs-PLC Interrupt Fonksiyonu 9

Deney 6: Ring (Halka) ve Johnson Sayıcılar

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

T.C. RC SERVO MOTOR KONTROLÜ

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Qt ile Bir Ağ Uygulaması

ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

Bilgisayar ile Dijital Devrelerin Haberleşmesi. FT232R ve MAX232 Entegreleri. Çalışma Raporu

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

Proje #2 - Lojik Devre Benzetimi

BÖLÜM Mikrodenetleyicisine Giriş

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

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

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İ

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

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

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

C-Serisi PLC İleri Seviye Eğitim

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Uyarı. Model Açıklaması & Çevre Birimler. Ürün Profili & Taslağı

Su Depolama Tanklarında Su Seviye Kontrolünün Kablosuz Olarak Yapılması

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

V Daq Kurulum adımları

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

SAVEL Gas Alarm Sistemleri

EGE Üniversitesi Mühendislik Fakültesi Bilgisayar Müh. Bölümü Öğretim Yılı Lisans Tezi Önerileri

Bilgisayar Sistemlerine Genel Bakış

BQ352 Modbus Röle Cihazı 24 Kanal. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

BQ Modbus Analog Giriş Kartı 6 Kanal PT100 - PT1000. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

XC8 ile PİC uygulamaları

Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose

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

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1. ARDUINO LCD ve Sensör Uygulamaları

INVT IVC1. -Kompakt Tip PLC. Marketing 2014 HM

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BQ353 Modbus 8x D.Input 8x Röle Cihazı Kullanım Kılavuzu

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Mifare Kart Yazıcı/Okuyucu Modül (MFM-200)

IdeaSoft E-Ticaret ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

SAYISAL MANTIK LAB. PROJELERİ

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

HDL ile Gelişmiş Sayısal Tasarım (EE 425) Ders Detayları

EEM 419-Mikroişlemciler Güz 2016

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ

DESTEK DOKÜMANI GO PLUS ANA MENÜ DEĞİŞİKLİKLERİ. Go Plus ürünümüzde versiyonu ile birlikte arayüz değişikliği ve menü düzenlemesi yapılmıştır.

24 Mart İlgili Modül/ler : Transfer. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

Türkiye Mümessili. F.A.S.T Fabrika Aygıtları Sistem Teknolojisi Ltd.Şti. FAST PLAZA Karaman Çiftlik Yolu No:51 Küçükbakalköy / Kadıköy / İstanbul

ADF Transfer Kılavuzu

LCD EKRANIN SÜRÜLMESİ VE FLASH/EE HAFIZASININ KULLANILMASI

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

PROJE SAHİBİ: ÖZCAN PİŞGİN

ENROUTEPLUS TA YAPILMASI GEREKENLER

İletişim Protokolleri (Communication Protocols)

Görüntü İşleme Algoritmalarının Fpga Donanımı Üzerinde Gerçeklenmesi. Implementatıon Image Processıng Algorıthms on FPGA Hardware

Bölüm 18 FBs-6AD Analog Giriş Modülü

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

FPGA ile Gömülü Sistem Tasarımına Giriş Bilgisayar Bil. Müh. Selçuk BAŞAK

PIC16F877A nın Genel Özellikleri

Matlab & Simulink MATLAB SIMULINK

PIC Programlama. Devrim Çamoğlu

USB 10 IN-OUT. Usb portundan, 10 adet giriş ve çıkış yapabilen, Opto izolasyonlu digital otomasyon devresi.

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

MADE IN TURKEY KOD ELEKTRONİK GÜVENLİK SİSTEMLERİ SAN. VE TİC. LTD. ŞTİ. ADRESLENEBİLİR AKILLI YANGIN ALARM SİSTEMİ 2015 FİYAT LİSTESİ

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

Uzak Terminal Ünitesi RTU. RTU300 Serisi RTU400 Serisi. Akıllı Kontrolde Teknoloji Devi

Transkript:

FPGA ile 2x16 LCD Uygulaması FPGA İLE UYGULAMA ÖRNEKLERİ 1 FPGA ile (Sahada Programlanabilir Mantık Dizeleri) gerçekleştirilen uygulamalar günden güne giderek çeşitlenmektedir. FPGA ların üstünlükleri/eksiklikleri, ile mikrodenetleyicilerin, ASIC lerin(uygulama Odaklı Entegre Devre) ve ASSP lerin(uygulama Odaklı Standart Ürün) kıyaslanması başlı başına bir makale konusudur. Biz burada buna değinmeyeceğiz. Örnek uygulamamızda; FPGA çipi olarak ALTERA Firmasının Cyclone IV ailesinden EP4CE6E22C8 model bir FPGA ve HD44780 çipli 2x16LCD kullandık. Bu FPGA çipinin gelişmiş özellikleri için modelin datasheet i(bilgisayfası) incelenmelidir. Ama kabaca olarak kullandığımız FPGA çipi; 6272 Lojik Elementli, 270Kbit Gömülü Hafızası, 91 adet I/O (Giriş/Çıkış) Pini bulunan, 144 ayaklı bir çiptir. ALTERA firmasının üretmiş olduğu FPGA ları programlayabilmek için, Quartus Derleyicisini kullanıyoruz. Quartus Derleyicisinin kurumsal internet sitesinden indirdiğimiz Demo versiyonu ile bu örnek uygulamayı gerçekleştirdik. 6272 lojik elementten sadece 74 tanesini kullandığımız için demo limitine takılmadık. FPGA ları programlayabilmek için yaygın olarak kullanılan iki dil; VDHL ve Verilog içerisinden, C söz dizimine daha yakın geldiği için Verilog ile programlamayı tercih ettik. FPGA ve LCD arasındaki Pin Bag lantıları : Çıkış Pinleri PIN_85 >> rs PIN_99 >> rw PIN_100 >> en PIN_101 >> veri[0] PIN_103 >> veri[1]

PIN_104 >> veri[2] PIN_105 >> veri[3] PIN_106 >> veri[4] PIN_110 >> veri[5] PIN_111 >> veri[6] PIN_112 >> veri[7] 2 Giriş Pinleri PIN_23 << saatdarbesi HD44780 LCD Karakter Kodları : Örnek uygulamamızda, mikrodenetleyici uygulamalarındaki gibi hazır bir kütüphane kodu kullanmadığımız için; Karakter ve Komut kodlarına ihtiyaç duyduk. HD44780 çipli LCD lerde kullanılan karakter kodları için aşağıdaki tablo incelenmelidir.

HD44780 çipli LCD lerde kullanılan kontrol komutları için ise internette oldukça fazla kaynak bulunmaktadır ayrıca HD44780 çipli LCD datasheet i(bilgisayfası) incelenebilir. 3 Ö rnek Uygulamanın RTL* Diagramı : *RTL : Register Transfer Level (Kaydedici İletim Seviyesi Gösterimi)

Program Kodu : 4 /******************************************************************************* * @dosya LCD Uygulaması * @yazar Erkan ÇİL * @sürüm V0.0.1 * @tarih 07-Temmuz-2016 * @özet Cyclone IV EP4CE6 FPGA 2x16 LCD Karakter Uygulaması * * Bu örnek uygulamada, Cyclone IV EP4CE6 FPGA kartını ile 16x2 LCD kullanılarak * yazı karakterleri gösterilecektir. Hitachi HD44780 sürücüsü kullanılan * her LCD için uyumlu olarak çalışacaktır. ****************************************************************************** * * Bu program özgür yazılımdır: Özgür Yazılım Vakfı tarafından yayımlanan GNU * Genel Kamu Lisansı nın sürüm 3 ya da (isteğinize bağlı olarak) daha sonraki * sürümlerinin hükümleri altında yeniden dağıtabilir ve/veya değiştirebilirsiniz. * ******************************************************************************/ module lcd1602(saatdarbesi, rs, rw, en,veri); //lcd1602 MODÜLÜ TANIMI //-------------Giriş Portları----------------------------- input saatdarbesi; //-------------Çıkış Portları---------------------------- output [7:0] veri; //data pinleri output rs,rw,en; //Register Select, Read Write, Enable Pinleri //tri en; //-------------Çıkış Portları Veri Tipleri------------------ // Çıkış portları bellek elemanı(reg-yazmaç) veya bir tel olabilir reg e; reg [7:0] veri; reg rs; reg [15:0] sayici; reg [6:0] simdiki,sonraki; reg saatdarbesikayit; reg [1:0] cnt; //-------------Parametre Tanımlamaları---------------------------- parameter set0=4'h00; parameter set1=4'h01; parameter set2=4'h02; parameter set3=4'h03; parameter veri0=4'h04; parameter veri1=4'h05; parameter veri2=4'h06; parameter veri3=4'h07; parameter veri4=4'h08; parameter veri5=4'h09; parameter veri6=4'h0a; parameter veri7=4'h0b; parameter veri8=4'h0c; parameter veri9=4'h0d; parameter veri10=4'h0e; parameter veri11=5'h10; parameter veri12=5'h11; parameter veri13=5'h12; parameter veri14=5'h13; parameter veri15=5'h14; parameter set4=5'h15; parameter veri16=5'h16; parameter veri17=5'h17; parameter veri18=5'h18; parameter veri19=5'h19; parameter veri20=6'h20; parameter veri21=6'h21; parameter veri22=6'h22; parameter veri23=6'h23; parameter veri24=6'h24; parameter veri25=6'h25; parameter veri26=6'h26; parameter veri27=6'h27; parameter veri28=6'h28; parameter veri29=6'h29; parameter veri30=6'h2a; parameter veri31=6'h2b; parameter nul=4'hf; //------------Kod Burada Başlamaktadır-------------------------

// Bu sayaç yükselen kenar tetiklemeli olduğundan, // Bu bloğu saatin // yükselen kenara göre tetikleyeceğiz. always @(posedge saatdarbesi) sayici=sayici+1; if(sayici==16'h000f) saatdarbesikayit=~saatdarbesikayit; always @(posedge saatdarbesikayit) simdiki=sonraki; case(simdiki) set0: rs<=0; veri<=8'h38; sonraki<=set1; // LCD 1 satır 2 satır ayarı!!! set1: rs<=0; veri<=8'h0c; sonraki<=set2; // LCD yi aç set2: rs<=0; veri<=8'h06; sonraki<=set3; // LCD imleç artan mod set3: rs<=0; veri<=8'h01; sonraki<=veri0; // LCD yi temizle veri0: rs<=1; veri<=8'h3c; sonraki<=veri1; veri1: rs<=1; veri<="m"; sonraki<=veri2; veri2: rs<=1; veri<="c"; sonraki<=veri3; veri3: rs<=1; veri<="u"; sonraki<=veri4; veri4: rs<=1; veri<="-"; sonraki<=veri5; veri5: rs<=1; veri<="t"; sonraki<=veri6; veri6: rs<=1; veri<="u"; sonraki<=veri7; veri7: rs<=1; veri<="r"; sonraki<=veri8; veri8: rs<=1; veri<="k"; sonraki<=veri9; veri9: rs<=1; veri<="e"; sonraki<=veri10; veri10: rs<=1; veri<="y"; sonraki<=veri11; veri11: rs<=1; veri<="."; sonraki<=veri12; veri12: rs<=1; veri<="c"; sonraki<=veri13; veri13: rs<=1; veri<="o"; sonraki<=veri14; veri14: rs<=1; veri<="m"; sonraki<=veri15; veri15: rs<=1; veri<=8'h3e; sonraki<=set4; set4: rs<=0; veri<=8'hc0; sonraki<=veri16; // LCD yi 2. satıra geçir 5 veri16: rs<=1; veri<=8'h7e; sonraki<=veri17; veri17: rs<=1; veri<="m"; sonraki<=veri18; veri18: rs<=1; veri<="e"; sonraki<=veri19; veri19: rs<=1; veri<="r"; sonraki<=veri20; veri20: rs<=1; veri<="h"; sonraki<=veri21; veri21: rs<=1; veri<="a"; sonraki<=veri22; veri22: rs<=1; veri<="b"; sonraki<=veri23; veri23: rs<=1; veri<="a"; sonraki<=veri24; veri24: rs<=1; veri<=" "; sonraki<=veri25; veri25: rs<=1; veri<=" "; sonraki<=veri26; veri26: rs<=1; veri<="d"; sonraki<=veri27; veri27: rs<=1; veri<="u"; sonraki<=veri28; veri28: rs<=1; veri<="n"; sonraki<=veri29; veri29: rs<=1; veri<="y"; sonraki<=veri30; veri30: rs<=1; veri<="a"; sonraki<=veri31; veri31: rs<=1; veri<=8'h7f; sonraki<=nul; nul: rs<=0; veri<=8'h00; //null durum tanımı if(cnt!=2'h2) e<=0; sonraki<=set0; cnt<=cnt+1; else sonraki<=nul; e<=1; default: case sonraki=set0; assign en=saatdarbesikayit e; assign rw=0; module // LCD1602 modülünün sonu

Ö rnek Uygulamanın Go rseli : 6