You are on page 1of 99

I

T.C.
MLL ETM BAKANLII











ELEKTRK ELEKTRONK TEKNOLOJS











MKRODENETLEYCYLE
ANALOG LEMLER
523EO0022











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.



AIKLAMALAR .................................................................................................................... 3
GR ....................................................................................................................................... 1
RENME FAALYET-1 ..................................................................................................... 2
1. ANALOG VER ................................................................................................................... 2
1.1. Genel Bilgiler ................................................................................................................ 2
1.2. Dijital Analog eviriciler .............................................................................................. 3
1.2.1. Arlk Direnli DAC Devresi ............................................................................... 3
1.2.2. R-2R Merdiven Tipi DAC Devresi........................................................................ 4
1.3. Analog Dijital eviriciler .............................................................................................. 4
1.4. PIC ile DAC Uygulama Devreleri ................................................................................ 5
1.4.1. Arlk Direnle DAC Uygulama Devresi ............................................................ 5
1.4.2. PWM Metodu ile DAC Uygulama Devresi ........................................................... 7
1.5. PIC ile ADC Uygulama Devresi ................................................................................... 9
UYGULAMA FAALYET .............................................................................................. 14
LME VE DEERLENDRME .................................................................................... 15
RENME FAALYET-2 ................................................................................................... 16
2. UYGULAMA DEVRELER ............................................................................................. 16
2.1. Pic 16f877 Entegresinin zellikleri ............................................................................ 16
2.2. A/D evirici Uygulama Devresi ................................................................................. 20
2.2.1. Devrenin Malzemeleri ......................................................................................... 22
2.2.2. Devrenin emas .................................................................................................. 22
2.2.3. Devrenin Asm Program ...................................................................................... 22
2.2.4. Ak Diyagram .................................................................................................... 23
2.3. DC Motor Yn ve Hz Kontrol Devresi ...................................................................... 25
2.3.1. Devrenin Malzemeleri ......................................................................................... 29
2.3.2. Devrenin emas .................................................................................................. 30
2.3.3. Ak Diyagram .................................................................................................... 31
2.3.4. Devrenin Asm Program ...................................................................................... 32
2.4. Istc ve Fan Kontroll Uygulama Devresi ................................................................ 34
2.4.1. Devrenin Malzemeleri ......................................................................................... 34
2.4.2. Devrenin emas .................................................................................................. 36
2.4.3. Ak Diyagram .................................................................................................... 36
2.4.4. Devrenin ASM Program ..................................................................................... 37
UYGULAMA FAALYET .............................................................................................. 47
LME VE DEERLENDRME .................................................................................... 48
RENME FAALYET-3 ................................................................................................... 49
3. PIC BASIC PRO LE PROGRAMLAMA......................................................................... 49
3.1. Programlama Kurallar ................................................................................................ 49
3.1.1. Karlatrma Operatrleri ................................................................................... 50
3.1.2. Aritmetik Operatrler .......................................................................................... 50
3.2. Karar Verme ve Dng lemleri ................................................................................ 52
3.2.1. GOTO Komutu .................................................................................................... 52
3.2.2. IF THEN Komutu ............................................................................................ 52
3.2.3.BRANCH Komutu ............................................................................................... 53
3.2.4. FORNEXT Komutu ......................................................................................... 53
NDEKLER

2

3.2.5. WHILE WEND Komutu ................................................................................. 54
3.3. PBP Komutlar ............................................................................................................ 54
3.3.1. PAUSE Komutu .................................................................................................. 54
3.3.2. PAUSEUS Komutu ............................................................................................. 54
3.3.3. GOSUBRETURN Komutu .............................................................................. 54
3.3.4. rnek Programlar ................................................................................................ 55
3.3.5. LED Flar Devresi ............................................................................................. 55
3.3.6. Sayc Uygulama Devresi .................................................................................... 55
3.3.7. Karaimek Uygulama Devresi ........................................................................... 56
3.3.8. LCD Uygulama Devresi ...................................................................................... 56
3.4. Pc Basc Pro Programnn Kullanm ......................................................................... 58
3.4.1. BAS Dosyasnn Oluturulmas ........................................................................... 58
3.4.2. BAS Dosyasnn Derlenmesi ............................................................................... 61
UYGULAMA FAALYET .............................................................................................. 66
LME VE DEERENDRME ....................................................................................... 67
RENME FAALYET-4 ................................................................................................... 68
4. PIC BASIC LE UYGULAMA DEVRELER .................................................................. 68
4.1. Voltmetre Uygulama Devresi ..................................................................................... 68
4.1.1. Devrenin Malzemeleri ......................................................................................... 69
4.1.2. Devrenin emas .................................................................................................. 70
4.1.3. Devrenin Asm Program ...................................................................................... 70
4.1.4. Ak Diyagram .................................................................................................... 72
4.2. DC Motor Devir Ayar Uygulama Devresi .................................................................. 73
4.2.1. Devrenin Malzemeleri .............................................................................................. 73
4.2.1. Devrenin emas .................................................................................................. 73
4.2.3. Ak Diyagram .................................................................................................... 74
4.2.3. Devrenin Asm Program ...................................................................................... 75
4.3. izgi Takip Eden Robot Uygulama Devresi ............................................................... 77
4.3.1. Alglama Sistemi ................................................................................................. 78
4.3.2. Karlatrma Sistemi ........................................................................................... 80
4.3.3. Kullanlan Malzemeler ........................................................................................ 81
4.3.4. Devrenin emas .................................................................................................. 82
4.3.5. Ak Diyagram ................................................................................................... 83
4.3.6. Asm Program ...................................................................................................... 84
UYGULAMA FAALYET .............................................................................................. 87
LME VE DEERLENDRME .................................................................................... 89
MODL DEERLENDRME .............................................................................................. 90
CEVAP ANAHTARLARI ..................................................................................................... 92
KAYNAKA ......................................................................................................................... 94




3

AIKLAMALAR
KOD 523EO0022
ALAN Elektrik-Elektronik Teknolojisi
DAL/MESLEK Dal Ortak
MODLN ADI Mikrodenetleyici ile Analog lemler
MODLN TANIMI
Bu modl mikrodenetleyiciler ile analog uygulama devreleri
yaplmas ile ilgili bilgi ve becerilerin kazandrld bir
renme materyalidir.
SRE 40/24
N KOUL Bu modln n koulu yoktur.
YETERLK Mikrodenetleyici ile analog ilemleri yapmak
MODLN AMACI
Genel Ama
Bu modl ile gerekli ortam salandnda, mikrodenetleyici
ile analog ilemler yapabileceksiniz.
Amalar
1. Mikrodenetleyici ile ADC/DAC dntrme
yapabileceksiniz.
2. Mikrodenetleyici ile analog uygulama devreleri
yapabileceksiniz.
3. Picbasic pro program ile programlama yapabileceksiniz.
4. Picbasic pro program ile uygulama devreleri
yapabileceksiniz.
ETM RETM
ORTAMLARI VE
DONANIMLARI
Ortam: Elektrik-elektronik laboratuvar, iletme,
ktphane, ev, bilgi teknolojileri ortam vb.
Donanm: Bilgisayar, projeksiyon cihaz, izim ve
simlasyon programlar, kataloglar, deney setleri, alma
masas, avometre, bread board, eitmen bilgi sayfas, havya,
lehim, elektrikli almalar, anahtarlama elemanlar, yardmc
elektronik devre elemanlar, elektrik-elektronik el takmlar
LME VE
DEERLENDRME
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.


AIKLAMALAR


GR

Sevgili renci,

Gnmzde pek ok i, yapsnda mikroilemci bulunan makineler ile gerekletirilir.
Mikroilemci (CPU) ile kontrol edilen sistemlerde bunun dnda RAM, Bios, I/0 nitesi gibi
ek birimlere ihtiya duyulur. Bu ekilde hem maliyet artar hem de ilemler zorlar. Btn bu
olumsuzluklar ortadan kaldran devre eleman mikrodenetleyicidir. Pek ok firma
mikrodenetleyici retmektedir fakat Microchip firmasnn PIC (Pripheral Interface
Controller -evre birimlerini kontrol eden nite) adn verdii denetleyici uygulamalarda
geni yer bulmaktadr.

Bu modldeki birka uygulamada PIC 16F84 kullanlmtr. 16F84 entegresi analog
ilemler iin snrl olduundan dolay ou uygulamada 16F877 entegresi tercih edilmitir.

Modldeki uygulamalar takip ederek analog 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.

GR

2

RENME FAALYET-1



Mikrodenetleyici ile ADC/DAC dntrme yapabileceksiniz.



Analog veriyi renmelisiniz.
ADC ve DAC devre eitleri ile ilgili bilgi edinmelisiniz.
ADC ve DAC ilemlerinde niin mikrodenetleyicinin kullanldn
aratrmalsnz.
Aratrma ilemleri iin Mikrodenetleyici ile Dijital lemler modln gzden
geirebilir ve internet ortamndan yararlanabilirsiniz.

1. ANALOG VER

1.1. Genel Bilgiler

Sfrdan sonsuza kadar devaml olarak deiim gsteren byklk analog byklk
olarak tanmlanr. Bilindii gibi grlen ve duyulan byklklerin tamam, analog
bilgi tipindedir. nk bu deerler srekli deimektedir.

Fiziksel bir byklk bilgi ekline dntrlrken bilgiyi temsil eden iaret dorudan
doruya fiziksel bykln benzeri ise oluan iaret analog iaret olarak adlandrlr. Bu
analog iaretlerin alglanmas ve deerlendirilmesi, ancak insanolu tarafndan mmknken
bilgisayarlar ve mikroilemciler tarafndan mmkn deildir. Dijital sistemlerin d dnya ile
balantlarn salamak iin llen fiziksel byklklerin dijital sistemin anlayabilecei
saysal deerlere dntrlmeleri gerekir. Analog bilgiyi saysal deerlere dntren
elemanlara analog dijital evirici (ADC Analog Dijital Converter) ad verilir.

ekil 1.1: Saysal bir sistemin blok diyagram
RENME FAALYET1
AMA
ARATIRMA

3

Dijital bir bilginin analog iaretlere evirmesi iin kullanlan elemanlara dijital analog
evirici (DAC Dijital Analog Converter) ad verilir. Birok elektronik cihaz saysal sistemin
giri ve kna balanarak kullanlr. Bu cihazalar saysal sistemlerde A/D ve D/A
dntrcler ile birlikte kullanlabilir. ekil 1.1de bu sistemlerin blok diyagram
gsterilmitir.

1.2. Dijital Analog eviriciler

Dijital bilgi sinyalini, saysal deerine orantl olarak gerilim veya akma dntren
devrelere dijital analog evirici denir. Bu gerilim veya akm, giriteki deerlere gre deien
bir analog sinyaldir. ekil 1.2de 4 bit girili DACn blok diyagram grlmektedir.

ekil 1.2: DAC sistemin blok diyagram
D/A evirme ilemlerinde genellikle arlk direnli DAC, R-2R merdiven tipi DAC
veya PWM (PulseWidth Modulation - Darbe genilikli modlasyon) metodu kullanlr.

1.2.1. Arlk Direnli DAC Devresi

ekil 1.3te D/A eviricinin basit bir devresi grlmektedir. Devrede OP-AMP
toplayc olarak kullanlmaktadr. D, C, B, A dijital girilerin arlklarnn toplam kadar
kta gerilim elde edilir.

k gerilimi ,

olarak bulunur.

ekil 1.3: Arlk direnli DAC devresi

4

1.2.2. R-2R Merdiven Tipi DAC Devresi

Dijital bilginin analog bilgiye evrilmesinde en fazla kullanlan yntemdir. R- 2R
merdiven tipi devresi ekil 1.4te gsterilmitir. k gerilimi aadaki gibi hesaplanr.



ekil 1.4: R-2R DAC devresi
1.3. Analog Dijital eviriciler

Analog dijital eviriciler analog giri gerilimini alr ve belirli bir sre iinde analog
giri deerini gsteren saysal k kodu retir. ekil 1.5te analog dijital sistemin blok
diyagram gsterilmitir.

ekil 1.5: ADC sistemin blok diyagram
Basn, scaklk gibi fiziksel deiimi veya akm, gerilim gibi analog sinyalleri
mikrodenetleyici sistemlere direk uygulanmadndan A/D eviriciler kullanlr. ADC
devrelerinin temeli karlatrcya dayanr. Karlatrc devresinde OP-AMPn
girilerinden birine referans gerilimi dierine ise giri gerilimi uygulanr. ekil 1.6da
OPAMPl karlatrc devresi grlmektedir.

5


ekil 1.6: OP-AMP la yaplan karlatrc devresi
ekil 1.6daki devrede zener gerilimi referans gerilimini belirler. Referans gerilimi
OP-AMPn + giriidir. Giri gerilimini potansiyometre 0-12V arasnda deitirir. Giri
gerilimi OP-AMPn - giriidir. Giri gerilimi referans geriliminden byk olursa k -V
olur ve D3 LEDi yanar. Giri gerilimi referans geriliminden kk olursa k +V olur ve
D2 LEDi yanar. ki gerilim eit olursa k 0V olur.

1.4. PIC ile DAC Uygulama Devreleri

Bu uygulamalarda kullanlan PIC 16F84n analog girii bulunmadndan bu
ilemler DAC veya ADC devreleri yardmyla yaplr. ekil 1.1de bulunan blok diyagramda
bu yap gsterilmitir.

1.4.1. Arlk Direnle DAC Uygulama Devresi

