ra0 ve ra4 butonlarina ayni anda basildiginda rb0 daki ledi yakan program

Başlatan mabool, 03 Ocak 2011, 13:25:21

mabool

programi ornektegi gibi yaptim ve mantigini anladim program asagidaki gibi ve kasilastirma icin xorwf komutu kulaniliyor sonrasinda ben eskiden ogrendigim subwf komutuyla farkli bir varyasyonunu denedim oda calisti diyebilirmiyizki bu yol daha dogru bu yol pek iyi degil yoksa her ikiside ayni ayardamidir?
LIST               P=16F628A
INCLUDE               "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
   CBLOCK            H'20'
   SAYAC1, SAYAC2, MASKPORTA
   ENDC
   ORG               H'00'
   CLRF            PORTB
   BANKSEL            TRISB
   CLRF            TRISB
   MOVLW            H'FF'
   MOVWF            TRISA
   BANKSEL            PORTB
   MOVLW            H'07'
   MOVWF            CMCON
TEST_PORTA
   MOVF            PORTA,W
   ANDLW            B'000010001'
   MOVWF            MASKPORTA
   MOVLW            B'00000000'
   XORWF            MASKPORTA,W
   BTFSS            STATUS,2
   GOTO            TEST_PORTA
YAK
   MOVLW            H'01'
   MOVWF            PORTB
DONGU
   GOTO            DONGU
   END
   

buda uzerinde degisiklik yaptigim

LIST               P=16F628A
INCLUDE               "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
   CBLOCK            H'20'
   SAYAC1, SAYAC2, MASKPORTA
   ENDC
   ORG               H'00'
   CLRF            PORTB
   BANKSEL            TRISB
   CLRF            TRISB
   MOVLW            H'FF'
   MOVWF            TRISA
   BANKSEL            PORTB
   MOVLW            H'07'
   MOVWF            CMCON
TEST_PORTA
   MOVF            PORTA,W
   ANDLW            B'000010001'
   MOVWF            MASKPORTA
   MOVLW            H'00'
   SUBWF            MASKPORTA,W
   BTFSS            STATUS,2
   GOTO            TEST_PORTA
YAK
   MOVLW            H'01'
   MOVWF            PORTB
DONGU
   GOTO            DONGU
   END
   

simdiden tesekkurler

eseneren

Ikı sayı esıt mı degılmı XOR la yapılır, illa onunla olacak degıl bır cok yontem vardır.

Senin tam olarak yaptıgın aynı anda basıldıgı degıl ıkısınemı basılı?
o sebeple yerinde olsam asagıdakı gıbı yapardım

BTFSS PORTA,0
GOTO XXX
BTFSC PORTA,4
BSF PORTB,0
XXX

aynı andamı basıldı ( an tanımlamak lazım gercıde) ınterrupt ıle yapmak daha dogru olacaktır.

Saygılar
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

mabool

ayni anda degil aslinda iki butonda basili olmasi yeterli birine once veya sonra basmak etkilemicek evet o dedigin varyasyonuda dusundum aslinda

kudretuzuner

Merhaba
Geçen sene öğrenci arkadaşlardan birinin böyle bir sorusu vardı.Ben de şöyle bir yazılım ile çözmüştüm.RA0'a bastığınızda(buton1) RB0 yanar RA1'e bastığınızda(buton2) RB1 yanar double anahtarı kapatırsanız yazılım gereği ledler söner RB7 yanar.Yazılımın en önemli yeri butonları tek tek algıladığı gibi ikisi birden basılınca farklı algılamasıdır.Not amatör olduğum için ve de çok ilgimi çektiği için bayağı uğraştırmıştı ve "PROBLEM"adıyla arşive almıştım.Buyrun.
http://www.4shared.com/file/AJBu48eh/mabool_problem.html
Amatör