Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: oyhan - 16 Ağustos 2004, 17:23:34

Başlık: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: oyhan - 16 Ağustos 2004, 17:23:34
SELAM
ARKADAŞLAR ARANIZDA HIC 4 DIGIT 7 SEGMENT LED DISPLAYI TARAYARAK SUREN ARKADAS VARMI AMA PIC BASIC ILE CUNKU ASSEMBLER ILE BEN DAHA ONCE YAPTIM. BASIC ILE BUNU NASIL YAPARIZ BIR FIKRI OLAN VARMI?
SAYGILARIMLA..
Başlık: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: fsan - 16 Ağustos 2004, 22:34:46
Alıntı YapPIC BASIC ILE 4 DIGIT 7 SEGMENT LED DISPLAYI TARAYARAK SURMEK
mehaba oyhan,
picbasic pro ile suan tarama yöntemli bir clock/countdown-timer  yapiyorum..
(bir "mode" button var, ileride bununla Termometre, Up-down counter, ve baska özelliklerde eklemeyi düsünüyorum)
Proteus ile simülasyon yapinca gayet güzel calisiyor, en kisa zamanda pratik olarak da kurup deneyecegim..

Daha önceki 7-seg. disp. ile ilgili yazdigim mesajlari bulursan oradaki verdigim kodlardan örnek alabilirsin.  + displaylerin common pinlerini transistörler ile sürüyorum.

saygilar, sevgiler..
Başlık: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: picman - 01 Mayıs 2005, 20:50:37
aşağıdaki program işini görür sanırım çalışıyor

'PROGRAMIN ADI: DIGITAL SAAT

I VAR BYTE
SAAT VAR BYTE
DAKIKA VAR BYTE
DIGIT VAR BYTE
SN VAR BYTE
DK VAR BYTE
YEDEK VAR BYTE
SYMBOL SCAN=$6
SYMBOL DISPLAY=$5
P_YED VAR BYTE
LED VAR BYTE
YUK VAR BYTE
YUK=%00000000
LED=%00000
SN=0
DK=0
PORTB=0
PORTA=0
SAAT=12
DAKIKA=00
I=0
DIGIT=0
@ device pic16F84, XT_OSC, wdt_off, pwrt_on, protect_off

    OPTION_REG=$55
    INTCON=$A0
    ON INTERRUPT GOTO TMR_INT
   
BASLA: '-----------------PORT TANIMLAMALARI YAPILIYOR--------------
TRISB=%11100000
TRISA=%00000
'---------------- -------ANA PROGRAM KESİMİ--------------------
MAIN:
   GOSUB TARA
   IF (PORTB.5=0)   THEN
       PAUSE 50
       DAKIKA=DAKIKA+1
       gosub DK_TEST
     ENDIF  
   IF (PORTB.6=0) THEN
    PAUSE 50
    SAAT=SAAT+1
    GOSUB SA_TEST
   ENDIF  
   IF (dakika=02) then
      YUK=%00010000
   IF  (DAKIKA=03) THEN
      YUK=%00000000
  ENDIF
ENDIF                    
GOTO MAIN
'---------SAAT AYARI İÇİN DAKIKA VE SAAT TEST ALT PROGRAMLARI------
DK_TEST:
   IF (DAKIKA>=60) THEN
       DAKIKA=0
      ENDIF
   RETURN
SA_TEST:
   IF (SAAT>=24) THEN
       SAAT=0
    ENDIF
  RETURN            
TARA:'------------------DAKIKA TARAMA----------------------
  YEDEK=%00000001
FOR I=1 TO 2
P_YED=DAKIKA DIG DIGIT
PORTA=LED | P_YED
POKE SCAN,YEDEK      
 PAUSE 2  
 YEDEK=YEDEK | YUK
 PEEK SCAN,YEDEK
 PORTB=0            
   DIGIT=DIGIT+1
 YEDEK=YEDEK << 1
 NEXT I
DIGIT=0
I=0
'------------------------SAAT TARAMA--------------------------          
FOR I=1 TO 2
 P_YED=SAAT DIG DIGIT
 PORTA=LED | P_YED
  POKE SCAN,YEDEK                                                            
 PAUSE 2          
 YEDEK=YEDEK | YUK            
 PEEK SCAN,YEDEK
 PORTB=0
   DIGIT=DIGIT+1
 YEDEK=YEDEK << 1
NEXT I
DIGIT=0
RETURN

 
TMR_INT:'---------INTERRUPT ALT PROGRAMI--------------------------
      DISABLE
       SN=SN+1
       IF (SN>=30) THEN
        LED=%00000
    IF (SN>=61) then    
       SN=0
       LED=%10000
       DK=DK+1  
    else
       gosub INT_CIK
    ENDIF  
ENDIF
    IF (DK>=60) THEN  
    DK=0  
    DAKIKA=DAKIKA+1
   ENDIF  
INT_CIK:      
     GOSUB TEST
  INTCON.2=0                                                                                
  RESUME  
     
TEST:'----------DAKIKA VE SAAT TEST ALT PROGRAMI----------------------  
   IF (DAKIKA>=60) THEN
       DAKIKA=0
       SAAT=SAAT+1

   IF (SAAT>=24) THEN
     SAAT=0          
     ENDIF
  ENDIF
RETURN
END'-----------------PROGRAM SONU------------------------------  
'PROGRAMI HAZIRLAYAN: YUSUF YİĞİT
'İYİ EĞLENCELER
'PROGRAMIN AMACI GERÇEK ZAMANLI BİR DİGİTAL SAAT GERÇEKLEŞTİRMEK
   
 kolay gelsin
