You are on page 1of 112

T.C.

MLL ETM BAKANLII

ELEKTRK-ELEKTRONK TEKNOLOJS

MKRODENETLEYC LE DJTAL LEMLER


523EO0021

Ankara, 2012

Bu modl, mesleki ve teknik eitim okul/kurumlarnda uygulanan ereve retim Programlarnda yer alan yeterlikleri kazandrmaya ynelik olarak rencilere rehberlik etmek amacyla hazrlanm bireysel renme materyalidir. Mill Eitim Bakanlnca cretsiz olarak verilmitir. PARA LE SATILMAZ.

NDEKLER
AIKLAMALAR ................................................................................................................... iii GR ....................................................................................................................................... 1 RENME FAALYET1 .................................................................................................... 3 1. TEMEL SEVYE DJTAL UYGULAMA DEVRELER .................................................. 3 1.1. Trafik Lambas Uygulama Devresi ............................................................................... 4 1.1.1. Devrenin Malzemeleri ........................................................................................... 6 1.1.2. Ak Diyagram ...................................................................................................... 6 1.1.3. Devrenin emas .................................................................................................... 8 1.1.4. Bask Devresi ......................................................................................................... 9 1.1.5. Devrenin Asm Program ........................................................................................ 9 1.1.6. Programn Simlasyonu....................................................................................... 11 1.2. Merdiven Otomatii Uygulama Devresi ..................................................................... 16 1.2.1. Devrenin Malzemeleri ......................................................................................... 17 1.2.2. Ak Diyagram .................................................................................................... 18 1.2.3. Devre emas ....................................................................................................... 19 1.2.4. Bask Devresi ....................................................................................................... 19 1.2.5. Devrenin Asm Program ...................................................................................... 20 1.3. Drt Aboneli Numaratr Uygulama Devresi .............................................................. 21 1.3.1. LCD nin Yaps ve almas ............................................................................. 21 1.3.2. Devrenin Malzemeleri ......................................................................................... 25 1.3.3. Ak Diyagram .................................................................................................... 27 1.3.4. Devrenin emas .................................................................................................. 28 1.3.5. Bask Devresi ....................................................................................................... 28 1.3.6. Devrenin Asm Program ...................................................................................... 29 1.4. Basketbol Skorbord Uygulama Devresi ...................................................................... 38 1.4.1. Ak Diyagram .................................................................................................... 39 1.4.2. Devre emas ....................................................................................................... 40 1.4.3. Bask Devresi ....................................................................................................... 40 1.4.4. Devrenin Malzemeleri ......................................................................................... 41 1.4.5. Devrenin Asm Program ...................................................................................... 41 1.5. Asenkron Motorun Yldz gen almas ............................................................... 50 1.5.1. Asenkron Motorun Yaps ve almas .............................................................. 50 1.5.2. Devrenin emas .................................................................................................. 55 1.5.3. Bask Devresi ....................................................................................................... 55 1.5.4. Devrenin Malzemeleri ......................................................................................... 56 1.5.5. Devrenin Asm Program ...................................................................................... 56 UYGULAMA FAALYET .............................................................................................. 75 LME VE DEERLENDRME .................................................................................... 76 RENME FAALYET2 .................................................................................................. 77 2. LER SEVYE DJTAL UYGULAMA DEVRELER ................................................... 77 2.1. Drt Girili Kap Pencere Alarm Devresi ................................................................... 77 2.1.1. Devrenin Malzemeleri ......................................................................................... 79 2.1.2. Ak Diyagram .................................................................................................... 80 2.1.3. Devrenin emas .................................................................................................. 81 2.1.4. Bask Devresi ....................................................................................................... 81 2.1.5. Devrenin Asm Program ...................................................................................... 82 i

2.2. Elektropnomatik Sistemin PIC ile Kumandas ........................................................... 84 2.2.1. Devrenin Malzemeleri ......................................................................................... 86 2.2.2. Devrenin emas .................................................................................................. 87 2.2.3. Bask Devresi ....................................................................................................... 87 2.2.4. Devrenin Ak Diyagram .................................................................................... 88 2.2.5. Devrenin Asm Program ...................................................................................... 89 2.3. Programlanabilir Zamanlayc..................................................................................... 90 2.3.1. Devrenin Malzemeleri ve Ak Diyagram .......................................................... 92 2.3.2. Devrenin emas .................................................................................................. 93 2.3.3. Devrenin Asm Program ...................................................................................... 93 2.4. Proje Uygulamas ........................................................................................................ 99 2.4.1. Proje 1 .................................................................................................................. 99 2.4.2. Dijital Saat Uygulamas ..................................................................................... 100 2.4.3. Termometre Uygulamas ................................................................................... 100 2.4.4. Bipolar Adm Motor Denetimi .......................................................................... 100 2.4.5. ifreli Kilit Uygulamas ..................................................................................... 101 UYGULAMA FAALYET ............................................................................................ 102 LME VE DEERLENDRME .................................................................................. 103 MODL DEERLENDRME ............................................................................................ 104 CEVAP ANAHTARLARI ................................................................................................... 106 KAYNAKA ....................................................................................................................... 107

ii

AIKLAMALAR AIKLAMALAR
KOD ALAN DAL/MESLEK MODLN ADI MODLN TANIMI SRE N KOUL YETERLK 523EO0021 Elektrik Elektronik Teknolojisi Otomasyon Sistemleri Mikrodenetleyici ile Dijital lemler Dijital ilemler iin mikrodenetleyicinin programlamas ve altrlmas ile ilgili bilgi ve becerilerin kazandrld renme materyalidir. 40/32 Mikrodenetleyici Programlama modln tamamlam olmak Mikrodenetleyici ile dijital ilemleri yapmak Genel Ama renci mikrodenetleyici ve evre birimleri kullanarak dijital ilemler yapabileceksiniz. Amalar 1. Mikrodenetleyici ile temel seviye dijital ilemleri gerekletirebileceksiniz. 2. Mikrodenetleyici ile ileri seviye dijital ilemleri gerekletirebileceksiniz. Ortam: Atlye Donanm: Mikrodenetleyici, mikrodenetleyici eitim seti veya programlama kart, programlama yazlm, haberleme balant kablosu Modl iinde yer alan her renme faaliyetinden sonra verilen lme aralar ile kendinizi deerlendireceksiniz. retmen modl sonunda lme arac (oktan semeli test, doru-yanl testi, boluk doldurma, eletirme vb.) kullanarak modl uygulamalar ile kazandnz bilgi ve becerileri lerek sizi deerlendirecektir.

MODLN AMACI

ETM RETM ORTAMLARI VE DONANIMLARI

LME VE DEERLENDRME

iii

GR GR
Sevgili renci, Gnmzde pek ok i, yapsnda mikro ilemci bulunan makineler ile gerekletirilir. Mikroilemci (CPU) ile kontrol edilen sistemlerde ilemciden baka RAM, BIOS, G/ gibi ek birimlere ihtiya duyulur. Bu ekilde hem maliyet artar hem de ilemler zorlar. Btn bu olumsuzluklar ortadan kaldran devre eleman mikrodenetleyicilerdir. Pek ok firma mikrodenetleyici (MCU-Micro Controller Unit) retmektedir fakat bir chip(ip) firmasnn PIC (Pripheral Interface Controller - evre birimlerini kontrol eden nite) adn verdii denetleme uygulamalarnda geni yer bulmaktadr. Bu modldeki tm uygulamalarda hem kolay bulunduu hem ucuz olduu hem de rahat programland iin PIC16F84 kullanlmtr. Modldeki uygulamalar takip ederek dijital devreler gelitirebilir ve programlayabilirsiniz. Her uygulamada ayr bir konu anlatlmaktadr. Uygulamalar basitten karmaa doru sralanm ve sizin anlayabileceiniz sadelikte ilenmitir. Modln amac, programlama mantn renerek, elektronik devre uygulamalarn mikrodenetleyiciyle abuk, doru ve kolayca zme yeteneini kazandrmaktr. Bu modln sonunda program yazabilecek, bu programa ait devreyi yapabilecek ayrca kendi program ve devrelerinizi retme yeteneine sahip olabileceksiniz.

RENME FAALYET-1 RENME FAALYET1


AMA
Mikrodenetleyiciyi ve evre elemanlarn seebilecek, dijital ilem iin gerekli program hatasz olarak yazabilecek, program mikrodenetleyiciye ykleyebilecek ve devreyi hatasz olarak kurup altrabileceksiniz.

ARATIRMA
Zaman gecikme dngleri hakknda bilgi edinip ve istenilen srede gecikme program yaznz. Kesme (Interrupt) eitlerini renmeli kesme alt programlar yaznz. Yedi paral gsterge ve LCD gstergelerin kullanm ile ilgili bilgi edininiz. Asenkron motorlarn yapsn ve almasn reniniz.

Aratrma ilemleri iin Mikrodenetleyici Programlama modln gzden geirirken internet ortamlarndan da yararlanabilirsiniz.

1. TEMEL SEVYE DJTAL UYGULAMA DEVRELER


Karmak lojik fonksiyonlar mikrodenetleyici gibi tek bir entegrede toplamtr. Genelde denetleyiciler tek bana bir sistem olmayp baka bir sistemi ynetmek amacyla kullanlr. PIC serisi mikro ilemciler bir chip (ip) firmas tarafndan gelitirilmi ve PIC adyla anlmaktadr. CMOS teknolojisiyle retilmi olan PIC16F84 ok az enerji harcar. Programlanmas ve silinmesi kolay olan EPROM bellee sahiptir. Uygulamalarda 4 MHzlik PIC16F84 mikrodenetleyici kullanlmtr. ekil 1.1de PICin bacak balantlar grlmektedir.

ekil 1.1: PIC 16F84n bacak balants

PIC 16F84 ile program gelitirmek iin aadaki donanm ve yazlmlar gereklidir. Metin editr (Not defteri, word veya MPLAB PFE ) MPASM assembler derleyici (Assembler dilindeki programlar heksadesimal (HEX) koda evirir.) PIC programlayc ve yazlm (Seri port iin PICUP program, paralel port iin PPLITE program)

1.1. Trafik Lambas Uygulama Devresi


PIC 16F84 ile yaplan trafik lambas uygulama devresinde krmz, yeil ve sar olmak zere adet led bulunmaktadr. Krmz ve yeil ledler 1 dk., sar led ise 3 sn. yank kalacaktr. Devre ilk altrldnda tm ledler snk durumda olacaktr. Sistem START butonu ile harekete geirilecek ve devrenin almas istenilen anda RESET" butonu ile kesilecektir. Ledler krmz, sar, yeil srasna gre yanacak ve tekrar baa dnecektir. PICin A portu giri, B portu k olarak kullanlmaktadr. Portlardan hangisinin giri ve k olaca kullancya baldr. Bu devre, dijital entegreleri kullanlarak da basit bir ekilde yaplabilir. Fakat ledlerin yank kalma srelerini ayarlamak iin karmak ksm oluturmaktadr. Bu durumda devreye PIC girer. PICe yazlan programdaki kk deiikliklerle ledlerin yank kalma srelerini artrlp azaltlabilir. Bu sreleri deitirmek iin gecikme dngleri yazlr. Tek dng ile yaplan programn sresi ok ksa olduundan en az iki dngl programlar kullanlr. Tablo 1.1 ve 1.2de verilen zaman gecikme dngleri farkl uygulamalarda kullanlabilir.

GECKME MOVLW MOVWF DNG1 MOVLW MOVWF DNG2 DECFSZ GOTO DECFSZ GOTO RETURN SAYAC2,F DONGU2 SAYAC1,F DONGU1 255*255 2*255*255 255 2*255 2 D255 SAYAC2 255 255 D255 SAYAC1 1 1

Tablo 1.1: ki dngl zaman gecikme program

Tablo 1.1de toplam 196.608 saykl komut ilenmitir. 4 MHz PIC iin her komut 1S gecikme saladndan toplam gecikme sresi, 196608*1S =196 ms, yani 0,196 saniye eder. Bu da yaklak 0,2 saniyeye karlk gelir. Tablo 1.2de toplam 50.070.529 saykl komut ilenmitir. Toplam gecikme sresi, 50.070.529*1S = 50.070.529 mikrosaniye ve yaklak 50 saniyedir. Bu sre yaklak 1 dakika kabul edilebilir. Drt dngl zaman gecikme programndan yaklak 12.767 sn.lik bir gecikme elde edilir. Bu da 212 dakika veya 3,5 saattir.
GECKME MOVLW MOVWF DNG1 MOVLW MOVWF DNG2 MOVLW MOVWF DNG3 DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN SAYAC3,F DONGU3 SAYAC2,F DONGU2 SAYAC1,F DONGU1 255*255*255 2*255*255*255 255*255 2*255*255 255 2*255 2 165.581.375 33.162.750 650.25 130.050 255 510 2 50.070.529 D255 SAYAC3 255*255 255*255 650.25 650.25 D255 SAYAC2 255 255 255 255 D255 SAYAC1 1 1 1 1

Tablo 1.2: dngl zaman gecikme program

Sonu olarak dnglerde krmz ile gsterilen deerler deitirilirek dng sreleri deitirilir. Dngde ilk deer olarak D '255' ile gsterilen ksma 1 ile 255 arasnda deien bir say girildiinde her bir sayy minimum sre ile arparak gecikme sresi bulunabilir. 5

DNG 2 3 4

EN AZ SRE 771 mikrosaniye 0,196 saniye 50 saniye

EN OK SRE 196,6 mili saniye 50 saniye 3 saat 32 dakika

Mesela 2li dngde ilk deeri D '125' girilirse 125X 771 =96,375 mili saniye, 3l dngde ilk deer olarak D '150' girilirse 150X0,196=29,4 saniye ve 4l dngde ilk deer olarak D '80' girilirse 80X50 = 1 saat 6 dakika 6 sn. elde edilir.

1.1.1. Devrenin Malzemeleri


PIC16F84 4 MHz mikrodenetleyici 4 MHz kristal, buton, led C1 = C2 = 22pf R1 = R2 = R3 = 330 diren R4 = R5 = 10K, R6 = 100

1.1.2. Ak Diyagram
PIC assembler ile bir program yazmadan nce PICe yazlacak program planlamamz gerekir. Bu planlama ilemi ak diyagramlar ile yaplr. Ak diyagram ilenecek komutlarn srasdr. Uzun ve karmak programlarda, ak diyagramlar, hangi seviyeden programn ayrlacan ve hangi komutlar yerine getireceini, sonra tekrar nereye dneceini gstermesi asndan faydaldr. Ak diyagramlarnn kendine has sembolleri de vardr. Gecikme 1 ve gecikme 2 alt programlarnda yalnzca sayalara atanan deerler farkl olduundan ak diyagramnda GECKME adyla gsterilmitir.

Tablo 1.3: Trafik lambas ak diyagram

1.1.3. Devrenin emas


ekil 1.2teki devre, proteus programyla izilmitir. Proteus programnda devreyi kurabilir, PICe hex program yklenip devrenin almas grlebilir. Ayrca kurulan devrenin bask devresi ares program yardmyla direkt olarak karlabilir. www.labcenter.co.uk adresinden proteus programn demosunu indirilebilir. Devrenin bask devresi de ekil 1.3te grlmektedir.

ekil 1.2: Trafik lambas uygulama devresi

Devrede PICin besleme bacaklar gsterilmemitir. 14 nu.l bacak pozitif kaynak (Vcc ya da Vdd), 5 nu.l bacak ise toprak (GND ya da Vss)tr.

1.1.4. Bask Devresi

ekil 1.3: Trafik lambas uygulama bask devresi

1.1.5. Devrenin Asm Program


;========TRAFK LAMBASI UYGULAMA PROGRAMI======S_2005======= LIST p=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H'0C' ; Gecikme alt programlarnda kullanlan deiken SAYAC2 EQU H'0D' ; Gecikme alt programlarnda kullanlan deiken SAYAC3 EQU H'0E' ; Gecikme alt programlarnda kullanlan deiken ; Portlar Ayarla CLRF PORTB ; PORTB yi temizle BSF STATUS,5 ; BANK1 e ge CLRF TRISB ; PORTB k MOVLW H'FF' ; W <-- H'FF' MOVWF TRISA ; PORTA giri BCF STATUS,5 ; BANK0 a ge Start butonuna baslncaya kadar bekle BUTON BTFSC PORTA,1 ; PORTAnn 1. biti 0 m? GOTO BUTON ; Hayr, tekrar test et ; Program krmz, sar ve yeil ledleri srasyla yakarak alr TRAFIK MOVLW H'01' ; W <-- B'000000001' MOVWF PORTB ; Krmz ledi yak 9

CALL

GECIKME1

; 60sn. bekle

MOVLW MOVWF CALL MOVLW MOVWF CALL GOTO

H'02' PORTB GECIKME2 H'04' PORTB GECIKME1 TRAFIK

; W <-- B'00000010' ; Sar ledi yak ; 3sn. bekle ; W <-- B'00000100' ; Yeil ledi yak ; 60sn. bekle ; TRAFIK etiketine git.

;=============GECKME ALT PROGRAMLARI====================== GECIKME1 MOVLW MOVWF G1 MOVLW MOVWF G2 MOVLW MOVWF G3 DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN GECIKME2 MOVLW MOVWF D1 MOVLW MOVWF D2 MOVLW MOVWF d'255' SAYAC3 10 ; W<--D'15' ; SAYAC1 <-- W d'255' SAYAC2 ; W<--D'15' ; SAYAC1 <-- W d'15' SAYAC1 SAYAC3,F G3 SAYAC2,F G2 SAYAC1,F G1 ; Sayac3 bir azalt ve sfr m? kontrol et ; Hayr G3e git ; Evet. Sayac2 bir azalt ve sfr m? ; Hayr G2ye git ; Evet. Sayac1 bir azalt ve sfr m? ; Hayr G1e git ; 3snlik gecikme alt program ; W<--D'15' ; SAYAC1 <-- W d'255' SAYAC3 ; W<--D'255' ; SAYAC3 <-- W d'255' SAYAC2 ; W<--D'255' ; SAYAC2 <-- W d'255' SAYAC1 ; 60 snlik gecikme alt program ; W<--D'255' ; SAYAC1 <-- W