PIC ile yaplan uygulamada A portunun 0. bitine bal olan bir butona her basldnda
ktaki gerilimi artran dijital analog evirici uygulamasdr. Dijital analog evirici olarak
arlk direnli DAC devresi kullanlmtr. ekil 1.7de uygulama devresi gsterilmitir.


6


ekil 1.7: PIC 16F84A ile DAC uygulama devresi

;========DAC UYGULAMA PROGRAMI=============

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
ART EQU H'0F' ; programlarda 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,0 ;PORTA nn 1.biti 0 m?
GOTO BUTON ;Hayr, tekrar test et

; Deikeni artr ve porta gnder..
MOVLW H00 ;W H00

7

MOVWF ART ;ART =W
DON
MOVF ART,W ;W ART
ANDLW B00001111 ;Portun dk olan bitlerini sfrla
MOVWF PORTB ;PORTB ye bilgiyi gnder
INCF ART,F ;ART deikeninin ieriini bir artr
CALL GECIKME ;GECIKME alt programn ar
GOTO BUTON ;Butonu kontrol et

; gecikme alt program
GECIKME
MOVLW HFF ;W<--HFF
MOVWF SAYAC1 ;SAYAC1 <--W
D1
MOVLW HFF ;W<--HFF
MOVWF SAYAC2 ;SAYAC2 <--W
D2
DECFSZ SAYAC2,F ;Sayac2 bir azalt ve sfr m? kontrol et
GOTO D2 ;Hayr D3 e git
DECFSZ SAYAC1,F ;Sayac1 bir azalt ve sfr m?
GOTO D1 ;Hayr D1 e git
RETURN
END

Devrede butona her baslta PORTBnin yksek bitlerindeki dijital bilgi artrlr.
Portun kna balanan DAC devresi ile PIC in kndaki dijital bilgi analog sinyale
dntrlr.

1.4.2. PWM Metodu ile DAC Uygulama Devresi

PWM (Pulse Width Modulation) darbe genilik modlasyonudur. PWM sinyali kare
dalga bir sinyaldir. Bu kare dalga sinyalin darbe genilii artrlp azaltlarak PWM sinyal
elde edilir. PWM yntemi motor hz kontrol, lambann parlaklk ayar gibi uygulamalarda
kullanlmaktadr. Darbelerin genilii arttka motorun hz veya lambann parlakl artar,
darbelerin genilii azaldka orantl olarak azalr.

PWM sinyalin darbe genilii k geriliminin ortalama deeriyle doru orantldr.

Darbe genilii %50 ise k gerilimi



Darbe genilii %25 ise k gerilimi




8

Darbe genilii %75 ise k gerilimi

olur.

PWM sinyal kare dalga olduundan k srekli 1 ve 0 olarak deitirilir. Burada
nemli olan gecikme alt programnn sresidir. Darbe genilii %50 olursa tek gecikme alt
program kullanlr. Dier durumlarda ise iki gecikme alt program kullanlr.

Gecikme dngsnde saya hFF kullanldnda sayacn sfrlanmas iin programn
256 kez altrlmas gerekir. Dngde kullanlan sayacn alaca deerler aada
gsterilmitir.

2.5Vluk k iin gerekli sre
256 X (%50) = 128 h80 ( %50 darbe genilii iin gerekli sre)

1.25Vluk k iin gerekli sre
256 X (%25) = 64 h40 (%25 darbe genilii iin gerekli sre)

1 Vluk k iin gerekli sre
256 X (%20) = 51.2= 51 h33 ( %20 darbe genilii iin gerekli sre)

Aada asm program verilen devrede PortB bal olan 1. bit knda 2Vluk bir
gerilim retilmektedir. Gerilim 2V olduundan darbe genilii %40 olmaldr. Yani
kullanlan alt programlarn sayalar h66 ve h9A olmaldr.

;========PWM UYGULAMA PROGRAMI=============

LIST P=16F84
INCLUDE "P16F84.INC"

SAYAC1 EQU H'0C' ;Gecikme alt programlarnda kullanlan deiken
SAYAC2 EQU H'0D' ;Gecikme alt programlarnda kullanlan deiken

;Portlar Ayarla
CLRF PORTB ;PORTByi temizle
BSF STATUS,5 ;BANK1e ge
CLRF TRISB ;PORTB k
BCF STATUS,5 ;BANK0a ge

; Programn balangc
BASLA
BSF PORTB, 1 ;k 1 yani 5V yap
CALL GECIKME1 ;Darbe genilii %40 sresini bekle
BCF PORTB,1 ;k 0 yani 0V yap
CALL GECIKME2 ;%60 sresince 0V olarak bekle

9

GOTO BASLA ;BASLA etiketine git
GECIKME1
MOVLW H66 ;W<--H66'
MOVWF SAYAC1 ;SAYAC1 <--W
D1
DECFSZ SAYAC1,F ;Sayac1 bir azalt ve sfr m? Kontrol et
GOTO D1 ;Hayr D1e git
RETURN
GECIKME2
MOVLW H9A ;W<--H9A
MOVWF SAYAC2 ;SAYAC2 <--W
D2
DECFSZ SAYAC2,F ;Sayac2 bir azalt ve sfr m? Kontrol et
GOTO D2 ;Hayr D2e git
RETURN
END

1.5. PIC ile ADC Uygulama Devresi

Analog bir sinyal genellikle bir sensr araclyla salanr. Uygulamalarda analog
sinyal, gerilim blc diren (potansiyometre) ile elde edildiinde ekil 1.8deki balant
yaplr. Bu balant ile PICe bal olan bir direncin deeri llr. llen deer PORTun
klarnda binary olarak grlr.

10


ekil 1.8: PICe analog giri balants
A/D evrim metodu ile yaplan lmde deeri bilinmeyen bir direncin, bir
kondansatr V deerine ne kadar srede arj ettii bulunur. Bunun iin TMR0 saycs arj
sresini lmek iin kullanlr. A/D evrim metodunun balants ekil 1.9da gsterilmitir.
lme ilemi aadaki gibi yaplr.

PortA k olarak ynlendirildikten sonra kondansatre 0 bilgisi gnderilerek
dearj edilir.

Kondansatrn dearj sresinden sonra PortA giri olarak ynlendirilir ve
TMR0 saycs altrlr.

PortAdaki gerilim V deerine ulatnda TMR0 saycs okunur.

arj sresi direncin deeriyle doru orantldr. Diren bydke arj sresi de
byyeceinden TMR0 registeri ierisinde daha byk bir say okunur.


11


ekil 1.9: PICe A/D evirim metodu balants

;========ADC UYGULAMA PROGRAMI=============
LIST P=16F84
INCLUDE "P16F84.INC"
ORG H00
GOTO BASLA
ORG H04
GOTO KESME

;Portlar Ayarla
CLRF PORTB ;PORTByi temizle
BSF STATUS,5 ;BANK1e ge
CLRF TRISB ;PORTB k
CLRF TRISA ;PORTA k
BCF STATUS,5 ;BANK0a ge
MOVLW B10100000 ;TMR0 registerini kur
MOVWF INTCON
BSF STATUS,5 ;BANK1e ge
MOVLW B11010001 ;TMR0 aktif, dhili komut saykl
MOVLW OPTION_REG
BCF STATUS,5 ;BANK0

12

BCF PORTA,0 ;Kondansatr dearj et
CLRF TMR0 ;TMR0 zamanlayc balat
DON
BTFSS TMR0,7 ;dearj bitti mi?
GOTO DON ;Hayr bekle
BSF STATUS,5 ;BANK1
BSF TRISA,0 ;PORTA 0 giri
BCF STATUS,5 ;BANK0
CLRF TMR0 ;TMR0 yeniden balat
DON2
BTFSS PORTA,0 ;0.bit 1 mi?
GOTO DON2 ;Hayr geri dn
MOVF TMR0,W ;Evet, TMR0 oku
MOVWF PORTB ;Kondansatr dolma sresi gster
BCF INTCON,5
DONGU
GOTO DONGU
KESME
BCF INTCON,5 ;TMR0 kesmesini iptal et
MOVLW HAA
MOVWF PORTB ;TMR0 dolma sresini gster
BEKLE
GOTO BEKLE
END

; Programn balangc
BASLA
BSF PORTB, 1 ;k 1 yani 5V yap
CALL GECIKME1 ;Darbe genilii %40 sresini bekle
BCF PORTB,1 ;k 0 yani 0V yap
CALL GECIKME2 ;%60 sresince 0V olarak bekle
GOTO BASLA ;BASLA etiketine git
GECIKME1
MOVLW H66 ;W<--H66
MOVWF SAYAC1 ;SAYAC1 <--W
D1
DECFSZ SAYAC1,F ;Sayac1 bir azalt ve sfr m? kontrol et
GOTO D1 ;Hayr D1e git
RETURN
GECIKME2
MOVLW H9A ;W<--H9A
MOVWF SAYAC2 ;SAYAC2 <--W
D2

13

DECFSZ SAYAC2,F ;Sayac2 bir azalt ve sfr m? kontrol et
GOTO D2 ;Hayr D2e git
RETURN
END


14

UYGULAMA FAALYET
ekil 1.9 daki uygulama devresini kurunuz.

lem Basamaklar neriler
Kurulacak sistem iin ihtiyalar tespit
ediniz.
Kullandnz devre elemanlarnn
zelliklerini internetten aratrnz.
htiyac karlayacak mikrodenetleyiciyi
seiniz.
Mikrodenetleyici olarak PIC 16F84A
kullannz.
Analog veri iin gerekli hesaplamalar
yapnz.
Matemetiksel ilemleri dikkatli ekilde
yapnz.
Sistemin mikrodenetleyici programn
yaznz.
Program yazdktan sonra MPLAB ile
PROTEUS programlarnda deneyiniz.
Program mikrodenetleyiciye ykleyiniz.
Program mikrodenetleyiciye yklerken
kullanlan pic programlaycya uygun
yazlm kullannz.
evre elemanlar ve analog veri salayan
elemanlar ile devreyi kurunuz.
Devrenin montajn yapmadan nce
breadboard 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 Evet Hayr
1. Kurulacak sistem iin ihtiyalar tespit edebildiniz mi?

2. htiyac karlayacak mikrodenetleyiciyi seebildiniz mi?

3. Analog veri iin gerekli hesaplamalar yapabildiniz mi?

4. Sistemin mikrodenetleyici programn yazabildiniz mi?

5. Program mikrodenetleyiciye ykleyebildiniz mi?

6. evre elemanlar ve analog veri salayan elemanlar ile
devreyi kurabildiniz mi?




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.
UYGULAMA FAALYET

15

LME VE DEERLENDRME

Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen
bilgiler doru ise D, yanl ise Y yaznz.

1.( ) Dijital bir bilginin analog iaretlere evirmesi iin kullanlan elemanlara DAC ad
verilir.

2.( ) DAC devreleri direnlerin farkl balanmas ve opamplar yardmyla yaplr.

3.( ) Dalga genilik modlasyonuna PCM denir.

4.( ) PIC ile gerekletirilen ADC devresinde lm iin RC elemanlar kullanlr.

5.( ) PIC DAC devresinde gerilim deerini arttrmak iin potansisyometre kullanlr.



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.


LME VE DEERLENDRME

16


RENME FAALYET-2



Mikrodenetleyici ile analog uygulama devreleri yapabileceksiniz.




16F877 entegresinin analog dijital dntrme zelliini aratrmalsnz.
LM 35 entegresinin almasn renmelisiniz.
DC motorun yapsn ve almasn renmelisiniz.
Aratrma ilemleri iin Mikrodenetleyici ile Dijital lemler modln gzden
geirebilir ve internet ortamndan yararlanabilirsiniz.

2. UYGULAMA DEVRELER

2.1. Pic 16f877 Entegresinin zellikleri

PIC16F877, en popler PIC ilemcisi olan 16F84ten sonra kullanclara yeni ve
gelimi olanaklar sunmasyla hemen gze arpmaktadr. Program bellei FLASH ROM
olan F877de, F84te olduu gibi elektriksel olarak silinip yazlmaktadr. PIC 16F877 ile
16F84 arasndaki farklar tablo 2.1de verilmitir.

16F877 mikrodenetleyicisi 4 veya 20 MHz osilatr ile almaktadr. Bu sayede daha
hzl bir sistemler kurulabilir. 5 adet giri/k portu (A, B, C, D, E) bulunmaktadr. A portu
6 I/O, B portu 8 I/O, C portu 8 I/O, D portu 8 I/O ve E portu 3 I/O sahiptir. Port says fazla
olduundan ayn anda LCD, klavye, motor gibi elemanlar altrlabilir. tane timer
bulunur. ekil 2.1 de PIC 16F877nin bacak balants gsterilmitir.


zellikler PIC16F84 PIC16F877
alma hz DC-10 Mhz DC-20Mhz
Program bellei 1Kx14 word Flash ROM 8Kx14 word Flash ROM
EEPROM bellei 64 byte 256 byte
Kullanc RAM 68 x 8 byte 368 x 8 byte
Giri / k port says 13 33
Timer Timer0 Timer0, Timer1, Timer2
A / D evirici YOK 8 kanal 10 bit
RENME FAALYET2
AMA AMA
ARATIRMA

17

Capture / Comp / PWM YOK 16 bit Capture
16 bit Compare
10 bit PWM znrlk
Seri evresel arayz YOK SPI (Master) ve I2C (Master
/ Slave) modunda SPI portu
(senkron seri port)
Paralel slave port YOK 8 bit, harici RD,WR ve CS
USART / SCI YOK 9 bit adresli
Tablo 2.1: 16F84 ile 16F877 mikrodenetleyicilerinin karlatrlmas

ekil 2.1: PIC 16F877 mikrodenetleyicisinin bacak balants

18


