Professional Documents
Culture Documents
ELEKTRK-ELEKTRONK TEKNOLOJS
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
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.
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.
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)
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.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
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
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.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.
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.
CALL
GECIKME1
; 60sn. bekle
; 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
11
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).
Dosyay derlemek iin Project ara ubuundan ekil 1.6da grlen simgeye tklanr ya da Project mensnden Built All seenei seilir.
Kaynak kod dosyas ekil 1.7de gsterildii gibi derlenir. Eer hata yoksa Built completed succesfully mesaj ile ilem tamamlanr.
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.
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.
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.
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.
15
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.
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.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.
18
19
;============LAMBA ALT PROGRAMI============== LAMBA BSF CALL BCF ; PortA kn aktif yap ; PortA kn pasif yap
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
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.
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)
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.
DDRAM Adres ayar (ikinci satrn adresleri) Busy Flag / Adres saya okuma
23
I D
Decrement
(0) ve
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
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.
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
E
MESAJ2 E
MESAJ_VER1
A3 basl m?
H LCD_YAZ
E
MESAJ3
VERICNT +1 GECKME2
A4 basl m?
H
BUZZER pasif RETURN
E
MESAJ4
27
28
;=====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'
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
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
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
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?
E
SA_K1=0 ORTA_K bir artr ORTA_K1 = H 3A ?
A+ ?
E
A_ART
Z= 1 mi?
E
A ?
E
A_AZAL
Z= 1 mi?
B+ ?
E A_SIFIR
E
B_ART
MESAJ2
B?
H RETURN E
B_AZAL
39
40
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
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
: 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
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
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
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.
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
1.5.1.5. Gvde Asenkron motorlarn gvdesi soutmann abuk olmas iin kntl (kanatkl) olarak retilir. Resim 1.4' te motor gvdeleri grlmektedir.
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.
fazl asenkron motorlarn statoruna yaplan sarmlarn ular klemens kutusuna (balant terminali) karlr. Klemens kutusunda bulunan harflerin anlamlar unlardr:
52
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.
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.
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
55
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_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
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
: 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
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
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
: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
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
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
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.
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
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.
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.
79
2.1.2. Ak Diyagram
BASLA
PORT_KUR
GECKME1
KESME
GIE 1 RBIE 1
BUZZER 1 L1 = 0 , L2= 1
H
PORTA, 1 = 0 MI?
E
BUZZER 0
E
GIE 0
RBIF 0
RETFIE
GECKME1
80
81
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
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
Manyetik alglayclar ( hatl alglayclar) dorudan silindir gvdesi zerine yerletirilir. Silindir anahtar getiinde manyetik alan oluur ve anahtarn knda bir sinyal elde edilir.
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)
86
87
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
88
BUTON
S2
S4
S1
S3
89
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
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
PORT_KUR
TEMZLE
RESET
GSTER
92
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
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?
SANIYE_SON SAYI+1
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
UC
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
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.
100
ASM program yazlr. Devre iin gerekli malzemeler ayarlane. Devre emas izilir. Bask devresi karlr. PIC programlanr. Devre elemanlarnn montaj yaplarak devre altrlr.
101
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
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
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
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