D3 DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN END SAYAC3,F D3 SAYAC2,F D2 SAYAC1,F D1 ; Sayac3 bir azalt ve sfr m? bak ; Hayr D3e git ; Sayac2 bir azalt ve sfr m? ; Hayr D2ye git ; Sayac1 bir azalt ve sfr m? ; Hayr D1e git

1.1.6. Programn Simlasyonu


Programn PICe yklenmeden nce altrlmas iin MPLAB program kullanlr. MPLAB yazlm, ilgili firmann sitesinden veya tantm CDlerinden cretsiz bulunabilir. Bu programda bulunan simlatrle program satr satr altrlp her bir kaydedicinin ald deeri izlemek mmkndr. Bylece programn istenilen ekilde alp almad kolaylkla anlalr ve hatalar giderilebilir.

1.1.6.1. Programn Kaydedilmesi ve Derlenmesi


MPLAB program aldnda konfigrasyonun ayarlanmas gerekir. lk olarak PIC seilir. Option mens alr. Development Mode seenei zerine tklanr. ekil 1.4teki pencere alacaktr. MPLAB SIMi iaretledikten sonra Processor kutusundan 16F84 seilir. Program yazmak iin File New seenei tklanr ve alan pencrede proje ismi yazlp OK tuuna baslr. Program yazlp File Save As seenei ile asm uzantl olarak kaydedilir. Programn MPLAB iine yazlmas zorunlu deildir. Herhangi bir metin editrnde de ASM uzantl olarak kaydedilebilir ve MPLAB programnda bu dosya alabilir.

11

ekil 1.4: Development mode

ASM uzantl dosyann derlenmesi yani hex uzantl dosyaya evrilmesi iin nce konfigrasyonunu belirlemek gerekir. Project mensnden Edit Project seildiinde aadaki pencere ekrana gelir. Project Files blmndeki Add Nodes butonuna basarak alan pencerede trafik.asm adyla kaydedilen dosya seilir. Seilen asm dosyas kaydedilen proje ile ayn klasrde deilse hata verir (ekil 1.5).

ekil 1.5: Proje penceresi

lemler bitince OK tuuna baslp metin editrne geri dnlr. 12

Dosyay derlemek iin Project ara ubuundan ekil 1.6da grlen simgeye tklanr ya da Project mensnden Built All seenei seilir.

ekil 1.6: Derleme butonu

Kaynak kod dosyas ekil 1.7de gsterildii gibi derlenir. Eer hata yoksa Built completed succesfully mesaj ile ilem tamamlanr.

ekil 1.7: Derleme admlar

1.1.6.2. MPSIM PIC Simlatr Derleyicinin grevi, sadece program komutlarnn kuralna gre yazlp yazlmadn denetlemek ve hexadesimal kodlara evirme ilemini yapmaktr. Eer mantksal hatalar yapldysa bunlar derlemede ortaya kmaz ve hata olarak kabul edilmez. MPLAB programnn en nemli zellii de mantksal hatalar aramay kolaylatrc MPSIM programn iermesidir. MPSIMi kullanmak iin Debug ara ubuu ekrana getirilir.

13

Run: Simlasyonu balatr. Halt Processor: Simlasyonu durdurur. Run butonuna tklandnda program kald yerden devam eder. Step: Program adm adm altrr. Butona her basta bir komut ilerletir. Reset: Simlasyonu tmyle durdurup PICi resetler. Simlasyona balamadan nce Windows mensnden Program Memory seilerek programn assembly ve hex kodlarn listeleyen pencere alr. Windows mensnden Special Function Register seerek program ierisinde kullandmz registerleri bulunduu pencre alr. Simlasyon sresince bize gerekli olan ve devaml ak kalmas gereken Windows mensnden Stopwatch penceresi alr.

ekil 1.12: Simlatrn alma admlar

14

Butona her basta sonraki komutun devreye girdiini ve hangi komut alyorsa o komutun yer ald satrn seili olduu ekil 1.12de grlebilir. Devrede START butonuna basldktan sonra devre almaya balamaktadr. Simlasyon STEP butonuna her basta butona baslyormu gibi ilem yapar. Buton tanmlamak iin Debug mensnden Simulator Stimulus seeneinden Asynchronous Stimulusu seilen ekil 1.13teki pencere alr.

ekil 1.13: Debug diyalog penceresi

Bu pencerede Stim1-12 tularna port giri/k ularna bal olan butonlar atanabilir. Bu girileri high, low ya da toggle yapmak mmkndr. Stim 1 butonuna RA1 butonuna atamak iin sa tua tklanr.Assign Pin seilir ve ekil 1.14 penceresinden RA1 seilir. Bylece START butonu simlasyona dhil edilir.

ekil 1.14: Pin seimi

Debug mensnden Run ve Animate komutu seilir. Bu komutla program hzl bir ekilde altrlr. Program ierisinde kullanlan tm registerlerin ierii Special Function Register penceresinden izlenebilir.

1.1.6.3. Programn PICe Yazdrlmas


PICe program yazmak iin asm kodunun derlenip hex dosyasna evrilmesi gerekir. Bunun iin MPLAB program ya da MPASM program kullanlr. ekil 1.15te programn alma ekran grlmektedir.

15

ekil 1.15: MPSAM program

Radix blmnde Hexadecimal seilir. Warning blmnde Warnings and Errors seilir. Hex output blmnde INHX8M seilir. Generated Files blmnde Error File , List File seilir. Case Sensitive kutusu onaylanr. Macro Expansions blmnde Default seilir. Processor penceresinden 16F84 seilir. Tab size penceresine 8 yazlr. Browse butonuna tklanp derlenecek dosya seilir. Program derlemek iin Assemble butonuna tklanr. Programda hata yoksa Assemly successful mesaj alnr. Programda hata varsa Errors Found mesaj alnr. Hatalar ERR uzantl dosyaya kaydedilir.

Program PICe yazmak iin PIC programlaycya ve PIC programlayc yazlmna ihtiya olacaktr. PICleri programlamak iin ok eitli elektronik devreler kullanmaktadr. Kullanlan karta uygun olarak da yazlm kullanmak gerekmektedir.

1.2. Merdiven Otomatii Uygulama Devresi


Drt girili merdiven otomatiinde hangi giriten sinyal verilirse verilsin bir k 1 dk. sreyle aktif olacak, lambalar kumanda etmek iin transistr ve rle kullanlacak, 1 dk. sonunda ise lambalar snecektir. Sistem drt girili olduundan drt tane buton kullanlacaktr. Hangi butona baslrsa baslsn btn lambalar yanacak ve 1 dk. sonunda 16

snecektir. Merdiven otomatii turn off (gecikmeli snen) olarak alan zamanlayc devresidir. Zamanlayc devreleri bir sistemi nceden belirlenmi bir zaman sonunda, zamana bal fonksiyonlar yerine getiren devrelerdir. Bu tip zamanlayc devreleri birok alanda kullanlmaktadr. En basit zaman kontrol iki transistrl bir multivibratrle yaplabilir. Zaman ayar bir potansiyometre ile yaplr. Bu tip zamanlayclar merdiven otomatii devrelerinde kullanlr. Bu tip bir multivibratrn en byk mahzuru zamann hassas olmamasdr. Zaman kat says = RC baldr. Her iki eleman da sya bal olarak deitiklerinden zamanda ortam ssyla deiir. Bir baka mahzur da, srenin uzamas iin yksek deerli kondansatr veya diren kullanmakla akmn azalmas ve kondansatrn hi dolmamasdr. Biraz daha kararl ve basit zamanlayc 555 entegresidir. 555, iinde opamp ve zamanlayc iin gerekli elemanlar barndran 8 bacakl bir entegredir. ok kk zaman birimlerinden dakika lekli zaman aralklarna kadar transistrl multivibratrden daha gvenle kullanlabilir. Ama hassasiyet konusunda gene RC devresinin sl kararll kadar gvenilirdir. Kararllktan anlamamz gereken her altnda, 1 dakikalk tasarlanm bir zamanlaycnn hep bir dakika sonunda ilevini yerine getirmesidir. Kesin bir hassasiyet gerektiren ilerde rnein, verici ve alc devrelerinde kullanlmak zere kristal kontroll osilatrler gelitirilmitir. Quartz kristaller rezonans frekansna gre kesilmi ve iki metal plaka arasna hapsedilmi piezoelektrik etkisiyle alan elemanlardr. Kristale basn uygulandnda titreim yaparak gerilim retir veya deiken gerilim uygulandnda titreim yaparak d ortama basn uygular ite bu zellie piezoelektrik denir. Bir kristal ile kurulmu osilatrn sl kararll bir RC osilatrne gre ok daha fazladr. Multivibratr ve 555 osilatrlerinin salnm frekans bir potansiyometre yardmyla deitirilebilir fakat kristalin frekansn kristalin kesildii deer dnda baka salnma ayarlamak mmkn deildir. Kristal kontroll bir zamanlayc tasarlanmak istendiinde bu osilatrn k dijital programlanabilir blclerle blnr. Bu blme ilemi titreimlerin frekansn blme oran kadar azaltr, bu da darbe geniliinin zamannn uzamasna sebep olur. Pratikte yeterli blc kullanm ile 1 saat, 1 gn, 1 yl ve tesi kadar zaman gecikmesi veya baka bir deyile zamanlama program elde edilir.

1.2.1. Devrenin Malzemeleri


PIC16F84 4MHz mikrodenetleyici 4MHz kristal 4 x Buton C1 = C2 = 22pf R1 = R2 = R3 = R4 = 10K diren R5 = 1K, R7 = 100 D1 = 1N4148 Q1 = BC548 12V RLE 17

1.2.2. Ak Diyagram
Ana programda butonlar baslp baslmad konrol edilir. Herhangi bir butona basldnda LAMBA alt program arlr. Lambalar 1 dk. yanp sndkten sonra ana programa dnlr ve butona baslp baslmad kontrol edilir.

Tablo 1.4: Merdiven otomatii ak diyagram

18

1.2.3. Devre emas

ekil 1.16: Merdiven otomatii devresi

1.2.4. Bask Devresi

ekil 1.17: Merdiven otomatii bask devresi

19

1.2.5. Devrenin Asm Program


;=======MERDVEN OTOMAT UYGULAMA PROGRAMI=====S_2005===== LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H '0C' SAYAC2 EQU H'0D' SAYAC3 EQU H'0E' BSF CLRF MOVLW MOVWF BCF CLRF A1 BTFSC GOTO CALL B1 BTFSC GOTO CALL C1 BTFSC GOTO CALL D1 BTFSC GOTO DONGU GOTO PORTB,3 A1 ; D butonuna basl m? ; Sonsuz dng DONGU PORTB,2 D1 LAMBA ; C butonuna basl m? PORTB,1 C1 LAMBA ; B butonuna basl m? PORTB,0 B1 LAMBA STATUS, 5 TRISA H'FF' TRISB STATUS,5 PORTA ; Gecikme alt program deikeni ; Gecikme alt program deikeni ; Gecikme alt program deikeni ; BANK1e ge ; PORTA k ; W <-- H'FF' ; PORTB giri ; BANK0ya ge ; PORTA temizle ; Butonlar kontrol et. ; A butonuna basl m?

;============LAMBA ALT PROGRAMI============== LAMBA BSF CALL BCF ; PortA kn aktif yap ; PortA kn pasif yap

PORTA,1 GECIKME PORTA,1

RETURN ;=============GECKME ALT PROGRAMI======================

20

GECKME MOVLW MOVWF G1 MOVLW MOVWF G2 MOVLW MOVWF G3 DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO RETURN END SAYAC3,F G3 SAYAC2,F G2 SAYAC1,F G1 d'255' SAYAC3 d'255' SAYAC2 d'255' SAYAC1

; 60 sn lik gecikme alt program ; W<--D'255' ; SAYAC1 <-- W

; W<--D'255' ; SAYAC2 <-- W ; W<--D'255' ; SAYAC3 <-- W

1.3. Drt Aboneli Numaratr Uygulama Devresi


1.3.1. LCD nin Yaps ve almas
1.3.1.1. Yaps 7 paral gsterge ile saylarn dnda dier karakterleri, harfleri, iaretleri elde etmek imknszdr. Bundan dolay karakterleri gsterecek yeni bir hcre yapsna yani LCDye ihtiya vardr. LCD'ler kendi ilerinde eitlilikler gstermesine ramen temel olarak nokta matrisli ve grafik ekranl olarak ikiye ayrlr. Kullanm olarak grafik ekran LCD'ler ile daha fazla ilem yaplabilmesine ramen kullanmda nokta matrisli LCD'ler kolaylk salamaktadr. LCDye veri yazmak iin ekran kontrol eden ilemcilere ihtiya duyulur. reticiler ounlukla HITACHI HD44780 ve bir firmann1602D entegrelerini LCD src entegresi olarak kullanmaktadr. LCD gstergeler 1x8, 1x16, 2x16, 4x20, 1x40, 2x40 satr/karakter olarak retilmektedir. Modldeki uygulama devrelerinde 2x16 LCD kullanlmtr.

ekil 1.18: 2x40 LCD

21

Standart LCD modllerinde 8 veri hatt, 3 kontrol hatt ve 3 g hatt ieren 14 tane pin vardr. Baz LCD modllerinde 16 pin bulunur. Balantlar, genelde 7 pinlik iki sra, ya da 14 pinlik tek sra eklinde yaplmtr. Her iki yerletirme ekil 1.19da grlmektedir.

ekil 1.19: LCDnin bacak yaplar

Displaylerin ounda pinler, LCD' nin bask devresi zerinde numaralandrlmtr. Eer numaralandrlmamsa PIN 1'in yerini bulmak olduka kolaydr. Bu pinin topraa balanmasndan dolay sklkla topraa bir balant yolu vardr ve bir yerlerden genellikle metal ereveye balanmtr. Bu balantlardan her birinin fonksiyonu Tablo 1.5te gsterilmitir. LCD Pinleri 1 2 3 4 5 6 7-14 15* 16* levleri Toprak (Vss- Ground) Besleme (Vcc ya da Vdd +5 Volt) Aydnlatma (VO ya da Vee- Kontrast) Kaydedici Seici (RS - Register Select) Oku / Yaz (R/W - Read / Write ) Yetki (E - Enable) Veri Girileri ( D0-D7 - DATA ) LCD Panel (+5 Volt) Toprak (Ground)

Tablo 1.5: LCD pin isimleri ve fonksiyonlar

VO (Kontrast): Displayin kontrastn (parlaklk) ayarlamaya yarayan bir kontrol ucudur. 1 Klk bir diren zerinden topraa balanr. Buradaki direncin deerini artrarak kontrast drlebilir, azaltarak ykseltilebilir. 1 Klk ayarl diren balayarak istee bal olarak deitirilebilir. RS (Register Select): RS girii lojik 0 olduunda LCDye gnderilen veri komut olarak alglanr. Lojik 1 olduunda veri karakter veya say olarak alglanr. R/W (Read/Write): Bu giri lojik 1 olduunda LCDden veri okuma, lojik 0 olduunda LCDye veri yazma ilemi yaplr. 22

E (Enable): Bu giri aktif yaplnca mikrodenetleyiciden LCDye veri gnderilebilir. E bacann lojik 1den lojik 0a geii ile LCDye veri transferi yaplr. Lojik 0dan lojik 1e gemesi ile LCDden veri okunur. D0-D7 (Data): LCDnin veri girileridir. LCDye 8 bitlik veya iki 4 bitlik veri transferi yaplabilir. 4 bit modda sadece st 4 bit kullanlr.

1.3.1.2. LCD nin almas


Tablo 1.6da standart LCD panelin komut kaydedicisinin fonksiyonlar gsterilmitir. Aadaki komutlar kullanabilmek iin nce komut kaydedicisi (RS=0) seilmelidir. ID= 1 gsterge yazdktan sonra kursr 1 artr. S= 1 gsterge kayar. ID= 0 gsterge yazdktan sonra kursr 1 azalt. S= 0 gsterge kaymaz. BF gstergenin hazr olup olmadn gsteren bayraktr. BF = 1 gsterge megul, komut kabul edilmez. BF = 0 komut kabul edilir.
Standart LCD Panel Komut Kaydedicisi Fonksiyonlar
lem Ekran Sil Ekran seenekleri D7 0 0 D6 0 0 D5 0 0 D4 0 0 D3 0 1 D2 0 D D1 0 C D0 1 B Aklama Ekran siler. (D) GSTERGE A (1) / KAPA (0) (C) Krsr A (1) / KAPA (0) (B) Yanp Snme A (1) / KAPA (0) Fonksiyon ayarlar 0 0 1 D N 0 X X (D) Veri girii 8-bit (1) / 4-bit (0) (N) ift satr (1) / Tek satr (0) CGRAM ayar (ilk adresleri) Adres satrn 0 1 C 5 1 D 6 BF A C 6 Cursor Shift 0 0 D 5 A C 5 0 C 4 D 4 A C 4 1 C 3 D 3 A C 3 S C C 2 D 2 A C 2 R L Right (1) / Left (0) R/L kayma yn C 1 D 1 A C 1 X C 0 D 0 A C 0 X Shift (1) / Cursor (0) S/C kursr hareketi ve gsterge kaymas. Megul bayra (BF) RW=1, RS=0 iken D7 pininden okunur. D6-D0 dan adres counter verisi okunur. (D6-D0) DDRAMe gidecek veriler. (C5-C0) CGRAMe gidecek veriler.

DDRAM Adres ayar (ikinci satrn adresleri) Busy Flag / Adres saya okuma

23

Entry Mode Set

I D

Increment (1), Shift (1) on (0) off

Decrement

(0) ve

Kursrn hareket yn (I/D) gstergenin kayma yn (S)

Tablo 1.6: LCD gsterge komutlar