ekil 2.2: PIC 16F877 mikrodenetleyicisinin minimum balantlar


19

Tablo 2.2: PIC16F877 mikrodenetleyicisinin pinlerinin grevleri


Pin Ad Grevi
OSC1/CLKIN Osilatr clock girii (kristal)
OSC2/CLKOUT Osilatr kristal k ucu
MCLR/Vpp Resetleme girii
RA0/AN0 RA1/AN1
RA2/AN2/VREF RA3/
AN3 RA4/TOCK1
RA5/SS/AN4
Port A iki ynl giri/k portudur. Analog giri olarak
kullanlabilir.
Bu pin TMR0 iin clock girii olarak da kullanlabilir.
SSP Slave seme pini veya analog giri/k olabilir.
RB0/INT RB1 RB2
RB3/PGM RB4 RB5
RB6/PGC RB7/PGD
D kesme girii olarak seilir. Port B iki ynl giri/k
portudur.
Dk akmla programlamada da kullanlabilir.
Kesme girii olarak seilebilir.
Kesme girii olarak seilebilir.
Kesme girii olarak seilebilir. Seri programlamada clock giriidir.
Kesme girii olarak seilebilir. Seri programlamada data pinidir.
RC0/T1OSO/T1CK1 Timer1 osc. girii veya saat girii olarak kullanlabilir.
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
Timer1 osc. girii / Capture2 girii/Compare2 k /PWM2 k
Timer1 osc girii/ Capture 1 girii/ Compare 1 k
/ PWM1 k

RC4/SDI/SDA
SPI ve I2 modunda, seri saat giri/ k
SPA moda SPI giri verisi veya I2 C moda I/O iin kullanlr.
RC5/SDO
RC6/TX/CX
RC7/RX/DT
SPA moda SPI k verisi iin seilebilir.
USART asenkron gnderme ya da senkron saat iin kullanlr.
USART asenkron alma veya senkron veri iin kullanlr.
Port C iki ynl giri k portudur.
RD0/ PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
Port D iki ynl giri k portudur.

PSP bitleridir.
RE0/RD/AN5 Analog giri ya da PSP okuma kontrol olarak kullanlabilir.
RE1/WR/AN6
RE2/CS/AN7
Analog giri ya da PSP yazma kontrol olarak da kullanlabilir.
Analog giri ya da PSP seim kontrol iin kullanlabilir.
Vss Toprak
VDD Pozitif kaynak

20

2.2. A/D evirici Uygulama Devresi

Daha nceden de bahsettiimiz gibi analog bilgiyi dijital bilgiye dntrmek iin
PIC16F84 kullanldnda ek devrelere ihtiya duyulmaktadr. Bundan dolay bu
uygulamada PIC 16F877 entegresi kullanlmaktadr.

PIC16F877de 8 tane 10 bitlik A/D evirme kanal bulunur. A / D kanallar iin RA4
hari dier A ve E portlar kullanlr. A/D evirme ilemi drt adet kaydediciyle
yaplmaktadr.

Aada ilgili registerlar ve adresleri gsterilmitir.

ADRESH 0x1E ; A / D sonu kaydedicisi (high register)
ADRESL 0x9E ; A / D sonu kaydedicisi (low register)
ADCON0 0x1F ; A / D kontrol kaydedicisi 0
ADON1 0x9F ; A / D kontrol kaydedicisi 1

ADCON0: 8 bitlik bir A/D kaydedicisidir ve tablo 2.3te i yaps gsterilmitir.

Tablo 2.3: ADCON0 kaydedicisinin i yaps

ADCS1-ADCS0: A/D dntrme clock sinyali seme bitidir. Sinyal seme
ilemi ADCON1 registeri ile birlikte kullanlr. ADCS2 (ADCON2
kaydedicisinin 6.biti), ADCS1 ADCS0 bit ls clock sinyali semek iin
kullanlan bitlerdir. Tablo 2.4te bitlerin durumu ve clok sinyalleri
gsterilmitir.

ADCON1
(ADCS2)
ADCON0
(ADCS1-ADCS0)
Dntrme clock sinyali
0 00 Fosc/2
0 01 Fosc/8
0 10 Fosc/32
0 11 FRC (Sinyal i RC devresi tarafndan salanr.)
1 00 Fosc/4
1 01 Fosc/16
1 10 Fosc/64
1 11 FRC (Sinyal i RC devresi tarafndan salanr.)
Tablo 2.4: ADCON0 kaydedicisinin bit durumlar
CHS2-CHS1-CHS0 bitleri analog giri kanal seme bitleridir.

21


000 : Kanal 0 (AN0/RA0)
001 : Kanal 1 (AN1/RA1)
010 : Kanal 2 (AN2/RA2)
011 : Kanal 3 (AN3/RA3)
100 : Kanal 4 (AN4/RA5)
101 : Kanal 5 (AN5/RE0)
110 : Kanal 6 (AN6/RE1)
111 : Kanal 7 (AN7/RE2)

GO/DONE biti dntrme ilemi durum bitidir.

1: A/D dntrme ilemi srasnda donanm tarafndan aktive edilir. Sonra
tekrar resetlenir.

0: A/D dntrme ilemi yaplmyor.

ADON: A/D dntrc modl ama biti

1: A/D modl altrld.
0: A/D modl almyor.

ADCON1: 8 bitlik bir A/D kaydedicisidir ve tablo 2.5te bitleri grlmektedir.

Tablo 2.5: ADCON1 kaydedicisinin i yaps
ADFM biti dntrme ilemi sonunda 10 bitlik saynn formatn belirler.

1: say saa kaydrlr ve dk 8 biti ADRESLde, st 2 biti de ADRESH registerinde
tutulur. ADRESH registerinin st 6 biti sfrlanr. Normal A/D dnm ilemlerinde
ADFM=1 kullanlr.

0: Say sola kaydrlr ve ADRESL registerinin dk 6 biti sfrlanr. Say 10 bitlik
olduundan 6 biti sfrlanr.

PCFG3 PCFG0 bitleri A/D portlarnn durumunu belirler. Bu bitler ile hangi
portlarn analog ve hangi portlarn saysal giri-k iin kullanlacaklarn
belirler ve analog portlarda kullanlacak referans gerilimleri seeriz. En yaygn
kullanlan tm bitlerin 0 olmasdr. Bu durumda 8 tane analog kanal seilmi
olur ve her kanaln referans gerilimi VDD olarak ayarlanr.



22

2.2.1. Devrenin Malzemeleri

PIC 16F877 4 Mhz mikrodenetleyici
X1= 4Mhz kristal
C1 = C2 = 22pf
R1 = R2R8 = 330 diren
RV1= 1K potansiyometre
R9= 10K,
Buton
8 Adet LED Diyot

2.2.2. Devrenin emas

ekil 2.3: PIC 16F877 ile A/D uygulama devresi
2.2.3. Devrenin Asm Program

;=====ANALOG DJTAL EVRC UYGULAMA PROGRAMI=========
LIST P=16F877
INCLUDE "P16F877.INC"
BCF STATUS, 5 ;STATUS 5. biti =0
BCF STATUS, 6 ;STATUS 6.biti=0 BANK 0 a ge
MOVLW B'00100000' ;TMR0 saycsn aktif yap
MOVWF INTCON

23

CLRF PORTA ;Port A sfrla
CLRF PORTB ;Port B sfrla
MOVLW B'01000001' ;A/D evirici modl aktif
MOVWF ADCON0 ;Kanal 0 (RA0) aktif
BSF STATUS, 5 ;STATUS 5. biti = 1
BCF STATUS, 6 ;STATUS 6. biti =0 BANK 1 e ge
MOVLW B'10000111' ;Frekans blme deeri TMR0
MOVWF OPTION_REG ;Frekans blme says 1/256dr.
MOVLW B'00000000' ;Sayy sola kaydr.
MOVWF ADCON1 ;Sayy ADRESH a ykle.
MOVLW B'00000001' ;Port A.0 = giri
MOVWF TRISA
CLRF TRISB ;Port B k
BCF STATUS, 5
BCF STATUS, 6 ;BANK 0 a ge

;================PROGRAM BALANGICI======================
BASLA
BTFSS INTCON, T0IF ;TMR0 saycnn saym bitti mi?
GOTO BASLA ;Hayr BASLA etiketine git
BCF INTCON, T0IF ;Evet saycy yeniden kur
BSF ADCON0, GO ;A/ D dnmn balat
DON
BTFSS PIR1, ADIF ;A/D dnm tamam m?
GOTO DON ;Hayr geri dn
MOVF ADRESH,W ;Evet, ADRESH W aktar
MOVWF PORTB ;Aktarlan sayy ka gnder
GOTO BASLA ;BASLA etiketine geri dn
END

2.2.4. Ak Diyagram

Programda ilk olarak PIC tantlr. TMR0 saycs kurulur ve A/D dnm iin
ADCON0, ADCON1 registerleri ayarlanr. Devrede analog bilgi olarak 5V bir kaynak ile
potansiyometre kullanlmtr. Potansiyometrenin deiimiyle kanal 0n (Port A 0.bit) giri
gerilimi deimektedir. Giri gerilimi 10 bitlik dijital veriye dntrlr. Bu verinin en
yksek bitleri ADRESH registerinde, kalan 2 biti ise ADRESL registerinde saklanr.
ADRESH registerindeki bilgi ka aktarlarak giriteki analog bilginin ktaki dijital
dizilimi grlr. Giri gerilimi deitirildike ktaki dijital veri de deimektedir.


24


Tablo 2.6: A/D evirici devresinin ak diyagram
Programn balangcnda TMR0 saycs kontrol edilir. Bu sayc 1/256 frekans blme
says ile 00dan FFye kadar sayar, FF saysna ulaldnda INTCON registerinde T0IF
bayra 1 olur. T0IF 1 olduunda A/D evrime balanr ve T0IF sfrlanarak sayc
yeniden kurulur. A/D evirimin bitip bitmediini anlamak iin de PIR1 registerinin ADIF
bayra kontrol edilir. ADIF 1 ise A/D evrim bitmitir.

25


PIR1, Kesmeleri kontrol etmek iin kullanlan zel bir registerdir. Bu registerin 6. biti
ile A/D dnmnn bitip bitmedii kontrol edilir.

INTCON, registerinin 5. biti ile TMR0 registeri aktif hle getirilir. 2. biti ile de
saycda tama olup olmad kontrol edilir.

2.3. DC Motor Yn ve Hz Kontrol Devresi

DC motorlar ularna uygulanan DC gerilim ile alr. Genellikle besleme gerilimi
motor gvdesinde yazar. Uygulanan gerilimin deeri deitirilerek motorun hz ve kutuplar
deitirilerek motorun yn ayarlanr.

ekil 2.4te motorun yn kontrol gsterilmitir. DC motorlarn yn anahtarlama ile
deitirilir. ekil 2.5te motorun yn kontrolnn balant emas gsterilmitir.

ekil 2.4: Motor yn kontrol temel devreleri

ekil 2.5: Motorun transistrl yn kontrol temel devresi


26

ekil 2.4.ada motor botadr. Devrede tm anahtarlar ak olduundan motor besleme
gerilimi almaz.

ekil 2.4.bde S1 ve S4 anahtarlar kapal konumdadr. Bu durumda motor saat
ynnde dner.

ekil 2.4.cde S2 ve S3 anahtarlar kapal olduundan motor saatin tersi ynnde
dner.

ekil 2.4.dde S2 ve S4 anahtarlar kapal konumdadr. Bu durumda motor her iki
ynden ase potansiyeli aldndan motor durur. Bu durum alan motoru bulunduu
konumda tutmak iin kullanlr.

DC motorun hz kontrolnde DC motorun hz kontrolnde iki yntem kullanlr.
Birincisi gerilim kontrol, ikincisi ise faz kontroldr. Gerilim kontrol ekil
2.6da gsterildii gibi mikrodenetleyiciye ihtiya duyulmadan ayarl bir g
kayna ile yaplmaktadr.

ekil 2.6: DC motorun ayarl g kayna ile hz kontrol devresi
kinci yntemde PWM sinyal kullanlr. renme Faaliyeti-1de PWM sinyalinin
oluturulmasn PIC 16F84 ile yapmtk. Bu uygulama devresinde 16F877 entegresi
kullanlacaktr. nk bu mikrodenetleyicinin CCP1 (RC1) ve CCP2 (RC2) bacaklar PWM
k retir. retilen PWM sinyalin peryodu sabit fakat darbe genilii deiebilen bir kare
dalga sinyaldir. Kare dalga sinyalin darbe genilii (duty saykl) azalrsa ortalama gerilim
azalr ve motorun hz der. Sinyalin darbe genilii artarsa motorun hz artar. ekil 2.7de
kare dalga sinyal gsterilmitir.

27


ekil 2.7: PWM sinyali
PWM alma maduna geebilmek iin aadaki aamalar takip edilerek Capture
Compare PWM(CCP) modl dzenlenmelidir.

PWM periyodu PR2 registerine yazarak balanr.
PWM grev saykl CCPR1L register ve CCP1CON <5:4> bitlerine yazlr.
CCP1 pini TRISC<2> biti temizlenerek k yaplr.
Timer2 (TMR2) prescale deeri girilir ve TMR2nin T2CON biti set edilerek
TMR2nin almas salanr.
PWM operasyonu iin CCP1 modl ayarlanr.

Darbe Genilik Modlasyon (PWM) modunda, CCPx pini 10 bit kadar kararl PWM
k retir. CCP1 pini PORTC data latch zerinden ka aktarlmtr. CCP1 pinini k
yapmak iin TRISC<2> biti mutlaka temizlenmelidir.

