Bu yazımda bankalarda veya hastanelerde kullanılan sıramatikler ile ilgili bilgi vereceğim. Yaptığım devre bir yönlendirme panosu (ana pano) ve üç ayrı vezneden oluşmaktadır. Yönlendirme panosunda pic16f877, veznelerde ise her birinde pic16f876 kullandım. Veznedeki görevli sırayı arttırabilir, azaltabilir veya resetleyebilir. Her vezne aynı mantık ile çalışmaktadır.
Her bir vezne kendi sıra değerlerini belirli aralıklarla yönlendirme panosuna göndermektedir. Yönlendirme panosuda her bir vezneden gelen bilgilere sıradan bakmaktadır. Her aldığı bilgiyi ve vezne numarasını kendi displayin de göstermektedir. Her display tarama mantığı ile çalışmaktadır.
Her displayin yazılımı şu şekildedir; ilk önce sıra değerinin birler , onlar ve yüzler basamağı belirlenir. Bu değerlerden önce birler basamağı displaylerde gösterilir daha sonra onlar ve daha sonrada yüzler basamağı olmak üzere sıra ile gösterilir ve bu durum çok hızlı olduğundan insan gözü ile algılamak zordur. Biz sadece sıra değerinin tamamını ekranda görürüz. Bu tarama işlemini periyodu normalde 14ms olması gerekir. Ancak ben simülasyon programına göre ayarladım.
Hazırlayan: Ediz Ağarer E-Posta: [email protected]
İsis simülasyon videosu
ANA _CPU.pbp yazılım içeriği
'**************************************** '* Name : ANA CPU .BAS * '* Author : Ediz AĞARER * '* Notice : Copyright (c) 2010 * '* : All Rights Reserved * '* Date : 24.05.2010 * '* Version : 1.0 * '* Notes : * '* : * '**************************************** DEFINE OSC 20 ;Kristal 20 MHz TRISB=0 ;B portunun tamamı çıkış TRISC=0 ;C portunun tamamı çıkış TRISD=%00000111 ;D portunun ilk 3 pini giriş diğerleri çıkış '************************************************************* @ DEVICE pic16F877 @ DEVICE pic16F877, PWRT_ON @ DEVICE pic16F877, WDT_ON @ DEVICE pic16F877, PROTECT_OFF ;kod koruması yok @ DEVICE pic16F877, XT_OSC ;osilatör kristal '**************_ GİRİŞ ÇIKIŞ İSİMLERİ _*********************** GIRIS1 VAR PORTD.0 GIRIS2 VAR PORTD.1 GIRIS3 VAR PORTD.2 SEC1 VAR PORTC.0 SEC2 VAR PORTC.1 SEC3 VAR PORTC.2 SEC4 VAR PORTC.3 SEC5 VAR PORTC.4 SEC6 VAR PORTC.5 '**************_ DEĞİŞKENLER _********************************* SAY1 VAR BYTE SAY2 VAR BYTE SAY3 VAR BYTE SAYI VAR BYTE VEZNE VAR BYTE DEGER VAR BYTE X VAR BYTE Y VAR BYTE A VAR BYTE '**************_ SABİTLER _************************************ SURE1 CON 2 SURE2 CON 3 '**************_ DEĞERLER _************************************ CLEAR ;Bütün değişkenler temizleniyor... PORTD=0 ;d portunun tün pinleri logic 0 seviyesinde PORTB=0 ;b portunun tün pinleri logic 0 seviyesinde PORTC=0 ;c portunun tün pinleri logic 0 seviyesinde '**************_ BAŞLANGIÇ _*********************************** BASLA: FOR X=0 TO 25 SERIN2 GIRIS1,396,[WAIT ("VEZ1"),SAYI] ;1. vezneden gelen bilgiler okunuyor. VEZNE=$06 :CALL HESAP ;Vezne değeri atanıyor ve displayde gösterilecek olan sayı hesaplanıyor. GOSUB GOSTER ;Okunan sayı displaylerde gösterilmek üzere yola çıkılıyor. NEXT FOR X=0 TO 25 SERIN2 GIRIS2,396,[WAIT ("VEZ2"),SAYI] ;2. vezneden gelen bilgiler okunuyor. VEZNE=$5B :CALL HESAP ;Vezne değeri atanıyor ve displayde gösterilecek olan sayı hesaplanıyor. GOSUB GOSTER ;Okunan sayı displaylerde gösterilmek üzere yola çıkılıyor. NEXT FOR X=0 TO 25 SERIN2 GIRIS3,396,[WAIT ("VEZ3"),SAYI] ;3. vezneden gelen bilgiler okunuyor. VEZNE=$4F :CALL HESAP ;Vezne değeri atanıyor ve displayde gösterilecek olan sayı hesaplanıyor. GOSUB GOSTER ;Okunan sayı displaylerde gösterilmek üzere yola çıkılıyor. NEXT GOTO BASLA '**************_ GÖSTER _************************************* GOSTER: FOR X=0 TO 100 Y=SAY1 :GOSUB GONDER : PORTB=DEGER :SEC1=1 :SEC2=1 :SEC3=0 :SEC4=1 :SEC5=1 :SEC6=1 : PAUSE SURE1 :SEC3=1 : PAUSE SURE2 'Sayının birler basamağı displaye gönderiliyor Y=SAY2 :GOSUB GONDER : PORTB=DEGER :SEC1=1 :SEC2=0 :SEC3=1 :SEC4=1 :SEC5=1 :SEC6=1 : PAUSE SURE1 :SEC2=1 : PAUSE SURE2 'Sayının onlar basamağı displaye gönderiliyor Y=SAY3 :GOSUB GONDER : PORTB=DEGER :SEC1=0 :SEC2=1 :SEC3=1 :SEC4=1 :SEC5=1 :SEC6=1 : PAUSE SURE1 :SEC1=1 : PAUSE SURE2 'Sayının yüzler basamağı displaye gönderiliyor PORTB=VEZNE :SEC1=1 :SEC2=1 :SEC3=1 :SEC4=1 :SEC5=1 :SEC6=0 : PAUSE SURE1 :SEC6=1 : PAUSE SURE2 'Vezne no displaye gönderiliyor NEXT X RETURN '**************_ HESAPLAMA _************************************ HESAP: SAY1=SAYI // 10 ;Displayin birler basamağı için gereken değer A=SAYI // 100 ;Displayin onlar basamağı için gereken ilk aşama SAY2=A / 10 ;Displayin onlar basamağı için gereken değer SAY3=SAYI / 100 ;Displayin yüzler basamağı için gereken değer RETURN '**************_ GÖNDER _*************************************** GONDER: LOOKUP Y,[$3F_ ;Sıfır değeri. ,$06_ ;Bir değeri ,$5B_ ;İki değeri ,$4F_ ;Üç değeri ,$66_ ;Dört değeri ,$6D_ ;Beş değeri ,$7D_ ;Altı değeri ,$07_ ;Yedi değeri ,$FE_ ;Sekiz değeri ,$6F],DEGER ;Dokuz değeri RETURN '**************_ MUTLU SON _*************************************
Mikro denetleyici kontrollü sıramatik uygulama dosyaları;
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/06/03 Etiketler: microchip pic projeleri, PIC16F876 örnekleri, PIC16F877 örnekleri, sıramatik, sıramatik devresi
Teşekkürler Ediz abi acaba sistemi kablosuz rf yapabilirmiyiz yaniv ezneler ile ana cpu kablosuz olabilirmi nasıl bir yol izelemeliyiz
Aslında yapılabilir. Mesela her veznenin haberleşme kabloları var, birde her vezneye bir tane asktx rf verici modülü takılır ise (433 MHz ) ve ana cpu a asktx(433 MHz ) alıcı rf modülü takılır ise olabilir .Yani programsal bir değişikliğe gerek kalmayabilir.
tamam abi ilgilendiğin için sağol yavaş yavaş toparlanıp denemelere başlarım
peki bu sisteme fiş basma için yazıcı bağlantısı nasıl yapılabilir ??
peki bu benzer devreyi nasıl garaj girişinden kulanabilirim gecen araba sayıları ve her gecenin geçtiği zamanı kayıt edip akşam kontrol edeceğim …
garajın kapısına bir sensör düzeneği oluşturacaksın ve devrede dallas saat entegresi kullanacaksın yaptığın devre bilgisayara bağlantılı bir devre olacak içerdeki araba sayısını ve hangisinin ne zaman girdiğini göreceksin bunun için bilgisayara bir ara yüz programı oluşturman gerek.visual basic6.0 ile bir bilgisayar arayüzü oluşturmak en kolayıdır.
ben sensor bağlamışım sayımda her hangi bir proplem yok ve ben pic basic biliyorum onu kulandım sadece sorunum zaman eklemede sorun yaşıyorum
DS1302 diye bir saat entegresi var bunu kullanarak zaman kısmındaki sorununuzu giderebilirsiniz.İnternette zaten bu entegre ile ilgili devreler ve yazılımlar mevcut .
doğrudur ben o entegreyi düşünmüştüm ama programla birlikte kulanmakta sorun yaşıyorum yaptığınız örnekteki gibi programıyla birlikte yardımcı olursanız sevinirim uzun süre uğraşıyorum ama sorunsuz bir sonuca ulaşamadım ……şimdiden teşekürler……
bu aralar finallerim var iki hafta sonra bitiyor en kısa zamanda akıllı park sistemi diye bir proje yayınlayacağım. bilgisayar ara yüz programıda yazarım bir tane.
sana finalerinden başarılar eminim kolay geçersin …..takıldığın elektronik konular olursa yardkmck olmak isterim … bende o zamana kadar ugraşacağım……
merhaba. elektrik mühendisliği son sınıftayım ve bir projem var. sadece PIC16F877 kullanmam gerekiyor ve tek bir ekran olması yeterli. yardımcı olabilir misiniz