LCD gstergeler (display) 8-bit ve 4-bit olarak alr. 4094, 74164 gibi kaydran kaydediciler (shift register) entegreleri kullanlarak gstergeler 1-bit olarak da altrlr. 8-bit ile altnda 11 tane balant (8 tane veri/komut, RS, RW, E), 4- bit ile altnda 7 tane balant ile gstergeyi denetlemek gerekir. LCDden herhangi bir veri okunmadnda RW baca lojik 0a balanr. LCD gstergeye komut veya veri gnderirken her komut veya veri arasnda bir miktar beklememiz (gecikme dngs) gerekmektedir. BF bayra kullanlrsa bu bekleme daha kolaylkla yaplabilir. Bu uygulama devresinde LCD 4-bit modda kullanlmtr. LCDye g kayna balannca LCD ierisindeki elektronik devre reset yapar. Fakat baz durumlarda bu reset devresi tam olarak almayabilir ve LCDyi programla reset yapmak gerekir. Aada LCDyi reset yapmak iin gerekli admlar verilmitir. lk olarak 15 ms beklenir. LCDye H30 komutu 8-bit olarak gnderilir. 5 ms beklenir. Yine LCDye H30 komutu 8-bit olarak gnderilir. 160 s beklenir. 3. defa LCDye H30 komutu 8-bit olarak gnderilir. 160 s beklenir (Bu noktada BF bayra kullanlabilir).

LCD resetlendikten sonra aadaki admlar istee gre LCDyi ayarlanabilir. Function Set ( 4-bit ile almay belirle) Function Set ( 4-bit alma ve satr says) RS RW D7 D6 D5 D4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 N 0 0 1 0 0 0 1 0 1 1 0 * * 0 0 1 0 0 0 1 0

Display On/Off Control (Gsterge ve Kursr a) Entry Mode Set (Artan kursr ve gsterge kaymaz)

24

Bu noktadan itibaren veriyi istenilen satra ve stuna yazlabilir. 1. satrn balang adresi h80 dir. 1. satrda 1X16 LCDde 16 stun bulunur. 2. satrn balang adresi de hC0dr. LCD resetlendiinde 1. satrn 1. stunundan verileri yazmaya balar. Tablo 1.7de LCDnin adresleri bulunur.
82 C2 83 C3 84 C4 85 C5 86 C6 87 C7 88 C8 89 C9 8A CA 8B CB 8C CC 8D CD 8E CE 8F CF

80 C0

81 C1

Tablo 1.7: LCD adresleri

Busy flag (Megl Bayra) test: LCD ilem yaparken BF biti lojik-1 olur. Bu durumda baka bir komut gndermek hatalara sebep olur. Bunu engellemenin iki yolu vardr: Gecikme dngs kullanmak ya da BF bitini test etmektir. BF bitini test etmek iin k olan pinler nce giri yaplacak daha sonra veri gnderebilmek iin tekrar k yaplacaktr. o o o RS = 0 RW = 0 E= 1 0 komut yazma RS = 0 RW = 1 E= 1 0 komut okuma ( BF test) RS = 1 RW = 0 E= 1 0 veri yazma

Numaratr devresinde 4 abone bulunmaktadr. Bu abonelerden hangisi ar yaparsa LCDde abonenin kendisine ait olan ksmnda abonenin ismi yazlrken bir led yanar ve bir buzzerden sesli uyar yaplr. Buzzer ve led yaklak 30 sn. aktif olur. Aboneler ayn anda ar yaparsa ar yapan tm abonelerin ismi LCDde gsterilir. Aboneler belli bir sre sonra ar yaparsa LCD silinir ve son ar yapan abonenin ismi gstergede kalr. LCDnin ilk satrna ABONE 1 ve ABONE 3 yazdrlr. kinci satrna ise ABONE 2 ve ABONE 4 yazdrlr.

1.3.2. Devrenin Malzemeleri


PIC16F84 4MHz mikrodenetleyici 4MHz kristal , 4xbuton, led C1 = C2 = 22pf R2 = R3 = 1K diren R1 = R4 = R5 = R6 = R7 = 10K RV1 = 1K potansiyometre Q1 = BC237 , Q2 = BD135 12V Rle , D1= 1N4148

Programda ncelikle portlar ayarlanr. Port A k, Port B yksek bitler giri, dk bitler k olarak ayarlanmtr. Ak diyagramnda kullanlan alt programlar ve grevleri unlardr: LCD_AYAR: LCDyi kullanmadan nce bir defa arlr. LCD_RESET: LCD ilk altrldnda resetlenmelidir. Bunun iin H00 bilgisi LCDye 3 defa 8 bit olarak gnderilir. 25

FUNCTION_SET: LCD 4 bit olarak kullanldndan LCDye H02komutu ardndan da H28 komutu 4 bit olarak gnderilir. Bunun iin yksek ve dk bitler blnerek gnderilir. H02 ve H08 eklinde gnderilir. DISPLAY_ON: Display ak, kursr ve yanp snme kapal olduundan (Kullancya gre deiebilir). LCDye H0C bilgisi 4 bit olarak gnderilir. ENTRY_MODE: Bir karakter yazldktan sonra adresin otomatik olarak artmas iin ve kursrn kaymas iptal edilmesi iin LCDye H06 bilgisi 4 bit olarak gnderilir. LCD_KOMUT: LCDye komut yazdrlrken bu alt program arlr. Komut yazlrken RS = 0, RW = 0 ve E = 1 0a deimelidir. BF_TEST: Bu alt program kullanlmadnda LCDye veri ve komut yazarken gecikme dngleri kullanlmaldr. BF (Busy Flag) LCD ilem yaparken lojik 1 olur. BF bitini okumak iin LCDye bal olan port A ular giri olarak deitirilir. Okuma ilemi iin RS = 0, RW = 1 ve E = 10 olmaldr. BF biti LCDnin D7 bacandan okunur. Okunan deer 1 ise LCD megul demektir ve BF tekrar test edilir. Okunan deer 0 olduunda LCD megul deildir ve program alt programn arld yerden devam eder. MESAJ 1: Programda drt ayr kullanc olduundan drt ayr mesaj bulunur. Hepsi ayn olduundan yalnzca biri aklanmtr. Mesaj alt program altndan dolay A1 butonu basl durumdadr. lk nce Buzzer ve led aktif yaplr. (lojik 1) LCD_SIL: LCD ye H01bilgisi gnderilerek LCD silinir ve kursr 1.satrn bana alnr. SATIR_1W: 1.satrn balang adresi H80dir. Kursr 1. satrda istenilen stuna gtrr. SATIR_2W: 2.satrn balang adresi HC0 dr. Kursr 2. satrda istenilen stuna gtrr.

LCDde mesaj yazmak iin satr ve stun belirlendikten sonra BF biti test edilir. MESAJ_VERISI1: Ekrana yazdrlacak olan mesaj iin bu alt program arlr. W registerindeki deer ka ise o satrdaki bilgi W register ile geri gnderilir. Say verisi gndermek iin hexadesimal kodu yazlr. rnein, H34 yazldnda ekranda 4 grnr.

Gnderilen deer 0 ise alt programdan klr. 0 deilse LCDye veri gnderilmeye devam edilir. LCD_YAZ: W registerine yklenen veri LCDye 4 bit olarak gnderilir. (Yksek ve dk bitler SWAP komutuyla yer deitirilir. Dk bitler sfrlanr. Yksek bitler LCDye gnderilir. Yksek ve dk bitler tekrar yer deitirilir. Yksek bitler sfrlanr ve dk bitler LCDye gnderilir.) Bunun iin RS = 1 , RW=1 ve E = 1 0 olarak deitirilir. 26

1.3.3. Ak Diyagram
BALA MESAJ LCD_AYAR PORT_KUR BUZZER aktif LCD_RESET LCD_AYAR LCD_SL
FUNCTION_SET

GECKME1

A1 basl m?

VERICNT = 0 W =0

DISPLAY_ON

E
SATIR_1W MESAJ1 BF_TEST
A2 basl m?

ENTRY_MODE

RETURN

RS= 1 VER RW = 0 YAZMA

E
MESAJ2 E

MESAJ_VER1

SONU "0 MI?

A3 basl m?

H LCD_YAZ

E
MESAJ3

VERICNT +1 GECKME2

A4 basl m?

H
BUZZER pasif RETURN

E
MESAJ4

Tablo 1.8: Numaratr ak diyagram

27

1.3.4. Devrenin emas

ekil 1.20: Numaratr uygulama devresi

1.3.5. Bask Devresi

ekil 1.21: Numaratr bask devresi

28

1.3.6. Devrenin Asm Program


Dier programlardan farkl olarak DEFINE komutu kullanlmtr. Bu komut bit adreslemesini tanmlamay salar. #DEFINE BSF RS PORTA , 2 RS RS EQU 2 BSF PORTA, 2

;=====NUMARATR DEVRES UYGULAMA PROGRAMI======S_2005===== LIST P=16F84 INCLUDE "P16F84.INC" #DEFINE RS PORTB,2 #DEFINE RW PORTB,1 #DEFINE EN PORTB,0 SAYAC1 EQU H'11' SAYAC2 EQU H'12' SAYAC3 EQU H'13' VERICNT EQU H'14' TEMP EQU H'15' TEMP0 EQU H'16' TEMP1 EQU H'17' CX EQU H'18'

:Gecikme dngs deikeni : Gecikme dngs deikeni : Gecikme dngs deikeni

BASLA;.......................................................................................................... CALL CALL TUS_ARA BCF BTFSS CALL BTFSS CALL BTFSS CALL BTFSS CALL GOTO TEKRAR GOTO TEKRAR PORTB,3 PORTB,7 MESAJ1 PORTB,6 MESAJ2 PORTB,5 MESAJ3 PORTB,4 MESAJ4 TUS_ARA :Buzzer ve led lojik 0 :A1 butonuna basl m? :MESAJ1e git :A2 butonuna basl m? :MESAJ2ye git :A3 butonuna basl m? :MESAJ3e git :A4 butonuna basl m? :MESAJ4e git :Butona basl m tekrar kontrol et? PORT_KUR LCD_AYAR : Portlar kur :LCD ilk kullanm iin ayarla

29

PORT_KUR;...................................................................................................... MOVLW H'F0' TRIS PORTB : PORTB RBH (Giri), RBL (k) MOVLW H'00' TRIS PORTA : PORTA k CLRF VERICNT : VERICNT 0 RETURN LCD_AYAR ;........................................................................................... CALL LCD_RESET : LCD Resetle CALL FUNCTION_SET : 4 bit mod ve iki satr aktif CALL DISPLAY_ON : Ekran a ve kursr kapat CALL ENTRY_MODE : Krsr 1 artan mod RETURN LCD_RESET;.............................................................................................. CALL GECIKME1 MOVLW H'03' MOVWF CX RESET MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT DECFSZ CX,1 :CX CX -1 GOTO RESET RETURN FUNCTION_SET;..................................................................................... MOVLW H'02' : 4 bit mod MOVWF PORTA CALL LCD_KOMUT MOVLW H'02' : 4 bit mod MOVWF PORTA CALL LCD_KOMUT MOVLW H'08' : 2 satr MOVWF PORTA CALL LCD_KOMUT RETURN

30

DISPLAY_ON;............................................................................................. MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT MOVLW H'0C' : LCD on MOVWF PORTA CALL LCD_KOMUT RETURN ENTRY_MODE;....................................................................................................... MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT MOVLW H'06' : Kursr 1 artan mod MOVWF PORTA CALL LCD_KOMUT RETURN LCD_SIL;....................................................................................................................... MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT MOVLW H'01' : Ekran temizle, kursr 1. satr 1.stunda MOVWF PORTA CALL LCD_KOMUT RETURN LCD_YAZ;..................................................................................................................... MOVWF TEMP : TEMP W SWAPF TEMP,F : st 4 bit ile alt 4 biti yer deitir MOVF TEMP,W : st 4 biti al MOVWF PORTA : LCDye gnder BSF EN :E1 NOP : Bekle BCF EN :E0 CALL BF_TEST : Megul bayran test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz SWAPF TEMP,F : Yazlacak verinin tekrar st 4 biti MOVF TEMP,W : alt 4 bitini yer deitir MOVWF PORTA : LCD ye gnder BSF EN :E1 NOP : Bekle BCF EN :E0 RETURN

31

LCD_KOMUT;................................................................................................................ CALL BF_TEST : BF test et BCF RS : RS 0 Komut BCF RW : RW 0 Yaz BSF EN :E1 NOP : Bekle BCF EN :E0 RETURN BF_TEST;................................................................................................................... BSF STATUS,5 :Bank 1e ge MOVLW H'FF' MOVWF TRISA : PORTA Giri BCF STATUS,5 : Bank 0 ge BCF RS : Veri BSF RW : LCD Oku BSF EN : E 1 MOVF PORTA,W : LCDden gelen bilgileri W aktar BCF EN :E0 ANDLW H'F0' : st 4 biti sfrla MOVWF TEMP1 : TEMP1de sakla SWAPF TEMP1,F : Alt 4 bit ile st 4 biti yer deitir BSF EN :E1 GOTO $+1 : Bir alt satra git BCF EN :E0 BTFSC TEMP1,7 : BF = 1 mi? GOTO BF_TEST : Evet , BFyi tekrar test et BSF STATUS,5 : Hayr CLRF TRISA : PORTA k BCF STATUS,5 RETURN SATIR1W;............................................................................................................................. MOVWF MOVLW MOVWF CALL MOVF MOVWF CALL RETURN TEMP0 H'08' PORTA LCD_KOMUT TEMP0,W PORTA LCD_KOMUT : TEMP0 W : LCD 1. satr aktif

: 1. satrda W stununa git

32

SATIR2W;......................................................................................................................... MOVWF MOVLW MOVWF CALL MOVF MOVWF CALL RETURN TEMP0 H'0C' PORTA LCD_KOMUT TEMP0,W PORTA LCD_KOMUT : TEMP0 W : LCD 2. satr aktif

: 2. satrda W stununa git

MESAJ1;........................................................................................................................ BSF PORTB,3 :Buzzer aktif CALL LCD_SIL : LCD temizle CALL GECIKME1 : Bekle MOVLW H '00' MOVWF VERICNT :VERICNT 0 MOVLW H '00' CALL SATIR1W : 1.satrn 1. stununa git M1 CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF VERICNT,W : W VERICNT CALL MESAJ_VERISI1 : Veriyi al IORLW 0 : 0 ile test et BTFSC STATUS,2 : Sonu 0 m? GOTO MESAJ1_SON : Evet MESAJ1_SON etiketine git CALL LCD_YAZ : Hayr veriyi LCD gnder INCF VERICNT,F : Bir sonraki veriyi adresle GOTO M1 : Veri yazma ilemine devam et MESAJ1_SON CALL GECIKME2 : Buzzer ve led iin gecikme BCF PORTB,3 : Buzzer pasif RETURN

33

MESAJ2;........................................................................................................................ BSF PORTB,3 :Buzzer aktif CALL LCD_SIL : LCD temizle CALL GECIKME1 : Bekle MOVLW H '00' MOVWF VERICNT :VERICNT 0 MOVLW H '00' CALL SATIR2W : 2.satrn 1. stununa git M2 CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF VERICNT,W : W VERICNT CALL MESAJ_VERISI2 : Veriyi al IORLW 0 : 0 ile test et BTFSC STATUS,2 : Sonu 0 m? GOTO MESAJ2_SON : Evet MESAJ2_SON etiketine git CALL LCD_YAZ : Hayr veriyi LCD gnder INCF VERICNT,F : Bir sonraki veriyi adresle GOTO M2 : Veri yazma ilemine devam et MESAJ2_SON CALL GECIKME2 : Buzzer ve led iin gecikme BCF PORTB,3 : Buzzer pasif RETURN MESAJ3;........................................................................................................................ BSF PORTB,3 : Buzzer aktif CALL LCD_SIL : LCD temizle CALL GECIKME1 : Bekle MOVLW H '00' MOVWF VERICNT : VERICNT 0 MOVLW H '09' CALL SATIR1W : 1.satrn 9. stununa git M3 CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF VERICNT,W : W VERICNT CALL MESAJ_VERISI3 : Veriyi al IORLW 0 : 0 ile test et BTFSC STATUS,2 : Sonu 0 m? GOTO MESAJ3_SON : Evet MESAJ3_SON etiketine git CALL LCD_YAZ : Hayr veriyi LCD gnder INCF VERICNT,F : Bir sonraki veriyi adresle GOTO M3 : Veri yazma ilemine devam et

34

MESAJ3_SON CALL GECIKME2 : Buzzer ve led iin gecikme BCF PORTB,3 : Buzzer pasif RETURN MESAJ4;........................................................................................................................ BSF PORTB,3 : Buzzer aktif CALL LCD_SIL : LCD temizle CALL GECIKME1 : Bekle MOVLW H '00' MOVWF VERICNT VERICNT 0 MOVLW H '09' CALL SATIR2W : 2.satrn 9. stununa git M4 CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF VERICNT,W : W VERICNT CALL MESAJ_VERISI4 : Veriyi al IORLW 0 : 0 ile test et BTFSC STATUS,2 : Sonu 0 m? GOTO MESAJ4_SON : Evet MESAJ4_SON etiketine git CALL LCD_YAZ : Hayr veriyi LCDye gnder INCF VERICNT,F : Bir sonraki veriyi adresle GOTO M4 : Veri yazma ilemine devam et MESAJ4_SON CALL GECIKME2 : Buzzer ve led iin gecikme BCF PORTB,3 : Buzzer pasif RETURN MESAJ_VERISI1;....................................................................................................... ADDWF PCL,F : PCL = PCL + W ile veriyi adresle RETLW 'A' RETLW 'B' RETLW 'O' RETLW 'N' RETLW 'E' RETLW ' ' RETLW H'31' RETLW 0 MOVF PCL,W : stenilen karakteri W registerine al RETURN

35

MESAJ_VERISI2;........................................................................................................ ADDWF PCL,F : PCL = PCL + W ile veriyi adresle RETLW 'A' RETLW 'B' RETLW 'O' RETLW 'N' RETLW 'E' RETLW ' ' RETLW H'32' RETLW 0 MOVF PCL,W : stenilen karakteri W registerine al RETURN MESAJ_VERISI3;.......................................................................................................... ADDWF PCL,F : PCL = PCL + W ile veriyi adresle RETLW 'A' RETLW 'B' RETLW 'O' RETLW 'N' RETLW 'E' RETLW ' ' RETLW H'33' RETLW 0 MOVF PCL,W : stenilen karakteri W registerine al RETURN MESAJ_VERISI4;......................................................................................................... ADDWF PCL,F : PCL = PCL + W ile veriyi adresle RETLW 'A' RETLW 'B' RETLW 'O' RETLW 'N' RETLW 'E' RETLW ' ' RETLW H'34' RETLW 0 MOVF PCL,W : stenilen karakteri W registerine al RETURN

