Elektronik / Mikrodenetleyici Projeleri/

Mikro denetleyici kontrollü sıramatik uygulaması

Sponsorlu Bağlantılar

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.

siramatik-devresi-vezne1-vezne2-display

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.

siramatik-devresi-vezne1-3-display-devre

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: edizagarer@yahoo.com “Mikro denetleyici kontrollü sıramatik uygulama dosyaları: Mikro denetleyici kontrollü sıramatik uygulaması

Dosya indirme LINK listesi (TXT formatında) link-10594.zip şifre-pass: 320volt.com

İ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 _*************************************
  • seyfi

    Teşekkürler Ediz abi acaba sistemi kablosuz rf yapabilirmiyiz yaniv ezneler ile ana cpu kablosuz olabilirmi nasıl bir yol izelemeliyiz

  • Ediz AĞARER

    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.

  • seyfi

    tamam abi ilgilendiğin için sağol yavaş yavaş toparlanıp denemelere başlarım

  • macitozcan

    peki bu sisteme fiş basma için yazıcı bağlantısı nasıl yapılabilir ??

  • gurkan

    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 …

  • ediz ağarer

    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.

  • Gurkan

    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

  • ediz ağarer

    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 .

  • Gurkan

    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……

  • ediz ağarer

    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.

  • gurkan

    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……