Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: goldenX - 08 Mayıs 2010, 19:58:00

Başlık: 0-99 sayıcı hatası
Gönderen: goldenX - 08 Mayıs 2010, 19:58:00
Merhabalar, Pic ile 0-99 sayıcı yapmaya çalışıyorum fakat takıldığım birkaç nokta var sanırım. Kodlarım ve şema'yı aşağıya koydum, yorumlarınızı bekliyorum.

@ DEVICE PIC16F84A
@ DEVICE PIC16F84A, WDT_OFF
@ DEVICE PIC16F84A, PWRT_ON
@ DEVICE PIC16F84A, PROTECT_OFF
@ DEVICE PIC16F84A, XT_OSC

TRISA=0 : TRISB=0
PORTA=255 : PORTB=255

SAYI VAR BYTE
DEGER VAR BYTE
SURE VAR BYTE

SYMBOL DISPLEY1=PORTA.0
SYMBOL DISPLEY2=PORTA.1

SAYI=0:DEGER=0:SURE=0
IF SAYI=99 THEN SAYI=0

BASLA:

SAYI=SAYI+1
IF SAYI=99 THEN SAYI=0

FOR SURE=0 TO 30

LOW DISPLEY1 : HIGH DISPLEY2
DEGER=SAYI
PORTB=DEGER DIG 0
PAUSE 20
HIGH DISPLEY1

LOW DISPLEY2 : HIGH DISPLEY1
DEGER=SAYI
PORTB=DEGER DIG 1
PAUSE 20
HIGH DISPLEY2

NEXT SURE

GOTO BASLA


(http://img687.imageshack.us/img687/8560/anod.png)

Başlık: Ynt: 0-99 sayıcı hatası
Gönderen: chailuck - 12 Ağustos 2010, 18:20:43
bunu dene istersen 


code]
TRISA=0
TRISB=0
PORTA=0
PORTB=0
BR VAR BYTE
ONL VAR BYTE
A VAR WORD : A=10
I VAR WORD
ANA:
    BR = BR+1
    IF BR=10 THEN BR=0
    ONL=ONL+1
    IF ONL=10 THEN ONL=0

GOSUB DISPLAY
GOTO ANA
DISPLAY:
    FOR I=0 TO 100
    PORTB=BR
    PORTA=%11111101
    PAUSE A
    PORTB=ONL
    PORTA=%11111110
    PAUSE A
    NEXT I
    RETURN
Başlık: Ynt: 0-99 sayıcı hatası
Gönderen: acemi2010 - 13 Ağustos 2010, 12:30:32
Q2 mi ters konmuş? yoksa ben mi yanlış görüyorum??

timuçin
Başlık: Ynt: 0-99 sayıcı hatası
Gönderen: stlg - 13 Ağustos 2010, 14:28:35
Pratikte genelde o.k displeyi kontrol etmek daha kolaydır, npn transistorler ile calısırsan daha iyi olur ,yukarda arkadasın belirttigi gibi Q2 ters olmus
Başlık: Ynt: 0-99 sayıcı hatası
Gönderen: nurim - 14 Ağustos 2010, 03:58:40
@goldenX,

Verdiğim şemayı incelersen, farkı göreceksin. ABCD çıkışı, ile displeyi doğrudan süremezsin, araya sürücü gerekir. (4511..vb) Displayimiz ise CC olacak.

(http://a.imageshack.us/img812/1113/0dan99.jpg)

@ DEVICE PIC16F84A
@ DEVICE PIC16F84A, WDT_OFF
@ DEVICE PIC16F84A, PWRT_ON
@ DEVICE PIC16F84A, PROTECT_OFF
@ DEVICE PIC16F84A, XT_OSC
TRISA=0 : TRISB=0
PORTA=0 : PORTB=0
SAYI VAR BYTE
SURE VAR BYTE
SYMBOL DISPLEY1=PORTA.0
SYMBOL DISPLEY2=PORTA.1
SAYI=0:SURE=0

BASLA:
SAYI=SAYI+1
IF SAYI=99 THEN SAYI=0
FOR SURE=0 TO 4
LOW DISPLEY1 : HIGH DISPLEY2
PORTB=SAYI DIG 0
PAUSE 48
LOW DISPLEY2 : HIGH DISPLEY1
PORTB=SAYI DIG 1
PAUSE 22
NEXT SURE
GOTO BASLA


Kabaca programıda senin programına sadık kalmaya çalışarak düzenledim.  Geliştirmek sana kalıyor. Şemada direnç, trasistör ..vb. kullanmadım, ama gerçek devrede kullanman gerekir.

Kolay gelsin
nurim