220 likes | 462 Views
ORT – 104. Hoş Geldiniz. Pic Programlama. Giriş PIC Mikrodenetleyiciler 16F877A & 16F628A Programlama Mantığı PicBasic Pro Değişkenler & Temel Komutlar Koşullar Döngüler Özel Komutlar. Giriş. Giriş. PIC Mikrodenetleyiciler. Yaygın kullanım Yeterli özellikler
E N D
ORT – 104 Hoş Geldiniz
Pic Programlama • Giriş • PIC Mikrodenetleyiciler • 16F877A & 16F628A • Programlama Mantığı • PicBasic Pro • Değişkenler & Temel Komutlar • Koşullar • Döngüler • Özel Komutlar
PIC Mikrodenetleyiciler • Yaygın kullanım • Yeterli özellikler • Kolay programlama • Uygun fiyat • Yazılı kaynaklar
PIC 16F877A – 16F628A • Program Hafızası: 3.5 K • RAM: 224 Bytes • EEPROM: 128 Bytes • I/O: 16 • 1 HPWM • Program Hafızası: 14 K • RAM: 368 Bytes • EEPROM: 256 Bytes • I/O: 33 • 2 HPWM
Programlama Mantığı Kod Derleyicisi Hex Kodu Pic Programlayıcı Yazılımı
PicBasic Pro Basic Hex • Kullanımı yaygın • Örnek kodlar çok • ASM’ye göre kullanışlı • Öğrenmesi kolay
Değişkenler 1 bit [0,1] 8 bit [0,255] 16 bit [0,65535] • BIT • BYTE • WORD counter VAR BYTE acik VAR BIT
Sabit Sayılar • %11111010 • 250 • $FA Binary (2’lik sistem) Decimal (10’luk sistem) Hexadecimal (16’lık sistem) Örnek: portb = 250 portb = $FA portb = %11111010
Input - Output TRIS bir portun i/o pinlerini tanımlar INPUT OUTPUT bir pini input veya output yapar
High - Low Pin 5 Volt’a çekilir 500 ms beklenir Pin toprağa çekilir HIGH PortB.0 PAUSE 500 LOW PortB.0
If - Else IF porta.1 = 1 THEN HIGH portb.1 IF porta.1 = 0 THEN LOW portb.1 IFporta.1 = 1THEN HIGH portb.1 ELSE LOW portb.1 ENDIF
For - Next FOR i = 0TO 7' 0’dan 7’e kadar say HIGH PORTC.0 ' PortC.0 5V PAUSE 10 ' 10 ms bekle LOW PORTC.0 ' PortC.0 0V PAUSE 10 ' 10 ms bekle NEXT i' i’yi arttır, başa dön
PWM • Pulse Width Modulation • PWM Pin,Duty,Cycle % 50 DutyCycle x y PWM PortB.0,127,1000 20Mhz: 1ms 4Mhz: 5ms Döngü sayısı 127/255 Pin Duty cycle
HPWM Portb.3 pini 1. PWM pini olarak tanımlandı DEFINE CCP1_REG PORTB DEFINE CCP1_BIT 3 HPWM 1,127,1000 PWM Frekansı 127/255 1. pin Duty cycle
Pulse • Servo motor sürmek için PULSOUT • komutu kullanılabilir • PULSOUT Pin,Period • Darbe süresi önemlidir • PULSOUT PORTB.5,100 ‘1ms’lik pulse gönder (4mhz) 20Mhz: 2us 4Mhz: 10us
Örnek Kod DEFINE OSC 20 i VAR WORD TRISD=%11111100 MAIN: FORi = 10 TO500 STEP10 IF PortD.3 = 0 THEN HIGHPORTD.0 ELSE LOW PortD.0 ENDIF PAUSE i NEXT GOTO MAIN END
Projeler • Ginger • Quadropod • Roboweb • ...
Teşekkürler İletişim: e.m.r.e.a.k.g.u.l.eee@gmail.com ishakelmas@gmail.com