Başlık: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: zeren51 - 13 Mayıs 2005, 18:43:21
Alıntı yapılan: "picman"aşağıdaki program işini görür sanırım çalışıyor

'PROGRAMIN ADI: DIGITAL SAAT

I VAR BYTE
SAAT VAR BYTE
DAKIKA VAR BYTE
DIGIT VAR BYTE
SN VAR BYTE
DK VAR BYTE
YEDEK VAR BYTE
SYMBOL SCAN=$6
SYMBOL DISPLAY=$5
P_YED VAR BYTE
LED VAR BYTE
YUK VAR BYTE
YUK=%00000000
LED=%00000
SN=0
DK=0
PORTB=0
PORTA=0
SAAT=12
DAKIKA=00
I=0
DIGIT=0
@ device pic16F84, XT_OSC, wdt_off, pwrt_on, protect_off

    OPTION_REG=$55
    INTCON=$A0
    ON INTERRUPT GOTO TMR_INT
   
BASLA: '-----------------PORT TANIMLAMALARI YAPILIYOR--------------
TRISB=%11100000
TRISA=%00000
'---------------- -------ANA PROGRAM KESİMİ--------------------
MAIN:
   GOSUB TARA
   IF (PORTB.5=0)   THEN
       PAUSE 50
       DAKIKA=DAKIKA+1
       gosub DK_TEST
     ENDIF  
   IF (PORTB.6=0) THEN
    PAUSE 50
    SAAT=SAAT+1
    GOSUB SA_TEST
   ENDIF  
   IF (dakika=02) then
      YUK=%00010000
   IF  (DAKIKA=03) THEN
      YUK=%00000000
  ENDIF
ENDIF                    
GOTO MAIN
'---------SAAT AYARI İÇİN DAKIKA VE SAAT TEST ALT PROGRAMLARI------
DK_TEST:
   IF (DAKIKA>=60) THEN
       DAKIKA=0
      ENDIF
   RETURN
SA_TEST:
   IF (SAAT>=24) THEN
       SAAT=0
    ENDIF
  RETURN            
TARA:'------------------DAKIKA TARAMA----------------------
  YEDEK=%00000001
FOR I=1 TO 2
P_YED=DAKIKA DIG DIGIT
PORTA=LED | P_YED
POKE SCAN,YEDEK      
 PAUSE 2  
 YEDEK=YEDEK | YUK
 PEEK SCAN,YEDEK
 PORTB=0            
   DIGIT=DIGIT+1
 YEDEK=YEDEK << 1
 NEXT I
DIGIT=0
I=0
'------------------------SAAT TARAMA--------------------------          
FOR I=1 TO 2
 P_YED=SAAT DIG DIGIT
 PORTA=LED | P_YED
  POKE SCAN,YEDEK                                                            
 PAUSE 2          
 YEDEK=YEDEK | YUK            
 PEEK SCAN,YEDEK
 PORTB=0
   DIGIT=DIGIT+1
 YEDEK=YEDEK << 1
NEXT I
DIGIT=0
RETURN

 
TMR_INT:'---------INTERRUPT ALT PROGRAMI--------------------------
      DISABLE
       SN=SN+1
       IF (SN>=30) THEN
        LED=%00000
    IF (SN>=61) then    
       SN=0
       LED=%10000
       DK=DK+1  
    else
       gosub INT_CIK
    ENDIF  
ENDIF
    IF (DK>=60) THEN  
    DK=0  
    DAKIKA=DAKIKA+1
   ENDIF  
INT_CIK:      
     GOSUB TEST
  INTCON.2=0                                                                                
  RESUME  
     
TEST:'----------DAKIKA VE SAAT TEST ALT PROGRAMI----------------------  
   IF (DAKIKA>=60) THEN
       DAKIKA=0
       SAAT=SAAT+1

   IF (SAAT>=24) THEN
     SAAT=0          
     ENDIF
  ENDIF
RETURN
END'-----------------PROGRAM SONU------------------------------  
'PROGRAMI HAZIRLAYAN: YUSUF YİĞİT
'İYİ EĞLENCELER
'PROGRAMIN AMACI GERÇEK ZAMANLI BİR DİGİTAL SAAT GERÇEKLEŞTİRMEK
   
 kolay gelsin

sayın arkadşım sende bu programın şeması varmı ben bu saat devresini yapmak istiyorum yardımcı olabilirmisin
Başlık: Ynt: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: FormUser - 10 Mart 2017, 18:35:47
elimde 4 tane 7 segment display var bunları kullanarak 4 digit 7 segment display yapabilir miyim. bacak bağlantıları nasıl olacak ek başka bir devre elemanına ihtiyaç duyulmakta mıdır
ilginiz ve yardımlarınız için teşekkürler
Başlık: Ynt: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: mehmet - 10 Mart 2017, 18:48:46
Ortalama okur-yazar birisi "Türkçe Yazım Kuralları" na dikkat eder
değil mi?
-----------------------------------------------------------------------------------------

Display tipleriniz nedir? Kataloğu veya bilgileri, resimleri var mıdır?
Mcu çıkış akımı ~20-25mA. sayılır. Buna göre sürme şeklinizin ortaya
çıkması gerekli.
Bence en güzeli MAX7219, TPIC6B595 veya 74HC595 ile sürmektir.
Başlık: Ynt: 4 DIGIT 7 SEGMENT DISPLAY TARAMA
Gönderen: FormUser - 11 Mart 2017, 10:04:57
74hc595 ile ortak anot 7 segmetlerin 4 digit olarak kullanılabileceğinden mi bahsedilmektedir.