for next döngüsünden çıkınca port sıfırlanması

Başlatan yolcu27, 13 Temmuz 2016, 20:19:54

yolcu27

arkadaşlar bir senaryo doğrultusunda böyle bir kod yazdım fakat bir sorunum var.

for next döngüsü içerisinde 30sn sürecek şekilde ayarladım ve burada sorun yok istediklerimi yapıyorum ki kodlardan istediğim az çok anlaşılmakta.

sorunum ise bu 30 sn sonra portb deki ledlerimin sıfırlanması . ben şunu istiyorum for next döngüsü içerisinde enson hangi ledler açıksa portb0 ve b1 hariç diğerleri olduğu gibi yanık kalsın taki kapatma butonuna basılıncaya kadar yanmaları gerekiyor. kapat ve aç butonları kodlarda etiketler içinde belirli. takıldım kaldım .




@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_ON
@ DEVICE Pic16F628A, BOD_OFF
@ DEVICE Pic16F628A, LVP_OFF
@ DEVICE pic16F628A, PROTECT_off
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
define osc4
cmcon=7
trisa=%00011111
trisb=%00000000
x var word
porta=0
portb=0

basla:
   
    if porta.0=1 then
    goto bcON
    endif
   
    goto basla
   
bcON:
     portb=%00000011
     
    for x=1 to 14500
    pause 2
    if porta.1=1 then     
    gosub ac1
   
    endif
    if porta.2=1 then     
    gosub kapat1
   
    endif
   
    if porta.3=1 then     
    gosub ac2
 
    endif
   
    if porta.4=1 then     
    gosub kapat2

    endif
    next

   
         
   
   
ac1:
    PORTB=(PORTB & %11100011)+%00011100
    return   
   
kapat1:
      PORTB=(PORTB & %11100011)+%00000000
      return
   
ac2:   
       PORTB=(PORTB & %00011111)+%11100000
       return
kapat2:
        PORTB=(PORTB & %00011111)+%00000000
        return
   
   
   

ete

Döngü sonuna,
PortB=PortB & %00000011
Komut satırını ekle. Bu komut portB nin değerini okur, sonra onu %00000011 ile and işlemine sokarak ilk iki bitin değerinin aynen kalmasını sağlar ama diğer bitleri sıfırlar. Seninde istediğin bu idi sanırım.

Ete

yolcu27

tam tersi olacaktı hocam ilk iki bit sıfırlansın diğer 6 bit neyse o şekilde kalsın. ve buradada yine sonsuz döngü ile kapatma tuşlarını kontrol edeceğim . birazdan ekleyeyim dediğinizi kendime göre çevirip

Powered by EzPortal