CCS ile Tuş Takımı ile Sıralı LCD Yazısı

ricetyx

Üye
Katılım
14 May 2009
Mesajlar
142
Puanları
1
Yaş
37
ARKADAŞLAR MERHABA ;

Tuş Takımı ile LCD de sayıları sıralı yazmak istiyorum. yani aşağıdaki kodda , 1 e basınca 1 , 5 e basınca da 5 yazıyor.

Ben sıralı olarak yazmasını istiyorum ne yapabilirim ?

Örnek olarak ; 1987 tuşladığım zaman LCD de 1987 Görmeliyim.

Kod:
#include <16f877.h> #fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=20000000)
#define use_portb_lcd TRUE
#include <lcd.c>


#define CONVERT  pin_c0
#define SATIR1   pin_d0
#define SATIR2   pin_d1
#define SATIR3   pin_d2
#define SATIR4   pin_d3
#define SUTUN1   pin_d4
#define SUTUN2   pin_d5
#define SUTUN3   pin_d6
#define SUTUN4   pin_d7


int16 tus=0;
 


//*********** Keypad Tarama Fonksiyonu *********
char buton_oku() // Fonksiyon ismi
{
output_d(0x00);


output_high(SUTUN1);
if (input(SATIR1)){delay_ms(20); tus=0x01;}
if (input(SATIR2)){delay_ms(20); tus=0x04;}
if (input(SATIR3)){delay_ms(20); tus=0x07;}
if (input(SATIR4)){delay_ms(20); tus=0x0F;}
output_low(SUTUN1);


output_high(SUTUN2);
if (input(SATIR1)){delay_ms(20); tus=0x02;}
if (input(SATIR2)){delay_ms(20); tus=0x05;}
if (input(SATIR3)){delay_ms(20); tus=0x08;}
if (input(SATIR4)){delay_ms(20); tus=0x00;}
output_low(SUTUN2);


output_high(SUTUN3);
if (input(SATIR1)){delay_ms(20); tus=0x03;}
if (input(SATIR2)){delay_ms(20); tus=0x06;}
if (input(SATIR3)){delay_ms(20); tus=0x09;}
if (input(SATIR4)){delay_ms(20); tus=0x0E;}
output_low(SUTUN3);


output_high(SUTUN4);
if (input(SATIR1)){delay_ms(20); tus=0x0A;}
if (input(SATIR2)){delay_ms(20); tus=0x0B;}
if (input(SATIR3)){delay_ms(20); tus=0x0C;}
if (input(SATIR4)){delay_ms(20); tus=0x0D;}
output_low(SUTUN4);


return tus;
}
//*********** Keypad Tarama Fonksiyonu *********


void main ( )
{
   setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_adc_ports(NO_ANALOGS); 
   setup_adc(ADC_OFF); 
   set_tris_d(0b11110000);
   lcd_init();
   printf(lcd_putc,"\fBasilan Tus=");


   while(1)
   {
      printf(lcd_putc,"\n%2d",buton_oku());
   }
}
 
Benim sana geçende yazdığım yazılımda zaten istediğin şey oluyor...
 
"\f" komutu LCD ekranını temizliyor ve ana döngüye 4 seferden sonra LCD ye komut göndermesini engellersen işin olur.:)

Dostum senin esas öğrenmen gereken konular dizin yapıları, string yapıları öğrenmen gerekir.
 
"\f" komutu LCD ekranını temizliyor ve ana döngüye 4 seferden sonra LCD ye komut göndermesini engellersen işin olur.:)

Dostum senin esas öğrenmen gereken konular dizin yapıları, string yapıları öğrenmen gerekir.


4 seferden kastın nedir :) yani o durumu nasıl yapabilirim ?
 
Dostum CCS de tahmini 500 kod vardır. Bu kodların tamamına yakını ezberlenilmeden yazılan kodlar pek işe yaramaz. Yani bizim daha çok kod ezberlememiz gerekiyor 5-10 tane kodla program yazılmaz. Programın yardım dosyasındaki tüm kodları öğrenmeye çalış yoksa bu programlar bitmez.
 

Forum istatistikleri

Konular
128,354
Mesajlar
916,964
Kullanıcılar
450,213
Son üye
qrsath06

Yeni konular

Geri
Üst