Bir PWM knda, bir periyotluk sre dhilinde kn yksek seviyede bulunduu
zamana duty cycle (grev saykl) denir.


28


ekil 2.8: Mikrodenetleyici PWM blok diyagram
PWM periyodunun ve grev sresinin hesaplanmas:

PWM periyodu,PR2 registerine yazlarak belirtilir ve eitlik aadaki formlle
hesaplanabilir.

T=PWM period = [(PR2) + 1] . 4 . TOSC . (TMR2 prescale deeri)

PWM frekans periyodun tersi olup eitlik aadaki forml ile hesaplanr.

f=1/T



29


ekil 2.9: Mikrodenetleyici PWM k sinyali
TMR2, grev sayklna (Ton) eit oluncaya kadar CCPR1Lde lojik1 bilgisi grlr.
TMR2 ierii grev sayklna eit olduunda seviye lojik 0a der. TMR2 ierii
sfrlanmadan PR2ye eit oluncaya kadar almaya devam eder. Bylece, ekil 2.9da
gsterildii gibi bir periyotluk sre tamamlanm olur. Burada,

f = PWM sinyalinin frekansn (Hz)
T = PWM sinyalinin bir saykln (s) gsterir.
Bir saykllk PWM sresi ise; T=Ton+Toff
Ton = Pozitif PWM sinyal sresini veya PWM grev saykln (s)
Toff = Sfr veya negatif PWM sinyal sresini (s) gstermektedir.

2.3.1. Devrenin Malzemeleri

PC 16F877 4 Mhz mikrodenetleyici
X1= 4Mhz kristal
C1 = C2 = 22pf
R1=R2=R3=R4= 10K, R5=R6=R7=1K
DC motor, buton
RV1= 1K potansiyometre
Q1=Q2= BD 135
Q3=Q4= BD140, Q5= BC237



30


2.3.2. Devrenin emas

ekil 2.10: Mikrodenetleyici ile DC motor hz ve yn kontrol devresi


31

2.3.3. Ak Diyagram

Tablo 2.7: DC motor hz ve yn kontrol devresinin program ak diyagram

32

2.3.4. Devrenin Asm Program

;====MOTOR HIZ VE YN KONTROL UYGULAMA PROGRAMI=========
LIST P=16F877
INCLUDE "P16F877.INC"
CALL PORT_KUR ;PORT_KUR alt programna git
CALL ANALOG_KUR ;ANALOG_KUR alt programna git
CALL PWM_KUR ;PWM_KUR alt programna git
BSF ADCON0,GO ;A/D evrimi balat
DON
BTFSS PIR1,ADIF ;A/D evrim bitti mi?
GOTO DON ;Hayr geri dn
MOVF ADRESH,W ;Evet sayy Wye aktar
MOVWF CCPR1L ;PWM darbeyi ret
TUS_ARA
BTFSS PORTD,0 ;DUR butonuna basl m?
CALL DUR ;evet DUR alt programna git
BTFSS PORTD,1 ;GERI butonuna basl m?
CALL GERI ;evet GERI alt programna git
BTFSS PORTD,2 ;ILERI butonuna basl m?
CALL ILERI ;evet ILERI alt programna git
GOTO TUS_ARA ;Hayr tu ara

PORT_KUR;===================================================
BSF STATUS,5 ;Bank 1e ge
MOVLW H'01'
MOVWF TRISA ;PortA 0.bit giri
CLRF TRISB ;PortB k
CLRF TRISC ;PortC k
MOVLW H'FF'
MOVWF TRISD ;PortD giri
BCF STATUS,5 ;Bank 0a ge
RETURN

ANALOG_KUR;=================================================
MOVLW B'10000001' ;A/D evrimi aktif
MOVWF ADCON0 ;Kanal 0 aktif
BSF STATUS,5 ;Bank 1e ge
MOVLW B'00001110' ;Sayy sola kaydr
MOVWF ADCON1 ;ADRESHa ykle
BCF STATUS,5 ;Bank 0a ge
RETURN


33

PWM_KUR;=====================================================
CLRF TMR2 ;TMR2 temizle
CLRF CCPR1L ;CCPR1L temizle
BSF STATUS,5 ;Bank 1 e ge
MOVLW D'255' ;PR2 registerine 255 saysn ykle
MOVWF PR2 ;Peryod=1638.4s
BCF STATUS,5 ;Bank 0 a ge
MOVLW B'00001100' ;Pst=1:1 TMR2=ON Pre=1:16
MOVWF T2CON ;T2CON registerini kur
MOVLW B'00001100' ;CCP1XY=0 CCP1M=1100(PWM)
MOVWF CCP1CON ;CCP1CON registerini kur
RETURN

DUR;==========================================================
BSF PORTB,0 ;PortB.0 = 1
BSF PORTB,1 ;PortB.1= 1
RETURN

GERI;===========================================================
BCF PORTB,0 ;PortB.0= 0
BSF PORTB,1 ;PortB.1= 1
RETURN

ILERI;===========================================================
BSF PORTB,0 ;PortB.0=1
BCF PORTB,1 ;PortB.1=0
RETURN
END

Devrede RV1 potansiyometresi motorun hzn ayarlamaktadr. RV1 analog girie
balandndan, potansiyometredeki deiim dijital bilgiye dntrlr ve bu deer PWM
darbe iin CCP1L registerine yklenir. Bu deer arttka PWM darbenin genilii artar,
azaldka da azalr. Bylece motorun hz ayarlanr. Bu sinyal retildikten sonra motor
almaya balamaz.

Motorun yn ILERI, GERI ve DUR butonlar ile kontrol edilir. ILERI
butonuna basldnda PortBnin 0. biti lojik 1, 1. biti ise lojik 0 olur. Bu durumda Q1 ve
Q4 transistrleri iletime geer, motor saat ynnde dner. GERI butonuna basldnda
PortBnin 0. biti lojik 0, 1. biti ise lojik1 olur. Bu durumda Q2 ve Q3 transistrleri
iletime geer, motor saatin tersi ynnde dner. DUR butonuna basldnda PortBnin 0. ve
1. biti lojik 1 olur. Bu durumda motor bota kalr ve durur.



34

2.4. Istc ve Fan Kontroll Uygulama Devresi

A/D dntrc iin gerekli analog giri iin LM 35 s sensr kullanlmtr. LM
35 knda scakla bal olarak deien dorusal bir gerilim reten sensrdr. Bu gerilim
10mV/C olarak deiir. Yani scakln artt her derece iin gerilim 10mV artar. LM 35
entegresinin zellikleri aada sralanmtr.

Dorudan ayarl santigrat derece
Her 1 C deiimde 10mV deiim faktr
-55 +150 C alma aral
Uzaktan kontrol uygulamalar iin uygunluk
4-30 volt alma gerilimi
60 mikroamperden az kaynak akm harcanm

ekil 2.11: LM35 entegresinin katolog bilgileri
LM 35 s sensrnden (ekil 2.11) gelen analog sinyaller A/D dntrc tarafndan
dijital sinyallere dntrlerek mikrodenetleyici tarafndan ilenen bilgi hline getirilir.
lenen bu sinyaller k birimi olan LCDye scaklk deeri olarak yazdrlr. Bu deer daha
evvel belirlenmi olan scaklk aral (20C - 30C oda scakl) ile karlatrlr scaklk
deeri belirlenen scaklk deerlerinin altnda ise mikrodenetleyicinin Port Cnin 3 numaral
portuna bal olan stc alr. Scaklk deeri bu aralk deerinin stne ktnda Port
Cnin 4 numaral portuna bal olan fan alr. LCD ekrannn ilk satrnda OLCULEN
SICAKLIK yazs bulunmakta ikinci satrnda ise LM 35 ile llen scaklk deeri yer
almaktadr.

2.4.1. Devrenin Malzemeleri

PIC 16F877 4 Mhz mikrodenetleyici
X1= 4Mhz kristal

35

C1 = C2 = 22pf
R1= 10K, R2=R3=R5=1K, R4=3.9K
Fan, Istc
RV1= 1K potansiyometre
Q1=Q2= BC237
LM 35 Is Sensr, 741 OP-AMP
2x16 LCD, 5V Rle


36

2.4.2. Devrenin emas

ekil 2.12: PIC16F877 ile yaplan stc ve fan kontrol devresi
2.4.3. Ak Diyagram


37


Tablo 2.8: Kontrol devresinin program ak diyagram


2.4.4. Devrenin ASM Program

;======ISITICI VE FAN KONTROL DEVRES ASM PROGRAMI==========

38

LIST P=16F877
INCLUDE "P16F877.INC"
#DEFINE RS PORTB,0
#DEFINE RW PORTB,1
#DEFINE EN PORTB,2
SOL_K EQU H'10'
ORTA_K EQU H'11'
SAG_K EQU H'12'
SAYI EQU H'13'
TEMP EQU H'14'
TEMP1 EQU H'20'
TEMP2 EQU H'21'
DEG EQU H'22'
SAYAC1 EQU H'23'
SAYAC2 EQU H'24'
Y1 EQU H'25'
Y2 EQU H'0A'
Y3 EQU H'0B'
D1 EQU H'0C'
D2 EQU H'0D'
D3 EQU H'0E'

BASLA;==========================================================
MOVLW H'03'
MOVWF Y1 ;Y1= 3
MOVLW H'00'
MOVWF Y2 ;Y2=0
MOVLW H'00'
MOVWF Y3 ;Y3=0
MOVLW H'02'
MOVWF D1 ;D1=2
MOVLW H'00'
MOVWF D2 ;D2=0
MOVLW H'00'
MOVWF D3 ;D3=0
CLRF STATUS ;STATUS temizle
CLRF PORTB ;PORTB temizle
CLRF PORTD ;PORTD temizle
CLRF PORTC ;PORTC temizle
CALL PORT_KUR ;Portlar ayarla
CALL LCD_AYAR ;LCD yi ayarla
DONGU
CALL ANALOG_OKUMA ;Analog girii kontrol et

39

BSF STATUS,5 ;Bank1 e ge
MOVF ADRESL, W ;Analog bilgiyi oku
BCF STATUS,5 ;Bank 0 a ge
MOVWF SAYI ;Analog giri bilgisini SAYI ya ata
CALL DONUSUM ;Okunan bilgiyi BCDye evir
BTFSC ADRESH,0 ;9.bit 0 m?
CALL EK1 ;Hayr, 9.biti ekle
BTFSC ADRESH,1 ;10. bit 0 m?
CALL EK2 ;Hayr, 10. biti ekle
CALL KARSILASTIR ;Karlatr alt programna git
CALL MESAJ1 ;LCDye yaz yaz
CALL MESAJ2 ;LCDye scakl yaz
GOTO DONGU

PORT_KUR;======================================================
BSF STATUS, 5 ;Bank 1
MOVLW H'80' ;Say saa kaydrlr.
MOVWF ADCON1
CLRF TRISB ;B portu k
CLRF TRISD ;D portu k
CLRF TRISC ;C portu k
BCF STATUS, 5 ;Bank 0
MOVLW H'41' ;AN0 aktif
MOVWF ADCON0 ;A/D evrim aktif
RETURN

ANALOG_OKUMA;=================================================
BSF ADCON0,GO ;A/D evrime bala
DON
BTFSS PIR1, ADIF ;A/D evrim bitti mi?
GOTO DON ;Hayr geri dn
RETURN

DONUSUM;======================================================
CLRF SOL_K ;Sol karakteri sil
CLRF ORTA_K ;Orta karakteri sil
CLRF SAG_K ;Sa karakteri sil
SOL
MOVLW H'64' ;W D100
SUBWF SAYI,W ;W = SAYI- W
BTFSC STATUS,C ;Say 100 den byk m?
GOTO SOL2 ;Evet SOL2 ye git
ORTA

40

MOVLW H'0A' ;W D10
SUBWF SAYI,W ;W= SAYI -W
BTFSC STATUS,C ;Say 10dan byk m?
GOTO ORTA2 ;Evet ORTA2ye git
MOVF SAYI,W ;W = SAYI
MOVWF SAG_K ;W yi sa karaktere aktar
RETURN
SOL2
INCF SOL_K,F ;Sol karakteri bir artr
MOVWF SAYI ;Wyi SAYI deikenine aktar
GOTO SOL ;SOL etiketine geri dn
ORTA2
INCF ORTA_K,F ;Orta karakteri bir artr
MOVWF SAYI ;Wyi SAYI deikenine aktar
GOTO ORTA ;ORTA etiketine geri dn

EK1;===========================================================
MOVLW H'06' ;ADRESH 0. biti 1 ise
ADDWF SAG_K,F ;Sayya 256 eklenir.
MOVLW H'0A' ;Sa karaktere D6 ekle
SUBWF SAG_K,W ;Sa karakter 10dan byk m?
BTFSS STATUS,C
GOTO EKLE2 ;Hayr EKLE2ye git
MOVWF SAG_K
INCF ORTA_K ;Orta karakteri bir artr
EKLE2
MOVLW H'05' ;Orta karaktere D5 ekle
ADDWF ORTA_K,F ;Orta karakter 10dan byk m?
MOVLW H'0A'
SUBWF ORTA_K,W
BTFSS STATUS,C
GOTO EKLE3
MOVWF ORTA_K
INCF SOL_K ;Sol karakteri bir artr
EKLE3
MOVLW H'02' ;Sol karaktere D2 saysn ekle
ADDWF SOL_K
RETURN


EK2;===========================================================
MOVLW H'02' ;ADRESH 1. biti 1 ise
ADDWF SAG_K,F ;Sayya 512 ilave edilir

41