36

GECIKME1;................................................................................................................. MOVLW D'65' MOVWF SAYAC1 : 50 mslik gecikme alt program G1 MOVLW D'255' MOVWF SAYAC2 G2 DECFSZ SAYAC2,F GOTO G2 DECFSZ SAYAC1,F GOTO G1 RETURN

GECIKME2;............................................................................................................... MOVLW D'155' MOVWF SAYAC1 : 30 snlik gecikme alt program D1 MOVLW D'255' MOVWF SAYAC2 D2 MOVLW D'255' MOVWF SAYAC3 D3 DECFSZ SAYAC3,F GOTO D3 DECFSZ SAYAC2,F GOTO D2 DECFSZ SAYAC1,F GOTO D1 RETURN END

37

1.4. Basketbol Skorbord Uygulama Devresi


Basketbol skorbord devresinde iki takm iin iki ayr buton grubu bulunacaktr. Butonlarla skor artrlp azaltlabilecek ve sonular 2x16 LCDde gsterilecektir. Takmlar A ve B olarak isimlendirilir. A LCDnin 1. satr 4. stununa, B ise 1. satr 11. stununa yazlr. A takmnn skoru 2.satrn 3.stunundan itibaren B takmnn skoru ise 2. satrn 10. stunundan itaberen yazdrlr. LCDye karakter yazdrlrken karakterin onaltlk kodu kullanlr. Basketbolda skor en fazla 3 basamakl bir saydan oluur. Bu sayy LCDye gndermek iin say basamaklarna ayrlr ve karakterler tek tek gnderilir. rnein, 123 says 1 sol karakter, 2 orta karakter ve 3 sa karakter olarak blnr. nce sol karakter, sonra orta karakter ve son olarak da sa karakter LCDye gnderilir. Saylar artrmak ve azaltmak iin aadaki sra takip edilir. Sayy artrmak iin, Sa karakter 1 artrlr. Onluk say sisteminde en son karakter 9 (H39) dur. Sa karakterin 9u ap amad kontrol edilir. Bunun iin sa karakter H3A saysyla karlatrlr. Sa karakter 9u atnda orta karakter 1 artrlr. Orta karakter en fazla 9a kadar artrlr. 9u atnda sol karakter artrlr. 999 saysna ulalrsa say karakterleri sfrlanr. rnein 099 says artrldnda, Sa karakter 9u at iin 0a eitlenir ve orta karakter bir artrlr. Orta karakter 9u at iin 0a eitlenir ve sol karakter bir artrlr. Sol karakter=1, orta karakter=0 ve sa karakter= 0 olur.

Sayy azaltmak iin Sa karakterin 0 olup olmad kontrol edilir ( h30). Sfr deilse say bir azaltlr. Sfra eitse orta karakterin 0a eit olup olmad kontrol edilir. Orta karakter sfr deilse sol karakter 1 azaltlr ve sa karakter 9a eitlenir. Orta karakter sfr ise sol karakterin 0a eit olup olmadna baklr. Sfra eitse sayda hibir deiiklik yaplmaz. Sfra eit deilse sol karakter 1 azaltlr. Orta ve sa karakter 9a eitlenir. rnein 100 says azaltldnda, Sa karakterin 0a eit olup olmad kontrol edilir. Sfra eit orta karaktere geilir. Orta karakter kontrol edilir. Sfra eit olduundan sol karaktere geilir. Sol karakter sfra eit olamadndan 1 azaltlr. Sa ve orta karakter 9 yaplr. Sonuta say 099 olur.

38

1.4.1. Ak Diyagram
A_ART

BALA
SA_K1 bir artr SA_K1 = H 3A ? PORT_KUR LCD_AYAR

A_SIFIR B_SIFIR

Z=1 mi?

MESAJ1 MESAJ2 MESAJ3

E
SA_K1=0 ORTA_K bir artr ORTA_K1 = H 3A ?

A+ ?

E
A_ART

Z= 1 mi?

E
A ?

ORTA_K1=0 SOL_K1 bir artr SOL_K1 = H 3A ?

E
A_AZAL

Z= 1 mi?

B+ ?

E A_SIFIR

E
B_ART

MESAJ2
B?

H RETURN E

B_AZAL

Tablo 1.9: Skorbord ak diyagram

39

1.4.2. Devre emas

ekil 1.22: Basketbol skorbord devresi

1.4.3. Bask Devresi

ekil 1.23: Basketbol skorbord bask devresi

40

1.4.4. Devrenin Malzemeleri


PIC16F84 4 MHz mikrodenetleyici 4MHz kristal, 4xbuton, led C1 = C2 = 22pf R2 = 1K diren R1 = R3 = R4 = R5 = R6 = 10K RV1 = 1K potansiyometre

1.4.5. Devrenin Asm Program


Programda deiken tanmlamalar CBLOCK ENDC komutuyla yaplmtr. EQU komutu kullanarak bir deere eitlenen herhangi bir deikenin deeri program ierisinde deitirilemez. Bu da programn istediiniz gibi almasn engeller. CBLOCK ENDC komutu bir grup deikene deer vermek iin kullanlr. CBLOCKtan sonra yazlan adres deeri srasyla tm deikenlere birer artarak atanr. ;=============SKORBOARD UYGULAMA PROGRAMI======S_2005======== LIST P=16F84 INCLUDE P16F84.INC #DEFINE RS PORTB,2 #DEFINE RW PORTB,1 #DEFINE EN PORTB,0 CBLOCK H'10' : Deikenleri tanmla CX TEMP TEMP0 TEMP1 SOL_K1 ORTA_K1 SAG_K1 SOL_K2 ORTA_K2 SAG_K2 SAYAC1 SAYAC2 ENDC

41

BALA;........................................................................................................................ CALL PORT_KUR : Portlar ayarla CALL LCD_AYAR : LCD ilk kullanm iin ayarla CALL A_SIFIR : A takmnn deikenlerini sfrla CALL B_SIFIR : B takmnn deikenlerini sfrla CALL MESAJ1 : 1. satra A ve B yaz CALL MESAJ2 : 2. satra takm Ann ilk puann yaz CALL MESAJ3 : 2. satra takm Bnin ilk puann yaz BUTON BTFSS PORTB,7 : Tular kontrol et CALL A_ART BTFSS PORTB,6 CALL A_AZAL BTFSS PORTB,5 CALL B_ART BTFSS PORTB,4 CALL B_AZAL GOTO BUTON PORT_KUR;.................................................................................................... BSF STATUS,5 CLRF TRISA MOVLW H'F0' MOVWF TRISB BCF STATUS,5 RETURN LCD_AYAR ;............................................................................................... CALL LCD_RESET : LCD Resetle CALL FUNCTION_SET : 4 bit mod ve iki satr aktif CALL DISPLAY_ON : Ekran a ve kursr kapat CALL ENTRY_MODE : Kursr 1 artan mod RETURN LCD_RESET;.............................................................................................. CALL GECIKME1 MOVLW H'03' MOVWF CX RESET MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT DECFSZ CX,1 : CX CX -1 GOTO RESET RETURN

42

FUNCTION_SET;........................................................................................... MOVLW H'02' : 4 bit mod MOVWF PORTA CALL LCD_KOMUT MOVLW H'02' : 4 bit mod MOVWF PORTA CALL LCD_KOMUT MOVLW H'08' : 2 satr MOVWF PORTA CALL LCD_KOMUT RETURN DISPLAY_ON;..................................................................................................... MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT MOVLW H'0C' : LCD on MOVWF PORTA CALL LCD_KOMUT RETURN ENTRY_MODE;....................................................................................................... MOVLW H'00' MOVWF PORTA CALL LCD_KOMUT MOVLW H'06' : Kursr 1 artan mod MOVWF PORTA CALL LCD_KOMUT RETURN LCD_SIL;....................................................................................................................... MOVLW MOVWF CALL MOVLW MOVWF CALL RETURN H'00' PORTA LCD_KOMUT H'01' PORTA LCD_KOMUT

: Ekran temizle, krsr 1.satr 1.stunda

43

LCD_YAZ;..................................................................................................................... MOVWF TEMP : TEMP W SWAPF TEMP,F : st 4 bit ile alt 4 biti yer deitir. MOVF TEMP,W : st 4 biti al MOVWF PORTA : LCDye gnder. BSF EN :E1 NOP : Bekle BCF EN :E0 CALL BF_TEST : Megul bayran test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz SWAPF TEMP,F : Yazlacak verinin tekrar st 4 biti MOVF TEMP,W : alt 4 bitini yer deitir MOVWF PORTA : LCDye gnder BSF EN :E1 NOP : Bekle BCF EN :E0 RETURN LCD_KOMUT;................................................................................................................ CALL BF_TEST : BF test et BCF RS : RS 0 Komut BCF RW : RW 0 Yaz BSF EN :E1 NOP : Bekle BCF EN :E0 RETURN BF_TEST;................................................................................................................... BSF STATUS,5 : Bank 1e ge MOVLW H'FF' MOVWF TRISA : PORTA Giri BCF STATUS,5 : Bank 0a ge BCF RS : Veri BSF RW : LCD Oku BSF EN : E 1 MOVF PORTA,W : LCDden gelen bilgileri W aktar. BCF EN :E0 ANDLW H'F0' : st 4 biti sfrla MOVWF TEMP1 : TEMP1de sakla SWAPF TEMP1,F : Alt 4 bit ile st 4 biti yer deitir. BSF EN :E1 GOTO $+1 : Bir alt satra git BCF EN :E0 BTFSC TEMP1,7 : BF = 1 mi? GOTO BF_TEST : Evet, BFyi tekrar test et 44

BSF CLRF BCF RETURN

STATUS,5 TRISA STATUS,5

: Hayr : PORTA k

SATIR1W;............................................................................................................................. MOVWF MOVLW MOVWF CALL MOVF MOVWF CALL RETURN TEMP0 H'08' PORTA LCD_KOMUT TEMP0,W PORTA LCD_KOMUT : TEMP0 W : LCD 1. satr aktif

: 1. satrda W stununa git

SATIR2W;......................................................................................................................... MOVWF TEMP0 : TEMP0 W MOVLW H'0C' : LCD 2. satr aktif MOVWF PORTA CALL LCD_KOMUT MOVF TEMP0,W MOVWF PORTA : 2. satrda W stununa git CALL LCD_KOMUT RETURN A_SIFIR;..................................................................................................................... MOVLW H'30' : 1. saynn karakterlerine H30 MOVWF SOL_K1 : yani 0 ykle MOVWF ORTA_K1 MOVWF SAG_K1 RETURN B_SIFIR;.............................................................................................................. MOVLW H'30' : 2. saynn karakterlerine H30 MOVWF SOL_K2 : yani 0 ykle MOVWF ORTA_K2 MOVWF SAG_K2 RETURN

45

MESAJ1. MOVLW H'04' : LCDnin 1. satrn 4. stununa git. CALL SATIR1W CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVLW H'41' : Ekrana A yaz CALL LCD_YAZ MOVLW H'0B' : LCDnin 1.satr 11. stununa git. CALL SATIR1W CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVLW H'42' : Ekrana B yaz CALL LCD_YAZ RETURN MESAJ2.. MOVLW H'03' : LCDnin 2. satr 3. stununa git CALL SATIR2W CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF SOL_K1,W : W SOL_K1 CALL LCD_YAZ : ilk saynn sol karakterini ekrana yaz CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF ORTA_K1,W : lk saynn orta karakterini ekrana yaz CALL LCD_YAZ CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF SAG_K1,W : lk saynn sa karakterini ekrana yaz CALL LCD_YAZ RETURN

46

MESAJ3.. MOVLW H'0A' : LCDnin 2. satr 10. stununa git. CALL SATIR2W CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF SOL_K2,W : W SOL_K1 CALL LCD_YAZ : ikinci saynn sol karakterini ekrana yaz. CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF ORTA_K2,W : ikinci saynn orta karakterini yaz. CALL LCD_YAZ CALL BF_TEST : BF test et BSF RS : RS 1 Veri BCF RW : RW 0 Yaz MOVF SAG_K2,W : kinci saynn sa karakterini yaz. CALL LCD_YAZ RETURN A_ART;........................................................................................................................... CALL TIMER1 : Gecikme INCF SAG_K1 : Sa karakteri 1 artr. MOVLW H'3A' : Sa karakter H3A saysna eit mi? XORWF SAG_K1,W BTFSS STATUS,2 GOTO SON1 : Hayr devam et. MOVLW H'30' : Evet sa karakteri sfrla. MOVWF SAG_K1 INCF ORTA_K1,F : Orta karakteri 1 artr. MOVLW H'3A' : Orta karakter H3A saysna eit mi? XORWF ORTA_K1,W BTFSS STATUS,2 GOTO SON1 : Hayr devam et. MOVLW H'30' : Evet orta karakteri sfrla. MOVWF ORTA_K1 INCF SOL_K1,F : Sol karakteri 1 artr. MOVLW H'3A' : Sol karakter H3A saysna eit mi? XORWF SOL_K1,W BTFSS STATUS,2 GOTO SON1 : Hayr devam et. CALL A_SIFIR : Evet tm karakterleri sfrla. SON1 CALL MESAJ2 : Karakterleri LCDye yazdr. RETURN

47

A_AZAL;......................................................................... CALL TIMER1 : Gecikme MOVLW H'30' : Sa karakter sfra H30 eit mi? XORWF SAG_K1,W BTFSC STATUS,2 GOTO BIR : Evet BIR etiketine git DECF SAG_K1 : Hayr sa karakteri 1 azalt GOTO SON2 : LCDye yazdr. BIR MOVLW H'30' XORWF ORTA_K1,W : Orta karakter sfra eit mi? BTFSC STATUS,2 GOTO IKI : Evet IKI etiketine git DECF ORTA_K1 : Hayr orta karakteri 1 azalt MOVLW H'39' : Sa karakteri 9 yap. MOVWF SAG_K1 GOTO SON2 : LCDye yazdr. IKI MOVLW H'30' XORWF SOL_K1,W : Sol karakter sfra eit mi? BTFSC STATUS,2 GOTO SON2 : Evet SON2 etiketine git DECF SOL_K1 : Hayr sol karakteri 1 azalt MOVLW H'39' : Sa ve orta karaktere 9 MOVWF SAG_K1 : saysn ykle MOVWF ORTA_K1 SON2 CALL MESAJ2 : Karakterleri LCDye yazdr. RETURN B_ART;........................................................................................................................... CALL TIMER1 : Gecikme INCF SAG_K2 : Sa karakteri 1 artr MOVLW H'3A' :Sa karakter H3A saysna eit mi? XORWF SAG_K2,W BTFSS STATUS,2 GOTO SON3 : Hayr devam et. MOVLW H'30' : Evet sa karakteri sfrla. MOVWF SAG_K2 INCF ORTA_K2,F : Orta karakteri 1 artr MOVLW H'3A' : Orta karakter H3A saysna eit mi? XORWF ORTA_K2,W BTFSS STATUS,2 GOTO SON3 : Hayr devam et. MOVLW H'30' : Evet orta karakteri sfrla. MOVWF ORTA_K2 INCF SOL_K2,F : Sol karakteri 1 arttr. MOVLW H'3A' : Sol karakter H3A saysna eit mi? XORWF SOL_K2,W BTFSS STATUS,2 48

SON3

GOTO CALL CALL RETURN

SON3 B_SIFIR MESAJ3

: Hayr devam et. : Evet tm karakterleri sfrla. : Karakterleri LCDye yazdr.

B_AZAL;......................................................................... CALL TIMER1 : Gecikme MOVLW H'30' : Sa karakter sfra H30 eit mi? XORWF SAG_K2,W BTFSC STATUS,2 GOTO UC : Evet UC etiketine git DECF SAG_K2 : Hayr sa karakteri 1 azalt GOTO SON4 : LCDye yazdr UC MOVLW H'30' XORWF ORTA_K2,W : Orta karakter sfra eit mi? BTFSC STATUS,2 GOTO DORT : Evet DORT etiketine git. DECF ORTA_K2 : Hayr orta karakteri 1 azalt. MOVLW H'39' : Sa karakteri 9 yap. MOVWF SAG_K2 GOTO SON4 : LCDye yazdr. DORT MOVLW H'30' XORWF SOL_K2,W : Sol karakter sfra eit mi? BTFSC STATUS,2 GOTO SON4 : Evet SON4 etiketine git. DECF SOL_K2 : Hayr sol karakteri 1 azalt. MOVLW H'39' : Sa ve orta karaktere 9 MOVWF SAG_K2 : saysn ykle MOVWF ORTA_K2 SON4 CALL MESAJ3 : Karakterleri LCD ye yazdr RETURN GECIKME1 MOVLW D'60' MOVWF SAYAC1 A1 MOVLW D'50' MOVWF SAYAC2 A2 DECFSZ SAYAC2,F GOTO A2 DECFSZ SAYAC1,F GOTO A1 RETURN TIMER1. MOVLW D'15' MOVWF SAYAC1 T1 MOVLW D'25' 49

T2

MOVWF DECFSZ GOTO DECFSZ GOTO RETURN END

SAYAC2 SAYAC2,F T2 SAYAC1,F T1

1.5. Asenkron Motorun Yldz gen almas


1.5.1. Asenkron Motorun Yaps ve almas
Sanayi tesislerinde elektrik enerjisini dairesel harekete evirebilmek iin motorlar kullanlr. Endstride asenkron motorlarn (endksiyon motorlar) kullanm oran ok yksek olup % 90'lar civarndadr.

Resim 1.1: Asenkron motor

1.5.1.1. Asenkron Motorlarn stnlkleri Srekli bakm istemez. Yk altnda devir saylar ok deimez. Elektronik devreyle devir says kolayca ayarlanabilir. Fiyatlar dier motorlara oranla ucuzdur. alma annda ark (kvlcm) oluturmaz. Bir ve fazl olarak retilebilir.

