cagamaga
Üye
- Katılım
- 16 Şub 2010
- Mesajlar
- 13
- Puanları
- 1
- Yaş
- 40
Merhaba arkadaslar.Bi kayan yazi uygulamasi yapmak istiyordum klavye kontrolü olmayacak sade bisey.yalniz sorun cikti programda hatam var buda shift registerden kaynklandigii dusunuyorum yani yazdigim kodla ilgili.bir el atarsaniz sevinirim.
Tesekkurler
Tesekkurler
Kod:
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
//***********Denetleyici konfigürasyon ayarları************
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor
#use fast_io(b) // Port yönlendirme komutları B portu için geçerli
#use fast_io(c) // Port yönlendirme komutları C portu için geçerli
#define data pin_c0
#define clock pin_c1
int i,l,k,j;
//******** Matrise Gönderilecek Karakter Bilgileri *******
int yazi[]={
0x03,0x75,0x76,0x75,0x03
0x00,0X36,0X36,0x36,0X49,
0x41,0x3E,0x3E,0x3E,0x5D,
0x00,0x3E,0x3E,0x3E,0x41,
0x00,0xB6,0xB6,0xB6,0xBE,
0x77,0x77,0x41,0x77,0x77,
0x6B,0x5D,0x00,0x5D,0x6B };// gonderilecek yazi
//******* Sütun Seçme Fonksiyonu ************
int sutunsec (int s)
{
switch (s)
{
case 0: return(0x10);break; // 1. Sütun aktif, diğer sütunlar pasif
case 1: return(0x08);break; // 2. Sütun aktif, diğer sütunlar pasif
case 2: return(0x04);break; // 3. Sütun aktif, diğer sütunlar pasif
case 3: return(0x02);break; // 4. Sütun aktif, diğer sütunlar pasif
case 4: return(0x01);break; // 5. Sütun aktif, diğer sütunlar pasif
}
}
void main ()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor
set_tris_c(0x00); // C portu tümüyle çıkış olarak yönlendiriliyor
while(1)
{
for (i=1;i<40;i++) // Karakterin Matris LED'de görünmesi için tekrar döngüsü
{
for(j=0;j<15;j++) // // Bu döngüde tarama işlemi yapılıyor burdaki 15 kullandigim
//3 matrisin toplam kolon sayisina esit yani 3x5=15 yalnisim varsa duzelt
{
output_bit(data,sutunsec(j));
output_b(yazi[j]); // Gösterilecek harfin satır bilgisini B portuna gönder
output_high(clock);
output_low(clock);
delay_ms(10);
}
}
}
bide resim eklemeyi bilsem :( proteusda cizdigim devreyi yollicam.ama bu ilk uye oldugum forum
}