MOVLW H'0A' ;Sa karaktere D2 eklenir
SUBWF SAG_K,W ;Say 10dan byk m?
BTFSS STATUS,C
GOTO EKLE4 ;Hayr EKLE4 deikenine git
MOVWF SAG_K
INCF ORTA_K ;Orta karakteri bir artr
EKLE4
MOVLW H'01' ;Orta karaktere D1 saysn ilave et
ADDWF ORTA_K,F
MOVLW H'0A' ;Orta karakter 10dan byk m?
SUBWF ORTA_K,W
BTFSS STATUS,C
GOTO EKLE5 ;Hayr EKLE5 deikenine git
MOVWF ORTA_K
INCF SOL_K ;Sol karakteri bir artr
EKLE5
MOVLW H'05' ;Sol karaktere D5saysn ilave et
ADDWF SOL_K
RETURN

LCD_AYAR;======================================================
CLRF PORTB ;PortB temizle
CALL GECIKME1 ;LCD nin almas iin bekle
MOVLW H'38' ;8 bit , ift satr aktif
CALL LCD_YAZ
CALL LCD_SIL ;LCD sil
MOVL W H'0C'
CALL LCD_YAZ ;LCD on
MOVLW H'06'
CALL LCD_YAZ ;Kursr- 1 artan mod
RETURN

LCD_YAZ;=======================================================
MOVWF TEMP ;TEMP W
CALL BF_TEST ;BF bitini test et
BCF RW ;RW 0 Yaz
BCF RS ;RS 0 Komut
BSF EN ;E 1
MOVF TEMP,W ;W TEMP
MOVWF PORTD ;LCDye gnder
BCF EN ;E 1
RETURN


42

LCD_SIL;========================================================
MOVLW H'01'
CALL LCD_YAZ ;Ekran temizle, kursr 1.satr 1.stunda
RETURN

BF_TEST;========================================================
BSF STATUS,5 ;BANK 1
MOVLW H'FF' ;W FF
MOVWF TRISD ;PORT D giri
BCF STATUS,5 ;BANK 0
BCF RS ;RS 0 Komut
BSF RW ;RW 1 Oku
BSF EN ;E 1
MOVF PORTD,W ;WPORT D
BCF EN ;E 0
MOVWF TEMP1 ;TEMP1 W
BTFSC TEMP1,7 ;BFyi kontrol et 0 m?
GOTO BF_TEST ;Hayr tekrar test et
BCF RW ;RW 0 Yaz
BSF STATUS,5 ;BANK 1
MOVLW H'00' ;PORT D k
MOVWF TRISD
BCF STATUS,5 ;BANK 0
RETURN

LCD_YAZ 2;=====================================================
MOVWF TEMP2 ;TEMP2 W
CALL BF_TEST ;BF yi kontrol et
BCF RW ;RW 0 Yaz
BSF RS ;RS 1 Veri
BSF EN ;E 1
MOVF TEMP2,W ;W TEMP2
MOVWF PORTD ;LCD ye gnder
BCF EN ;E 0
RETURN

MESAJ1;=========================================================
MOVLW H'80' ;1. satrn 1.stun aktif
CALL LCD_YAZ
MOVLW 0
M1
MOVWF DEG ;DEG =0
CALL MESAJ_VERI ;Mesaj al

43

ANDLW H'FF'
BTFSC STATUS,Z ;Mesajn sonu geldi mi?
GOTO MESAJ_SON ;Evet geri dn
CALL LCD_YAZ2 ;Hayr LCDye karakter gnder
MOVF DEG, W ;W DEG
ADDLW 1 ;W = W +1
GOTO M1 ;M1 etiketine git
MESAJ_SON
RETURN

MESAJ2;========================================================
MOVLW H'C0' ;2. satrn 1. stunu aktif
CALL LCD_YAZ
MOVLW H'0F'
ANDWF SOL_K,F
MOVLW D'0' ;W 0
SUBWF SOL_K,W ;W= SOL_K -W
BTFSS STATUS,Z ;SONU 0 m?
GOTO SOL_YAZ ;Hayr SOL_YAZ etiketine git
SOL_BOS
MOVLW H'20' ;W 20
MOVWF SOL_K ;SOL_K W
GOTO GIT1 ;GIT1
SOL_YAZ
MOVLW H'30' ;Sol karaktere h30 ekle
ADDWF SOL_K,W ;LCDye gnder
CALL LCD_YAZ2
GIT1
MOVLW H'30' ;Orta karaktere h30 ekle
ADDWF ORTA_K,W
CALL LCD_YAZ2 ;LCDye gnder
MOVLW H'2C'
CALL LCD_YAZ2 ;LCDye , karakterini gnder
MOVLW H'30' ;Sa karaktere h30 ekle
ADDWF SAG_K,W
CALL LCD_YAZ2 ;LCDye gnder
MOVLW ' '
CALL LCD_YAZ2 ;LCDye karakterini gnder
MOVLW B'11011111'
CALL LCD_YAZ2
MOVLW 'C' ;LCDye C yaz
CALL LCD_YAZ2
RETURN

44


GECIKME1;======================================================
MOVLW D'60'
MOVWF SAYAC1
A1
MOVLW D'50'
MOVWF SAYAC2
A2
DECFSZ SAYAC2,F
GOTO A2
DECFSZ SAYAC1,F
GOTO A1
RETURN

KARSILASTIR;====================================================
MOVF Y1,W ;Scakln yksek snrn kontrol et
SUBWF SOL_K,W ;Saynn rakamlar tek tek kontrol edilir
BTFSC STATUS,Z ;Sol karakter st snra eit mi?
GOTO K1 ;Evet K1'e git
BTFSS STATUS,C
GOTO KK
CALL SOGUT ;Scaklk fazla ise Fan altr
RETURN
K1
MOVF Y2,W ;Orta karakter ile refarans
SUBWF ORTA_K,W ;karlatr
BTFSC STATUS,Z ;ki say birbirine eit mi?
GOTO K2 ;Evet K2e git
BTFSS STATUS,C
GOTO KK
CALL SOGUT ;Scaklk fazla ise Fan altr
RETURN
K2
MOVF Y3,W ;Orta karakter ile refarans
SUBWF SAG_K,W ;karlatr
BTFSS STATUS,C ;ki say birbirine eit mi?
GOTO KK
CALL OGUT ;Scaklk fazla ise Fan altr
ETURN
KK
MOVF D1,W ;Scakln dk snrn kontrol et
SUBWF SOL_K,W ;Saynn rakamlar tek tek kontrol edilir
BTFSC STATUS,Z ;Sol karakter alt snra eit mi?

45

GOTO K3 ;Evet K3 etiketine git
BTFSS STATUS,C
CALL ISIT ;Scaklk dk ise stcy altr
RETURN
K3
MOVF D2,W
SUBWF ORTA_K,W
BTFSC STATUS,Z
GOTO K4
BTFSS STATUS,C
CALL ISIT ;Scaklk dk ise stcy altr
RETURN
K4
MOVF D3,W
SUBWF SAG_K,W
BTFSS STATUS,C
CALL ISIT ;Scaklk dk ise stcy altr
RETURN

ISIT;============================================================
BSF PORTC,1 ;Istcy altr
RETURN

SOGUT;==========================================================
BSF PORTC,2 ;Fan altr
RETURN

MESAJ_VERI;=====================================================
ADDWF PCL ,1 ;PCL = PCL + W ile veriyi adresle
RETLW 'O'
RETLW 'L'
RETLW 'C'
RETLW 'U'
RETLW 'L'
RETLW 'E'
RETLW 'N'
RETLW ' '
RETLW 'S'
RETLW 'I'
RETLW 'C'
RETLW 'A'
RETLW 'K'
RETLW 'L'

46

RETLW 'I'
RETLW 'K'
RETLW 0
MOVF PCL,W ;stenilen karakteri W registerine al
RETURN
END


47

UYGULAMA FAALYET

ekil 2.12 deki uygulama devresini yapnz.

lem Basamaklar neriler
Kurulacak sistem iin ihtiyalar tespit
ediniz.
Kullandnz devre elemanlarnn
zelliklerini internetten aratrnz.
htiyac karlayacak mikrodenetleyiciyi
seiniz.
Mikrodenetleyici olarak PIC 16F877A
kullannz.
Analog veri iin gerekli hesaplamalar
yapnz.
Matemetiksel ilemleri dikkatli ekilde
yapnz.
Sistemin mikrodenetleyici programn
yaznz.
Program yazdktan sonra MPLAB ile
PROTEUS programlarnda deneyiniz.
Program mikrodenetleyiciye ykleyiniz.
Program mikrodenetleyiciye yklerken
kullanlan pic programlaycya uygun
yazlm kullannz.
evre elemanlar ve analog veri salayan
elemanlar ile devreyi kurunuz.
Devrenin montajn yapmadan nce
breadboard 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 Evet Hayr
1. Kurulacak sistem iin ihtiyalar tespit edebildiniz mi?

2. htiyac karlayacak mikrodenetleyiciyi seebildiniz mi?

3. Analog veri iin gerekli hesaplamalar yapabildiniz mi?

4. Sistemin mikrodenetleyici programn yazabildiniz mi?

5. Program mikrodenetleyiciye ykleyebildiniz mi?

6. evre elemanlar ve analog veri salayan elemanlar ile
devreyi kurabildiniz mi?



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.
UYGULAMA FAALYET

48

LME VE DEERLENDRME

Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen
bilgiler doru ise D, yanl ise Y yaznz.

1.( ) PIC 16F84 2 porta, 16F877 ise 5 porta sahiptir.

2.( ) PIC 16F877 8K flash program belleine, PIC 16F84 1K flash program belleine
sahiptir

3.( ) PIC 16F877 40MHz e kadar osilatr kullanlr.

4.( ) PIC 16F877 A/D Birimine sahip deildir.

5.( ) Ak diyagram program yazmak iin kullanabileceimiz temel bir yntemdir.

6.( ) PWM yntemi motor hz kontrolnde kullanlmaz.

7.( ) LM35 s sensrdr.



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.

LME VE DEERLENDRME

49

RENME FAALYET-3



Picbasic pro program ile programlama yapabileceksiniz.




Picbasic ile Pic C arasndaki farklar aratrnz.
Picbasic programlama dilinin komutlarn aratrnz.
Picbasic pro derleyicisinin zelliklerini ve kullanmn aratrnz.
Aratrma ilemleri iin internet ortamndan yararlanabilirsiniz.

3. PIC BASIC PRO LE PROGRAMLAMA

Assembly diliyle yazlan program uzadka hem karmaklar hem de zorlar.
Bundan dolay alternatif programlama dilleri gelitirilmitir. Bu programlar basic ve C
tabanl olmak zere ikiye ayrlr. Basic tabanl olan program PicBasic Pro, C tabanl olan
da Pic C programlardr.

PicBasic PIC mikrodenetleyicileri programlamak iin Micro Engineering Labs firmas
tarafndan gelitirilen Qbasic programlama diline benzeyen kod gelitirme aracdr. PIC
mikroassembler ile sayfalarca kod yazmaktansa, st seviyeli derleyicilerle (Picbasic, pic C)
almak, programcya hem zaman kazandracak hem de program sadeletirecektir. Picbasic
Pro ile LCD srme, A/D evirimi, PWM retme gibi zor olan ileri zahmetsizce yrtmeyi
salamaktadr.

3.1. Programlama Kurallar

Etiketlerden sonra mutlaka (:) iki nokta st ste kullanlmaldr.
Deikenler VAR szc ile tanmlanr. Deikenler bit, byte ve
word tipinde olabilir. Deikene istediimiz ismi verebiliriz.
Sabitler CON szc ile tanmlanr. Sabite programda baka deer atanmaz.
Stringler trnak arasna yazlr.
Sabitler, desimal (100), binary (%101), heksadesimal ($100) olarak kullanlr.
Aklama satr REM veya ( ) tek trnak ile balar.
Birden fazla komutu ayn satrda kullanlrken araya (:) iki nokta st ste konur.
Portlar PORTA= %10001111, PortA= $8F eklinde tanmlanr.
Pinler, PORTB.1= 1 eklinde tanmlanr.
A portunun tm bacaklar k ise TRISA = %00000000 tanmlanr.
RENME FAALYET3
AMA
ARATIRMA

50

B portunun tm bacaklar giri ise TRISB = %11111111 tanmlanr.
C portunun tek sayl bacaklarn giri, ift sayl bacaklarn k yapmak iin
TRISC = %1010101010 eklinde tanmlanr.
A portunun 0 nul bitini k yapmak iin TRISA.0 = 0 eklinde tanmlanr.
Ek dosya yklemek iin INCLUDE komutu INCLUDE modedefs.bas
eklinde tanmlanr.

3.1.1. Karlatrma Operatrleri

Karlatrma operatrleri IFTHEN ifadesiyle beraber kullanlr.

Karlatrma Operatrleri Aklama
= veya == Eittir
<> veya != Eit deil
< Kk
> Byk
<= Kk eit
>= Byk eit
Tablo 3.1: Karlatrma operatr aklamalar
rnek:
If sayac > 6 then son Sayac 6 saysndan bykse son etiketine git.

3.1.2. Aritmetik Operatrler

Aritmetik Operatr Aklama
+ Toplama
- karma
* arpma
** arpmann st 16 bitini elde etme
*/ arpmann ortadaki 16 bitini elde etme
/ Blme
<< Sola Kaydrma
>> Saa Kaydrma
& Bit ANDleme
| Bit ORlama
~ Bit NOTlama
Tablo 3.2: Aritmetik operatr aklamalar
rnek:

X = Y << 2 Y deikenini 2 bit sola kaydr ve X deikenine ata

51

X = X / 10 X deikenini 10a bl ve X deikenine ata