50

1.5.1.2. Asenkron Motor eitleri Asenkron motorlar faz saysna gre iki eittir: Bir fazl asenkron motorlar: Kk ve gldr. amar makinesi, pompa, buzdolab gibi cihazlarda kullanlr. fazl asenkron motorlar: Sanayide ok yaygn olarak kullanlan motor eididir.

Asenkron motorlar rotorlarnn yapsna gre iki eittir: Rotoru ksa devre ubuklu asenkron motorlar Rotoru sargl (bilezikli) asenkron motorlar

Asenkron motorlar genel olarak stator ve rotor olmak zere iki ksmdan yaplmtr. 1.5.1.3. Stator Asenkron motorun duran blmdr. 0,4-0,8 mm kalnlnda bir taraf yaltlm saclarn zel kalplarda paketlenmesiyle retilir. (Resim 1.2) Stator, motorun en nemli parasdr. Bu parann i ksmnda emaye izoleli bakr telden yaplan sarmlar bulunur. Sarmlarn grevi AC enerji uygulandnda manyetik alan oluturarak rotorun dnmesini salamaktr.

Resim 1.2: Stator

1.5.1.4. Rotor Asenkron motorun dnen blmdr. Rotor, ince elik saclarn st ste paketlenmesiyle oluturulmutur. Bu elemann stator manyetik alannn etkisiyle ikinci bir manyetik alan oluturabilmesi iin gvdesi zerine alan oyuklara alminyum ubuklar ya da sarglar konulmutur. Rotor eitleri unlardr: Alminyum ubuklu (sincap kafesli) rotor Sargl (bilezikli) rotor

51

Resim 1.3: Rotor

1.5.1.5. Gvde Asenkron motorlarn gvdesi soutmann abuk olmas iin kntl (kanatkl) olarak retilir. Resim 1.4' te motor gvdeleri grlmektedir.

Resim 1.4: Motor gvdeleri

1.5.1.6. Fazl Asenkron Motorlarn alma lkesi R-S-T fazlar motorun statorunda bulunan sarglara uygulandnda dner bir manyetik alan oluur. Statordaki manyetik alann dn says ebekenin frekans ve sarglarn kutup saysna gre deiir. Statorda oluan dner alan rotorun ubuklarn (ya da sarmlarn) etkiler ve bu ubuklardan akm dolamaya balar. Rotordan geen akm, ikinci bir alan oluturur. Statorun alanyla rotorun alan birbirini itip ekerek dn balatr.

ekil 1.24: fazn stator sarglar

fazl asenkron motorlarn statoruna yaplan sarmlarn ular klemens kutusuna (balant terminali) karlr. Klemens kutusunda bulunan harflerin anlamlar unlardr:

52

R Faz : Giri U, k X S Faz : Giri V, k Y T Faz : Giri W, k Z harfleriyle gsterilir.

Resim 1.5: Motor klemens kutusunda yldz gen balants

fazl asenkron motorlarn klemens kutusunda alt adet u bulunur. Bu ular motorun gc gz nne alnarak yldz ya da gen eklinde balandktan sonra R-S-T ile besleme yaplr. Yldz ya da gen balants yaplmam fazl asenkron motor asla almaz. fazl asenkron motorlarn devir ynn deitirmek son derece kolaydr. Motora uygulanan R-S-T fazlarndan herhangi ikisinin yeri ekil 1.25'te grld gibi deitirildiinde stator sarglarnn oluturduu manyetik alann dn yn deiir ve rotor nceki dn ynnn tersinde hareket etmeye balar.

ekil 1.25: fazl asenkron motorun devir ynnn deitirilmesi

1.5.1.7. Fazl Asenkron Motora Yol Verme fazl asenkron motorlar ilk hareket annda normal akmlarnn 6-10 kat fazla akm eker. Bu ar akm kk gl bir motorda ebekeye pek bir zarar vermez. Ancak gc 4 kWtan byk olan bir motorun ilk anda 6-10 kat fazla akm ekerek almaya balamas birok olumsuz etki (tesisisin geriliminin ksa sreli olarak anormal derecede dmesi, hatlarn ar yklenmesi vb.) ortaya karr. te bu sebeple 4 kWtan byk gteki motorlar ilk kalk annda az akm ekerek altrmak gerekir. Gnmzde byk gl motorlarn ilk kalk akmn kabul edilebilir dzeye indirebilmek iin eitli yntemler kullanlmaktadr. Dk kalknma akmyla altrmada kullanlan baz yntemler yle sralanabilir:

53

Direnle yol verme Oto transformatryle yol verme Yldz / gen yol verme

Uygulamada en ok kullanlan yntem yldz / gen yol vermedir. Stator sarglar nce yldz eklinde balanr. Bu sayede 380 volta dayanacak ekilde retilmi sarglara 220 volt uygulanm olacandan motor dk akm ekerek almaya balar. 2 4 saniye sonra yldz balants kaldrlp gen balantya geilir. fazl asenkron motorlarda uygulanan yldz balama U-V-W / X-Y-Z klemens ular birbirine kprlendiinde yldz balant yaplm olunur.

ekil 1.26: Yldz balama

ekil 1.27: gen balama

Yldz balanarak altrlmas gereken bir motor yanllkla gen balanarak altrlacak olursa sarglara 380 volt uygulanm olacandan motor yanar. gen balamada stator sarglar birbirine seri balanr. gen bal olarak alacak ekilde retilmi motorlarn sarmlar 380 volta dayanacak ekilde retilmitir. gen balanmas gereken motor yanllkla yldz balanarak altrlrsa motor yanmaz. Ancak motor dk verimde alr. Pic ile yaplan asenkron motor uygulama devresin sistem BALA butonu ile kontrol edilecektir. k yldz gen alma tekniine gre kontrol edilecek, yldz alma ve gen alma sresi 2x16 LCDde grntlenecektir. Motoru durdurmak iin RESET butonuna baslacaktr. Motor nce yldz alma ile altrlacak LCD ekrannda yldz alma yazacak bundan sonra gen almaya geilecek ve ekranda gen alma yazs grntlenecektir.

54

1.5.2. Devrenin emas

ekil 1.28: Asenkron motor uygulama devresi

1.5.3. Bask Devresi

ekil 1.29: Asenkron motor bask devresi

55

1.5.4. Devrenin Malzemeleri


PIC16F84 4MHz mikrodenetleyici 4MHz kristal, 4xbuton, led C1 = C2 = 22pf R2 = R4 = 1K diren R1 = R3 = 10K 12 V Rle X 3

1.5.5. Devrenin Asm Program


;===============ASENKRON MOTOR UYGULAMA PROGRAMI=========== LIST P = 16F84 INCLUDE P16F84.INC RADX DEC ; Deikenler.. CBLOCK H12 S0 SYS_WSAV SYS_SSAV TR1 TR1_HI ZV1 ZV1_FD SYS_TMP1 SYS_TMP2 SYS_TMP3 SYS_TMP4 SYS_TMP5 SYS_TMP6 SYS_TMP9 SYS_TMP10 LT1_FD S1 LT2_FD LT3_FD LT4_FD MF1 MF1_HI MF1_FD TR2 TR2_HI LT5_FD 56

RAM ENDC ORG 0 CLRF STATUS GOTO PORT_KUR NOP NOP MOVWF SWAPF CLRF MOVWF BCF INCFSZ GOTO INCF SYS_WSAV STATUS,W STATUS SYS_SSAV INTCON,T0IF TR1,F SYS_INT_LABEL_0 TR1_HI,F

: Bank 0

SYS_INT_LABEL_0;. INCFSZ GOTO INCF MF1,F SYS_INT_LABEL_1 MF1_HI,F

SYS_INT_LABEL_1; INCFSZ GOTO INCF TR2,F SYS_INT_LABEL_2 TR2_HI,F

SYS_INT_LABEL_2;.. EXITINT SWAPF MOVWF SWAPF SWAPF RETFIE SYS_SSAV,W STATUS SYS_WSAV,F SYS_WSAV,W

LCD_AYAR;. BCF STATUS,RP0 : Bank 0 BCF PORTA,4 : RS 0 LCD_LB1_L1 CALL LCD_LB1_OUT4 DECFSZ SYS_TMP1,F 57

GOTO BCF MOVF ANDLW IORLW MOVWF BCF BSF BCF

LCD_LB1_L1 STATUS,RP0 PORTA,W H'F0' B'0011' PORTA STATUS,RP0 PORTB,3 PORTB,3 : Bank 0

: Function Set

: Bank 0 : Yaz

BSF SYS_TMP1,5 : Bekle LCD_LB1_L2; CALL DECFSZ GOTO BCF BSF BCF CALL BCF BSF BCF CALL BCF BCF BCF BSF BCF CALL MOVLW CALL MOVLW CALL MOVLW CALL LCD_LB1_OUT4 SYS_TMP1,F LCD_LB1_L2 STATUS,RP0 PORTB,3 PORTB,3 LCD_LB1_OUT4 STATUS,RP0 PORTB,3 PORTB,3 LCD_LB1_OUT4 STATUS,RP0 PORTA,0 STATUS,RP0 PORTB,3 PORTB,3 LCD_LB1_OUT4 B'00101000' LCD_LB1_OUT B'00001100' LCD_LB1_OUT B'00000110' LCD_LB1_OUT

: Bank 0 : Yaz

: Bank 0 : Yaz

: Bank 0 : 4-Bit : Bank 0 : Yaz

: Function Set 4-Bit, 2 satr

: Display on, Cursor off, Blink off

: Entrymode set

LCD_LB1_CLR;. BCF STATUS,RP0 : Bank 0 BCF PORTA,4 MOVLW B'00000001' : Display temizle 58

CALL

LCD_LB1_OUT

BSF SYS_TMP1,5 : Bekle LCD_LB1_L3; CALL LCD_LB1_OUT4 DECFSZ SYS_TMP1,F GOTO LCD_LB1_L3 GOTO LCD_LB1_OUT4 LCD_LB1_GOTOXY;. BCF STATUS,RP0 : Bank 0 BCF PORTA,4 MOVLW H'40' BTFSC SYS_TMP2,0 : Ypos ADDWF SYS_TMP1,F BSF SYS_TMP1,7 : dd-ram se GOTO LCD_LB1_OUT1 LCD_LB1_WRITESTR;.. BCF STATUS,RP0 : Bank 0 BSF PORTA,4 : dd-ram se LCD_LB1_WRITESTR1;.. CALL LCD_LB1_CHAROUT BSF INTCON,GIE ANDLW H'FF' : last is zero BTFSC STATUS,Z RETURN MOVWF CALL INCFSZ GOTO GOTO SYS_TMP1 LCD_LB1_OUT1 SYS_TMP4,F LCD_LB1_WRITESTR1 LCD_LB1_WRITESTR1

LCD_LB1_CHAROUT; BCF INTCON,GIE MOVFW SYS_TMP5 MOVWF PCLATH MOVFW SYS_TMP4 MOVWF PCL LCD_LB1_DEZO10000;.. MOVLW MOVWF MOVLW MOVWF LOW 10000 SYS_TMP1 HIGH 10000 SYS_TMP2 59

CALL MOVF BTFSS GOTO CALL

LCD_LB1_CONVERTDEZ SYS_TMP9,F STATUS,Z LCD_LB1_DEZO1000 LCD_LB1_CHECKNULL

LCD_LB1_DEZO1000;. MOVLW MOVWF MOVLW MOVWF CALL MOVF BTFSS GOTO CALL LOW 1000 SYS_TMP1 HIGH 1000 SYS_TMP2 LCD_LB1_CONVERTDEZ SYS_TMP9,F STATUS,Z LCD_LB1_DEZO100 LCD_LB1_CHECKNULL

LCD_LB1_DEZO100;.. MOVLW MOVWF CLRF CALL MOVF BTFSS GOTO CALL LOW 100 SYS_TMP1 SYS_TMP2 LCD_LB1_CONVERTDEZ SYS_TMP9,F STATUS,Z LCD_LB1_DEZO10 LCD_LB1_CHECKNULL

LCD_LB1_DEZO10;.. MOVLW LOW 10 MOVWF SYS_TMP1 CLRF SYS_TMP2 CALL LCD_LB1_CONVERTDEZ MOVF SYS_TMP9,F BTFSS STATUS,Z GOTO LCD_LB1_DEZO1 CALL LCD_LB1_CHECKNULL LCD_LB1_DEZO1;.. MOVLW 48 ADDWF SYS_TMP4,W GOTO LCD_LB1_WRITECHAR

60

LCD_LB1_CONVERTDEZ;. MOVF SYS_TMP9,F BTFSS STATUS,Z DECF SYS_TMP9,F CLRF SYS_TMP6 LCD_LB1_CONVERTDEZ2;.. INCF SYS_TMP6,F MOVFW SYS_TMP1 SUBWF SYS_TMP4,F MOVFW SYS_TMP2 BTFSS STATUS,C INCFSZ SYS_TMP2,W SUBWF SYS_TMP5,F BTFSC STATUS,C GOTO LCD_LB1_CONVERTDEZ2 MOVFW SYS_TMP2 ADDWF SYS_TMP5,F MOVFW SYS_TMP1 ADDWF SYS_TMP4,F BTFSC STATUS,C INCF SYS_TMP5,F DECF SYS_TMP6,W BTFSS STATUS,Z BSF SYS_TMP10,0 RETURN

LCD_LB1_CONVERTHEX; ANDLW 15 MOVWF SYS_TMP1 MOVLW 48 ADDWF SYS_TMP1,F MOVLW 58 SUBWF SYS_TMP1,W BTFSS STATUS,C GOTO $+3 MOVLW 7 ADDWF SYS_TMP1,F MOVFW SYS_TMP1

61

LCD_LB1_WRITECHAR; BCF STATUS,RP0 : Bank 0 BSF PORTA,4 : dd-ram LCD_LB1_OUT; MOVWF SYS_TMP1 : store LCD_LB1_OUT1; CLRF SYS_TMP3 : LCD yaz LCD_LB1_OUT2;. SWAPF SYS_TMP1,W LCD_LB1_OUT3; ANDLW H'0F' MOVWF SYS_TMP2 BCF STATUS,RP0 : Bank 0 MOVFW PORTA ANDLW H'F0' IORWF SYS_TMP2,W BCF STATUS,RP0 : Bank 0 MOVWF PORTA : out BCF BSF BCF STATUS,RP0 PORTB,3 PORTB,3 : Bank 0 :E1 : E 0

BTFSC SYS_TMP3,3 : LCD hazr m ? GOTO LCD_LB1_OUT4 BSF SYS_TMP3,3 MOVFW SYS_TMP1 GOTO LCD_LB1_OUT3 LCD_LB1_OUT4;.. LCD_LB1_OUTV;.. DECFSZ SYS_TMP3,F GOTO LCD_LB1_OUTV RETURN LCD_LB1_CHECKNULL;. BTFSS STATUS,Z DECF SYS_TMP9,F MOVWF SYS_TMP1 BTFSS STATUS,Z BSF SYS_TMP10,0 MOVLW 48 BTFSC SYS_TMP10,0 ADDWF SYS_TMP1,f 62

MOVLW BTFSS ADDWF MOVFW GOTO

32 SYS_TMP10,0 SYS_TMP1,F SYS_TMP1 LCD_LB1_WRITECHAR

PORT_KUR ; MOVLW MOVWF BCF MOVLW MOVWF MOVLW MOVWF MOVLW BSF MOVWF MOVLW MOVWF MOVLW MOVWF ; Deikenleri Temizle B'00100000' INTCON STATUS,RP0 B'00000000' PORTA B'00000000' PORTB 143 STATUS,RP0 OPTION_REG B'11100000' TRISA B'11110000' TRISB : TMR0 saycs aktif : Bank 0 a ge : PortA temizle : PortB temizle ; Bank 1 : WDT kesmesi geerli : 1 Giri, 0 k

MOVLW 12 MOVWF FSR : Say dizisinin balang adresini CR1; CLRF INDF : sras ile INCF FSR,F : sfrla MOVf FSR,W SUBLW 80 : FSR adresi 80 mi? BTFSS STATUS,Z GOTO CR1 : Hayr temizlemeye devam et MOVLW B'00010000' : Evet S1 = 10 MOVWF S1 CALL LCD_AYAR BCF STATUS,RP0 : Bank 0 CLRF TMR0 BCF INTCON,T0IF BSF INTCON,GIE MAIN

63

LABEL_UG1_1;.. BTFSS S0,1 GOTO LABEL_UG1_FALSE LABEL_UG1_2;.. BTFSC S0,2 GOTO LABEL_UG1_FALSE LABEL_UG1_TRUE; BSF S0,0 GOTO LABEL_UG1_ENDE LABEL_UG1_FALSE;. BCF S0,0 LABEL_UG1_ENDE LABEL_UG2_1; BTFSC S0,0 GOTO LABEL_UG2_TRUE LABEL_UG2_2; BCF STATUS,RP0 ; Bank 0 BTFSC PORTB,5 GOTO LABEL_UG2_TRUE LABEL_UG2_FALSE;. BCF S0,1 GOTO LABEL_UG2_ENDE LABEL_UG2_TRUE;. BSF S0,1 LABEL_UG2_ENDE LABEL_UG3_1; BTFSS S0,1 GOTO LABEL_UG3_FALSE LABEL_UG3_TRUE;. BCF STATUS,RP0 : Bank 0 BSF PORTB,0 GOTO LABEL_UG3_ENDE LABEL_UG3_FALSE; BCF STATUS,RP0 : Bank 0 BCF PORTB,0 LABEL_UG3_ENDE; MOVLW SUBWF BTFSS GOTO MOVLW SUBWF 7 TR1_HI,W STATUS,Z LABEL_TR1_CHECK 161 TR1,W 64

