Picproje Elektronik Sitesi

DERLEYİCİLER => PIC Assembly => Konuyu başlatan: robikod - 31 Mart 2017, 18:36:28

Başlık: Asembly Sorusu
Gönderen: robikod - 31 Mart 2017, 18:36:28
RA0'daki butona 2 kez basıldığında portb deki ledleri 2şer 2 şer sağa kaydırırken, RA1 deki 3 butona 3 kez basıldığında port b deki ledleri 3 er 3 er sola kaydıran programı nasıl yazabilirim ? her buton sürekli taranıyor.

Yardımcı olursanız sevinirim
Başlık: Ynt: Asembly Sorusu
Gönderen: RaMu - 31 Mart 2017, 18:50:15
Akış düyagramı çıkarmalısın,
yani programı öncelikle sözel olarak yazmalısın,
gerisi kolay,
senin aklında nasıl yazmak var?


Direk akış diyagramını yazamıyorsan,
problemin basit versiyonlarını tüetip onları çözmen gerekir.


Misal RA0 daki butona basılınca
PORTB deki tüm ledleri yakan,
RA1 deki butona basılınca
PORTB deki tüm ledleri söndüren program,
gibi...
Başlık: Ynt: Asembly Sorusu
Gönderen: robikod - 31 Mart 2017, 18:54:40
Alıntı yapılan: RaMu - 31 Mart 2017, 18:50:15
Akış düyagramı çıkarmalısın,
yani programı öncelikle sözel olarak yazmalısın,
gerisi kolay,
senin aklında nasıl yazmak var?


Direk akış diyagramını yazamıyorsan,
problemin basit versiyonlarını tüetip onları çözmen gerekir.


Misal RA0 daki butona basılınca
PORTB deki tüm ledleri yakan,
RA1 deki butona basılınca
PORTB deki tüm ledleri söndüren program,
gibi...
Butona kaç kez basıldığını nasıl tespit edebilirim ? Butonu 1 kez okuyorum ama 2 veya 3 kez olduğunda nasıl yapabilirim ?
Başlık: Ynt: Asembly Sorusu
Gönderen: efsanepoldem - 31 Mart 2017, 19:02:55
   Bir regiister tanımlayıp, butona herbastığında içeriğini +1 artırmalısın. Daha sonra register içeriğini kontrol edip ona göre işlem yaptırabilirsi. Örneğin 2 ise ledi yak , 3 ise ledi söndür gibi...
Başlık: Ynt: Asembly Sorusu
Gönderen: robikod - 31 Mart 2017, 23:53:17
sayaçA değerine 0x02 verip, şu şekilde kullanmaya çalıştım

TEST_RA0
  BTFSC PORTA,0
  GOTO TEST_RA0
  DECFZS SAYACA
  GOTO TEST_RA0

sonra diğer sayaçla 2 kez sağ kaymasını kontrol ettim ama çok mantıklı gelmedi bu yardımcı olabilir misiniz nasıl kontrol etmem gerekiyor butonların kaç kez basıldığını

 
Başlık: Ynt: Asembly Sorusu
Gönderen: ÜC - 01 Nisan 2017, 12:41:23
Yanlış:
1:Bit lowmu
2:Sayacı artır
3:başa dön

Doğru
1:Bit lowmu
2:Sayacı artır
3:Bit highmı
4:başa dön (sayacı artırmadan)

Başlık: Ynt: Asembly Sorusu
Gönderen: RaMu - 02 Nisan 2017, 00:19:09
Ödev mi bu soru?