ABS
Saynn mutlak deerini alr.
X = ABS Y

SQR
Saynn karekkn alr.
X = SQR Y

MAX MIN
ki saydan byk veya kk olann bulmak iin kullanlr.
X = Y MAX 100 Y deikeni ile 100 deikeni arasndan byk olan Xe ata
X= Y MIN 10 Y deikeni ile 10 deikeni arasndan kk olan Xe ata

COS
Radyan cinsinden verilen bir ann kosinsn bulur. Elde edilen sonu 8 bittir. 0
359 olarak bilinen alarn karl, 0-255 arasnda binary saylarla gsterilir.

rnein, 90 = 64, 180 = 128dir.
Sonu = (Derece/360)*256 forml ile hesaplanr.

SIN
Radyan cinsinden verilen bir ann sinsn bulur. Elde edilen sonu 8 bittir.

DCD
8 veya 16 bitlik binary bir say zerine istenilen bir bitin deerini 1 yapar. Dier
bitlerin deeri 0 olur.

X= DCD 5 X deikenine 00001000 saysn yerletirir.

DIG
Desimal bir saynn istenilen bir bitini elde etmeye yarar.
X= 593
X1= X DIG 0 X1 ierii 5 olur.

NCD
Binary bir saynn ierisindeki en soldaki 1in sras ka ise bu sayy elde eder. Eer
hibir dijit 1 deilse sonu 0 dr.
X = NCD %10001001 X deikenine 7 says atanr.

REV

52

Binary bir saynn ierisinde belirtilen bir bitten saa doru tm bitlerin tersini alr.
Bitlerin numaralandrlmas 1 den balar.
X = %01100100
Y = X REV 4 Y = %01101011 olarak atanr.

3.2. Karar Verme ve Dng lemleri

3.2.1. GOTO Komutu

Koulsuz dallanma komutudur. GOTO komutundan sonra etiket yazlr ve program
etiketin bulunduu konumdan devam eder.

Kullanm

GOTO devam devam etiketine git.

devam:

3.2.2. IF THEN Komutu

Koullu dallanma komutudur. IF THEN karlatrlan ifadelerin doru ya da yanl
olduunu deerlendirerek farkl ilemleri gerekletirmek iin kullanlr. IF komutundan
sonra art yazlr, art doruysa THEN komutundan sonraki ilem gerekletirilir, yanlsa
bir alt satra geilir.

Kullanm:

IF art THEN Etiket (lem)

IFTHEN kullanmnn dnda ELSE ve ENDIF komutlaryla grup hlinde almas
da kullanlabilir.

Kullanm:

IF art THEN
lemler..
ELSE
lemler
ENDIF

rnek:

IF.THEN komutunun kullanld bir rnek programdr. PortA.0nc portuna bal

53

olan bir butona basldnda PortB.1inci portundaki LEDi yakan programdr.

Program1.bas
PIC : 16F84

TRISA.0=1 PortA 0.biti giri
TRISB = %00000000 PortB k
PORTB = 0 LEDi sndr
DON:
IF PORTA.0 = 0 THEN PORTB.1 = 1 Butona basl ise LEDi yak
GOTO DON Butona basl deilse DON etiketine git
END

3.2.3.BRANCH Komutu

Atanan deikene bal olarak belirlenen etiketlerden birine dallanmay salar. Eer
deiken 0 ise program ilk etikete allanr, 1 ise ikinci etikete dallanr. BRANCH
komutuyla en fazla 256 etiket yazlabilir.

Kullanm:

BRANCH deiken , [ Etiket0, Etiket1, Etiket2.]

3.2.4. FORNEXT Komutu

Dng dzenleme komutudur. FORNEXT arasna yazlan program parasn
istenilen sayda tekrar etmek iin kullanlr.

Kullanm:

FOR saya = Balang TO biti
.
Komutlar
.
NEXT

Herhangi bir deiiklik yaplmazsa dng her dndnde saya 1 artar. Adm
miktarn deitirmek iin STEP komutu kullanlr. STEP komutundan sonra belirlenen
sayya gre dngnn dn adm belirlenir.

Kullanm:

FOR Saya = Balang TO biti STEP adm

54

Komutlar
NEXT
3.2.5. WHILE WEND Komutu

art doru olduu srece WHILEWEND arasndaki ilemler altrlr. art yanl
ise WEND komutundan sonraki satrdan program devam eder.

Kullanm:

WHILE art

lemler.

WEND

3.3. PBP Komutlar

3.3.1. PAUSE Komutu

Program belirlenen sre miktarnca durdurmak iin kullanlr. PAUSE komutundan
sonra yazlan deiken kadar milisaniye bekler. Maksimum bekleme sresi 16 bitlik bir
deiken olduundan 65535 msdir.

Kullanm:

PAUSE Sre

PAUSE 500 500 mslik gecikme yap.

3.3.2. PAUSEUS Komutu

Program mikrosaniye sresince durdurur. Maksimum bekleme sresi 65535 sdir.

Kullanm:

PAUSEUS Sre

PAUSEUS 500 500 slik gecikme yap.

3.3.3. GOSUBRETURN Komutu


55

Alt programlara dallanmak iin kullanlr. Alt program RETURN komutunu
grnceye kadar almasna devam eder. RETURN komutundan sonra program kald
yerden devam eder.

Kullanm:

GOSUB Etiket

GOSUB Kesme
Kesme:
RETURN

3.3.4. rnek Programlar

Yukarda anlatlan komutlar aadaki rnekleri uygulayarak pekitirebilirsiniz.

3.3.5. LED Flar Devresi

PortB nin 3. bitine bal olan LEDi 1sn aralklarla yakp sndren uygulama
devresidir. Bu devrede hem 16F84 hem de 16F877 entegresini kullanabilirsiniz. Sure CON
1000 Sure deikenine 1000 saysn ata.

TRISB.3 = 0 PortB nin 3. bitini k yap
DON:
PORTB.3 = 1 LEDi yak
PAUSE Sure 1sn bekle
PORTB.3 = 0 LEDi sndr
PAUSE Sure 1sn bekle
GOTO DON DON etiketine git
END

3.3.6. Sayc Uygulama Devresi

16F877 entegresinin D portuna bal olan 8 LED ile 0255 aras binary sayc
uygulama programdr.

SAYAC VAR BYTE SAYAC deikenini tanmla
TRISD = %00000000 PORTD tm portlar k
PORTD = %00000000 PORTDyi temizle
DON:
FOR SAYAC = 0 TO 255 0 dan 255e kadar dn
PORTD = SAYAC SAYAC deikenini ka aktar
PAUSE 500 500ms bekle

56

NEXT SAYAC 255 deilse geri don
GOTO DON DON etiketine git
END

3.3.7. Karaimek Uygulama Devresi

16F877nin B portuna bal olan tm LEDleri srasyla saa ve sola kaydran
programdr.
SAYAC VAR BYTE SAYAC deikenini tanmla
TRISB = %00000000 PORTB k
PORTB = %00000000 PORTB tm LEDleri snk
SAYAC = %00000001 SAYAC deikenine 1 saysn ykle
SAG:
PORTB = SAYAC
PAUSE 500
SAYAC = SAYAC << 1
IF SAYAC.7 = 1 THEN SOL
GOTO SAG
SOL:
PORTB = SAYAC
PAUSE 500
SAYAC = SAYAC >> 1
IF SAYAC.0 = 1 THEN SAG
GOTO SOL
END

3.3.8. LCD Uygulama Devresi

LCDye veri gndermek iin LCDOUT komutu kullanlr.

# iareti kullanlarak LCDye veri gnderilirse bu saynn ASCII karl
LCDye yazdrlr.
Bir LCDye veri gndermeden nce en az 0.5 sn beklemek gerekir.
LCDye komut gndermek iin $FE kullanlr.
LCDye yaz yazmak iin kullanlr.

Komut Grevi
$FE, 1 Ekran siler.
$FE, 2 Kursr satr bana alr.
$FE, $0C Kursr grnmez hle getirir.
$FE, $0E Kursr altizgi biimine alr.
$FE, $0F Kursr yanp/sner yapar.
$FE, $10 Kursr bir karakter sola alr.

57

$FE, $14 Kursr bir karakter saa alr.
$FE, $C0 Kursr ikinci satrn bana alr.
Tablo 3.3: LCD komutlar
LCDler 8 bitlik ve 4 bitlik veri yolu ile mikrodenetleyiciye balanabilir. (Ayrntl
bilgi iin Mikrodenetleyiciler ile Dijital Uygulamalar modln inceleyiniz.) LCDOUT
komutu yalnzca LCDye veri yazmak iin kullanlacaksa R/W baca topraa balanr.
LCDnin balant ayarlarn deitirmek iin DEFINE komutu kullanlr. Bu tanmlama
programn banda yaplr. Aadaki tanmlamalarda koyu renkli ksmlar deitirilemez,
ak renkli olan ksmlar ise programc tarafndan deitirilebilir.

DEFINE LCD_DREG PORTB LCD data portunu belirler.
DEFINE LCD_DBIT 4 4 bitlik veri yolu kullanldnda data bitlerin
balangcn belirler.( 0 veya 4 )
DEFINE LCD_RSREG PORTB RSnin balanaca portu belirler.
DEFINE LCD_RSBIT 1 RSnin balanaca portun bitini belirler
DEFINE LCD_EREG PORTB Enin balanca portu belirler.
DEFINE LCD_EBIT 0 Enin balanaca portun bitini belirler.
DEFINE LCD_RWREG PORTB RWnin balanaca portu belirler.
DEFINE LCD_RWBIT 2RWnin balanaca portun bitini belirler.
DEFINE LCD_BITS 4 LCD veri yolu 4 bit veya 8 bit.
DEFINE LCD_LINES 2 LCD satr saysn belirler.
DEFINE LCD_COMMANDUS 2000 Komut gecikme sresi s cinsinden.
DEFINE LCD_DATAUS 50 Veri gecikme sresi s cinsinden.

LCD ekrannn ilk satrna ELEKTRONIK, ikinci satrna da ERKAN AVCI
EML yazan program yaznz.

DEFINE LCD_DREG PORTD 'LCD data portunu = ERKAN AVCI
EML yazan program aada verilmitir.
DEFINE LCD_DBIT 4 '4 bitlik veri yolu kullanldnda data
DEFINE LCD_RSREG PORTB 'RS = PORTB
DEFINE LCD_RSBIT 1 'RS = PORTB.1
DEFINE LCD_EREG PORTB 'E = PORTB
DEFINE LCD_EBIT 0 'E = PORTB.0
DEFINE LCD_BITS 8 'LCD veri yolu 8 bit.
DEFINE LCD_LINES 2 'LCD satr says = 2
TRISD = %00000000
TRISB = %00000000

DON:
LCDOUT $FE,1 'LCD ekranini temizle

58

PAUSE 500 '500ms bekle
LCDOUT "ELEKTRONIK" '1. satra ELEKTRONIK yaz
PAUSE 500 '500ms bekle
LCDOUT $FE, $C0 'Kursr 2. satrn bana al
LCDOUT "ERKAN AVCI EML" '2. satra veriyi yaz
PAUSE 100 '100ms bekle
GOTO DON 'DON etiketine git
END

3.4. Pc Basc Pro Programnn Kullanm

PBP uygulamas aamada gerekletirilir.

BAS uzantl program dosyas oluturulur.
BAS dosyas PicBasic Pro ile derlenerek HEX dosyasna dntrlr.
HEX dosyas PICe yklenir. (Mikrodenetleyiciler ile Dijital lemler modln
inceleyiniz.)

3.4.1. BAS Dosyasnn Oluturulmas

PicBasic Pro derleyici komutlarn yazp .BAS uzantl bir dosya oluturmak iin bir
metin editr kullanlr. Metin editr olarak NOTEPAD veya MPLAB programlar
kullanlabilir. Bu modldeki uygulamalarda NOTEPAD program kullanlmtr. Kodlar
yazldktan sonra DOSYA_ADI.BAS olarak kaydedilir. Burada dikkat edilmesi gereken
konu dosyann PBP klasrne kaydedilmesidir. ekil 3.1, 3.2 ve 3.3 de MPLAB ile yazlma
ilemleri grlmektedir.

59


ekil 3.1: Programn BAS uzantl olarak kaydedilmesi
MPLAB da alma yaplrken alan alma sayfas (WORK SPACE) farkl kaydet
(Save As) seilerek bas uzantl (LCD_PROGRAM.bas) olarak kaydedilir.

60


ekil 3.2: Programn yazlmas
Alan pencerede program picbasic pro komutlarna gre yazlr. Yazldktan sonra
kaydedilir.

61


ekil 3.3: Yazlan program oluturalan projeye eklenmesi
Yazlan program, oluturulmu olan projenin Source Files ksmna eklenir.

3.4.2. BAS Dosyasnn Derlenmesi

Derleme (Compile) ilemi Basic dilinde yazlan programn makine diline evrilmesi
(hex uzantl dosyalar) ilemidir. Derleme sonucunda asm ve hex uzantl dosyalar oluur. Bu
iemin yaplabilmes iin proje dosyas olutulmaldr.

62


ekil 3.4: Derleyici programn seilmesi
Project mens seilir. Set Language Tool Locations seeneinden derleyici olarak
nceden kurulmu olan PicBasic Pro pragram seilir.

63


ekil 3.5: Derleyici program
Bu ilem gerekletirildikten sonra programn derlenmesi Project mensnden
Compile seenei seilerek ya da F10 ksayol tuuna baslarak yaplr.

64


ekil 3.6: Programn derlenmesi
Derleme ilemi sonucu baarl ise yani herhangi bir yazm hatas yoksa ekil 3.7deki
ekran kts alnr.