LABEL_TR1_CHECK; BTFSS STATUS,C GOTO LABEL_TR1_ENDE LABEL_TR1_RESET;.. MOVLW 7 SUBWF TR1_HI,F MOVLW 161 SUBWF TR1,F BTFSS STATUS,C DECF TR1_HI,F LABEL_TR1_SET; BTFSC S0,3 GOTO LABEL_TR1_CLR BSF S0,3 GOTO LABEL_TR1_ENDE LABEL_TR1_CLR;.. BCF S0,3 LABEL_TR1_ENDE; BTFSS GOTO CLRF GOTO S0,2 LABEL_ZV1_COUNT ZV1 LABEL_ZV1_SETOUT

LABEL_ZV1_COUNT;.. BTFSS GOTO BTFSC GOTO BSF BTFSC GOTO INCF GOTO S0,6 LABEL_ZV1_SETFD ZV1_FD,0 LABEL_ZV1_SETFD ZV1_FD,0 S0,7 LABEL_ZV1_BACKWARD ZV1,F LABEL_ZV1_SETOUT

LABEL_ZV1_BACKWARD;.. DECF ZV1,F LABEL_ZV1_SETOUT LABEL_ZV1_SETFD;.. BTFSC S0,6 GOTO LABEL_ZV1_EXIT BCF ZV1_FD,0 65

LABEL_ZV1_EXIT LABEL_UG5_1;.. BTFSS S0,1 GOTO LABEL_UG5_FALSE LABEL_UG5_2;. BTFSS S0,3 GOTO LABEL_UG5_FALSE LABEL_UG5_TRUE; BSF S0,6 GOTO LABEL_UG5_ENDE LABEL_UG5_FALSE;. BCF S0,6 LABEL_UG5_ENDE;.. BTFSC LT1_FD,0 GOTO LABEL_LT1_SETFD BTFSS S1,1 GOTO LABEL_LT1_SETFD MOVLW 13 MOVWF SYS_TMP1 MOVLW 1 MOVWF SYS_TMP2 CALL MOVFW MOVWF CLRF BSF MOVLW MOVWF CALL LCD_LB1_GOTOXY ZV1 SYS_TMP4 SYS_TMP5 SYS_TMP10,0 2 SYS_TMP9 LCD_LB1_DEZO100

LABEL_LT1_SETFD;.. BTFSS S1,1 GOTO LABEL_LT1_SETFD2 BSF LT1_FD,0 GOTO LABEL_LT1_END LABEL_LT1_SETFD2;.. BCF LT1_FD,0 LABEL_LT1_END LABEL_LG5_1;. BTFSS S0,1 66

GOTO

LABEL_LG5_FALSE

LABEL_LG5_2; BTFSC S0,4 GOTO LABEL_LG5_FALSE LABEL_LG5_TRUE; BSF S1,0 GOTO LABEL_LG5_ENDE LABEL_LG5_FALSE;.. BCF S1,0 LABEL_LG5_ENDE LABEL_LG6_1;.. BTFSS S1,0 GOTO LABEL_LG6_FALSE LABEL_LG6_TRUE;. BCF STATUS,RP0 : Bank 0 BSF PORTB,1 GOTO LABEL_LG6_ENDE LABEL_LG6_FALSE; BCF STATUS,RP0 : Bank 0 BCF PORTB,1 LABEL_LG6_ENDE; MOVLW 5 SUBWF ZV1,W LABEL_IF1_CHECK; BTFSS STATUS,C GOTO LABEL_IF1_FALSE LABEL_IF1_TRUE; BSF S0,5 GOTO LABEL_IF1_EXIT LABEL_IF1_FALSE;.. BCF S0,5 LABEL_IF1_EXIT; BTFSC LT2_FD,0 GOTO LABEL_LT2_SETFD BTFSS S1,4 GOTO LABEL_LT2_SETFD 67

MOVLW MOVWF MOVLW MOVWF CALL MOVLW MOVWF MOVLW MOVWF CALL

0 SYS_TMP1 0 SYS_TMP2 LCD_LB1_GOTOXY LOW TAB_LT2 SYS_TMP4 HIGH TAB_LT2 SYS_TMP5 LCD_LB1_WRITESTR

LABEL_LT2_SETFD;.. BTFSS S1,4 GOTO LABEL_LT2_SETFD2 BSF LT2_FD,0 GOTO LABEL_LT2_END LABEL_LT2_SETFD2;.. BCF LT2_FD,0 LABEL_LT2_END;.. BTFSC GOTO BTFSS GOTO MOVLW MOVWF MOVLW MOVWF CALL MOVLW MOVWF MOVLW MOVWF CALL LT3_FD,0 LABEL_LT3_SETFD S1,0 LABEL_LT3_SETFD 0 SYS_TMP1 1 SYS_TMP2 LCD_LB1_GOTOXY LOW TAB_LT3 SYS_TMP4 HIGH TAB_LT3 SYS_TMP5 LCD_LB1_WRITESTR

LABEL_LT3_SETFD; BTFSS S1,0 GOTO LABEL_LT3_SETFD2 BSF LT3_FD,0 GOTO LABEL_LT3_END LABEL_LT3_SETFD2; BCF LT3_FD,0 LABEL_LT3_END 68

LABEL_LG7_1; BTFSS S1,0 GOTO LABEL_LG7_FALSE LABEL_LG7_2;. BTFSS S0,3 GOTO LABEL_LG7_FALSE LABEL_LG7_TRUE;.. BSF S1,1 GOTO LABEL_LG7_ENDE LABEL_LG7_FALSE;.. BCF S1,1 LABEL_LG7_ENDE;. BTFSC LT4_FD,0 GOTO LABEL_LT4_SETFD BTFSS S1,2 GOTO LABEL_LT4_SETFD MOVLW 0 MOVWF SYS_TMP1 MOVLW 1 MOVWF SYS_TMP2 CALL LCD_LB1_GOTOXY MOVLW LOW TAB_LT4 MOVWF SYS_TMP4 MOVLW HIGH TAB_LT4 MOVWF SYS_TMP5 CALL LCD_LB1_WRITESTR

69

LABEL_LT4_SETFD; BTFSS S1,2 GOTO LABEL_LT4_SETFD2 BSF LT4_FD,0 GOTO LABEL_LT4_END LABEL_LT4_SETFD2;.. BCF LT4_FD,0 LABEL_LT4_END;. BTFSC MF1_FD,1 GOTO LABEL_MF1_CHKTIME BTFSC MF1_FD,0 GOTO LABEL_MF1_SETFD BTFSS S0,4 GOTO LABEL_MF1_SETFD LABEL_MF1_RESET;. CLRF MF1 CLRF MF1_HI BSF MF1_FD,1 BSF S1,2 LABEL_MF1_CHKTIME;.. MOVLW 0 SUBWF MF1_HI,W BTFSS STATUS,Z GOTO LABEL_MF1_CHECK MOVLW 8 SUBWF MF1,W LABEL_MF1_CHECK; BTFSS STATUS,C GOTO LABEL_MF1_SETFD LABEL_MF1_TO;.. BCF MF1_FD,1 BCF S1,2 LABEL_MF1_SETFD; BTFSS S0,4 GOTO LABEL_MF1_CLR BSF MF1_FD,0 GOTO LABEL_MF1_ENDE LABEL_MF1_CLR;.. 70

BCF

MF1_FD,0

LABEL_MF1_ENDE;. MOVLW 30 SUBWF TR2_HI,W BTFSS STATUS,Z GOTO LABEL_TR2_CHECK MOVLW 132 SUBWF TR2,W LABEL_TR2_CHECK;.. BTFSS STATUS,C GOTO LABEL_TR2_ENDE LABEL_TR2_RESET;.. MOVLW 30 SUBWF TR2_HI,F MOVLW 132 SUBWF TR2,F BTFSS STATUS,C DECF TR2_HI,F LABEL_TR2_SET;.. BTFSC S1,3 GOTO LABEL_TR2_CLR BSF S1,3 GOTO LABEL_TR2_ENDE LABEL_TR2_CLR; BCF S1,3 LABEL_TR2_ENDE;. BTFSC LT5_FD,0 GOTO LABEL_LT5_SETFD BTFSS S1,3 GOTO LABEL_LT5_SETFD MOVLW 0 MOVWF SYS_TMP1 MOVLW 0 MOVWF SYS_TMP2 CALL LCD_LB1_GOTOXY MOVLW LOW TAB_LT5 MOVWF SYS_TMP4 MOVLW HIGH TAB_LT5 MOVWF SYS_TMP5 CALL LCD_LB1_WRITESTR 71

LABEL_LT5_SETFD; BTFSS S1,3 GOTO LABEL_LT5_SETFD2 BSF LT5_FD,0 GOTO LABEL_LT5_END LABEL_LT5_SETFD2; BCF LT5_FD,0 LABEL_LT5_END LABEL_LG8_1;. BTFSS S1,3 GOTO LABEL_LG8_FALSE LABEL_LG8_TRUE;.. BCF S1,4 GOTO LABEL_LG8_ENDE LABEL_LG8_FALSE; BSF S1,4 LABEL_LG8_ENDE LABEL_LG9_1;. BTFSS S0,4 GOTO LABEL_LG9_FALSE LABEL_LG9_2;.. BTFSC S1,6 GOTO LABEL_LG9_FALSE LABEL_LG9_TRUE; BSF S1,5 GOTO LABEL_LG9_ENDE LABEL_LG9_FALSE;.. BCF S1,5 LABEL_LG9_ENDE LABEL_LG10_1;. BTFSC S1,5 GOTO LABEL_LG10_TRUE LABEL_LG10_2;.. BTFSC S0,5 GOTO LABEL_LG10_TRUE LABEL_LG10_FALSE;. BCF S0,4 72

GOTO

LABEL_LG10_ENDE

LABEL_LG10_TRUE;.. BSF S0,4 LABEL_LG10_ENDE LABEL_LG11_1;. BTFSS S0,4 GOTO LABEL_LG11_FALSE LABEL_LG11_TRUE;.. BCF STATUS,RP0 : Bank 0 BSF PORTB,2 GOTO LABEL_LG11_ENDE LABEL_LG11_FALSE;. BCF STATUS,RP0 : Bank 0 BCF PORTB,2 LABEL_LG11_ENDE; GOTO MAIN TAB_LT2;.. RETLW 65 :A RETLW 115 :s RETLW 101 :e RETLW 110 :n RETLW 107 :k RETLW 114 :r RETLW 111 :o RETLW 110 :n RETLW 32 : RETLW 109 :m RETLW 111 :o RETLW 116 :t RETLW 111 :o RETLW 114 :r RETLW 32 : RETLW 32 : RETLW 0 : end TAB_LT3; RETLW 89 :Y RETLW 105 :i RETLW 108 :l RETLW 100 :d RETLW 105 :i RETLW 122 :z RETLW 32 : 73

RETLW 67 RETLW 97 RETLW 108 RETLW 115 RETLW 58 RETLW 0

:C :a :l :s :: : end

TAB_LT4;. RETLW 117 :u RETLW 99 :c RETLW 103 :g RETLW 101 :e RETLW 110 :n RETLW 32 : RETLW 99 :c RETLW 97 :a RETLW 108 :l RETLW 105 :i RETLW 115 :s RETLW 109 :m RETLW 97 :a RETLW 32 : RETLW 32 : RETLW 0 : end TAB_LT5; RETLW 121 :y RETLW 105 :i RETLW 108 :l RETLW 100 :d RETLW 105 :i RETLW 122 :z RETLW 32 : RETLW 117 :u RETLW 99 :c RETLW 103 :g RETLW 101 :e RETLW 110 :n RETLW 32 : RETLW 99 :c RETLW 97 :a RETLW 108 :l RETLW 0 : end END

74

UYGULAMA FAALYET UYGULAMA FAALYET


Programlama ilemini yapnz.

lem Basamaklar

neriler

Mikrodenetleyici olarak PIC 16F84 Kurulacak sistem iin ihtiyalar (devre kullannz. elemanlarn) tespit ediniz. Program yazdktan sonra MPLAB ile htiyacnz karlayacak deneyiniz. mikrodenetleyiciyi seiniz. Program mikrodenetleyiciye yklerken Sisteminin almas iin gerekli kullanlan PIC programlaycya uygun program yaznz. yazlm kullannz. Program mikrodenetleyiciye ykleyiniz. Devreyi Proteus programnda altrarak evre elemanlar ile devreyi kurunuz. deneyiniz.

Devre iin gerekli giri elemanlar ve Kullandnz devre elemanlarnn zelliklerini belirleyiniz. zelliklerini internetten aratrnz. Devre iin gerekli k elemanlar ve Bask devreyi, devre emasn proteus zelliklerini tespit ediniz. programndan ares programna aktrarak Devrenin bask devre emasn kartnz. karnz. Devre elemanlarnn ve Devrenin montajn yapmadan nce mikrodenetleyicinin montajn yapnz. bredboard zerinde kurarak deneyiniz.

KONTROL LSTES
Bu faaliyet kapsamnda aada listelenen davranlardan kazandnz beceriler iin Evet, kazanamadklarnz iin Hayr kutucuklarna ( X ) iareti koyarak rendiklerinizi kontrol ediniz. Deerlendirme ltleri Kurulacak sistem iin ihtiyalar tespit ettiniz mi? htiyac karlayacak mikrodenetleyiciyi setiniz mi? Sistemin mikrodenetleyici programn yazdnz m? Program mikrodenetleyiciye yklediniz mi? evre elemanlar ile devreyi kurdunuz mu? Evet Hayr

1. 2. 3. 4. 5.

DEERLENDRME
Deerlendirme sonunda Hayr eklindeki cevaplarnz bir daha gzden geiriniz. Kendinizi yeterli grmyorsanz renme faaliyetini tekrar ediniz. Btn cevaplarnz Evet ise lme ve Deerlendirmeye geiniz. 75

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki cmlede bo braklan yere getirilecek bilgilerin bulunduu seenei iaretleyiniz. 1. INTCON kaydedicisi uygulamalarnda kullanlr. Bolua aadakilerden hangisi gelmelidir? A) Giri B) k C) Kesme D) Reset Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz. 2. Status registerinde bulunan RP0 ve RP1 bitlerinin grevi aadakilerden hangisidir? A) Kesmenin geerli olmas iin kullanlr. B) lemlerde tama meydana geldiinde kullanlr. C) lemlerin sonucu sfr olduunda kullanlr. D) Bank deitirmek iin kullanlr. PIC16F84te kesme meydana geldiinde program hangi adrese atlamaktadr? A) H00 B) H02 C) H04 D) H06 Aadaki seeneklerden hangisi PICi programlamak iin gerekli deildir? A) MPSAM ASM derleyici B) PIC programlayc C) MPLAB PFE D) PROTEUS program A) Den kenar B) Ykselen kenar C) Pozitif seviye D) Negatif seviye

3.

4.

5. LCDye veri yazmak iin E giriine hangi kenar tetiklemeli sinyal uygulanmaldr?

DEERLENDRME
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki renme faaliyetine geiniz.

76

RENME FAALYET-2 RENME FAALYET2


AMA
Mikrodenetleyiciyi ve evre elemanlarn seebilecek, dijital ilem iin gerekli program hatasz olarak yazabilecek, program mikrodenetleyiciye ykleyebilecek ve devreyi hatasz olarak kurup altrabileceksiniz.

ARATIRMA
Red rleler hakknda bilgi edinin. Kesme (Interrupt) eitlerini renmeli kesme alt programlar yaznz. Asenkron motorlarn yapsn ve almasn reniniz.

Aratrma ilemleri iin Mikrodenetleyici Programlama modln gzden geirirken internet ortamlarndan da yararlanabilirsiniz.

2. LER SEVYE DJTAL UYGULAMA DEVRELER


2.1. Drt Girili Kap Pencere Alarm Devresi
Drt girili olan sistemde kap ve pencerelere yerletirilen anahtarlar kapal (OFF) konumunda kabul edilecektir. Anahtarlardan biri konum deitirdiinde (kap veya pencere aldnda) sistem bir led ve buzer ile k verecek, DUR butonuna baslncaya kadar sesli ve kl ikaz devam edecektir. Devreye enerji uygulandktan 1 dk. sonra alarm aktif olmaktadr. Bu srede ieride bulananlar dar kabilir. Dardan ieriye girebilmek iin kapnn dna bir reed rle yerletirilir. Bu anahtar kapandnda alarm 1 dk. pasif olur ve bu sre iinde sistem kapatlr. 1 dk. sre kullancya gre deitirilebilir. Reed (Dil Kontakl) Rleler

Cam gvde iine konmu minik kontaklara sahip elemanlara reed rle denir. Reed rlelerde havas alnm effaf cam ya da baka bir maddeden yaplm olan muhafaza iinde bulunan demir-nikel alam mini kontaklarn konumu sabit mknats ya da elektromknatsla deitirilir. Resim 2.1de cam gvdeli reed rlelerin yaps verilmitir.

77

Resim 2.1: Reed rle

Reed rlelerde kontaklarn konumu Resim 2.2de grld gibi doal mknatsla ya da elektromknats ile deitirilebilmektedir. Reed rlelerin kontaklarnn ekme ve brakma zaman 0,5 mili saniye, alma says ise 1-2 milyon adet dolayndadr.

Resim 2.2: Reed rlenin konum deitirmesi

Kesmeler (Interrupt)

Kesme bir mikrokontrolrn darda olan herhangi bir olaya annda mdahele etmesini salamaktadr. Kesme olunca mikrokontrolr yapmakta olduu ii brakr ve H04 adresindeki kesme alt programna gider. Kesmeden RETFIE (RETurn From IntErrupt) komutu ile dnlr ve program kald yerden devam eder. Kesme dardan veya ieriden olabilir. Dardan gelen kesmelerin zaman bilinmemektedir. eriden gelen kesmeler ise genellikle mikrokontrolrn saya devrelerine bal gelmektedir. PIC 16F84 mikrokontrolrde drt eit kesme bulunur. RBO / INT bacandan gelen d (haric) kesme Port B (4,5,6,7) bacaklarnda lojik seviye deiikliinden oluan d kesme TMR0 saycsnda oluan zaman am i kesmesi EEPROM bellee yazldktan sonra oluan i kesme Herhangi bir kesmenin geerli olmas iin INTCON registeri GIE = lojik 1 yaplnca tm kesmeler aktif olur. Hangi kesmenin geerli olmas isteniyorsa o kesme biti lojik 1 yaplmaldr. Kesmeler INTCON registerinin aadaki bitleri ile kontrol edilir. o INTE: RBO / INT d kesmesini aktif yapma bayra o RBIE: RB4 RB7 bacaklarnda deiiklik kesmesini aktif yapma bayra o T0IE: TMR0 sayc kesmesini aktif yapma bayra o EEIE: EPROM bellee yazma ilemi tamamlama kesmesi 78

