timer ile port okuma

Başlatan devreci22, 27 Mayıs 2016, 14:40:48

devreci22

5 adet Pullup yapılan butonu timer kesmesi ile basıldığını nasıl okuyabilirim butonlar port c de bağlı ?

ete

Her 10 ms de bir tuş kontrolü yapacak şekilde bir düzenleme yaptım. Programın baş tarafına;
INTCON=%10100000
OPTION_REG=%10000101
TMR0=99
ON INTERRUPT GOTO KESME
satırlarını ekle
Kesme alt programı olarak da aşağıdakileri yaz. Butonlar hangi pinlere bağlı belirtmemişsin Aşağdaki açıklamaya göre hareket et;
DISABLE
KESME:
            TUS=PORTC & %00011111' Portc de 0-4 pinlerinde tuş bağlı kabul edildi
            TMR0=99
            INTCON.2=0
            RESUME
            ENABLE

Program kesmeden çıkıp ana programa döndüğünde ise şöyle bir kontrol olmalı;
IF TUS<31 then
    IF TUS=30 THEN .... C.0 daki tus basılmış
    IF TUS=29 THEN .....C.1 deki tuş basılmış
    IF TUS=27 THEN .....C.2 deki tuş basılmış
    IF TUS=23 THEN .... C.3 deki tuş basılmış
    IF TUS=15 THEN.....C.4 deki tuş basılmış
    Burada TUS=0 da demen gerekiyor.

Ete
   


devreci22

Bilgi  ve tecrübeleriniz için çok teşekkür ediyorum hocam, iyiki varsınız çıkmaza girdiğimiz de  bizi kurtarıyorsunuz

Powered by EzPortal