65


ekil 3.7: Programn baarl derlenmesi


66

UYGULAMA FAALYET

3.3.5 - 3.3.6 - 3.3.7 - 3.3.8 balklar altndaki rnekleri uygulaynz.

lem Basamaklar neriler
Kurulacak sistem iin ihtiyalar tespit
ediniz.
Kullandnz devre elemanlarnn
zelliklerini internetten aratrnz.
htiyac karlayacak mikrodenetleyiciyi
seiniz.
Mikrodenetleyici olarak PIC 16F877A
kullannz.
Sistemin mikrodenetleyici programn
PIC Basic Pro ile yaznz.
Program yazdktan sonra MPLAB ile
PROTEUS programlarnda deneyiniz.
Program mikrodenetleyiciye ykleyiniz.
Program mikrodenetleyiciye yklerken
kullanlan pic programlaycya uygun
yazlm kullannz.
evre elemanlar ve analog veri salayan
elemanlar ile devreyi kurunuz.
Devrenin montajn yapmadan nce
breadboard 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 Evet Hayr
1. Kurulacak sistem iin ihtiyalar tespit edebildiniz mi?

2. htiyac karlayacak mikrodenetleyiciyi seebildiniz mi?

3. Analog veri iin gerekli hesaplamalar yapabildiniz mi?

4. Sistemin mikrodenetleyici programn yazabildiniz mi?

5. Program mikrodenetleyiciye ykleyebildiniz mi?

6. evre elemanlar ve analog veri salayan elemanlar ile
devreyi kurabildiniz mi?



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.
UYGULAMA FAALYET

67

LME VE DEERENDRME
Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen
bilgiler doru ise D, yanl ise Y yaznz.

1.( ) Assebly dilinde yazlan programlar uzadka karmaklatndan dolay PicBasic
Pro gibi yazlm dilleri kullanlr.

2.( ) PicBasic dilinde karlatrma komutlar yoktur.

3.( ) PicBasic dilinde binari ifadeler % iareti ile kullanlr.

4.( ) PicBasic dilinde aklama yaplacak ise karakteri kullanlr.

5.( ) GOTO komutu hem PicBasic hem Assebly dilinde ayn ilemi yapar.

6.( ) PicBasic dili LCD ye bilgi yazmada bize kolaylk salar.

7.( ) MPLAB programnda PicBasic dili ile yazlan program derlenemez.



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.

LME VE DEERLENDRME

68

RENME FAALYET-4



Picbasic pro program ile uygulama devreleri yapabileceksiniz.



PBP ile yaplan termometre ve nemler uygulama devrelerini aratrnz.
Aratrma ilemleri iin internet ortamndan yararlanabilirsiniz.

4. PIC BASIC LE UYGULAMA DEVRELER

4.1. Voltmetre Uygulama Devresi

renme Faaliyeti 2 de anlattmz gibi PIC 16F877 entegresi 10 bitlik 8 adet analog
girie sahiptir. PicBasic ile analog girileri kontrol etmek iin ADCIN komutu kullanlr.

Kullanm:

ADCIN kanal, deiken

ADCIN komutu belirlenen kanaldan okuma yapar ve sonucu belirtilen deikene
aktarr.
ADCIN komutunun kullanlabilmesi iin aadaki ilemler yaplr.

stenilen bacaklarn giri yaplmas gerekir. Bunun iin TRIS registeri kullanlr.
stenilen bacaklarn analog giri iin kullanlmas iin ADCON1 registeri
kullanlr.
ADCON1in 7. biti ile sonucun saa ya da sola hizal olmas belirlenir.
8 bitlik bir A/D evrimde sonu sola hizal olmal ve ADCON1.7 = 0
yaplmaldr.
10 bitlik bir A/D evrimde sonu saa hizal olmal ve ADCON1.7 = 1
yaplmaldr.
ADCIN ile yaplan okumada saysal veriye dntrme ilemlerinde DEFINE ile
tanmlamalar yaplmaldr.
DEFINE ADC_BITS 8A/D evrim znrl (8 /10 bit)
DEFINE ADC_CLOCK 3Saat kaynan ayarlar. (RC = 3)
DEFINE ADC_SAMPLEUS 50 rnekleme saysdr. Birimi s dir.


RENME FAALYET4
AMA
ARATIRMA

69

4.1.1. Devrenin Malzemeleri

PIC 16F877 4 Mhz mikrodenetleyici
C1 = C2 = 22pf , CRYSTAL= 4Mhz kristal
R1= 10K, RV1= RV2 = 1K potansiyometre
2x16 LCD, Buton

Analog giri olarak AN0 kanal kullanlmtr. Okunan analog bilgi say deikenine
aktarlmaktadr. Say deikeni word tipinde tanmlandndan 16 bittir. Say deikenin
yksek bitlerine ADRESH deikeni aktarlr, dk bitlerine ise ADRESL deikeni
aktarlr. Programda saa kaymal okuma yapldndan okunan analog bilginin yksek
bitleri ADRESHda, analog bilginin dk bitleri ADRESLde kaydedilir.

Analog bilgiden dijital bilgiye dntrlen bilgi SAYI deikeninde saklanr. 10
bitlik okuma yapldndan 5V (llen maks. gerilimdir.) maksimum deeri dijital olarak
1024 dijital bilgisine karlk gelir. rnein;

2.5V iin dijital bilgi 2.5*1024/5 = 512 saysna denk gelir.

Okunan dijital bilgi direkt olarak LCDye gnderilmez. lk olarak gerilime
dntrlr. Bunun iin dijital bilgi 5/1024 says ile arplr. (5 gerilimin maks. deeridir.)
PIC Basic'te, blme ileminden sonra virglden sonraki saylar dorudan atlr. Yani floating
point ya da yuvarlama olay yoktur. Yaptmz analog-dijital eviricide virglden sonraki
rakam deerlerini kaybetmemek, hassasiyeti artrmak iin okunan dijital bilgi 100 deeri ile
arplr.

Elde edilen gerilim SAYI deikeninde saklanr. Bu bilgi LCDye direk
gnderilemediinden saynn her dijiti ayr bir karaktere aktarlr.


70

4.1.2. Devrenin emas

ekil 4.1: Voltmetre uygulama devresi

4.1.3. Devrenin Asm Program

'=================================================================
DEFINE LCD_DREG PORTD 'LCD data portu = PortD
DEFINE LCD_DBIT 0 'data bitlerin balangc = 0
DEFINE LCD_RSREG PORTB 'RS = PortB
DEFINE LCD_RSBIT 0 'RS = PortB.0
DEFINE LCD_EREG PORTB 'E = PortB
DEFINE LCD_EBIT 2 'E = PortB.2

71

DEFINE LCD_LINES 2 '2 satr aktif
DEFINE LCD_BITS 8 '8 bitlik veri yolu
DEFINE ADC_BITS 10 'A/D evrim 10 bit
DEFINE ADC_CLOCK 3 'RC = 3
DEFINE ADC_SAMPLEUS 50 'rnekleme says = 50s

TRISA = %11111111 'PortA giri
TRISD = %00000000 'PortD k
TRISB = %00000000 'PortB k

SAYI VAR WORD 'SAYI degiskenini Word olarak tanmla
SOL_K VAR BYTE 'SOL_K degiskenini tanimla
ORTA_K VAR BYTE 'ORTA_K deikenini tanmla
SAG_K VAR BYTE 'SAG_K deikenini tanmla
LSB VAR BYTE 'LSB deikenini tanmla

LSB = 5000/1024
ADCON1.7 = 1 'Saa kaydrmal olarak A/D yap
ADCON0 = $41 'A/D evrim aktif, Kanal 0 seili
PAUSE 500 '500ms bekle

ADC_OKU:
ADCON0.2=1 'GO = 1 yap yani A/D evrime bala
DON:
PAUSE 5 '5msn bekle
IF ADCON0.2=1 THEN GOTO DON 'A/D evrim bitmediyse DONe git
SAYI.HIGHBYTE = ADRESH 'SAYInn yksek 8 biti = ADRESH
SAYI.LOWBYTE=ADRESL 'SAYInn dk 8 biti = ADRESL
SAYI = SAYI*LSB/10 'Okunan dijital bilgi Volt olarak
LCDOUT $FE, 1 'Ekran temizle
SOL_K= SAYI DIG 2 'Saynn 2. dijitini sol karaktere aktar
ORTA_K= SAYI DIG 1 'Saynn 2. dijitini orta karaktere aktar
SAG_K= SAYI DIG 0 'Saynn 2. dijitini sa karaktere aktar
LCDOUT $FE,2 'Kursr 1. satrn bana al
LCDOUT "OLCULEN GERILIM" 'Ekrana trnak iindekini yaz
LCDOUT $FE,$C3 'Kursr 2.satrn 3. stununa al
LCDOUT #SOL_K, ".",#ORTA_K, #SAG_K, "V"
'Ekrana sol, orta ve sa karakteri yaz
PAUSE 100 '100 ms bekle
GOTO ADC_OKU 'Geri dn

END


72

4.1.4. Ak Diyagram

Tablo 4.1: Voltmetre devresi program ak diyagram

73

4.2. DC Motor Devir Ayar Uygulama Devresi

4.2.1. Devrenin Malzemeleri

PIC 16F84A 4 Mhz mikrodenetleyici
C1 = C2 = 22pf, CRYSTAL= 4Mhz kristal
R2= R3 = R4 = R5 = R6 = R7 = R8 = 1K
R1=R9 = 10K, Q1 = BC237, Q2 = BD135, 12V DC Motor
2x16 LCD, Buton

4.2.1. Devrenin emas

ekil 4.2: DC motor devir ayar devresi


74

4.2.3. Ak Diyagram

Tablo 4.2: DC motor devir ayarlama devresi program ak diyagram

75

4.2.3. Devrenin Asm Program

'=================================================================
DEFINE LCD_DREG PORTA 'LCD data portu = PortA
DEFINE LCD_DBIT 0 'data bitlerin balangc = 0
DEFINE LCD_RSREG PORTA 'RS = PortA
DEFINE LCD_RSBIT 0 'RS = PortA.0
DEFINE LCD_EREG PORTB 'E = PortB
DEFINE LCD_EBIT 3 'E = PortB.3
DEFINE LCD_LINES 2 '2 satr aktif
DEFINE LCD_BITS 4 '4 bitlik veri yolu
SAYI VAR BYTE 'SAYI deikenini tanmla
SAYI1 VAR BYTE 'SAYI1 deikenini tanmla

PAUSE 100 '100 mslik gecikme LCDnin almasn bekle
SAYI=0
SAYI1=0
LCDOUT $FE, 1 'LCDnin ekrann sil
LCDOUT "MOTOR SARIM SAYI:",#SAYI1
LCDOUT $FE, $C0, #SAYI

BAS:
IF PORTB.7=0 THEN GOSUB ART 'ART butonu basl m?
IF PORTB.6=0 THEN GOSUB AZAL1 'AZAL butonu basl m?
IF PORTB.5=0 THEN GOSUB BASLA 'BASLA butonu basl m?
IF PORTB.4=0 THEN GOSUB TEMIZLE 'TEMIZLE basl m?
GOTO BAS 'Hibir butona basl deil BAS etiketine geri dn

ART: '=============================================================
PAUSE 50 '50 ms bekle
SAYI = SAYI+1 'SAYI deikenini bir arttr.
SAYI1 = SAYI 'SAYI1e aktar
LCDOUT $FE,1 'LCDye yazdr
LCDOUT "MOTOR SARIM SAYI:", #SAYI1
LCDOUT $FE, $C0, #SAYI
RETURN

AZAL1: '===========================================================
PAUSE 50
IF SAYI<=0 THEN GOTO CIK1 'Say 0a eitse geri dn
SAYI= SAYI-1 'deilse sayy azalt
SAYI1= SAYI
LCDOUT $FE, 1 'Ekrana yazdr

76

LCDOUT "MOTOR SARIM SAYI:", #SAYI1
LCDOUT $FE, $C0, #SAYI

CIK1:
RETURN

TEMIZLE: '=========================================================
PAUSE 50
SAYI1= 0 'Deikenleri sfrla
SAYI= 0
LCDOUT $FE, 1 'Ekrana yazdr
LCDOUT "MOTOR SARIM SAYI:", #SAYI1
LCDOUT $FE, $C0, #SAYI
RETURN

BASLA: '==========================================================
PORTB.1=1 'Motoru altr
IF PORTB.0=1 THEN GOTO BASLA 'Motor bir tur att m?
PAUSE 50 'Evet 50ms bekle
IF SAYI>=1 THEN GOTO DEVAM 'Say 0 dan byk m?
PORTB.1=0 'Hayr motoru durdur
RETURN 'Alt programdan k

DEVAM: 'Evet say 0 dan byk
SAYI= SAYI-1 'Sayy azalt
LCDOUT $FE,1 'Ekran temizle
LCDOUT "MOTOR SARIM SAYI:",#SAYI1 'Ekrana yazdr
LCDOUT $FE,$C0,#SAYI
GOTO BASLA 'BASLA etiketine geri dn

END
'============================================================

Devrede drt tane buton kullanlmtr. ART butonu devir saysn artrmak iin
kullanlr. Devre ilk altrldnda LCDnin ilk satrnda MOTOR DEVIR SAYISI ve
ikinci satrnda da devir says bulunur.

AZALT butonu devir says azaltlr. TEMIZLE butonu ile de devir says resetlenir.
Devir says ayarlandktan sonra BASLA butonuna basldnda motor almaya balar.
Motorun att her tur reed rle ile belirlenir. Motorun her turunda reed rle kapanr ve
motorun devir says 1 azalr. Bu LCD ekrannda da gzlenebilir. Devir says 0a indiinde
motor durmaktadr. Uygulama devresinde reed rlenin yerine bir buton kullanlmtr.