Kesme meydana gelince o kesmeye ait INTCON registerinde bulunan bayrak aktif olur. o o o o INTF: Lojik 1 ise RBO / INT kesmesi var. RBIF: Lojik 1 ise RB4 RB7 kesmesi var. T0IF: Lojik 1 ise TMR0 sayc kesmesi var. EEIF: Lojik 1 ise EEPROM kesmesi var.

Alarm devresinde drt giri RB4 RB7 bacaklarna balanmtr. Alarm aktif olduktan sonra bu girilerden birinde herhangi bir deiiklik olduunda KESME alt program altrlr ve buzzer alr. Kesme olutuktan sonra ana programa geri dnlmez. Ana programa dnmek iin DUR butonuna baslmas gerekir. RB4 RB7 deiiklik kesmesinin olumas iin aadakiler srasyla yaplr. INTCON GIE bayra lojik 1 INTCON - RBIE bayra lojik 1 OPTION registerin 6. biti (INTEDG) ile dardan gelen sinyalin kenar tetiklemesi ayarlanr. ( Lojik 1 ykselen kenar, Lojik 0 den kenar) Kesme olutuunda RBIF bayra lojik 1 olur. Kesmelerin geerli olmas iin kesme alt programnda lojik 0 yaplr.

2.1.1. Devrenin Malzemeleri


PIC16F84 4MHz mikrodenetleyici 4MHz kristal, 2xbuton, led U2= 7407 veya 4050, Reed Rle C6 = C7 = 22pf C1= C2= C3= C4= 100nF R8= 330, R9= 1 K diren R5= R6= R7= 10 K R1 = R2 = R2 = R4 = 100 K Q1 = BC237 , Q2 = BD135 12V Rle , D1= 1N4148

79

2.1.2. Ak Diyagram
BASLA

PORT_KUR

GECKME1

KESME

GIE 1 RBIE 1

BUZZER 1 L1 = 0 , L2= 1

YESL LED YANIK

H
PORTA, 1 = 0 MI?

PORTA, 2=0 MI?

E
BUZZER 0

E
GIE 0

RBIF 0

RETFIE

GECKME1

Tablo 2.1: Alarm devresi ak diyagram

80

2.1.3. Devrenin emas

ekil 2.1: Alarm devresi

2.1.4. Bask Devresi

ekil 2.2: Alarm bask devresi

81

2.1.5. Devrenin Asm Program


Devreye enerji uygulandnda, yaklak 60 sn. sonra alarm aktif olur. Alarmn aktif olduu yeil ledin (L1) yanmasyla anlalr. Kap ya da pencerelerden biri aldnda RB4RB7 port girilerinde deilik meydana geldiinden kesme aktif olur. Bu durumda yeil led sner, buzzer alr ve krmz led (L2) yanar. Alarm kapatmamak iin DUR butonuna baslr ve program almasna ILK etiketinden itibaren devam eder. ;=========ALARM DEVRES UYGULAMA PROGRAMI======S_2005======== LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H'0C' SAYAC2 EQU H'0D' SAYAC3 EQU H'0E' ORG GOTO ORG GOTO H'00' BASLA H'04' KESME

: Gecikme alt program iin saya

BASLA;. CALL CALL BSF BSF BSF BTFSC GOTO BCF CALL GOTO PORT_KUR GECIKME1 INTCON , RBIE INTCON, GIE PORTA,2 PORTA,0 BUTON INTCON,GIE GECIKME1 ILK : Portlar ayarla : RBIE 1 : GIE 1 : L1 (yeil led) yank, alarm aktif : KAPAT butonuna basl m? : Hayr , kesme bekle : Evet GIE 0 kesmeler pasif : 1dk. gecikme

ILK

BUTON

PORT_KUR;. BSF MOVLW MOVWF MOVLW MOVWF BCF RETURN STATUS,5 H'FF' TRISB H'03' TRISA STATUS,5 : Bank 1e ge : PortB giri : Bank 0a ge

82

GECIKME1 ;.. :60 snlik gecikme salar. MOVLW D'255' MOVWF SAYAC1 G1 MOVLW D'255' : W D'255' MOVWF SAYAC2 : SAYAC2 W G2 MOVLW D'255' : W D'255' MOVWF SAYAC3 : SAYAC3 W G3 DECFSZ SAYAC3,F : SAYAC3= SAYAC3 - 1 GOTO G3 DECFSZ SAYAC2,F : SAYAC2= SAYAC2 - 1 GOTO G2 DECFSZ SAYAC1,F : SAYAC1= SAYAC1 - 1 GOTO G1 RETURN KESME;.. BSF BCF BTFSC GOTO BCF BCF RETFIE END PORTA,3 PORTA,2 PORTA,1 DON PORTA,3 INTCON,RBIF : Buzzer ve krmz led (L2) aktif : Yeil ledi sndr. : DUR butonuna basl m? : Hayr, kesme programnda kal : Evet : RBIF 0 bayran sfrla : kesmeden geri dn

DON

83

2.2. Elektropnomatik Sistemin PIC ile Kumandas


Pnmatik ve elektrik-teknolojisinin bir arada kullanlmas endstriyel otomasyon uygulamalarnda nemli rol oynar. Sanayide hzl, ucuz ve kaliteli retim salar. Pic ile uygulanacak olan sistemde, iki silindir, paralar besleme stunundan tayc bir sisteme nakleder. Bir dmeye basldnda 1.0 silindiri ileri doru hareket eder. Besleme stunundan bir paray iter. Bu paray 2.0 silindiri iin konumlandrr. 2.0 silindiri paray tayc sisteme iter. Bundan sonra ilk olarak birinci, ardndan ikinci silindir geri gelir. ki silindirin de ileri ve geri geli hzlarnn ayarlanabilir olmas gerekir. Ayrca iki silindirin de ndeki ve arkadaki son konumlarnn alglanmas gerekir. Silindirin hareket ak manyetik anahtarla kontrol edilir. Sistem altrldnda aadaki sra ile silindirler hareket eder. 1.0 silindiri geride - S1 anahtar kapal, 2.0 silindiri geride ve S3 anahtar kapaldr. S anahtarna basldnda 1.0 silindiri ileri hareket eder. S2 anahtar kapanr. S2 kapandnda 2.0 silindiri ileri doru hareket eder. S4 silindiri kapanr. S4 kapandnda 1.0 silindiri geriye doru hareket eder. S1 anahtar kapanr. S1 kapandnda 2.0 silindiri geriye doru hareket eder. S3 anahtar kapanr. Sistem tekrar baa dner. lem srasnn her adm yol adm emasnda gsterilir.

1.0

2.0
Tablo 2.2: Yol adm emas

1- 2 aralnda Y1 rlesi enerjilenir. 1.0 ileri hareket eder. 2 - 3 aralnda Y3 enerjilenir 2.0 ileri hareket eder. Y1 enerjili ve 1.0 ileridedir. 3 - 4 aralnda Y2 enerjilenir. 1.0 geri hareket eder. Y3 enerjili ve 2.0 ileridedir. 4 5 aralnda Y4 enerjilenir. 2.0 geri hareket eder.

84

ekil 2.3: Elektropnmatik devre emas

Manyetik alglayclar ( hatl alglayclar) dorudan silindir gvdesi zerine yerletirilir. Silindir anahtar getiinde manyetik alan oluur ve anahtarn knda bir sinyal elde edilir.

ekil 2.4: Manyetik alglayclar

Devrede S1, S2, S3 ve S4 ile gsterilen girilere sisteme yerletirilen manyetik anahtarlarn klar balanr. k gerilimi yksek olduundan 5V seviyesine drlmelidir. Y1 ve Y2 rleleri 1. silindiri, Y3 ve Y4 rleleri 2. silindiri kontrol eder. Port A giri, Port B k olarak ynlendirilmitir. Silindirleri kontrol etmek iin PortB klarna Tablo 2.3teki deerler uygulanr.

85

GER2 Y4 RB7 1 1 0 0 1

LER2 Y3 RB6 0 0 1 1 0

GER1 Y2 RB5 1 0 0 1 1

LER1 Y1 RB4 0 1 1 0 0

HAREKET 1.0 ve 2.0 silindirleri geride (hA0) 1.0 ileriye , 2.0 geride ( h90) 1.0 ileride, 2.0 ileriye (h50) 1.0 geriye, 2.0 ileride (h60) 1.0 geride, 2.0 geriye ( hA0)

Tablo 2.3: Port B klarna uygulanan deerler

ekil 2.5: Sistemin elektriksel balant emas

2.2.1. Devrenin Malzemeleri


PIC16F84 4MHz mikrodenetleyici 4MHz kristal, 2xbuton C1 = C2 = 22pf R5= R6= R7= R8= 1 K R9 = R10 = 10 K Q1= Q2 = Q3 = Q4 = BD135

86

2.2.2. Devrenin emas

ekil 2.6: Elektropnomatik sistemin PC ile uygulama devresi

2.2.3. Bask Devresi

Resim 2.7: Elektropnomatik sistemin bask devresi

87

2.2.4. Devrenin Ak Diyagram


E
2.0 ileri BALA

H
PORT_AYAR

S4 kapand m?

E
Y2 , Y4 ENERJL

1.0 geri

H
BALA basl m?

S1 kapand m?

E
1.0 ileri

E
2.0 geri

H
S2 kapand m?

S1 kapand m?

E
BUTON etiketine git

Tablo 2.4: Elektropnomatik sistemin ak diyagram

88

2.2.5. Devrenin Asm Program


;=========ELEKTROPNOMATIK SISTEM PROGRAMI======S_2005======== LIST P=16F84 INCLUDE "P16F84.INC" ORG GOTO BASLA CALL MOVL MOVWF BTFSC GOTO MOVLW MOVWF BTFSS GOTO MOVLW MOVWF BTFSS GOTO MOVLW MOVWF BTFSS GOTO MOVLW MOVWF BTFSS GOTO GOTO PORT_AYAR BSF MOVLW MOVWF CLRF BCF RETURN END PORT_AYAR W H'A0' PORTB PORTA,0 BUTON H'90' PORTB PORTA,2 S2 H'50' PORTB PORTA,4 S4 H'60' PORTB PORTA,1 S1 H'A0' PORTB PORTA,3 S3 BUTON : 1.0 ve 2.0 silindirleri geride : START butonuna basl m? : 1.0 silindirini ileri hareket ettir. : 1.0 silindiri ileride mi? : HAYIR 1.0 ileri- Y1 enerjili : 2.0 silindirini ileri hareket ettir. : 2.0 silindiri ileride mi? : HAYIR Y1 ve Y4 enerjili : 1.0 silindirini geri hareket ettir : 2.0 silindiri ileride : 1.0 silindiri geride mi? : HAYIR Y2 ve Y4 enerjili H'00' BASLA

BUTON

S2

S4

S1

S3

STATUS,5 H'FF' TRISA TRISB STATUS,5

89

2.3. Programlanabilir Zamanlayc


Bu programlanabilir sayc ev ii, ticar ve endstriyel uygulamalar iin kullanlldr. Ayarlanan zaman sonunda ama-kapama yapmaktadr. Devrenin zaman periyodu programla deitirildiinden olduka ilevseldir. Devre saat, dakika ve saniye olarak ayarlanr, ardndan BALA butonuna baslr ve 1sn. aralkla geriye doru saymaya balar. Sayma ilemi bittiinde bir k aktif olur ve led yanar. Led yerine bir transistr ve rle balanarak herhangi bir kontrol yaplabilir. Devrede gsterge olarak 6 X 7 segment ortak anotlu display kullanlmtr. ekil 2.8de 7 paral gstergenin yaps gsterilmitir.

ekil 2.8: 7 paral gsterge

7 paral gstergeler ortak anot ve ortak katot olmak zere iki eittir. PIC ile dorudan denetlendiinde, 7 bacak PortBye balanr. Port Bden gelen bilgilerin, gstergede oluturduu ekil, Port Bye aktrlan bilgiye baldr. rnein, segmentte 0 olmas iin, A, B, C, D, E, F girilerinin ortak anot iin 0 , ortak katot iin 1 olmas gerekir. Gsterge ortak katotlu olduunda Port B klar 00111111 olmaldr. Bu atama ikilik olarak yaplabilecei gibi onluk veya onaltlk olarak da yaplabilir. Yukardaki ikilik saynn karl D "63" , H "3F" tir. Yani onluk 63 says ikilik olarak ifade edildiinde, karl B "00111111"dir. Bu da Port Bde "0" gsterir. Sonuta Port Bye atanan onaltlk veya onluk saysnn ikilik karldr.
Onluk 63 6 91 79 102 109 125 7 127 111 Onaltlk 3F 06 5B 4F 66 6D 7D 07 7F 6F kilik 00111111 00000110 01011011 01001111 01100110 01101101 01111101 00000111 01111111 01101111 7 Paral Gsterim 0 1 2 3 4 5 6 7 8 9

Tablo 2.5: 7 paral ortak katotlu gsterge evrim tablosu

90

Tablo 2.5te evrim tablosuna onaltlk veya onluk olarak yazdmz say, ikilik karlna evrilerek PIC portlarndan gstergeye aktarlr ve bir grnt oluur. Gstergeye veri gndermek iin programda CALL RETLW komut ikilisi kullanlr. RETLW komutu RETURN komutu gibi bu da alt programdan ana programa dn iin kullanlr. Bu komut ana programa dnte karsnda yazlan deeri Write kaydedciye yazar. Bunun iin program counter (PC) kullanlr. PCler PIClerde kullanlan bir kaydedicidir. PIC belleinin deerine gre 10 ila 14 bitlik olabilir. 10 bit yani 210 = 1024 byte olduundan ve PIC16F84n de 1 Kbytelk bir program bellei olduundan bunu adreslemek iin saycya 10-bit yeterlidir. PIC16F84in PCsi 13 bittir. lk 8 biti PCL'dir ve bununla 256 byte adreslenir. Dier 5 biti PCH'tir ve bunun dorudan okunup yazlmas mmkn deildir, bu taraf ancak PLATCH kaydedicisi ile kullanlr. Programda PC olarak tm kaydedici bitleri kullanlrsa PLATCH kaydedicisinin st 2 bitini sfrlamak gerekir. Bu sebeple dar kapasiteli kullanmlarda PC yerine PCL yazlarak bunun nne geilir. (ADDWF PCL, F) Devrede kullanlan gstergeyi srmek iin 7447 entegresi kullanlmtr. 7447 BCD kodunu 7 paral gstergeye dntrr. 7447 aktif sfrdr ve ortak anotlu gstergede kullanlr kullanlr. rnein, displayde 0 yazdrmak iin giriine 0000 uygulanrken knda 0000001 elde edilir. Bu ekilde G ledi dnda tm ledler yanar. Gnderdiimiz veri 6 gstergenin sadece birinde grntlenir. Bunun iin gsterge semek gerekir. Ortak anotlu gstergede 1, ortak katotlu displayde ise 0 uygulanarak seme yaplr. Gstergenin 6 giriinden hangisi 1 olursa o gsterge seilir. Gsterge semek iin Seme ileminde 6 giriin tamam PICin portlarna balanr. 1 bilgisi tm girilere kaydrlarak gnderilir. Tarama sresi ok ksa olduundan gstergedeki tm ledlerde ayn anda k elde edilir. Port says yeterli deilse seme ileminde sayc ya da kaydran kaydedici entegreleri kullanlr. Devremizde 4017nin 10lu sayc entegresi kullanlmtr. Saycya saat sinyali uygulandnda kndaki veriyi kaydrr ve sayma ilemini gerekletirir. Entegrenin aktif olmas iin Enable girii 0 olmaldr. Gstergeye veri yazma ileminde sayc entegresi resetlenmelidir. nk entegrenin tm klar kullanlmamtr.

Devrede ayr ayar butonu bulunmaktadr. Bunlar: H butonu saati ayarlamak iin kullanlr. Saat 0 24 olarak ayarlanmtr. M butonu dakikay ayarlamak iin kullanlr. S butonu ise saniyeyi ayarlamak iin kullanlr.

91

2.3.1. Devrenin Malzemeleri ve Ak Diyagram


PIC16F84 4MHz mikrodenetleyici 4MHz kristal, 5xbuton , C1 = C2 = 22pf 6x 7-paral gsterge, LED R1 = R2 = R3 = R4 = R5= R6 = R7 = R13 = 330 R8 = R9 = R10 = R11= R12 = 10 K 7447 ve 4017 entegreleri
BALA

PORT_KUR

TEMZLE

RESET

GSTER

SAAT H, M , S BUTONLARIY LA SAAT KUR

BALA BASILI MI?

SAYMAYI BALAT VE GSTER

Tablo 2.6: Sayc ak diyagram

92

2.3.2. Devrenin emas

ekil 2.9: Zamanlayc devresi

2.3.3. Devrenin Asm Program


LIST INCLUDE P=16F84 "P16F84.INC"

I EQU H'0C' STATUS_Y EQU H'0D' W_Y EQU H'0E' SAYI EQU H'10' SN EQU H'1A' COUNT EQU H'1C' SAYAC1 EQU H'20' SAYAC2 EQU H'21' ORG H'00' GOTO BASLA ORG H'04' GOTO KESME BASLA;................................................................................................................................ BCF PORTB,3 CLRWDT 93

CALL CALL CALL CALL TUS_ARA BTFSS CALL BTFSS CALL BTFSS CALL BTFSS GOTO CALL GOTO SAY BSF MOVLW MOVWF BCF CALL GOTO

PORT_KUR TEMIZLE RESET GOSTER PORTB,4 SANIYE PORTB,5 DAKIKA PORTB,6 SAAT PORTB,0 SAY GOSTER TUS_ARA STATUS,5 B'10000100' OPTION_REG STATUS, 5 GOSTER SAY

