Geri git   Programlama ve Elektronik > Devreler > Dijital Devreler > İstek ve Sorun
Kayıt ol Yardım Community Bugünki Mesajlar Arama

İstek ve Sorun Her Türlü İstek ve Sorunlarınızı Buradan Belirtebilirsiniz.

Cevapla
 
Seçenekler Stil
Alt 13. April 2008, 11:57 AM   #1 (permalink)
Amatör
 
KAPTANIDERYA - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Mar 2008
Mesajlar: 2
Soru PIC 16F877A ile spot (lamba) gösteri devresi

PIC 16F877A entegre optodiak(lambalardaki akımdan entegreyi yalıtmak için) kullanarak lambaları belirli modlara göre göre yakmak istiyorum...
Ekte ki isis çiziminde devrede sorun yok ama bunun yazılımı için yardım edebilecek biri var mı?
Biraz kod yazdım ama sonunu getiremedim...
Bu kodlamada yapmaya çalıştıgım RE1 portu 1 oldugunda SAYI adlı registeri 1 artıması RE2 portu 1 oldugunda SAYI registerini 1azaltması ve RE3 portu 1 oldugunda SAYI registerinin sıfırlamasını istiyorum. Bundan sora ise sayı kaç ise o sayıya karşılık gelen modu çagırması ve lambaları o düzende yakmasını istiyorum.
Sonunu getiremediğim kod; bana biri bunu bitirmek için yardım edebilir mi?
-------------------------------------------------------------------------------------
list p=16f877a
#include p16f877a.inc
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

ORG 0x0000

SAYI EQU 0X21 ;SAYI 0X0C nolu özle registere eşit/odur dedik... (Kısaca onun adresini verdik.)

bsf STATUS5 ;Bank1'e geç
movlw 0X00 ;w'ye 0X00 sayısını yükler.
movwf TRISA ;w'ye yüklenen sayıyı TRISA'ye atat ve TRISA'yi çıkş yapar.
movwf TRISB ;w'ye yüklenen sayıyı TRISB'ye atat ve TRISB'yi çıkş yapar.
movwf TRISC ;w'ye yüklenen sayıyı TRISC'ye atat ve TRISC'yi çıkş yapar.
movwf TRISD ;w'ye yüklenen sayıyı TRISD'ye atat ve TRISD'yi çıkş yapar.
movlw 0XFF
movwf TRISE ;w'ye yüklenen sayıyı TRISE'ye atat ve TRISE'yi giriş yapar.

bcf STATUS5 ;Bank0'a geç
movlw 0X00 ;w'ye 0X00 sayısını yükler.
movwf PORTB ;w'ye yüklene 0X00 sayısını PORTB'ye yükler ve PORTB'yi sıfırlar.
movwf PORTC ;w'ye yüklene 0X00 sayısını PORTC'ye yükler ve PORTC'yi sıfırlar.
movwf PORTD ;w'ye yüklene 0X00 sayısını PORTD'ye yükler ve PORTD'yi sıfırlar.
movlw 0X08
movwf PORTA ;w'ye yüklene 0X08 sayısını PORTA'ye yükler ve PORTA'yi sıfırlar. (PORTA'nın 4. biti(portu özel port oldugu için 0X00 yerine 0X08 yazdık)
BASLA:
clrf SAYI ;SAYI registerini sıfırla.

TEST_PORTE_B1:
btfsc PORTE0X01 ;PORTE'nin 1. portunu kontrol eder 0 ise bi sonrakini pas geçer.
incf SAYI ;SAYI'yı kontrol eder ve degerini 1 artır.
movwf SAYI ;w'deki bilgiyi SAYI registerine yaz.
movwf PORTC ;w'deki bilgiyi PORTC'ye yaz.
TEST_PORTE_B2:
btfsc PORTE0X02 ;PORTE'nin 2. portunu kontrol eder 0 ise bir sonrakini pas geçer.
decf SAYI ;SAYI registerini 1 azaltır
movlw SAYI ;Sayıyı w'ye yazar.
movwf PORTC ;w'yü PORTC'ye yükler