77

4.3. izgi Takip Eden Robot Uygulama Devresi

Hzla gelien gnmz teknolojisi ile beraber birok alanda insan gcne olan ihtiya
azalmtr. Akll cihazlarn gelitirilmesiyle insan gcnn yerini robotlar almtr. Robotlar
sanayinin tm alanlarna ve hatta gnlk yaantmza girmitir. izgi takip eden robot ekil
4.3 te gsterildii gibi siyah izgiyi takip etmektedir. Robot sistemi, alglama, karlatrma,
kontrol ve hareket sisteminden oluur (ekil 4.4).

ekil 4.3: izgi takip eden robot hatt


ekil 4.4: Robot sisteminin blok diyagram

78



Resim 4.1: izgi izleyen robot resimleri
4.3.1. Alglama Sistemi

Alglama sistemi izgi sensrnden oluur. izgi sensr bir kzl tesi LED ve bir
foto transistrden oluur. izgi sensr olarak CNY 70 entegresi de kullanlabilir. CNY 70
entegresi Resim 4.2de gsterildii gibi bir fototransistr ve kzl tesi LEDden oluur.


79


Resim 4.2: CNY70 optik sensr
Alglama sisteminde kzl tesi LED, zemine srekli k tutar. Ik yerden
fototransistre yansr.

Eer k beyaz zeminden yansm ise fototransistr zerine fazla k der. Yansma
siyah zeminde gerekleirse siyah renk k emdii iin daha az k yansr.

Fototransistrler BJTlerden farkl olarak beyz giriine sahip deildir. Bu transistrler
beyze k geldiinde iletime geer. Siyah zemindeki zayf yansmadan dolay transistr ya
iletime gemez ya da ok kk sznt akm aktr. Beyaz zeminde ise transistr gl
yansmadan dolay iletime geer.



80


4.3.2. Karlatrma Sistemi

Karlatrc olarak devrede OP-AMP kullanlmtr. Alglama sisteminden elde
ettiimiz beyaz ve siyah renkler arasndaki gerilim farkn PIC mikrodenetleyicinin
anlayaca lojik ifadelere dntrmek gerekir. ekil 4.5te gsterildii gibi alglama
devresine karlatrc devresi ilave edilir. OP-AMP olarak LM324 entegresi kullanlmtr
ve OP-AMPn beslemesi +5V, 0V olarak yaplmaldr yani simetrik besleme yaplmaz.

Siyah izgide, yansma az olduundan fototransistr kesimde olur ve OP-AMPn (-)
giriine uygulanan gerilim (Bu gerilim 5Va eittir.), referans geriliminden daha byk
olduundan k gerilim 0Vtur. PICin portuna uygulanan gerilim lojik 0 olur.

Beyaz izgide, yansma fazla olduundan fototransistr iletime geer ve OP-AMPn
(-) giriine uygulanan gerilim (Bu gerilim 0Va eittir.), referans geriliminden kk
olduundan k gerilim +5Vtur. PICin portuna uygulanan gerilim lojik 1 olur.

ekil 4.5: izgi takip eden robot devresi program ak diyagram karlatrma devresi


81

Karar verme sisteminde, PIC 16F84 mikrodenetleyicisi kullanlmtr. Sensrlerin
izgide olma durumu aada aklanmtr. Sistemde adet sensr kullanlmtr.

Sensr2 siyah izgi zerinde, sensr1 ve sensr2 beyaz zeminde ise izgi
robotun tam ortasndan geer. Bu durumda her iki motorda ileri ynde hareket
eder.
Sensr1 siyah izgi zerinde ise soldaki motor duracak, sadaki motor
alacaktr.
Sensr3 siyah izgi zerinde ise sadaki motor duracak, soldaki motor
alacaktr. Hangi sensr siyah izgi zerinde ise o yndeki motor durmaldr
veya yavalamaldr.

4.3.3. Kullanlan Malzemeler

PIC 16F84A 4 Mhz mikrodenetleyici
C1 = C2 = 22pf , X1= 4Mhz kristal
R1= R4 = R7 = 270
R2= R5= R8= R13= 10K
R3= R6= R9= R10= R11= R12= 470
Q1 = Q2= BD139, 12V DC motor
RV1= 20K potansiyometre


82

4.3.4. Devrenin emas

ekil 4.6: izgi takip eden robot devresi


83

4.3.5. Ak Diyagram

Tablo 4.3: izgi takip eden robot devresi program ak diyagram

84

4.3.6. Asm Program

SAY VAR BYTE

;***GIRISLERI TANIMLADIK*************************************
INPUT PORTA.1 'soldaki cny70
INPUT PORTA.2 'ortadaki cny70
INPUT PORTA.3 'sadaki cny70

;***IKISLARI TANIMLADIK************************************
OUTPUT PORTB.1 'sol motor ileri
OUTPUT PORTB.2 'sol motor geri
OUTPUT PORTB.3 'led k
OUTPUT PORTB.4 'ikaz iin

;**ISLEM KOLAYLIGI ICIN PORT ISIMLERINI SEMBOLLERE DONUSTURDUK**
SYMBOL SOLCNY =PORTA.0
SYMBOL ORTACNY =PORTA.1
SYMBOL SAGCNY =PORTA.2
SYMBOL SOLILERI=PORTB.0
SYMBOL SAGILERI=PORTB.1
SYMBOL LED=PORTB.2
SYMBOL IKAZ=PORTB.4

;***ILK HAREKET********************************************************
BASLANGIC:
GOTO DUZGIT

;***ANA DONGU**********************************************************
ANA:
IF ORTACNY=0 THEN SIFIRLA_ORTA 'eer orta beyazsa yalpal gt
IF SOLCNY=0 THEN SIFIRLA_SOL
IF SAGCNY=0 THEN SIFIRLA_SAG
ALT:
IF ORTACNY=1 THEN A1 'eer orta siyahsa A1'e git
A1:
IF SOLCNY=1 THEN A2 'eer sol siyahsa A2'ye git
A2:
IF SAGCNY=1 THEN A3 'eer sa siyahsa A3'e git
GOTO ANA

;***ALT RUTINLER*******************************************************
SIFIRLA_ORTA: 'eer orta beyazsa iki motoru calstr

85

SAY=0
GOTO YALPALA

SIFIRLA_SOL: 'eger sol beyazsa sol motoru calstr
SAY=0
GOTO SOLA_DON

SIFIRLA_SAG: 'eger sa beyazsa sa motoru calstr
SAY=0
GOTO SAGA_DON

SOLA_DON:
IF SOLCNY=SAGCNY THEN DUZGIT
HIGH SAGILERI 'yalnz sa motoru alsttrsa
LOW SOLILERI
GOTO ANA 'ana program blouna geri doner

SAGA_DON:
IF SAGCNY=SOLCNY THEN DUZGIT
HIGH SOLILERI 'yalnz sol motoru altrr
LOW SAGILERI
GOTO ANA 'ana program blouna ger doner

DUZGIT:
HIGH SOLILERI 'her k motoru da alsttrsa duz der
HIGH SAGILERI
GOTO ANA 'ana program blouna ger doner

A3:
IF SAY=20 THEN DURDUR 'eger 50 kez arayp izgi bulamazsa
SAY=SAY+1
HIGH SOLILERI
HIGH SAGILERI
GOTO ARAMA

YALPALA:
IF ORTACNY=SOLCNY THEN SOLA_DON
IF ORTACNY=SAGCNY THEN SAGA_DON
HIGH SOLILERI
LOW SAGILERI
PAUSE 100
HIGH SAGILERI
LOW SOLILERI

86

PAUSE 100
GOTO ANA

ARAMA:
HIGH IKAZ
PAUSE 50
LOW IKAZ
PAUSE 50
GOTO ANA

DURDUR:
HIGH LED
PAUSE 50
LOW LED
PAUSE 100
HIGH LED
PAUSE 50
LOW LED
PAUSE 100
HIGH LED
PAUSE 50
LOW LED
PAUSE 100

LOW SOLILERI
LOW SAGILERI
END



87

UYGULAMA FAALYET

Voltmetre uygulama devresi,
DC motor devir ayar uygulama devresi,
izgi takip eden robot uygulama devresi yapnz.

lem Basamaklar neriler
Kurulacak sistem iin ihtiyalar tespit
ediniz.
Kullandnz devre elemanlarnn
zelliklerini internetten aratrnz.
htiyac karlayacak mikrodenetleyiciyi
seiniz.
Mikrodenetleyici olarak PIC 16F877A
veya PIC 16F84A kullannz.
Analog veri iin gerekli hesaplamalar
yapnz.
Matemetiksel ilemleri dikkatli ekilde
yapnz.
Sistemin mikrodenetleyici programn
yaznz.
Program yazdktan sonra MPLAB ile
PROTEUS programlarnda deneyiniz.
Program mikrodenetleyiciye ykleyiniz.
Program mikrodenetleyiciye yklerken
kullanlan pic programlaycya uygun
yazlm kullannz.
evre elemanlar ve analog veri salayan
elemanlar ile devreyi kurunuz.
Devrenin montajn yapmadan nce
breadboard zerinde kurarak deneyiniz.

UYGULAMA FAALYET

88

KONTROL LSTES

Bu faaliyet kapsamnda aada listelenen davranlardan kazandnz beceriler iin
Evet, kazanamadklarnz iin Hayr kutucuklarna ( X ) iareti koyarak rendiklerinizi
kontrol ediniz.

Deerlendirme ltleri Evet Hayr
1. Kurulacak sistem iin ihtiyalar tespit edebildiniz mi?

2. htiyac karlayacak mikrodenetleyiciyi seebildiniz mi?

3. Analog veri iin gerekli hesaplamalar yapabildiniz mi?

4. Sistemin mikrodenetleyici programn yazabildiniz mi?

5. Program mikrodenetleyiciye ykleyebildiniz mi?

6. evre elemanlar ve analog veri salayan elemanlar ile
devreyi kurabildiniz mi?



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.


89

LME VE DEERLENDRME
Aadaki cmlelerin banda bo braklan parantezlere, cmlelerde verilen
bilgiler doru ise D, yanl ise Y yaznz.

1.( ) PicBasic programlama dilinde ADCIN komutu ile analog giriler kontrol edilir.

2.( ) Voltmetre devresinde potansiyometre zerinde gerilim llr.

3.( ) Kullanlan LCD ler satrlktr.

4.( ) Motor deviri ayarlanrken butonlar kullanlr.

5.( ) izgi izleyen robot devresinde beyaz izgi kullanlmtr.

6.( ) CNY70 s sensrdr.



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.


LME VE DEERLENDRME

90

MODL DEERLENDRME
Aadaki sorular dikkatlice okuyunuz ve doru seenei iaretleyiniz.

1. Fiziksel byklklere benzeyen sinyallere ne denir?
A) Dijital sinyal
B) Analog sinyal
C) Testere dii sinyal
D) Kare sinyal

2. Aadakilerden hangisi DAC ilemlerinde kullanlan yntemlerden deildir?
A)Arlk direnli
B)R-2R merdiven tipi
C)Karlatrc
D)PWM

3. CALL GECIKME komutunun ilevi aadakilerden hangisidir?
A)Gecikme alt programna gider.
B) Gecikme alt programn siler.
C) Gecikme alt programn tar.
D) Gecikme alt programndan geri dner.

4. 10Vluk tepe deerine sahip bir PWM sinyalinin darbe genilii %50 ise ortlama
gerilim nedir?
A)10V
B)5V
C)20V
D)2.5V

5. PIC16F877 entegresinin maksimum osilatr frekans nedir?
A) 10MHz
B) 4MHz
C) 8MHz
D) 20MHz

6. CLRF PORTB komutunun ilevi aadakilerden hangisidir?
A) PORTB yi ta.
B) PORTB yi birle.
C) PORTB yi sfrla.
D) PORTB yi kapat.


MODL DEERLENDRME

91


7. PWM sinyalin hangi zelliini deitirir?
A) Frekans
B) Dalga genilii
C) Periyot
D) Genlik

8. LM35 sensr her scaklk deiiminde hangi bykl deitirir?
A) Akm
B) Diren
C) Gerilim
D) G

9. PAUSE komutunun ilevi aadakilerden hangisidir?
A) msn cinsinden zaman gecikmesi salar.
B) Program hzlandrr.
C) Program durdurur.
D) sn cinsinden gecikme salar.

10. 10. izgi izleyen robot devresinde ka adet optik sensr kullanlr?
A)1
B) 2
C) 3
D) 4



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 modle gemek iin retmeninize bavurunuz.


92

CEVAP ANAHTARLARI
RENME FAALYET-1N CEVAP ANAHTARI

1 Doru
2 Doru
3 Yanl
4 Doru
5 Doru

RENME FAALYET-2NN CEVAP ANAHTARI

1 Doru
2 Doru
3 Yanl
4 Yanl
5 Doru
6 Yanl
7 Doru

RENME FAALYET-3N CEVAP ANAHTARI

1 Doru
2 Yanl
3 Doru
4 Yanl
5 Doru
6 Doru
7 Yanl


RENME FAALYET-4N CEVAP ANAHTARI

1 Doru
2 Doru
3 Yanl
4 Doru
5 Yanl
6 Yanl

CEVAP ANAHTARLARI

93






MODL DEERLENDRME CEVAP ANAHTARI

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




94

KAYNAKA

MEGEP, Mikrodenetleyici ile Analog lemler, Ankara, 2007.
KAYNAKA

You might also like