<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>izoelektronik</title>
	
	<link>http://www.izoelektronik.com</link>
	<description>Elektronik Sitesi</description>
	<lastBuildDate>Tue, 31 Aug 2010 18:11:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Izoelektronik" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="izoelektronik" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-nd/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Izoelektronik</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>I2CREAD – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/i2cread-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/i2cread-pbp-turkce.htm#comments</comments>
		<pubDate>Tue, 31 Aug 2010 17:53:30 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[ı2cread]]></category>
		<category><![CDATA[ı2cwrite]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[turkce]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=173</guid>
		<description><![CDATA[I2CREAD DataPin,ClockPin,Control,{Address,}[Var{,Var...}]{,Label} &#8220;Byte&#8221; büyüklüğündeki Control ve opsiyonel olarak Address bilgilerini ClockPin ve DataPin üzerinden gönderir ve alınan &#8220;byte&#8221; büyüklüğündeki bilgileri Var ile belirtilmiş değişkenlere kaydeder. ClockPin ve DataPin, 0-15 arası sabit bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir. I2CREAD ve I2CWRITE komutları, Microchip tarafından [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/173-tanitim.png" alt="I2CREAD Tanıtım Resim" class="imageleft" width="100" height="100" /><strong>I2CREAD</strong> <em>DataPin</em>,<em>ClockPin</em>,<em>Control</em>,{<em>Address</em>,}[<em>Var</em>{,<em>Var</em>...}]{,<em>Label</em>}</p>
<p>&#8220;Byte&#8221; büyüklüğündeki <em>Control</em> ve opsiyonel olarak <em>Address</em> bilgilerini <em>ClockPin</em> ve <em>DataPin</em> üzerinden gönderir ve alınan &#8220;byte&#8221; büyüklüğündeki bilgileri <em>Var</em> ile belirtilmiş değişkenlere kaydeder. <em>ClockPin</em> ve <em>DataPin</em>, 0-15 arası sabit bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir.</p>
<p><span id="more-173"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><strong>I2CREAD</strong> ve <strong>I2CWRITE</strong> komutları, Microchip tarafından üretilen 24LC01B gibi 2-hat I2C arayüzü kullanarak iletişim kuran harici seri EEPROMlara bilgi yazmak ve okumak için kullanılabilir. Bu cihazlar, enerji kesildiklerinde dahi üzerilerine yazılmış bilgileri koruduklarından birçok uygulamada veri kaydetmek için kullanılmaktadır.</p>
<p>Bu komutlar çalışırken PIC, I2C &#8220;master&#8221; modunda çalışmaktadır. I2C protokolü ile haberleşen sıcaklık sensörleri, A/D çeviriciler gibi başka cihazlarla da bu komutlar kullanılarak iletişim kurulabilir.</p>
<p>12-bit çekirdeğe sahip PICler için, <em>DataPin</em> ve <em>ClockPin</em> parametereleri derleme sırasında <strong>DEFINE</strong> kullanarak derleyiciye bildirilmelidir. Derleyici tarafından ihmal edilmesine rağmen <strong>I2CREAD</strong> fonksiyonu kullanımı sırasında da yine belirtilmelidirler. Gerekli tanımlamalar aşağıdaki gibi programın başında yapılmalıdır.</p>
<pre class="brush: vb;">
DEFINE I2C_SCL PORTA,1 'Sadece 12-bit çekirdeğe sahip PICler için, ClockPin tanımlaması
DEFINE I2C_SDA PORTA,0 'Sadece 12-bit çekirdeğe sahip PICler için, DataPin tanımlaması
</pre>
<p><em>Control</em> parametresi ile verilen bir &#8220;byte&#8221;lık bilginin üst 7 biti, haberleşilecek cihaza bağlı olarak, cihaz seçimi için kontrol kodu veya esktra adres bilgisi içermektedir. En düşük bit ise gönderilecek komutun okuma veya yazma komutu olduğunu ayırmak için kullanılan bir bittir ve doğru ayarlanmasına dikkat edilmelidir.</p>
<p>Örneğin, Microchip tarafından üretilen ve I2C protokolü ile haberleşen bir harici EEPROM olan 24LC01B adlı entegrenin kontrol kodu %1010&#8242;dır. Çip seçim bitleri de kullanılmamaktadır. Dolayısıyla, <em>Control</em> parametresine %10100000 yani $A0 bilgisi yazılmalıdır. Bu protokol ile haberleşen bazı harici EEPROMların özellikleri ve kullanılması gereken <em>Control</em> bilgileri aşağıdaki tabloda verilmiştir.</p>
<p><center></p>
<table>
<tr>
<td><strong>Cihaz</strong></td>
<td><strong>Kapasite</strong></td>
<td><strong><em>Control</em> Parametresi</strong></td>
<td><strong><em>Address</em> Bilgisi Büyüklüğü</strong></td>
</tr>
<tr>
<td>24LC01B</td>
<td>128 byte</td>
<td>%1010xxx0</td>
<td>1 byte</td>
</tr>
<tr>
<td>24LC02B</td>
<td>256 byte</td>
<td>%1010xxx0</td>
<td>1 byte</td>
</tr>
<tr>
<td>24LC04B</td>
<td>512 byte</td>
<td>%1010xxb0</td>
<td>1 byte</td>
</tr>
<tr>
<td>24LC08B</td>
<td>1K byte</td>
<td>%1010xbb0</td>
<td>1 byte</td>
</tr>
<tr>
<td>24LC16B</td>
<td>2K byte</td>
<td>%1010bbb0</td>
<td>1 byte</td>
</tr>
<tr>
<td>24LC32B</td>
<td>4K byte</td>
<td>%1010ddd0</td>
<td>2 byte</td>
</tr>
<tr>
<td>24LC65</td>
<td>8K byte</td>
<td>%1010ddd0</td>
<td>2 byte</td>
</tr>
</table>
<p></center></p>
<p>bbb = blok seçim bitleri<br />
ddd = cihaz seçim bitleri<br />
xxx = önemsiz</p>
<p><em>Address</em> parametresi ile belirlenip, gönderilecek bilginin boyutu (&#8220;byte&#8221;,&#8221;word&#8221;) yine bu parametreye verilmiş değişkenin tipine bakılarak belirlenir. Eğer &#8220;byte&#8221; büyüklüğündeki bir değişken <em>Address</em> parametresi yerine yazılmışsa 8 bitlik bir bilgi; eğer &#8220;word&#8221; büyüklüğünde bir değişken yazılmışsa 16 bitlik bir bilgi gönderilir. Bundan dolayı yazılımcının, iletişim kuracağı cihazın özelliğine göre uygun bir değişken tipi kullanması önemlidir. Sabit ifadelerin boyutu ifadenin içeriğine göre değişebileceğinden sabit ifadelerin <em>Address</em> bilgisi olarak kullanılmaması gerekir. Buna ek olarak çeşitli yazılım ifadeleri de yanlış bilgi gönderilmesine neden olabileceğinden parametre olarak kullanılmamalıdır.</p>
<p><em>Var</em> parametresine &#8220;word&#8221; tipinde bir değişken yazıldıysa, okunan 2 &#8220;byte&#8221;lık bilginin ilk önce en yüksek biti yazılacaktır. En son ise gelen bilginin en düşük biti yazılır. Değişkenlerin saklanmasında öncelikle en düşük bit kaydedilirken burada durum tam tersidir.</p>
<p><strong>STR</strong> manipülatörü değişken isminin önüne yazılarak kullanılabilir. Bu şekilde gelen bilgi tek seferde dizi (&#8220;array&#8221;) yapısı kullanılarak kaydedilebilir. Eğer <strong>STR</strong> ifadesi kullanılıyorsa, önün konulduğu değişkenin tipinin &#8220;word&#8221; veya &#8220;byte array&#8221; olması gerekmektedir. Değişkenin isminin sonuna da \ (ters taksim) işareti ve devamına da bir sayı yazılmalıdır. Örneğin:</p>
<pre class="brush: vb;">
a VAR byte[8]
I2CREAD PORTC.4,PORTC.3,$a0,0,[STR a\8]
</pre>
<p>Bu kod ile gelen bilginin ilk 8 &#8220;byte&#8221;ı, <strong>a</strong> adlı diziye (&#8220;array&#8221;) kaydedilir.</p>
<p>Eğer &#8220;word array&#8221; kullanılıyorsa, okunan her iki &#8220;byte&#8221; büyüklüğünde bilgi, dizinin bir elemanını oluşturur. Okuma işlemi sırasında gelen ilk bilgi, düşük &#8220;byte&#8221;a (&#8220;low byte&#8221;) yazılır. İkinci gelen bilgi ise yüksek &#8220;byte&#8221;a (&#8220;high byte&#8221;) yazılır. Değişkenlerin saklanmasında da derleyici tarafından aynı yol seyredilmektedir. Bu sıranın, üst kısımlarda bahsedilen, &#8220;array&#8221; olarak tanımlanmamış &#8220;word&#8221; tipi değişkenlerde farklı olduğuna dikkat ediniz.</p>
<p>Eğer opsiyonel olarak <em>Label</em> parametresi belirtilir ise, I2C protokolü ile haberleşilen cihazdan onay biti (&#8220;acknowledge bit&#8221;) alınmaması durumunda program, belirtilen etiketten devam edecektir. </p>
<p><strong>I2CREAD</strong> komutu, 12CExxx ve 16CExxx serisi cihazlar gibi bazı PIClerde dahili olarak bulunan ve I2C protokolü ile haberleşen EEPROM üzerinden veri okumak için kullanılabilir. Bunun için <strong>I2CREAD</strong> komutu sırasında uygun pin isimleri belirtilmeli ve aşağıdaki <strong>DEFINE</strong> ifadesi programın başına eklenmelidir.</p>
<pre class="brush: vb;">
DEFINE I2C_INTERNAL 1
</pre>
<p>12CE67x serisi cihazlar için <em>DataPin</em> parametresinin değeri GPIO.6, <em>ClockPin</em> parametresinin değeri GPIO.7 olmalı iken; 16CE62x serisi cihazlar için <em>DataPin</em> parametresinin değeri EEINTF.1 ve <em>ClockPin</em> parametresinin değeri ise EEINTF.2 olmalıdır. Detaylı bilgi için cihazların, üretici firma Microchip tarafından hazırlanan teknik bilgi kılavuzlarına (&#8220;datasheet&#8221;) bakılabilir.</p>
<p><strong>I2CREAD</strong> komutunun kullandığı I2C protokolünün hızı PBP tarafından ayarlanmaktadır. Haberleşme hızının standart hızda (100 KHz) olması isteniyor ise PIC saat hızı makismum 8 MHz olmalıdır. Eğer saat hızı 8 MHz&#8217;den fazla ve 20 MHz&#8217;den az ise haberleşme hızlı modda (400 KHz) yapılacaktır. Eğer 8 MHz fazşa saat hızında da standart hızda (100 KHz) haberleşme yapılması isteniyorsa, aşağıdaki <strong>DEFINE</strong> ifadesi programın başına eklenmelidir:</p>
<pre class="brush: vb;">
DEFINE I2C_SLOW 1
</pre>
<p>Hafıza ve yığın (&#8220;stack&#8221;) limitlerinden dolayı yukarıdaki <strong>DEFINE</strong> ifadesi 12-bit çekildeğe sahip PIClerde işlevsizdir. Bu tip PIClerde I2C haberleşme hızını düşük (100 KHz) tutmak için saat hızı 4 MHz&#8217;den düşük olmalıdır. Eğer saat hızı 4 MHz&#8217;den yüksek ise haberleşme yüksek (400 KHz) hızda yapılacaktır. Bu durumda haberleşilen cihazların bu hızı desteklemesine dikkat edilmelidir.</p>
<p>I2C protokolünde haberleşme, haberleşilen diğer cihazın saat hattını &#8211; SCL hattı yani <em>ClockPin</em> parametresiyle belirtilen pinin bağlı olduğu hattı &#8211; lojik 0 konumunda tutmasıyla duraksatılabilir. Bu özelliği aktif etmek için aşağıdaki <strong>DEFINE</strong> ifadesi programın başına eklenmelidir. Bu özellik 12-bit çekirdeğe sahip olan PICler tarafından desteklenmemektdir.</p>
<pre class="brush: vb;">
DEFINE I2C_HOLD 1
</pre>
<p>I2C protokolünde veri ve saat hattı yani DataPin ve ClockPin parametreleri ile belirtilen pinlerin bağlı olduğu hatların 4.7 KOhm dirençler ile (&#8220;pull up&#8221; direnci) Vcc, lojik 1, seviyesine çekilmesi gerekir. Aşağıdaki örnek bağlantı şemasında her iki hat da iki yönlü (&#8220;bi-directional&#8221;) ve açık-kollektör (&#8220;open-collector&#8221;) olarak çalışmaktadır.</p>
<p>Eğer I2C saat hattının yani <em>ClockPin</em> parametresi ile belirtilmiş pinin bağlı olduğu hatın açık-kollektör (&#8220;open-collector&#8221;) yerine çift kutuplu (&#8220;bipolar&#8221;) olması gerekiyorsa aşağıdaki <strong>DEFINE</strong> ifadesi programın başına eklenmelidir.</p>
<pre class="brush: vb;">
DEFINE I2C_SCLOUT 1
</pre>
<p><strong>Örnek</strong></p>
<p>Aşağıdaki devrede PIC 16F84&#8242;e bağlı I2C protokolü ile haberleşen harici bir EEPROM bulunmaktadır. Verilen kod parçası da EEPROM&#8217;un 17 nolu adresinden veri okumaktadır. </p>
<p><center><img src="http://resim.izoelektronik.com/icerik/173-1-ornek-eeprom.png" alt="Örnek EEPROM Bağlantısı" width="585" height="298" /></center></p>
<pre class="brush: vb;">
addr var byte
cont con %10100000
addr = 17 ' EEPROM'un 17 nolu adresindeki veriyi okumak için addr değişenin değeri 17 yapıldı.
' EEPROM'un 17 nolu adresindeki veriyi oku, B2 adlı değişkene bu değeri yaz.
I2CREAD PORTA.0,PORTA.1,cont,addr,[B2]
</pre>
<p>EEPROM ile ilgili daha detaylı bilgiye, üreticileri tarafında sağlanan teknik bilgi kılavuzuna (&#8220;datasheet&#8221;) bakılabilir.</p>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li>I2CWRITE</li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong> ve <strong>Hazar</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fi2cread-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/i2cread-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/i2cread-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SAÜRO 2010</title>
		<link>http://www.izoelektronik.com/sauro-2010.htm</link>
		<comments>http://www.izoelektronik.com/sauro-2010.htm#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:46:36 +0000</pubDate>
		<dc:creator>İzoelektronik</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Haber]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[çizgi izleyen]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[sakarya üniversitesi]]></category>
		<category><![CDATA[saüro]]></category>
		<category><![CDATA[sumo]]></category>
		<category><![CDATA[yarışma]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=194</guid>
		<description><![CDATA[Ülkemizde yapılan bir robot yarışmasını daha sizlere duyurmak istiyoruz. SAÜRO, Sakarya Üniversitesi Ulusal Robot Yarışması, Sakarya Üniversitesi Elektrik Elektronik Mühendisliği Kulübü tarafından düzenleniyor. Bu sene ikincisi düzenlenecek yarışma 3-4 Nisan 2010 tarihlerinde Sakarya Üniversitesi Esentepe Kampüsü Kültür ve Kongre Merkezi&#8216;nde yapılacaktır. Yarışma ile ilgili bilgilere www.sauro2010.com adresinden ulaşabilirsiniz. Sakarya Üniversitesi Elektrik Elektronik Mühendisliği Kulübü tarafından [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/194-tanitim.gif" alt="SAÜRO 2010 Tanıtım Resmi" class="imageleft" width="100" height="77" />Ülkemizde yapılan bir robot yarışmasını daha sizlere duyurmak istiyoruz. <strong>SAÜRO, Sakarya Üniversitesi Ulusal Robot Yarışması, Sakarya Üniversitesi Elektrik Elektronik Mühendisliği Kulübü</strong> tarafından düzenleniyor. Bu sene ikincisi düzenlenecek yarışma <strong>3-4 Nisan 2010</strong> tarihlerinde <strong>Sakarya Üniversitesi Esentepe Kampüsü Kültür ve Kongre Merkezi</strong>&#8216;nde yapılacaktır. Yarışma ile ilgili bilgilere <a href="http://www.sauro2010.com" title="SAÜRO 2010" target="_blank" rel="nofollow">www.sauro2010.com</a> adresinden ulaşabilirsiniz. Sakarya Üniversitesi Elektrik Elektronik Mühendisliği Kulübü tarafından bize iletilen bilgiyi aşağıda da bulabilirsiniz. İzoelektronik olarak biz de yarışma ekibine başarılar diler, düzenledikleri yararlı organizasyon için kendilerini kutlarız.</p>
<p><span id="more-194"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<blockquote><p>
Sakarya Üniversitesi Elektrik Elektronik Mühendisliği Kulübü robot üretim teknolojileri hakkında bilgi sahibi olmak, diğer üniversitelerdeki arkadaşlarının tecrübelerini paylaşmak, mezun olmadan önce mesleki tecrübe edinmek, kendi robotlarını sergilemek ve sektördeki firmaların yöneticileriyle tanışmak isteyen herkesi 3-4 Nisan 2010 &#8216;da Sakarya &#8216;ya davet ediyor.</p>
<p>Robotik çalışmada kendini geliştirmek isteyen kişilerin davetli olduğu SAÜRO 2010 &#8216;da Mini Sumo, Sumo, Elemeli Çizgi İzleyen, Gelişmiş Çizgi İzleyen ve Serbest olmak üzere 5 kategoride yenilikçi amaçlarıyla düzenlenecek yarışmaların dışında; sektörde yeniliğe açık, kendini geliştirme konusunda yol gösterici akademisyenler ve sektörden yöneticiler eşliğinde paneller, söyleşiler ve yarışmaya katılan ekiplerin oluşturacağı sergiler düzenlenmektedir.</p>
<p><center><img src="http://resim.izoelektronik.com/icerik/194-1-afis.jpg" alt="SAÜRO 2010 Afiş" width="450" height="630" /></center></p>
<p>Kendini geliştirme ana temalı yarışmamızda, robotlar gibi ödüllerimizde artık daha kaliteli. Geçen senenin aksine dereceye giren ekipleri muhteşem ödüller bekliyor.</p>
<p>Bilgilerini paylaşarak, ve yepyeni fikirler edinip, ufkunu genişleterek ve belki de kazanacağın ödül ile birlikte Sakarya &#8216;dan mutlu bir şekilde ayrılmak istiyorsanız bu yıl ikincisi düzenlenecek SAURO 2010 &#8216;da sizi de bekliyoruz.</p>
<p>SAÜRO 2010 &#8216;a katılmak ise çok kolay; yapman gereken <a href="http://www.sauro2010.com" title="SAÜRO 2010" target="_blank" rel="nofollow">www.sauro2010.com</a> adresinde kayıt formunu doldurmak…</p>
<p>Kayıt formunu doldurduktan sonra diğer yarışmacıların robotlarını inceleyebilir, robotlara yorum yazabilir, kendi robotunu geliştirebilirsiniz. </p>
<p>Kendini geliştirmek istemiyor musun?
</p></blockquote>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fsauro-2010.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/sauro-2010.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/sauro-2010.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>İzoelektronik’ten Ödüllü Devre Tasarım Yarışması</title>
		<link>http://www.izoelektronik.com/izoelektronikten-odullu-devre-tasarim-yarismasi.htm</link>
		<comments>http://www.izoelektronik.com/izoelektronikten-odullu-devre-tasarim-yarismasi.htm#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:11:35 +0000</pubDate>
		<dc:creator>İzoelektronik</dc:creator>
				<category><![CDATA[Duyurular ve Gelişmeler]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Haber]]></category>
		<category><![CDATA[çizgi]]></category>
		<category><![CDATA[çizgi-tagem]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[kart]]></category>
		<category><![CDATA[ödüllü]]></category>
		<category><![CDATA[tornavida]]></category>
		<category><![CDATA[yarışma]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=193</guid>
		<description><![CDATA[Çizgi-TAGEM&#8216;in sponsorluğunda ödüllü bir devre tasarım yarışması düzenliyoruz. Yarışmada, katılımcılardan sorduğumuz soruya çözüm üretmelerini istiyoruz. Yarışma sonunda birinciye ALTERA FPGA Geliştirme Kartı verilecektir. Ayrıca ön elemeyi geçen 50 kişi de DVD Eğitim Seti + Tornavida Takımı kazanacaktır. Son katılım tarihi 30 Nisan 2010! Ödüllerin resimlerine, yarışma sorusuna ve yarışma ilgili tüm detaylara yarisma.izoelektronik.com adresinden ulaşabilirsiniz. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/193-tanitim.gif" alt="İzoelektronik'ten Ödüllü Devre Tasarım Yarışması" class="imageleft" width="100" height="75" /><a href="http://www.cizgi-tagem.org" title="Çizgi TAGEM" target="_blank">Çizgi-TAGEM</a>&#8216;in sponsorluğunda ödüllü bir devre tasarım yarışması düzenliyoruz. Yarışmada, katılımcılardan sorduğumuz soruya çözüm üretmelerini istiyoruz. Yarışma sonunda <strong>birinciye ALTERA FPGA Geliştirme Kartı</strong> verilecektir. Ayrıca ön elemeyi geçen <strong>50 kişi de DVD Eğitim Seti + Tornavida Takımı</strong> kazanacaktır. Son katılım tarihi <strong>30 Nisan 2010</strong>!</p>
<p>Ödüllerin resimlerine, yarışma sorusuna ve yarışma ilgili tüm detaylara <a href="http://yarisma.izoelektronik.com" title="İzoelektronik Ödüllü Yarışma" target="_blank">yarisma.izoelektronik.com</a> adresinden ulaşabilirsiniz.</p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/izoelektronikten-odullu-devre-tasarim-yarismasi.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/izoelektronikten-odullu-devre-tasarim-yarismasi.htm/feed</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>ODTÜ Robot Günleri 2010</title>
		<link>http://www.izoelektronik.com/odtu-robot-gunleri-2010.htm</link>
		<comments>http://www.izoelektronik.com/odtu-robot-gunleri-2010.htm#comments</comments>
		<pubDate>Tue, 02 Feb 2010 16:52:17 +0000</pubDate>
		<dc:creator>İzoelektronik</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Haber]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[günleri]]></category>
		<category><![CDATA[odtü]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[yarışma]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=192</guid>
		<description><![CDATA[ODTÜ Robot Topluluğu tarafından düzenlenen Uluslararası ODTÜ Robot Günleri bu sene 13-14 Mart tarihleri arasında ODTÜ Kültür ve Kongre Merkezi&#8216;nde düzenlenecektir. Robot meraklılarına bu güzel etkinliği kaçırmamalarını öneririz. ODTÜ Robot Topluluğu tarafından tarafımıza iletilen tanıtım yazısını aşağıda bulabilirsiniz: Uluslararası ODTÜ Robot Günleri 13-14 Mart 2010&#8242;da KKM&#8217;de En yeni robot teknolojilerini, basit bir robotun nasıl yapıldığını [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/192-tanitim.jpg" alt="ODTÜ Robot Günleri 2010 Tanıtım Resmi" class="imageleft" width="100" height="75" />ODTÜ Robot Topluluğu tarafından düzenlenen Uluslararası ODTÜ Robot Günleri bu sene <strong>13-14 Mart</strong> tarihleri arasında <strong>ODTÜ Kültür ve Kongre Merkezi</strong>&#8216;nde düzenlenecektir. Robot meraklılarına bu güzel etkinliği kaçırmamalarını öneririz. </p>
<p>ODTÜ Robot Topluluğu tarafından tarafımıza iletilen tanıtım yazısını aşağıda bulabilirsiniz:</p>
<p><span id="more-192"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<blockquote><p>
<strong>Uluslararası ODTÜ Robot Günleri 13-14 Mart 2010&#8242;da KKM&#8217;de</strong></p>
<p>En yeni robot teknolojilerini, basit bir robotun nasıl yapıldığını görmek, öğrenmek veya robotlarınızı yarıştırmak istiyorsanız Uluslararası ODTÜ Robot Günleri&#8217;ni kaçırmayın!</p>
<p>Yarışmalara katılmak için hemen kaydolun. Türkiye’nin ilk uluslararası robot organizasyonu olan Uluslararası ODTÜ Robot Günleri <strong>13-14 Mart 2010</strong> tarihlerinde <strong>ODTÜ Kültür Kongre Merkezi</strong>&#8216;nde gerçekleştirilecektir.</p>
<p><center><img src="http://resim.izoelektronik.com/icerik/192-1-afis.jpg" width="450" height="338" alt="ODTÜ Robot Günleri 2010 Afiş" /></center></p>
<p>ODTÜ Robot Günleri&#8217;nde çeşitli kategorilerden Robot Yarışmaları düzenlendiği gibi özgün ve yaratıcı fikirler de kendine yer buluyor, katılımcılar bilgi paylaşımına teşvik ediliyor. Robot Günleri, sadece düzenlenen çeşitli konferans ve atölye çalışmalarıyla Robot Teknolojisi ile akademik ya da profesyonel olarak ilgilenen bireyleri bir araya getirmekle kalmayıp, amatörleri de bu teknolojiye biraz daha yakınlaştırıyor.</p>
<p>İlgi duyan herkesin izleyici olarak katılabileceği Uluslararası ODTÜ Robot Günleri insanların Robot Teknolojisi konusunda fikir edinmelerinin amaç edinildiği bir etkinliktir ve robotlara ilgi duyan herkes bu etkinliğe davetlidir.</p>
<p><a href="http://odturobotgunleri.org.tr" target="_blank" title="ODTÜ Robot Günleri" rel="nofollow"/>http://odturobotgunleri.org.tr</a></p>
<p>Sitemizi ziyaret etmeyi ve yarışmacı olabilmek için üye olmayı unutmayın!
</p></blockquote>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fodtu-robot-gunleri-2010.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/odtu-robot-gunleri-2010.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/odtu-robot-gunleri-2010.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LCD Ekranlı Basit Termometre Devresi</title>
		<link>http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm</link>
		<comments>http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm#comments</comments>
		<pubDate>Sat, 30 Jan 2010 13:44:25 +0000</pubDate>
		<dc:creator>90alper90</dc:creator>
				<category><![CDATA[Devre Şeması]]></category>
		<category><![CDATA[Dosya]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[PIC Programı]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Uygulama]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[16f628]]></category>
		<category><![CDATA[ds18b20]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[one-wire]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[sıcaklık]]></category>
		<category><![CDATA[surme]]></category>
		<category><![CDATA[termometre]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=190</guid>
		<description><![CDATA[Merhabalar, Bu yazıda LCD ekranlı basit bir termometre yapımını anlatmaya çalışacağım. Devrenin çalışan halini ve çeşitli ortamlardaki testini yazının devamında bulabileceğiniz videoda görebilirsiniz. &#8220;Nerden çıktı bu termometre?&#8221; derseniz de, masamın üstünde duran LCD ve PIC&#8217;e ek olarak önceden alıp bir köşeye attığım sıcaklık sensörünü bulmam en büyük neden tabi. Ayrıca haberlerde gördüğümüz &#8220;Yarın sıcaklık -3 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/190-tanitim.gif" alt="LCD Ekranlı Basit Termometre Devresi Tanıtım Resimi" class="imageleft" width="100" height="135" />Merhabalar,</p>
<p>Bu yazıda LCD ekranlı basit bir termometre yapımını anlatmaya çalışacağım. Devrenin çalışan halini ve çeşitli ortamlardaki testini yazının devamında bulabileceğiniz videoda görebilirsiniz.</p>
<p>&#8220;Nerden çıktı bu termometre?&#8221; derseniz de, masamın üstünde duran LCD ve PIC&#8217;e ek olarak önceden alıp bir köşeye attığım sıcaklık sensörünü bulmam en büyük neden tabi. <img src='http://www.izoelektronik.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ayrıca haberlerde gördüğümüz &#8220;Yarın sıcaklık -3 derceye kadar düşecek.&#8221; benzeri söylemlerden dolayı &#8220;Dışarısı gerçekten ne kadar soğuk?&#8221; diye düşünmem de bir diğer etken.</p>
<p>Kullanacağımız sensör teorik olarak -55, +125 santigrat derece arası sıcaklıkları ortalama 0.5 santigrat derece hassiyetler ölçebiliyor. Yine teorik olarak devreyi 3V DC ve üzeri bir kaynakla çalıştırabilirsiniz.</p>
<p>Devreye geçmeden önce malzemelerimizi sayalım:</p>
<ul>
<li>DS18B20</li>
<li>PIC 16F628 veya PIC 16F628A</li>
<li>10K veya yakın değerde POT</li>
<li>LED (Herhangi bir renk olabilir.)</li>
<li>470 Ohm Direnç</li>
<li>4.7 KOhm Direnç</li>
<li>HD44780 veya benzeri sürücü entegre içeren 16&#215;2 LCD Ekran</li>
</ul>
<p>Her malzemeden bir adet olması yeterlidir. Devrenin özelliklerine kısaca bakalım.</p>
<p><span id="more-190"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p>Sensörden dolayı geniş bir sıcaklık aralığını ölçebiliyoruz. Devrede okuma yapıldığını belirten bir adet LED bulunuyor. Sensör yaklaşık her saniyede bir kez okunmakta ve okunan değer ekrana yazdırılmaktadır. Her okuma işlemi esnasında da LED kısa bir süre yanıp, sönmektedir. Devre şeması aşağıdaki gibidir:</p>
<p><center><img src="http://resim.izoelektronik.com/icerik/190-1-sema.png" alt="LCD Ekranlı Basit Termometre Devresi Devre Şeması" width="500" height="448"/></center></p>
<p><center><a href="http://resim.izoelektronik.com/icerik/190-1-sema.png" target="_blank" title="LCD Ekranlı Basit Termometre Devresi Devre Şeması - Büyük">Büyük resim için tıklayınız.</a></center></p>
<p>Evet, gördüğünüz gibi devre oldukça basit. Zaten tüm işi sevgili mikrokontrolcümüz PIC yapıyor. LCD&#8217;yi 4 bit olarak sürüyoruz. İşimizi kolaylaştıran eleman ise sensörümüz: DS18B20. Devreyi 5V civarı voltaj veren bir DC kaynak ile çalıştırabilirsiniz. Devre, video çekimlerinde 4.5V ile çalışıyordu.</p>
<div class="uyari_bilgi">
Bu yazının konusu termometre devresi olduğudan, DS18B20, LCD gibi elemanların kullanımı yüzeysel olarak anlatılmıştır. Yazı konu anlatımı niteliğinde değildir. Bu elemanların kullanımı ile ilgili detaylı bilgi arayanların ihtiyacını bu yazı karşılamayabilir. İlerleyen zamanlarda yayınlanacak başka yazılarda, bahsi geçen elemanların kullanımı detaylı bir şekilde anlatılabilir.
</div>
<p>DS18B20, Dallas firması tarafından üretilen bir sıcaklık sensörü. Türkiye&#8217;de 2-3 Tl civarında bulabilmeniz mümkün. DS18B20 dijital bir sensör ve sıcaklık değerini iletişim kurarak okuyoruz. Sensör tek hat üzerinden (&#8220;one-wire&#8221;) iletişim kuruyor. Sensörü veri hattı ve nötr ile besleyebilmeniz (&#8220;parasite power&#8221;) mümkün. Bu devrede bu özelliği kullanmıyoruz.</p>
<p>Aslında DS18B20&#8242;nin alarm özelliği gibi kullanmadığımız başka özellikleri de mevcut. Merak edenler, internetten sensörün kullanım kılavuzuna (&#8220;datasheet&#8221;) erişerek detaylı bilgiye ulaşabilir. Tek hat üzerinden iletişim kurarken kullanılan protokolün en önemli avantajlarından biri ise tek bir hat üzerinde birden fazla sensörün bağlanabiliyor olması. Mikrokontrolcünüzün tek bir pinini feda ederek birden fazla sensörü ayrı ayrı okuyabilirsiniz. Bu devrede sadece tek bir sensör okuyoruz. Belki başka bir yazıda sensörün diğer özelliklerinin kullanımına ve tek hat üzerinden birden fazla sensörün okunmasına değinilebilir.</p>
<div class="uyari_ikaz">
Kullanacağınız ekranının HD44780 veya benzeri başka bir sürücü içermesi gerekiyor. Çoğu satıcı sattığı ürünü bilmese de piyasada bulacağınız LCDlerin çoğu bu şekildedir. Alırken dikkat etmeniz gereken nokta satıcıların bir kısmı ücreti daha yüksek olduğu için grafik LCD satmaya çalışmaktadır. Aldığınız LCD ekranın 16&#215;2 Dot-Matrix LCD olduğundan emin olunuz.
</div>
<p>Programlama dili olarak Pic Basic Pro dilini kullandım. Bu tür basit projelerde dilin yazım rahatlığı büyük bir zaman kazancı ve kolaylık sağlıyor. PBP&#8217;nin yetersiz olduğu noktalar yok değil. Bu devre için ihtiyacımızı çok rahat karşıladığından tercih ettim. İsterseniz programımıza bir göz atalım.</p>
<pre class="brush: vb;">
'*  Adı          : Termometre
'*  Yazar        : http://www.izoelektronik.com - Alper Yazar (90alper90)
'*  Yazı Adresi  : http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm
'*  Notlar       : PBP fonksiyonlarının Türkçe açıklamalarına http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm
'adresinden ulaşabilirsiniz. Sorularınızı iletmek için &quot;Yazı Adresi&quot; ile belirtilen adresteki yazıya yorum yazabilirsiniz.
@ DEVICE pic16f628, WDT_OFF
@ DEVICE pic16f628, PWRT_OFF
@ DEVICE pic16f628, BOD_OFF
@ DEVICE pic16f628, LVP_OFF
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16f628, MCLR_OFF
@ DEVICE pic16f628, INTRC_OSC_NOCLKOUT
Include &quot;modedefs.bas&quot;
DEFINE OSC 4 '4 Mhz hızında çalışıyoruz.
SENSOR VAR PORTB.7 'Sensör PORTB.7'ye bağlı
LED VAR PORTB.6 'LED PORTB.6'ya bağlı
MESGUL VAR BYTE 'Çeşitli değişken tanımlamaları
BILGI VAR WORD
ISARET VAR BYTE
ONDA1 VAR WORD
ONDA2 VAR WORD
ARA VAR WORD
DEGER VAR BYTE
'LCD TANIMLAMALARI
DEFINE LCD_DREG     PORTB   'LCD Veri pinleri PORTB'ye bağlı.
DEFINE LCD_DBIT     0       'LCD'nin D0 pini PORTB.0'a bağlı
DEFINE LCD_RSREG    PORTB   'RS PİNİ PORTB'ye bağlı
DEFINE LCD_RSBIT    4       'RS PİNİ = PORTB.4
DEFINE LCD_EREG     PORTB   'ENABLE PİNİ PORTB'ye bağlı
DEFINE LCD_EBIT     5       'ENABLE PİNİ = PORTB.5
DEFINE LCD_RWREG    PORTA   'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
DEFINE LCD_RWBIT    1       'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
DEFINE LCD_BITS     4       'LCD 4 BİT SÜRÜLÜYOR
DEFINE LCD_LINES    2       'LCD 2 SATIRLIK
'LCD TANIMLAMALARI BİTİŞ
TRISA=%11111111 'PORT giriş-çıkış tanımalamları
TRISB=%10111111
PAUSE 500 'Ekranın hazır olması için biraz bekliyoruz.
LCDOUT $FE,$40,6,9,9,6,0,0,0,0 'Derece gösterimi için özel karakteri LCD'ye yüklüyoruz.
LCDOUT $FE,$48,4,0,14,4,4,4,14,0 'İ karakterini LCD'ye yüklüyoruz.
LCDOUT $FE,$50,0,0,4,4,4,4,4,0 'ı karakterini LCD'ye yüklüyoruz.
LCDOUT $FE,1,1,&quot;zoelektronik&quot; 'İlk satıra İzoelektronik yaz.
LCDOUT $FE,$C0,&quot;90alper90 - 2010&quot; 'İkinci satıra yaz.
PAUSE 3000  'Biraz bekle
LCDOUT $FE,1,&quot;S&quot;,2,&quot;cakl&quot;,2,&quot;k:&quot; 'Ekranı temizleyip, üst satıra Sıcaklık: yaz.
BASLA: 'Dongüye gir.
ISARET=&quot;+&quot;
OWOUT SENSOR,1,[$CC,$44] 'Sensöre sıcaklığı okumasını söyle.
BEKLE: 'Sensör hazır olana kadar bekle.
OWIN SENSOR,4,[MESGUL]
IF MESGUL=0 THEN
GOTO BEKLE
ENDIF
DEVAM:
OWOUT SENSOR,1,[$CC,$BE] 'Sensöre okuduğu değeri göndermesini söyle.
OWIN SENSOR,0,[BILGI.LOWBYTE,BILGI.HIGHBYTE] 'Gelen 16 bitlik bilgiyi al.
'Programın devamındaki algoritma daha etkili bir şekilde yazılabilir. Bu uygulamada performans çok da etkili olmadığından aklıma gelen ilk algoritmayı kullandım.
'Kodun mantığını anlamanız açısından kod üzerine düşünmeniz daha faydalı olacaktır. Bu yüzden kodların yanına açıklama yazmıyorum.
'Fakat anlamadığınız bir nokta olursa lütfen
'http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm adresindeki yazının altına yorum yazarak sorularınızı iletiniz.
IF BILGI.BIT13=1 THEN 'Sıcaklık negatif ise
ISARET=&quot;-&quot; 'İşaret artık + değil -
BILGI=~BILGI 'Gelen bilgideki bitleri tersle, 1-&gt;0, 0-&gt;1
BILGI=BILGI+1 'Bilgiyi 1 arttır.
ENDIF
ARA=BILGI*625 '12 bit hassasiyet kullandığımız için her değer 0.0625 santigrat dereceye denk geliyor.
DEGER=DIV32 10000
ARA=BILGI*625
ONDA1= DIV32 1000
ARA=BILGI*625
ONDA2= DIV32 100
ONDA1=ONDA1-(DEGER*10)
ONDA2=ONDA2-((dEGER*100)+(ONDA1*10))
LCDOUT $FE,$C0,&quot;          &quot; 'LCD ekranın alt satırını temizle
LCDOUT $FE,$C0,ISARET,#DEGER,&quot;.&quot;,#ONDA1,#ONDA2,&quot; &quot;,0,&quot;C&quot;
HIGH LED 'LEDi yakıp söndürerek döngünün bittiğini belirt.
PAUSE 200
LOW LED
PAUSE 800
GOTO BASLA 'BASLA etiketine dön
END
</pre>
<p>Kodların içinde de belirttiğim gibi çok daha güzel algoritmalar ile bu iş yapılabilir. Bu devre için performans çok önemli olmadığı için aklıma gelen ilk algoritmayı kullandım. Öğrenmek isteyenler içinse, kod üzerinde düşünmenin var olan açıklamayı okumaktan daha yararlı olduğunu düşündüğümden bazı kısımların açıklamalarını eklemedim. Programın çalışmasını öğrenmek isteyenler için tavsiyem kodu anlamaya çalışmaları ve soruları olursa yazının altına yorum yazarak iletmeleri.</p>
<p>Programın sonlarına doğru ikinci satırı temizlemek için ikinci satıra bir dizi boşluk basıldığını görebilirsiniz. Alt satırı silmezseniz videoda da görebileceğiniz gibi iki adet C harfi basma problemi oluşuyor. Temizleme işlemini sadece alt satırı silen bir komut ile yapmak çok daha güzel olacaktır. Yalnız HD44780 entegresinin kullanım kılavuzunda böyle bir komut bulamadım. Tüm ekranı temizleyip her seferinde üst satıra &#8220;Sıcaklık&#8221; yazdırmak da daha uzun bir yol olarak gözüktü. Bu yüzden alt satırı temizlemek için ekrana boşluk bastırmayı tercih ettim. Eğer daha etkili bir yol bulur ya da HD44780&#8242;in alt satırı temizleme gibi bir özelliği varsa bunu iletirseniz sevinirim. <img src='http://www.izoelektronik.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Devrenin çalışmasını aşağıdaki videolardan görebilirsiniz:</p>
<p><strong>Video İnceleme</strong></p>
<p>İzoelektronikTV <strong>YouTube</strong> Kanalı Üzerinden:</p>
<p><center><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/wnoDWyy9nSA&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wnoDWyy9nSA&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></center></p>
<p><center><a href="http://www.youtube.com/watch?v=wnoDWyy9nSA" target="_blank" title="YouTube Videosu">www.youtube.com/watch?v=wnoDWyy9nSA</a></center></p>
<p>İzoelektronikTV <strong>Metacafe</strong> Kanalı Üzerinden:</p>
<p><center><embed src="http://www.metacafe.com/fplayer/4093128/lcd_ekranl_basit_termometre_devresi_testi.swf" width="400" height="345" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" name="Metacafe_4093128"></embed></center></p>
<p><center><a href="http://www.metacafe.com/watch/4093128/lcd_ekranl_basit_termometre_devresi_testi/" target="_blank" title="MetaCafe Videosu">www.metacafe.com/watch/4093128/lcd_ekranl_basit_termometre_devresi_testi/</a></center></p>
<p>Programın derlenmiş halini (.hex), kaynak kodu ve devre şemasını Dosyaİndir üzerinden indirebilirsiniz.</p>
<p><a href="http://dosya.izoelektronik.com/indir.php?indir=46" title="Devre dosyasını indir." target="_blank">İndirmek için tıklayınız.</a></p>
<p>Sorularınızı iletmek için hemen sayfanın aşağısına inip, yorum yazabilirsiniz.</p>
<p>Bir başka yazıda görüşmek dileği ile&#8230;</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Flcd-ekranli-basit-termometre-devresi.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/lcd-ekranli-basit-termometre-devresi.htm/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>WRITECODE – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/writecode-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/writecode-pbp-turkce.htm#comments</comments>
		<pubDate>Sat, 05 Sep 2009 13:56:46 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[readcode]]></category>
		<category><![CDATA[turkce]]></category>
		<category><![CDATA[writecode]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=111</guid>
		<description><![CDATA[WRITECODE Address,Value &#8220;Word&#8221; büyüklüğündeki Value değerini kod alanındaki Address alanına yazar. PIC16F87x serisi cihazlar çalışma anında program kodlarının okunup, yazılmasına izin verir. Kod ile program kodlarını değiştirmek tehlikeli bir işlem olmasına karşın, bu yöntem yaklaşık 64-256 &#8220;byte&#8221;&#8216;lık verinin silinmeyecek şekilde depolanmasını mümkün kılar. Bu kod kullanılırken yeni bilgilerin var olan program kodlarının üstüne yazılmamasına dikkat [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/111-tanitim.gif" alt="WRITECODE Tanıtım Resim" class="imageleft" width="100" height="77" /><strong>WRITECODE</strong> <em>Address</em>,<em>Value</em></p>
<p>&#8220;Word&#8221; büyüklüğündeki <em>Value</em> değerini kod alanındaki <em>Address</em> alanına yazar. PIC16F87x serisi cihazlar çalışma anında program kodlarının okunup, yazılmasına izin verir. Kod ile program kodlarını değiştirmek tehlikeli bir işlem olmasına karşın, bu yöntem yaklaşık 64-256 &#8220;byte&#8221;&#8216;lık verinin silinmeyecek şekilde depolanmasını mümkün kılar. Bu kod kullanılırken yeni bilgilerin var olan program kodlarının üstüne yazılmamasına dikkat edilmelidir.</p>
<p><span id="more-111"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p>PIC 16Fxxx serisi cihazlarda 14 bit büyüklüğündeki bilgiler kod alanına yazılabilir.</p>
<p>PIC 18Fxxx serisi cihazlarda &#8220;byte&#8221; veya &#8220;word&#8221; büyüklüğündeki bilgiler kod alanına yazılabilir. Bu cihazlarda <em>Address</em> parametresi 0-65535 arası değer alabilmektedir.</p>
<p>Kod alanına bloklar olarak yazmaya için veren PIC 16F877a ve 18F452 gibi cihazlarda yazım işlemi tüm bloğa yapılmalıdır. Blokların büyüklüğün her cihazda farklıdır. Bu yüzden doğru bilgi için kullanılacak cihazın Microchip tarafından hazırlanmış kullanım kılavuzuna (&#8220;datasheet&#8221;) bakılmalıdır.</p>
<p>Ayrıca PIC 18Fxxx serisi gibi cihazlarda kod bloğunun yazılmadan önce silinmesi gerekmektedir. Bu tür cihazlarda <strong>WRITECODE</strong> komutundan önce <strong>ERASECODE</strong> komutu ile silme işlemi yapılamalıdır.</p>
<p>Eğer programda kesmeler kullanılıyorsa, <strong>WRITECODE</strong> komutundan önce kesmeler kapatılmalı (Maskelenmeli, <strong>DISABLE</strong> ile iptal edilmemelidir.) ve eğer isteniyorsa komuttan sonra tekrar açılmalıdır. <strong>WRITECODE</strong> komutunun çalışması sırsaında oluşacak bir kesme komutun başarısız olmasına neden olabilir.</p>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
WRITECODE 100,W ' 100 nolu kod alanındaki bilgiyi oku ve W adlı değişkene kaydet.
</pre>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li><strong>READCODE</strong></li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong>, <strong>Hazar</strong> ve <strong>ywzslm</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fwritecode-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/writecode-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/writecode-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ERASECODE – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/erasecode-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/erasecode-pbp-turkce.htm#comments</comments>
		<pubDate>Sat, 05 Sep 2009 13:15:33 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[erasecode]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[turkce]]></category>
		<category><![CDATA[writecode]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=188</guid>
		<description><![CDATA[ERASECODE Block Flash belleğe sahip olan bazı cihazlarda, PIC 18Fxxx serisi gibi, WRITECODE ile program kodlarının tekrar yazılmasından önce yazılacak alanın silinmesi gerekmektedir. Bu cihazlarda silme işlemi kod blokları üzerinden yapılır. Silinecek kod bloğu cihaza bağlı olarak 64 &#8220;byte&#8221; (32 &#8220;word&#8221;) büyüklüğünde veya başka büyüklüklerde olabilir. Bu büyüklük genelde yazılan blok büyüklüğünden daha fazla olmaktadır. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/188-tanitim.gif" alt="ERASECODE Tanıtım Resim" class="imageleft" width="100" height="103" /><strong>ERASECODE</strong> <em>Block</em></p>
<p>Flash belleğe sahip olan bazı cihazlarda, PIC 18Fxxx serisi gibi, <strong>WRITECODE</strong> ile program kodlarının tekrar yazılmasından önce yazılacak alanın silinmesi gerekmektedir. Bu cihazlarda silme işlemi kod blokları üzerinden yapılır. Silinecek kod bloğu cihaza bağlı olarak 64 &#8220;byte&#8221; (32 &#8220;word&#8221;) büyüklüğünde veya başka büyüklüklerde olabilir. Bu büyüklük genelde yazılan blok büyüklüğünden daha fazla olmaktadır. Bu büyüklükler cihaza bağlı olduğundan en doğru bilgiyi edinmek için lütfen cihazın, Microchip tarafından hazırlanmış kullanma kılavuzuna (&#8220;datasheet&#8221;) bakınız.</p>
<p><span id="more-188"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p>Silinecek bloğun başlangıç adresi <em>Block</em> parametresi ile belirtilir. PIC 18Fxxx serisi cihazlar için burada belirtilen adres, değeri 0-65535 arasında değişen bir &#8220;byte&#8221; adresidir, &#8220;word&#8221; adresi değildir. Silinecek kod bloğunun kullanılmakta olan programı içermediğine dikkat edilmelidir.</p>
<p>Flash program alanına kod yazabilme özelliği, <strong>ERASECODE</strong> komutunun sağlıklı çalışması için PIC programlama esnasında aktif edilmelidir.</p>
<p>Bu komutun kod bloğu silme özelliği olmayan cihazları programlarken kullanılması derleme hatasına sebep olmaktadır.</p>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
ERASECODE $100 ' $100 nolu adresten başlayan kod bloğunu sil.
</pre>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li><strong>WRITECODE</strong></li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong> ve <strong>Hazar</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Ferasecode-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/erasecode-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/erasecode-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ON INTERRUPT – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/on-interrupt-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/on-interrupt-pbp-turkce.htm#comments</comments>
		<pubDate>Sat, 05 Sep 2009 12:12:24 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[enable]]></category>
		<category><![CDATA[interrupt]]></category>
		<category><![CDATA[kesme]]></category>
		<category><![CDATA[on]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[resume]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=187</guid>
		<description><![CDATA[ON INTERRUPT GOTO Label ON INTERRUPT komutu kesmelerin bir PICBasic altprogramı gibi değerlendirilmesini sağlar. Kesmeleri PicBasic Pro kullanarak işlemenin iki yolu vardır. İlk yol kesmeleri assembly dili ile program yazarak işlemektir. Bu yol ile kesmeler miminumum gecikme yaşanarak işlenebilir. İkinci yol ise PicBasic Pro kesme işleyicisi (&#8220;interrupt handler&#8221;) kullanmaktır. Bu sayede kesme altprogramları RESUME ile [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/187-tanitim.gif" alt="ON INTERRUPT Tanıtım Resim" class="imageleft" width="100" height="61" /><strong>ON INTERRUPT GOTO</strong> <em>Label</em></p>
<p><strong>ON INTERRUPT</strong> komutu kesmelerin bir PICBasic altprogramı gibi değerlendirilmesini sağlar.</p>
<p>Kesmeleri PicBasic Pro kullanarak işlemenin iki yolu vardır. İlk yol kesmeleri assembly dili ile program yazarak işlemektir. Bu yol ile kesmeler miminumum gecikme yaşanarak işlenebilir. İkinci yol ise PicBasic Pro kesme işleyicisi (&#8220;interrupt handler&#8221;) kullanmaktır. Bu sayede kesme altprogramları <strong>RESUME</strong> ile biten sıradan PicBasic Pro altprogramları gibi yazılabilir.</p>
<p><span id="more-187"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p>Bir kesme meydana geldiğinde cihaz tarafından bu olay işaretlenir. O an işlenmekte olan PICBASIC PRO ifadeleri biter bitmez program BASIC kesme işleyicisinin bulunduğu <em>Label</em> adlı etikete atlar. Kesme altprogramı tamamlandıktan sonra, program <strong>RESUME</strong> komutu ile kesmenin olduğu yere geri döner.</p>
<p><strong>DISABLE</strong> ve <strong>ENABLE</strong> komutları kullanarak kesmelerin dikkate alınıp alınmayacağı belirlenebilir. <strong>DISABLE</strong> komutunun en çok kullanıldığı yer, kesme işleyicisinin hemen öncesidir. Ya da kesme işleyicisi kısım <strong>ON INTERRUPT</strong> ifadesinden önce yerleştirilir. <strong>ON INTERRUPT</strong> ifadesi ile programda ilk kez karşılaşana kadar kesmeler dikkate alınmaz.</p>
<p>Kesmenin oluştuğ an ile programın kesme işleyicisine gitmesi arasında gecikme yaşanabilmektedir. PBP komutları birer birer çalıştırıldığından ve aynı anda tek komut çalıştırılabildiğinden kesme oluştuğu anda çalışan komutun alacağı süreye bağlı olarak fark edilir bir gecikme oluşabilmektedir.</p>
<p>Program o an çalışmakta olan komutu bitirmeden, kesme gerçekleşse bile, kesme altprogramına atlamamaktadır. Eğer kesme oluştuğu anda <strong>PAUSE</strong> veya <strong>SERIN</strong> gibi komutlar çalışıyorsa, kesmenin işlenmesi oldukça gecikmeli olacaktır. Program bu geciklmeleri en aza indirecek şekilde yazılmalıdır. Örneğin uzun gecikmeler, kısa gecikme komutlarının döngüyle tekrar tekrar kullanılmasıyla sağlanabilir. Eğer kesmelerin en az gecikme ile işlenmesi isteniyorsa, assembly dili ile kesmeler değerlendirilmelidir.</p>
<p>Kesme için yaratılan kod kalabalığı da ayrı bir problemdir. <strong>ON INTERRUPT</strong> komutu, programdaki heri bir ifadenin sonuna kesmenin kontrolü için ekstra kod eklemektedir. <strong>DISABLE</strong> komutu ile devam eden komutlara belirtilen ekstra komutların eklenmesi iptal edilir. <strong>ENABLE</strong> komutundan sonraki komutlara ise bu ek kod yine eklenmektedir. Ek komut eklenmesi genelde problem yaratmamaktadır. Fakat düşük boyutlu program belleğine sahip cihazlara uzun kodlar yazılmasında sıkıntı yaşanabilmektedir.</p>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
ON INTERRUPT GOTO kesme ' Kesme işleyicisi &quot;kesme&quot; etiketli kısım
INTCON = %10010000 ' RB0 kesmesi aktif

. . . 

DISABLE ' Kesme işleyicisindeyken kesmeleri iptal et.
kesme: led = 1 ' Kesme olunca led'i yak.
RESUME ' Ana programa geri dön.
ENABLE ' Kesmeleri tekrar aktif et.
</pre>
<p>Kesmelerin tekrar kullanılana kadar ya da kalıcı olarak kapatılması isteniyorsa, <strong>ON INTERRUPT</strong> komutundan sonra aşağıdaki komut kullanılmalıdır:</p>
<pre class="brush: vb;">
INTCON = $80
</pre>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li><strong>ENABLE</strong></li>
<li><strong>DISABLE</strong></li>
<li><strong>RESUME</strong></li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong> ve <strong>Hazar</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fon-interrupt-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/on-interrupt-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/on-interrupt-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SHIFTIN – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/shiftin-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/shiftin-pbp-turkce.htm#comments</comments>
		<pubDate>Sat, 05 Sep 2009 11:02:10 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[shiftin]]></category>
		<category><![CDATA[shiftout]]></category>
		<category><![CDATA[turkce]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=186</guid>
		<description><![CDATA[SHIFTIN DataPin,ClockPin,Mode,[Var{\Bits}...] ClockPin ve DataPin parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde veri alır ve Var parametresi ile belirtilmiş değişkene veriyi kaydeder. ClockPin ve DataPin, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir. \Bits parametresi opsiyoneldir ve kaç adet bitin [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/186-tanitim.gif" alt="SHIFTIN Tanıtım Resim" class="imageleft" width="100" height="100" /><strong>SHIFTIN</strong> <em>DataPin</em>,<em>ClockPin</em>,<em>Mode</em>,[<em>Var</em>{<em>\Bits</em>}...]</p>
<p><em>ClockPin</em> ve <em>DataPin</em> parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde veri alır ve <em>Var</em> parametresi ile belirtilmiş değişkene veriyi kaydeder. <em>ClockPin</em> ve <em>DataPin</em>, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir.</p>
<p><em>\Bits</em> parametresi opsiyoneldir ve kaç adet bitin alıncağını belirtir. Eğer belirtilmezse <em>Var</em> ile belirtilen değişkenin tipinden bağımsız olarak 8 adet bit alınıp kaydedilir. <em>\Bits</em> parametresi ile alınacak bit sayısı belirtilirse alma işleminin <em>Mode</em> parametresinde belirtilenden, LSB veya MSB bağımsız olarak her zaman en düşük bitten başladığı kabul edilir.</p>
<p><span id="more-186"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Mode</em> parametresi ile kullanılacak isimler (Örneğin: LSBFIRST) MODEDEFS.BAS adlı dosyada tanımlanmıştır. Bu isimleri programda kullanabilmek için aşağıdaki ifade, programın <u>başına</u> eklenmelidir.</p>
<pre class="brush: vb;">
INCLUDE &quot;modedefs.bas&quot;
</pre>
<p>BS1DEFS.BAS ve BS2DEFS.BAS adlı dosyalar otomatik olarak MODEDEFS.BAS adlı dosyayı programa dahil etmektedir. Eğer bu iki dosyadan herhangi biri programa dahil edilmiş ise (&#8220;include&#8221;) MODEDEFS.BAS adlı dosyanın tekrar dahil edilmesine (&#8220;include&#8221;) gerek yoktur. <em>Mode</em> parametresine isim değil de sayı verilmek isteniyorsa, herhangi bir dosya (Örneğin: MODEDEFS.BAS) dahil etmeden (&#8220;include&#8221;) sayı verilebilir. Bazı <em>Mode</em> numaralarının isimleri yoktur ve numarası belirtilerek kullanılabilir.</p>
<p><em>Mode</em> parametresine verilecek 0, 1, 2, 3 değerleri saat (&#8220;clock&#8221;) sinyalinin boşta iken lojik 0 konumunda olduğunu ve gönderim sırasında lojik 1&#8242;e çıkıp, gönderim bittikten sonra tekrar lojik 0 konumuna geldiğini belirtirken; 4, 5, 6, 7 değerleri ise saat (&#8220;clock&#8221;) sinyalinin boşta iken lojik 1 konumunda olduğunu ve gönderim sırasında lojik 0&#8242;a çıkıp, gönderim bittikten sonra tekrar lojik 1 konumuna geldiğini belirtir.</p>
<p><center></p>
<table>
<tr>
<td><strong><em>Mode</em></strong></td>
<td><strong><em>Mode</em> No</strong></td>
<td><strong>İşlem</strong></td>
</tr>
<tr>
<td>MSBPRE</td>
<td>0</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderilmeden ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>LSBPRE</td>
<td>1</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderilmeden ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>MSBPOST</td>
<td>2</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderildikten sonra ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>LSBPOST</td>
<td>3</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderildikten sonra ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>4</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderilmeden sonra ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>5</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderilmeden ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>6</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderildikten sonra ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>7</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali gönderildikten sonra ilk bit okunur. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
</table>
<p></center></p>
<p>Çeşitli mod seçimlerinde veri alımlarının nasıl yapılacağı aşağıdaki şekilde gösterilmiştir:</p>
<p><center><img src="http://resim.izoelektronik.com/icerik/186-1-sinyal.gif" alt="SHIFTIN veri gönderim şekilleri Resim" width="450" height="225" /></center></p>
<p>Senkron haberleşme için gerekli olan saat (&#8220;clock&#8221;) sinyalinin frekansı 50 KHz&#8217;dir. Bu frekans osilatöre bağlı olarak değişmektedir. Bir bitin alınma sırasında saat(&#8220;clock&#8221;) sinyali minimum 2 mikrosaniye süresince konumunu korumaktadır. <strong>DEFINE</strong> ifadesi ile bu süreye 65535 mikrosaniye (65.535 milisaniye) eklenebilir. En küçük ek gecikme süresi PAUSEUS tanımlaması ile yapılır. Bu minimum süre osilatör hızına göre değişmektedir. Kullandığınız osilatöre göre elde edilebilecek minimum süreyi öğrenmek için <strong>PAUSEUS</strong> fonksiyonunun açıklamasına bakınız. Bu <strong>DEFINE</strong> ifadesi 12 bit çekirdeğe sahip cihazlarda kullanılamamaktadır.</p>
<p>Örneğin ekstra olarak 100 mikrosaniye yavaşlama için aşağıdaki ifade programın başına eklenmelidir:</p>
<pre class="brush: vb;">
DEFINE SHIFT_PAUSEUS 100
</pre>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
SHIFTIN 0,1,MSBPRE,[B0,B1\4]
</pre>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li><strong>SHIFTOUT</strong></li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong> ve <strong>Hazar</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fshiftin-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/shiftin-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/shiftin-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SHIFTOUT – PBP Türkçe</title>
		<link>http://www.izoelektronik.com/shiftout-pbp-turkce.htm</link>
		<comments>http://www.izoelektronik.com/shiftout-pbp-turkce.htm#comments</comments>
		<pubDate>Sat, 05 Sep 2009 10:34:45 +0000</pubDate>
		<dc:creator>İzoelektronik - Atölye</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Konu Anlatımı]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pro]]></category>
		<category><![CDATA[shiftin]]></category>
		<category><![CDATA[shiftout]]></category>
		<category><![CDATA[turkce]]></category>

		<guid isPermaLink="false">http://www.izoelektronik.com/?p=172</guid>
		<description><![CDATA[SHIFTOUT DataPin,ClockPin,Mode,[Var{\Bits}...] Var parametresi ile belirtilmiş değişkenin içeriğini, ClockPin ve DataPin parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde kaydırarak gönderir. ClockPin ve DataPin, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir. \Bits parametresi opsiyoneldir ve kaç adet bitin kaydırılarak gönderileceğini [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://resim.izoelektronik.com/icerik/172-tanitim.gif" alt="SHIFTOUT Tanıtım Resim" class="imageleft" width="100" height="51" /><strong>SHIFTOUT</strong> <em>DataPin</em>,<em>ClockPin</em>,<em>Mode</em>,[<em>Var</em>{<em>\Bits</em>}...]</p>
<p><em>Var</em> parametresi ile belirtilmiş değişkenin içeriğini, <em>ClockPin</em> ve <em>DataPin</em> parametreleriyle belirtilmiş pinler üzerinden senkron bir şekilde kaydırarak gönderir. <em>ClockPin</em> ve <em>DataPin</em>, sabit bir değer, 0-15 arası bir değer, 0-15 arası bir değer içeren (Örneğin: B0) bir değişken ya da pin adı (Örneğin: PORTA.0) olabilir.</p>
<p><em>\Bits</em> parametresi opsiyoneldir ve kaç adet bitin kaydırılarak gönderileceğini belirtir. Eğer belirtilmezse <em>Var</em> ile belirtilen değişkenin tipinden bağımsız olarak 8 adet bit gönderilir. <em>\Bits</em> parametresi ile gönderilecek bit sayısı belirtilirse gönderme işlemi <em>Mode</em> parametresinde belirtilenden, LSB veya MSB bağımsız olarak her zaman en düşük bitten başlar. Tek bir değişken kullanılarak 16 bite kadar bilgi gönderilebilir. Eğer 16 bitten daha fazla bilgi gönderilecekse köşeli parantez içine birden fazla değişken veya sabit veri eklenebilir.</p>
<p><span id="more-172"></span><br />
				<script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, Portal - Yazı Devamı */
				google_ad_slot = "9823538538";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Mode</em> parametresi ile kullanılacak isimler (Örneğin: LSBFIRST) MODEDEFS.BAS adlı dosyada tanımlanmıştır. Bu isimleri programda kullanabilmek için aşağıdaki ifade, programın <u>başına</u> eklenmelidir.</p>
<pre class="brush: vb;">
INCLUDE &quot;modedefs.bas&quot;
</pre>
<p>BS1DEFS.BAS ve BS2DEFS.BAS adlı dosyalar otomatik olarak MODEDEFS.BAS adlı dosyayı programa dahil etmektedir. Eğer bu iki dosyadan herhangi biri programa dahil edilmiş ise (&#8220;include&#8221;) MODEDEFS.BAS adlı dosyanın tekrar dahil edilmesine (&#8220;include&#8221;) gerek yoktur. <em>Mode</em> parametresine isim değil de sayı verilmek isteniyorsa, herhangi bir dosya (Örneğin: MODEDEFS.BAS) dahil etmeden (&#8220;include&#8221;) sayı verilebilir. Bazı <em>Mode</em> numaralarının isimleri yoktur ve numarası belirtilerek kullanılabilir.</p>
<p><em>Mode</em> parametresine verilecek 0, 1 değerleri saat (&#8220;clock&#8221;) sinyalinin boşta iken lojik 0 konumunda olduğunu ve gönderim sırasında lojik 1&#8242;e çıkıp, gönderim bittikten sonra tekrar lojik 0 konumuna geldiğini belirtirken; 4 ve 5 değerleri ise saat (&#8220;clock&#8221;) sinyalinin boşta iken lojik 1 konumunda olduğunu ve gönderim sırasında lojik 0&#8242;a çıkıp, gönderim bittikten sonra tekrar lojik 1 konumuna geldiğini belirtir.</p>
<p><center></p>
<table>
<tr>
<td><strong><em>Mode</em></strong></td>
<td><strong><em>Mode</em> No</strong></td>
<td><strong>İşlem</strong></td>
</tr>
<tr>
<td>LSBFIRST</td>
<td>0</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>MSBFIRST</td>
<td>1</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 0 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>4</td>
<td>En düşük bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>5</td>
<td>En yüksek bit ilk önce gönderilir. Saat (&#8220;clock&#8221;) sinyali boşta iken lojik 1 seviyesindedir.</td>
</tr>
</table>
<p></center></p>
<p>Çeşitli mod seçimlerinde veri gönderimlerinin nasıl yapılacağı aşağıdaki şekilde gösterilmiştir:</p>
<p><center><img src="http://resim.izoelektronik.com/icerik/172-1-sinyal.gif" alt="SHIFTOUT veri gönderim şekilleri Resim" width="450" height="225" /></center></p>
<p>Senkron haberleşme için gerekli olan saat (&#8220;clock&#8221;) sinyalinin frekansı 50 KHz&#8217;dir. Bu frekans osilatöre bağlı olarak değişmektedir. Bir bitin gönderilme sırasında saat(&#8220;clock&#8221;) sinyali minimum 2 mikrosaniye süresince konumunu korumaktadır. <strong>DEFINE</strong> ifadesi ile bu süreye 65535 mikrosaniye (65.535 milisaniye) eklenebilir. En küçük ek gecikme süresi PAUSEUS tanımlaması ile yapılır. Bu minimum süre osilatör hızına göre değişmektedir. Kullandığınız osilatöre göre elde edilebilecek minimum süreyi öğrenmek için <strong>PAUSEUS</strong> fonksiyonunun açıklamasına bakınız. Bu <strong>DEFINE</strong> ifadesi 12 bit çekirdeğe sahip cihazlarda kullanılamamaktadır.</p>
<p>Örneğin ekstra olarak 100 mikrosaniye yavaşlama için aşağıdaki ifade programın başına eklenmelidir:</p>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
DEFINE SHIFT_PAUSEUS 100
</pre>
<p><strong>Örnek</strong></p>
<pre class="brush: vb;">
SHIFTOUT 0,1,MSBFIRST,[B0,B1]
SHIFTOUT PORTA.1, PORTA.2, 1,[wordvar\4]
SHIFTOUT PORTC.1, PORTB.1, 4,[$1234\16, $56]
</pre>
<p><strong>Bunlara da Bakın</strong></p>
<ul>
<li><strong>SHIFTIN</strong></li>
</ul>
<p>Tüm fonksiyonların listesine <a href="http://www.izoelektronik.com/pic-basic-pro-fonksiyonlarinin-turkce-aciklamalari.htm" title="Pic Basic Pro fonksiyonlarının Türkçe açıklamaları">buradan</a> bakabilirsiniz.</p>
<p>Bu yazı, &#8220;<a href="http://groups.google.com/group/izoelektronik-atolye/" title="İzoelektronik - Atölye" target="_blank">İzoelektronik &#8211; Atölye</a>&#8221; grubu tarafından, <strong>90alper90</strong> ve <strong>Hazar</strong> kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.</p>
<p><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.izoelektronik.com%2Fshiftout-pbp-turkce.htm&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=25" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:25px;" allowTransparency="true"></iframe>
				</p>
<p><script type="text/javascript"><!--
				google_ad_client = "pub-9771086565304460";
				/* 468x60, portalyazısonu */
				google_ad_slot = "1344816115";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<p><em>Yazıyı e-posta veya RSS ile alanların dikkatine:</em></p>
<p><em>Bu yazının yayınlan versiyonu ile e-posta ile gönderilen versiyonu ve RSS ile yayınlanan versiyonu arasında stil ve şablon yönünden küçük farklılıklar olabilir. Ek olarak, yazı üzerinde herhangi bir düzeltme veya değiştirilme yapılırsa tekrar e-posta gönderilmemektedir. Aynı durum RSS okurları için de geçerli olabilmektedir. Bu yüzden bu yazıdaki bilgileri kullanmadan önce en doğru ve güncel bilgiye ulaşmak için yazının orjinaline bakmanızı öneririz.</em></p><p>Yazının orjinaline <a href="http://www.izoelektronik.com/shiftout-pbp-turkce.htm" target="_blank">buradan</a> ulaşabilirsiniz.</p>]]></content:encoded>
			<wfw:commentRss>http://www.izoelektronik.com/shiftout-pbp-turkce.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
