Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

KARAŞİMŞEK YARDIM

Başlatan fn3hrjnj, 27 Nisan 2011, 01:21:43

fn3hrjnj

TRISB=0
TRISC=0
PORTB=0
PORTC=0

BASLA:
PAUSE 100
PORTB=%00000001
PORTC=%00000000

KAYDIR:
PAUSE 100
PORTB=PORTB<<1
IF PORTB=%10000000 THEN KAYDIR2
GOTO KAYDIR
KAYDIR2:
PAUSE 100
PORTB=0
PORTC=%00000001
PAUSE 100
PORTC=PORTC<<1
IF PORTC=%00010000 THEN BASLA
GOTO KAYDIR
END


PIC16F870 İLE KARAŞİMŞEK DEVRESİ YAPIYORUM 13 LEDLİ . PORTB ' NİN TAMAMINI KAYDIRIYOR VE PORTC 'NİN 1. BİTİNE GELİNCE DURUYOR . . .
NEREDE YANLIŞ YAPMIŞIMDIR ACABA :) ?

iyildirim

En alttaki GOTO da KAYDIR yerine KAYDIR2 olmalı.

ipek

'IF PORTC=%00010000 THEN BASLA
GOTO BASLA
'END

program sonunda bir değişiklik yaptım 13 bit çalıştı .
bence böyle olmaması lazım bekleyelim basic hocaları ne diyecek..

zakbay

ben olsan böyle yazardım

veri var Word
a var Byte 
veri = 1

TRISC = 0
PORTC = 0
TRISB = 0
PORTB = 0


basla:
    For a = 0 To 11 ;önce bir yöne
        GoSub CikisBas
        veri = veri << 1
    Next
    
    For a = 0 To 11 ;sonra diger yöne
        veri = veri >> 1
        GoSub CikisBas
    Next
    
    GoTo basla
    
    
CikisBas:
    PORTB = veri.LowByte
    PORTC = veri.HighByte
    DelayMS 250

    Return    
   

Tek dostum çalışmak...