Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: bbs2006 - 27 Mart 2017, 23:19:20

Başlık: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 27 Mart 2017, 23:19:20
Merhaba
16f84 mikrodenetleyicisinin b portuna bağlı lcd var. butona bastığım zaman lcd de istedigim yazıyı görmek istiyorum. Bir türlü olmadı. nasıl bir yazılım yapmam lazım
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: erdogan_82 - 27 Mart 2017, 23:51:00
Nasıl bir yazı olcak bu. tek tek harfmi yazdırcaksın yoksa kelime mi. Amaç ne olacak mesela
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: vitruvius - 27 Mart 2017, 23:56:36
Butona basınca led yakabiliyor musunuz?

Lcd'ye herhangi bir yazı yazabiliyor musunuz?
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 28 Mart 2017, 08:14:18
Lcd ye yazı yapabiliyoruz. Çalışıyor. Led yapabiliyoruz. Lcd bağlandıgında Led de yanmıyor ve Lcd de yazı çıkmıyor
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: vitruvius - 28 Mart 2017, 10:17:03
Devre şemanı ve kodunu görebilir miyiz?

Butona bastığın zaman led yakmak yerine LCD'ye yazı yazdıran fonksiyonunu çağıracaksın. Debounce olayına da dikkat etmek lazım tabi.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 28 Mart 2017, 15:53:58




/*-------------------------------------------------------------------
PIC16F84 İLE  LCD'ye YAZI YAZMA  UYGULAMASI
--------------------------------------------------------------------
*/
#include <16F84.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#define use_portb_lcd TRUE  //Lcd B potuna bağlandığından dolayı kullanılır.
#include <LCD.C>            //Lcdlerle iletişim için kullanılan bir dosya.
/*-------------------------------------------------------------------
ANA PROGRAM BAŞLANGICI
--------------------------------------------------------------------
*/
void main()
{
while(1){
       if(input(pin_A0==0)){
       lcd_init();              //LCD'yi hazır duruma getirir.
       lcd_putc("ENDUSTRiYEL"); //LCD'ye "Endüstriyel" kelimesi gönderiliyor.
       lcd_gotoxy(1,2);         //Otomasyon keimesini LCD'nin 2. satırın
                                //1.sutunundan itibaren  yazar.
       delay_ms(100);           //100 msn'lik gecikme yapılıyor.
       lcd_putc("OTOMASYON");  //LCD'ye "Otomasyon" kelimesi gönderiliyor.
}}}










































Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: vitruvius - 28 Mart 2017, 16:03:09
Öncelikle lcd'yi bir kere init etmek gerekli ve yeterlidir. Butona her basıldığında init etmeyin.

If sorgunuzda hata var. "pin_A0", "0"a mı eşit kıyası var. Eşittir işaretini yanlış yere koymuşsunuz yani.

Üçüncü olarak debounce nedir ve yazılımsal olarak CCS C'de debounce nasıl yapılır onu araştırın.

Ayrıca port giriş/çıkış tanımlamalarını da yapmamışsınız.

Varsa kullanılmayan fonksiyonları (ADC, CCP v.s.) de kapatın.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 28 Mart 2017, 16:10:07
kıyaslamada nerde hata oldugunu anlamadım.
if(!input(pin_a0))   komutu şeklinde yazdık hata nerede anlayamadım.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 28 Mart 2017, 16:12:53
Basit bir program yazabilir misiniz.  Merak ettim.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: vitruvius - 28 Mart 2017, 16:17:29
Eşitliğin bir soluna bir de sağına bak. Sen çağırdığın fonksiyonun sonucuna bakmak istiyorsun ama kodun o haliyle bakmıyorsun. Parantezleri takip et.

Bast bir program yazamam zira istediğin şey zaten basit bir şey. Bunun altından senin kalkman lazım yoksa böyle daha çok konu açarsın. Önemli olan bir şey öğrenmen. Zaten CCS C de kullanmıyorum.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: dursuncemal - 28 Mart 2017, 18:08:43
hacam lcd_init fonksiyonunu sonsuz donguye girmeden once yaparsaniz daha iyi olur. if sorgusunu sormadan ekrana yazı yazabiliyor iseniz, a portunun statusunu giris olarak ayarlayıp , ilgili pin'i pull up yaparsaniz olur.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: mehmet - 28 Mart 2017, 18:38:54
A0 pini de pull-up yapılmalı...

while(1)
{
       if(input(pin_A0==0))
       {
            delay_ms(20);  //debounce gecikmesi
            if(input(pin_A0==0)) // ve bu gecikme sonrasında hala buton basılı mı?
            {
                   .....
                   .....
            }
       }
}

Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 28 Mart 2017, 23:50:04
Cevaplar için teşekkür ederim.  Buton kontrolu olmadan zaten yazdırma işlemi yapıyorum. Ao pininde pull up yapıyorum. sadece gecikme ve tekrar basıllıp basılmadığını sorgulamamıştım.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: tacettin - 29 Mart 2017, 11:21:45
portlara ait tris ayarlarını göremedim. mainden sonra

void main()
{
set_tris_a(0x01);
set_tris_b(0x00);

while(1)
{
.
.
.
.
.


}


ekleyebilir misin?
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 29 Mart 2017, 11:38:09
Tamam
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 29 Mart 2017, 23:55:46
merhaba
Gerekli düzeltmeleri yaptıgım halde program çalışmadı.


#include<16f84A.h>
#fuses xt, nowdt, noprotect
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <LCD420.C>


void main(){
set_tris_b(0x00);
set_tris_a(0x01); 
lcd_init();


while(1)
{
       if(input(pin_A0==0))
       {
            delay_ms(50);  //debounce gecikmesi
            if(input(pin_A0==0)) // ve bu gecikme sonrasında hala buton basılı mı?
            {
            lcd_putc("ENDUSTRiYEL"); //LCD'ye "Endüstriyel" kelimesi gönderiliyor.
            lcd_gotoxy(1,2);         //Otomasyon keimesini LCD'nin 2. satırın
                                //1.sutunundan itibaren  yazar.
       delay_ms(100);           //100 msn'lik gecikme yapılıyor.
       lcd_putc("OTOMASYON");  //LCD'ye "Otomasyon" kelimesi gönderiliyor.       
                   
            }
       }
} }
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 29 Mart 2017, 23:57:17
devre şeması
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: vitruvius - 30 Mart 2017, 10:55:33
Gerekli düzenlemeleri yapmamışsın çünkü hala. Devre şemanı da eklemeyi unutmuşsun bu arada.

Buradan (https://www.ccsinfo.com/downloads/ccs_c_manual.pdf) kullandığın input() fonksiyonu nasıl çalışıyor, ne değer döndürüyor bir oku. Sonra fonksiyonun döndürdüğü bu değere nasıl bakacaksın bir düşün.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: veysel_eeblog - 30 Mart 2017, 12:33:02
vitruvius un dediği gibi input fonksiyonu input(Pin_A0)==x şeklinde olmalı, set_tris fonksiyonlarından sonra output_b(0x00); eklenebilir, ve Pin_A0 pull-up yapılabilir duruma göre.
Başlık: Ynt: Buton ile lcd ye yazı yazma
Gönderen: bbs2006 - 31 Mart 2017, 20:33:26
merhaba
en sonunda lcd ekrana yazdırma işlemini başardım. yardım eden arkadaşlara teşekkür ederim.