TEST_PORTE_B3:
btfsc PORTE0X04 ;PORTE'nin 3. ucunu konrol eder
movlw 0X00 ;w'ye 0X00 sayısını yaz.
movlw SAYI ;w'deki bilgiyi SAYI registerine yaz.
movwf PORTC ;w'yü PORTC'ye yükler
BEKLE:
movlw 0X5E ;w'ye 0X5E sayısını yaz.
movwf 0X00 ;w'deki bilgiyi 0X00 registerine yaz.
tekrar
nop ;boş bekle
nop ;boş bekle
nop ;boş bekle
nop ;boş bekle
decfsz 0X0C ;registerin içerigini 1 azaltır. REgister içerigi 0 ise sonraki konuma geçer sonuç w'ya yada f'e yüklenir.
goto tekrar ;tekrar'a git.
return ;geldigin yere git.

;
; BURADA MODLARI ÇAGIRACAK PROGRAM VE MODLARIN OLMASI
; GEREKLİ
;

goto BASLA ;BASLA'ya git.
end ;Programı bitir.
Eklenmiş Dosya
Dosya tipi: rar aaaaa.rar (27,0 KB (Kilobyte), 6x kez indirilmiştir)

Konu KAPTANIDERYA tarafından (30. April 2008 Saat 10:09 AM ) değiştirilmiştir.
KAPTANIDERYA isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 15. April 2008, 08:01 PM   #2 (permalink)
Amatör
 
Üyelik tarihi: Apr 2008
Mesajlar: 3
Standart Cevap: PIC 16F877A ile spor gösteri devresi

merhaba
picbasic pro ile yazmaya çalışsaydın yardım ede bilirdim.
yapmak istediğini tam anlasam tamamını yazarım.
Ben biraz daha basitini pic16f84+24c256 ile yaptım.
alec isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 17. April 2008, 09:09 PM   #3 (permalink)
Amatör
 
KAPTANIDERYA - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Mar 2008
Mesajlar: 2
Standart Cevap: PIC 16F877A ile spor gösteri devresi

İlgin için teşekkürler....

Yapmak istediğim şu;

PIC 16F877A kullanarak 30 tane ledle gösteri yapmak diye biliriz (öyle kabul edelim yazılımsal olarak)

Kontrol komutları olarak;
Butonlarla gösteri düznini ayarlama istiyorum...
PIC'in RE1 portundaki butona basıldıgında SAYI Registerini 1 artırmak (ilk anda 0) RE2 portundaki butona basıldıgınnda SAYI resigterini 1 artırmak RE3 portundaki butona basıldıgında SAYI registerine 0 sayısını yüklemesi.

Kontrol komutlarından sonra;
Belirlenen SAYI registerindeki sayı değerine karşılık gelen mdolu çagırması...
Mod'a örnek olarak:
SAYI 0 ise
Mod_0'ı çagır
Mod_0:
PORTA = b'01011101 (PORTA'nın 4. ucu özel uç oldugu için 0 yerine 1 yazdım)
PORTB = b'10101010
PORTC = b'10101010
bekle
PORTA = b'10100010 (PORTA'nın 4. ucu özel uç oldugu için 1 yerine 0 yazdım)
PORTB = b'01010101
PORTC = b'01010101
bekle


Yani modlar gösteri düzenini ayarlamak...

Modların içerigini ben hallederim sorun olan onları çagıracak programı yapmak.

Yazılımı yazabilirim demişsin. Eger yazarsan mod kısmıyla ugraşma... SAYI registerinin tesbiti ve mod çagıımı kısmı yeterli...
Donanımsa çizimi/başlayıpta bitiremediğim kod ekte var....

İlgin için tekrar teşekkürler..
KAPTANIDERYA isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 28. October 2008, 08:39 AM   #4 (permalink)
Amatör
 
Üyelik tarihi: Aug 2008
Mesajlar: 2
Standart Cevap: PIC 16F877A ile spor gösteri devresi

Guzel Olmus Ellerine Saglik
maske37 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 28. October 2008, 08:40 AM   #5 (permalink)
Amatör
 
Üyelik tarihi: Aug 2008
Mesajlar: 2
Standart Cevap: PIC 16F877A ile spot (lamba) gösteri devresi

Guzel Olmus
maske37 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 21. September 2009, 12:38 AM   #6 (permalink)
Amatör
 
Üyelik tarihi: Aug 2009
Mesajlar: 1
Standart Cevap: PIC 16F877A ile spor gösteri devresi

güzel... güzel güzell...
SHAHiN isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı