Fırat Üniversitesi Öğrenci İşleri Otomasyonu

18 Ocak 2012 Çarşamba

Güzel üniversitemin,güzel otomasyonunda küçük bir açık varmış yıllardır.Bu açık sayesinde okul numarasını bildiğiniz bir kişinin notlarını görme,ders kaydını yapma gibi işlemleri gerçekleştirebiliyorsunuz.Üniversite içinde bilmeyen adam da yoktur sanırım bu açığı.Geçen günlerde bu açığı bir nebze de olsa kapatmışlardı Bilgi İşlem Dairesi,ya da kapattıklarını sanmışlardı.

Kaynak kodlarında ki bazı kod öbeklerinde değişiklik yaparak tekrar erişebildiğimi farkettim.
Uzun bir incelemeye alarak kim bilir daha neler çıkacak.

Bu kısmı daha önce bu açıktan haberdar olmayanlar için anlatıyorum.
Öncelikle http://otomasyon1.firat.edu.tr adresinden otomasyona giriş yaptıktan sonra
f12 tuşuna basarak Geliştirici Aracımızı açıyoruz.
( Otomasyon'a sadece internet explorer ile giriş yapılabiliyor.Benim gibi mozilla firefox taraftarları içinde user agent switcher eklentisiyle fü öğrenci işleri otomasyonuna firefox'dan girebilirsiniz.-)
Geliştirici aracımızı açtıktan sonra sırasıyla

<html>
<body bgProperties="fixed" bgColor="#d3e4e5" onload="flushing();">
<center>
<form name="Form1" method="post">
<input name="Numara" type="hidden" value="xxxxxxxx">
xxxxxxxx yazan yerde kendi okul numaranız yazıyor.Bu kısmı değiştirerek notlarını öğrenmek istediğiniz kişinin numarasını yazıyorsunuz.

Buraya kadar zaten bilinen şeylerdi.Asıl olayımız şu kod parçacığında.
<input name="UserType" type="hidden" value="3">

Buradan da value "2" yapıyoruz ve gerekli erişimi sağlıyoruz.


Umarım en yakın zamanda otomasyon'u değiştirirler.

PIC16F628A Yürüyen Işık Devresi

8 Eylül 2011 Perşembe

Bugün sizlere PIC16F628A ile yürüyen ışık  devresini vereceğim.
PIC Assembly kodlarken IDE olarak MPLAB kullandım.
Derleyici olarak MPASMWIN kullandım.
Proteus versiyonum 7.1 SP2

Size devrenin ISIS çizimini,ASM dosyasını ve HEX dosyasını vereceğim.
Devreden bir görüntü:

MPLAB IDE'den bir görüntü:


Asıl olayımıza gelelim,

LED'lerle Havaya Yazı Yazma

1 Mayıs 2011 Pazar

Geçen günlerde birkaç arkadaş aldığımız proje ödevi için konu ararken Tübitak'ın Bilim ve Teknik dergisinde Kendimiz Yapalım köşesinde yayınlamış olduğu bir devre dikkatimi çekti.Googleda birkaç arama yaptıktan sonrada bu devreyi arkadaşlarıma gösterdim.Onların da onayını aldıktan sonra devreyi yapmaya başladık.

Bugün LED'lerle Havaya Yazı Yazacağız.Bunu bir hocamıza dediğimizde o da "Göle de maya çalabiliyor musunuz?" diye bir nüktede bulunmuştu.

İlgili devreyi şu siteden inceleyebilirsiniz.

Verdiğim linkte olan PDF'teki yazılanları özet geçmek gerekirse;

Devrenin mantığı göz yanılmasına dayanıyor.

PIC Assembly Genel Komutlar

2 Ağustos 2010 Pazartesi

Bu yazımda size PIC için gereken genel komutlarımızdan bahsedeceğim.

Her PIC yazmaya başladığımızda üst tarafta hangi PIC te yazacağımızı belirtmek amacıyla LIST P= komutunu kullanırız.Örneğin biz PIC16F628A ile işlem yaptığımız için LIST P=16F628A şeklinde yazılmaktadır.

PIC'te banklar bulunmaktadır.Bu banklarda hex cinsinden adresleri vardır.Bu adreslerde de bizim atayacağımız ve önceden atanmış değişkenler vardır.(bknz:PIC16F628A RAM Memory )
Bu banklar arası geçişi yapmak içinde BANKSEL komutunu kullanırız.
Biz PIC'te bir değişkeni bir yere atamak için EQU komutunu kullanırız.Örnek kullanımı:
PORTB EQU 0x06 Burada ki "0x06" hex değerinde yazılmış adresimizdir.Biz PORTB yi Banklarımızda ki 06h'ye oturttuk.Artık orası PORTB'nindir :)

PIC'te temizleme işlemlerini CLRF ile yaparız.Örneğin;
CLRF PORTB yazdığımızda PORTB nin içeriği sıfırlanmaktadır.

Elektronikte 1 ve 0 kavramları vardır.Örneğin küçük bir Led'in yandığı duruma 1,sönük olduğu konuma da 0 deriz.Yani genellemek olursa enerji varsa 1,yoksa 0'dır.

Şimdi PIC'te bu 1 ve 0 ı kullanabileceğimiz iki komut göstereceğim.

PIC16F628A Konfigürasyon

11 Temmuz 2010 Pazar

PIC16F628A için örnek konfigürasyon ayarlarını veriyorum.Bunu kendinize göre düzenleyebilirsiniz.MPLAB kullanıyorsanız bu konfigürasyonları elle yazmamız lazım.Editörde bu konfigürasyonlar yeni bir çalışma sayfası açıldığında gelmiyor maalesef.

;===KONFIGURASYON.ASM========================================================
LIST P=16F628A

__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

;---------------------------------------------------------------------------------------

Örnek bir konfigürasyon ayarımız.Siz isterseniz - örnek veriyorum - DATA_CP yi ON yaparak kodlarınızı okunabilir hale getirebilirsiniz [; Default olarak OFF yapılmış bu kod dizisinde.

PIC16F628A W Registeri ve MOVLW/MOVWF Komutları

26 Haziran 2010 Cumartesi

Artık yavaş yavaş komutlara geçmeyi düşünüyorum.Aslında bir sürü teorik bilgi var (pic16f628a’nin diş görünümü,pin bağlantıları,çalışması,besleme gerilimi,osilatör çeşitleri,reset uçları ve devresi – mclr resetlenmesi ,wdt resetlemesi vb. - ,bellek yapısı vs.)
Fakat bunların çoğu zaten internette olan şeyler.Blogumda Önemli noktalara yer verip,komutlarıda öğretip daha sonra da uygulamalara geçmek istiyorum.

Neyse bu kadar hikaye kısmı yeter sanırım.
Başlayalım :]

W Saklayıcısını (Register) “geçici depolama alanı” olarakta düşünebiliriz.Diğer programlama dillerinde de vardır registerlar.
PIC’te gerçekleştereceğimiz tüm işlemlerde W saklayıcısını kullanmak zorundayız.

W Registeri ilede ilk kodumuzu söyle bir diyagramda öğrenmiş olalım;

Bu iki satırlık kodda diyorki ;

W saklayıcısına “binary 11111111” verisini yükle – yada taşı -
daha sonrada bu veriyi TRISA’ya at.

Aslında kafanızda daha rahat oturması amacıyla Winrar mantığıyla düşünebilirsiniz.Bir dosyayı ilk önce sıkıştırıyorsunuz daha sonrada bu sıkıştırdığınız dosyayı dışarı çıkartıyorsunuz.


Elektronikte bildiğiniz gibi bir şeyi 1 ile aktif eder, 0 ile durdurur ya da “deaktif” ederiz ( dijital mantığı )

Bu iki satırlık kodumuzda da TRISA ile PORTA nın tüm uçlarını giriş yaptık.

TRISA = PORTA’yı giriş/çıkış yapar
TRISB = PORTB’yi giriş/çıkış yapar.
PORTA = Genelde giriş olarak kullanılır ( yapısından dolayı,bknz:Schmitt Trigger(ST) yapısı )
PORTB = Genelde çıkış olarak kullanılır (yapısından dolayı,bknz:TTL yapısı)

MOVLW[boşluk][W saklayıcısına atılacak veri] şeklinde kullanılır.

MOVWF[boşluk][W saklayıcısının içerisindeki veriyi f saklayıcısına yükler] (F saklayıcısı burada PORTA,PORTB,TRISA,TRISB olabilir. Bunların içinde de birer register bulunmaktadır.Örneğin PORTA’nın içerisinde 8-bit uzunluğunda bir veri tutucu adınada PORTA registeri denmektedir.)

PIC Bellek Çeşitleri

Geçen yazılarımda PIC konusunda birkaç doküman yazacağımı söylemistim.Şuyazıda da giriş yapmıştık.

Yazıda mimarilerden bahsetmiştim.Bu yazıda da PIC’in hangi bellek çeşitlerinde üretildiğinden bahsedeceğim.

PIC’ler 3 farklı program belleğine sahip olabilirler.Bunlar;

EPROM(Eraseble Programmable Memory) : Silinebilir ve programlanabilir bellek.
FLASH-EEPROM ( Electrically Erasable Programmable Memory ) : Elektriksel olarak silinebilir ve programlanabilir bellek
ROM ( Read-Only Memory): Sadece Okunabilir bellek

Şimdi bunları başlıklar halinde açıklayayım.