: Portlar kur. : Register ieriklerini sfrla. : Entegreyi sfrla. : Display'lere yaz.

: Bank 1 se. : TMR0 seili : Prescaler d <-- 32 : Bank 0 se.

PORT_KUR;.......................................................................................................................... BSF STATUS,5 : Bank 1 se. MOVLW H'00' : Port A k MOVWF TRISA MOVLW H'F8' MOVWF TRISB MOVLW B'10100000' : GIE --> 1, T0IE -->1 MOVWF INTCON BCF STATUS,5 : Bank 0 se. RETURN TEMIZLE;........................................................................................................................... MOVLW SAYI : lk register adresini tut. MOVWF FSR MOVLW H'0F' : 15 adet deikeni MOVWF I : sra ile SIFIR CLRF INDF : sfrla INCF FSR DECFSZ I GOTO SIFIR RETURN

94

GOSTER;............................................................................................................................ CALL RESET : Display reset MOVLW 6 : say dizisinin boyutu MOVWF I ;i <-- 4 MOVLW SAYI : say dizisinin balang adresini MOVWF FSR : FSR'e yaz. TARA MOVF INDF ,W : dizi elemann W'e yaz. MOVWF PORTA : Port Adan gnder. CALL GECIKME : Bir sre bekle. INCF FSR : Dizinin bir sonraki elemanna ula. CALL PALS : Bir sonraki dijiti se. DECFSZ I : Dizinin son elemanna ulald m? GOTO TARA : Hayr taramaya devam et. RETURN : Evet alt programdan k. GECIKME;................................................................................................................ MOVLW H'FF' : COUNT <-- H'FF' MOVWF COUNT DON DECFSZ COUNT,F : COUNT=COUNT-1, C=0 MI? GOTO DON : Hayr. DON etiketine git. RETURN : Evet. Alt programdan k. PALS;.......................................................................................................................... BSF BCF RETURN PORTB,2 PORTB,2 : CLK -->1 : CLK -->0 : Den kenar tetikleme.

RESET;.......................................................................................................................... BSF PORTB, 1 : RESET --> 1 aktif BCF PORTB, 1 : RESET --> 0 CLRWDT RETURN SANIYE;......................................................................................................................... CALL INCF MOVLW SUBWF BTFSS GOTO CLRF INCF MOVLW SUBWF BTFSS GECIKME1 SAYI D'10' SAYI,W STATUS,2 SANIYE_SON SAYI SAYI+1 D'6' SAYI+1,W STATUS,2 95 : Bir sre bekle. : SAYI = SAYI+1 : W --> D'10' : SAYI[0]= 10? : Hayr. Saniye_sona git. : Evet. SAYI[0]=0 : SAYI[1]= SAYI[1]+1 : W-->6 : SAYI[1] = 6?

GOTO CLRF SANIYE_SON RETURN

SANIYE_SON SAYI+1

: Hayr. Saniye_sona git : Evet. SAYI[1]=0

DAKIKA;.. CALL INCF MOVLW SUBWF BTFSS GOTO CLRF INCF MOVLW SUBWF BTFSS GOTO CLRF DAKIKA_SON RETURN GECIKME1 SAYI+2 D'10' SAYI+2,W STATUS,2 DAKIKA_SON SAYI+2 SAYI+3 D'6' SAYI+3,W STATUS,2 DAKIKA_SON SAYI+3 : Bir sre bekle : SAYI[2] = SAYI[2]+1 : W --> D'10' : SAYI[2]= 10? : Hayr. Dakika_sona git : Evet. SAYI[2]=0 : SAYI[3]= SAYI[3]+1 : W-->6 : SAYI[3] = 6? : Hayr.Dakika_sona git : Evet. SAYI[3]=0

SAAT;.. CALL GECIKME1 : Bir sre bekle INCF SAYI+4 : SAYI[4] = SAYI[4]+1 MOVLW D'2' : W --> D'2' SUBWF SAYI+5,W BTFSC STATUS,2 : SAYI[5]= 2? GOTO S2 : Evet. S2ye git MOVLW D'10' : W --> D'10' SUBWF SAYI+4,W BTFSS STATUS,2 : SAYI[4]= 10? GOTO SAAT_SON : Hayr Saat_sona git CLRF SAYI+4 : Evet. SAYI[4]=0 INCF SAYI+5 : SAYI[5] = SAYI[5]+1 GOTO SAAT_SON S2 MOVLW D'4' : W --> D'4' SUBWF SAYI+4,W BTFSS STATUS,2 : SAYI[4]= 4? GOTO SAAT_SON : Hayr Saat_sona git. CLRF SAYI+4 : Evet. SAYI[4]=0 CLRF SAYI+5 : Evet. SAYI[5]=0 SAAT_SON RETURN

96

GECIKME1;................................................................................................................... MOVLW H'50' MOVWF SAYAC1 NEXT2 MOVLW H'FF' MOVWF SAYAC2 NEXT1 DECFSZ SAYAC2,F GOTO NEXT1 DECFSZ SAYAC1,F GOTO NEXT2 RETURN KESME;............................................................................................................................... MOVWF W_Y : W_Y <-- W MOVF STATUS,W MOVWF STATUS_Y :_STATUS <--- STATUS CALL TIMER : TIMER alt programn ar. MOVF STATUS_Y,W MOVWF STATUS : STATUS deerini geri ykle. MOVF W_Y,W : W deerini geri ykle. RETFIE TIMER;.................................................................................................................................... BCF INTCON,T0IF : T0IF bayran sfrla. INCF SN : SN= SN + 1 MOVLW D'125' SUBWF SN,W : 1sn ayar BTFSS STATUS,2 : Z= 1 mi? GOTO TIMER_SON : Hayr CLRF SN : Evet sn=0 CALL AZALT : Displaydeki sayy azalt. TIMER_SON RETURN AZALT;................................................................................................................................... MOVLW D'0' : W D'0' SUBWF SAYI,W BTFSC STATUS,2 : SAYI[0]= 0? GOTO DECF GOTO MOVLW SUBWF BTFSC GOTO DECF MOVLW BIR SAYI AZALT_SON D'0' SAYI+1,W STATUS,2 IKI SAYI+1 D'9' 97 : Evet BIR etiketine git. : SAYI[0]=SAYI[0]-1 : WD 0 : SAYI[1]= 0? : Evet IKI etiketine git : SAYI[1]=SAYI[1]-1 : W --> D'9'

BIR

MOVWF GOTO IKI MOVLW SUBWF BTFSC GOTO DECF MOVLW MOVWF MOVLW MOVWF GOTO MOVLW SUBWF BTFSC GOTO DECF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF GOTO MOVLW SUBWF BTFSC GOTO DECF MOVLW MOVWF MOVWF MOVLW MOVWF MOVWF GOTO MOVLW SUBWF BTFSC GOTO DECF MOVLW MOVWF

SAYI AZALT_SON D'0' SAYI+2,W STATUS,2 UC SAYI+2 D'5' SAYI+1 D'9' SAYI AZALT_SON D'0' SAYI+3,W STATUS,2 DORT SAYI+3 D'9' SAYI+2 D'5' SAYI+1 D'9' SAYI AZALT_SON D'0' SAYI+4,W STATUS,2 BES SAYI+4 D'9' SAYI+2 SAYI D'5' SAYI+1 SAYI+3 AZALT_SON D'0' SAYI+5,W STATUS,2 ALTI SAYI+5 D'9' SAYI+4 98

: SAYI[0]=9 : W D0 : SAYI[2]= 0? : SAYI[2]=SAYI[2]-1 : SAYI[1]=5 : SAYI[0]=9

UC

: W D0 : SAYI[3]= 0? : SAYI[3]=SAYI[3]-1 : SAYI[2]=9 : SAYI[1]=5 : SAYI[0]=9

DORT

: W D0 : SAYI[4]= 0? : SAYI[4]=SAYI[4]-1

BES

MOVWF MOVWF MOVLW MOVWF MOVWF GOTO ALTI BSF BCF GOTO AZALT_SON RETURN END

SAYI+2 SAYI D'5' SAYI+1 SAYI+3 AZALT_SON PORTB,3 INTCON,T0IE BASLA

2.4. Proje Uygulamas


Proje uygulamasnda grup almas yaplacak ve her bir grup farkl bir proje konusu tespit edecektir. Aada rnek projeler verilmitir.

2.4.1. Proje 1
Drt Kavakl Yolun Trafik Lamba Uygulamas

L3

L4 L1

L2

stteki ekilde grld gibi 4 ayr lamba grubu bulunmaktadr. L1- L2 - L3 ve L4 gruplarnda sar, krmz ve yeil lambalar bulunmaktadr. Lambalarn yank kalma sreleri ve hangi yolun nce balayaca programcya braklmtr. Sistem BASLA butonu ile balayacaktr.

99

Devrenin ak diyagram karlr. ASM program yazlr. Devre iin gerekli malzemeler ayarlanr. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.

2.4.2. Dijital Saat Uygulamas


Saat 7 paral gsterge ve LCD gsterge ile yaplacaktr. Saat ayarlanabilir olacak. Saat, dakika ve saniye ayar iin ayr butonlar bulunacak. Ayar yapldktan sonra saatin almas BALA butonu ile balatlacaktr. Devrenin ak diyagram karlr. ASM program yazlr. Devre iin gerekli malzemeler ayarlanr. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.

2.4.3. Termometre Uygulamas


Scaklk LM35DZ sensr ile llecek, analog sinyal dijital sinyale dntrlecek ve LCD ekrannda gsterilecektir. LCDnin ilk satrnda SICAKLIK yazdrlacak ve ikinci satrnda ise llen scakln deeri yazdrlacaktr. Devrenin ak diyagram karlr. ASM program yazlr. Devre iin gerekli malzemeler ayarlanr. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.

2.4.4. Bipolar Adm Motor Denetimi


Mikrodenetleyici ile bipolar adm motorunu dndrmektedir. Sistemde 2 buton kullanlmtr. Butonlardan biri motorun hzn artrmakta dieri ise motorun hzn azaltmaktadr. Devrenin ak diyagram karlr.

100

ASM program yazlr. Devre iin gerekli malzemeler ayarlane. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.

2.4.5. ifreli Kilit Uygulamas


ifrenin yazm iin devrede 16 ve 12lik tu takm kullanlacaktr. ifre programc tarafndan programda belirlenecektir. ifre yanl girildiinde tekrar ifre girilebilecektir. ifre doru girildiinde kapya bal olan elektronik kilit alacaktr. Bu kilit bir transistr ve role ile kontrol edilebilir. Devrenin ak diyagram karlr. ASM program yazlr. Devre iin gerekli malzemeler ayarlanr. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.

101

UYGULAMA FAALYET UYGULAMA FAALYET


Sistemin yazlmn programlayp mikrodenetleyici ile altrnz.

lem Basamaklar

neriler

Mikrodenetleyici olarak PIC 16F84 Kurulacak sistem iin ihtiyalar (devre kullannz. elemanlarn) tespit ediniz. Program yazdktan sonra MPLAB ile htiyacnz karlayacak deneyiniz. mikrodenetleyiciyi seiniz. Program mikrodenetleyiciye yklerken Sisteminin almas iin gerekli kullanlan PIC programlaycya uygun program yaznz. yazlm kullannz. Program mikrodenetleyiciye ykleyiniz. Devreyi Proteus programnda altrarak evre elemanlar ile devreyi kurunuz. deneyiniz.

Devre iin gerekli giri elemanlar ve Kullandnz devre elemanlarnn zelliklerini belirleyiniz. zelliklerini internetten aratrnz. Devre iin gerekli k elemanlar ve Bask devreyi, devre emasn Proteus zelliklerini tespit ediniz. programndan Ares programna Devrenin bask devre emasn kartnz. aktrarak karnz. Devre elemanlarnn ve Devrenin montajn yapmadan nce mikrodenetleyicinin montajn yapnz. bredboard zerinde kurarak deneyiniz.

KONTROL LSTES
Bu faaliyet kapsamnda aada listelenen davranlardan kazandnz beceriler iin Evet, kazanamadklarnz iin Hayr kutucuklarna ( X ) iareti koyarak rendiklerinizi kontrol ediniz. Deerlendirme ltleri Kurulacak sistem iin ihtiyalar tespit ettiniz mi? htiyac karlayacak mikrodenetleyiciyi setiniz mi? Sistemin mikrodenetleyici programn yazdnz m? Program mikrodenetleyiciye yklediniz mi? evre elemanlar ile devreyi kurdunuz mu? Evet Hayr

1. 2. 3. 4. 5.

DEERLENDRME
Deerlendirme sonunda Hayr eklindeki cevaplarnz bir daha gzden geiriniz. Kendinizi yeterli grmyorsanz renme faaliyetini tekrar ediniz. Btn cevaplarnz Evet ise lme ve Deerlendirmeye geiniz. 102

LME VE DEERLENDRME LME VE DEERLENDRME


Aadaki cmlelerde bo braklan yerlere getirilecek bilgilerin bulunduu seenei iaretleyiniz. 1. LCDye veri yazmak iin E giriine hangi kenar tetiklemeli sinyal uygulanmaldr? A) Den kenar B) Ykselen kenar C) Pozitif seviye D) Negatif seviye DECFSZ, CX komutunun grevi nedir? A) CX deikenini bir artr, eer sfrsa bir alt komuta git. B) CX deikenini bir artr. C) CX deikenini bir azalt, eer sfrsa bir alt komuta git. D) CX deikenini bir azalt. MPSAM programnn grevi nedir? A) HEX uzantl dosyay, ASM uzantl dosyaya evirir. B) ASM uzantl dosyay, HEX uzantl dosyaya evirir. C) HEX uzantl dosyay PICe yazdrr. D) ASM uzantl dosyay PICe yazdrr. LCDye komut yazdrmak iin RW, RS, E komutlarnn deeri aadakilerden hangisidir? RW RS E A) 0 0 10 B) 1 1 10 C) 0 0 01 D) 1 0 10 PORTBnin bacaklarn giri k giri k k giri giri k olarak ayarlamak iin aadaki girilerden hangisi uygulanmaldr? RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 A) 1 0 1 0 0 0 0 1 B) 1 1 1 1 0 0 0 1 C) 0 1 0 1 0 1 1 0 D) 1 0 1 0 0 1 1 0

2.

3.

4.

5.

DEERLENDRME
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyete geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise Modl Deerlendirmeye geiniz. 103

MODL DEERLENDRME MODL DEERLENDRME


Aadaki cmlede bo braklan yere getirilecek bilgilerin bulunduu seenei iaretleyiniz. 1. INTCON kaydedicisi uygulamalarnda kullanlr. Bolua aadakilerden hangisi gelmelidir? A) Giri B) k C) Kesme D) Reset Bit test etmek iin kullanlan komut.. dir. Bolua aadakilerden hangisi gelmelidir? A) BTFSS B) IORLW C) DECFSZ D) SUBWF Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz. 3. STATUS registerinde bulunan RP0 ve RP1 bitlerinin grevi aadakilerden hangisidir? A) Kesmenin geerli olmas iin kullanlr. B) lemlerde tama meydana geldiinde kullanlr. C) lemlerin sonucu sfr olduunda kullanlr. D) Bank deitirmek iin kullanlr. PIC16F84te kesme meydana geldiinde program hangi adrese atlamaktadr? A) H00 B) H02 C) H04 D) H06 Aadaki seeneklerden hangisi PICi programlamak iin gerekli deildir? A) MPSAM ASM derleyici B) PIC programlayc C) MPLAB PFE D) PROTEUS program LCDye veri yazmak iin E giriine hangi kenar tetiklemeli sinyal uygulanmaldr? A) Den kenar B) Ykselen kenar C) Pozitif seviye D) Negatif seviye 104

2.

4.

5.

6.

7.

DECFSZ, CX komutunun grevi nedir? A) CX deikenini bir artr, eer sfrsa bir alt komuta git. B) CX deikenini bir artr. C) CX deikenini bir azalt, eer sfrsa bir alt komuta git. D) CX deikenini bir azalt. MPSAM programnn grevi nedir? A) HEX uzantl dosyay, ASM uzantl dosyaya evirir. B) ASM uzantl dosyay, HEX uzantl dosyaya evirir. C) HEX uzantl dosyay PICe yazdrr. D) ASM uzantl dosyay PICe yazdrr. LCDye komut yazdrmak iin RW, RS, E komutlarnn deeri aadakilerden hangisidir? RW RS E A) 0 0 10 B) 1 1 10 C) 0 0 01 D) 1 0 10 PORTBnin bacaklarn giri k giri k k giri giri k olarak ayarlamak iin aadaki girilerden hangisi uygulanmaldr? RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 A) 1 0 1 0 0 0 0 1 B) 1 1 1 1 0 0 0 1 C) 0 1 0 1 0 1 1 0 D) 1 0 1 0 0 1 1 0

8.

9.

10.

DEERLENDRME
Cevaplarnz cevap anahtaryla karlatrnz. Yanl cevap verdiiniz ya da cevap verirken tereddt ettiiniz sorularla ilgili konular faaliyetlere geri dnerek tekrarlaynz. Cevaplarnzn tm doru ise bir sonraki modle gemek iin retmeninize bavurunuz.

105

CEVAP ANAHTARLARI CEVAP ANAHTARLARI


RENME FAALYET-1N CEVAP ANAHTARI
1 2 3 4 5 C D C D A

RENME FAALYET-2NN CEVAP ANAHTARI


1 2 3 4 5 A C B B D

MODL DEERLENDRMENN CEVAP ANAHTARI


1 2 3 4 5 6 7 8 9 10 C A D C D A C B B D

106

KAYNAKA KAYNAKA
ALTINBAAK Orhan, Mikrodenetleyiciler ve PIC Programlama, stanbul, 2000. Doan BRAHIM, Hamit I. MUSTAFA, PIC Programlama ve leri PIC Projeleri, stanbul, 2004. KARAKA Hakan, leri PIC 16F84 Uygulamalar 1, stanbul ,2002. TOPALOLU Nurettin, Salih GRGNOLU, Mikrodenetleyiciler, Ankara 2003. Mikroilemciler ve

107

You might also like