<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ayoenx's Weblog</title>
	<atom:link href="http://ayoenx.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ayoenx.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Sun, 15 Jan 2012 03:28:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ayoenx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ayoenx's Weblog</title>
		<link>http://ayoenx.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ayoenx.wordpress.com/osd.xml" title="Ayoenx&#039;s Weblog" />
	<atom:link rel='hub' href='http://ayoenx.wordpress.com/?pushpress=hub'/>
		<item>
		<title>AVR-DOPER</title>
		<link>http://ayoenx.wordpress.com/2010/01/05/avr-doper/</link>
		<comments>http://ayoenx.wordpress.com/2010/01/05/avr-doper/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 08:51:53 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Design PCB]]></category>
		<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=92</guid>
		<description><![CDATA[Pendahuluan AVR Doper Mini adalah sebuah programmer ISP untuk mikrokontroller AVR dengan protokol yang kompatibel dengan STK500. Programmer ini sudah dilengkapi dengan konverter USB ke serial built-in. Board ini kompatibel dengan Windows XP dan Windows Vista. Perlengkapan Setiap kemasan AVR Doper Mini terdiri dari: 1 buah board “AVR Doper Mini” Kabel ISP (In System Programming) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=92&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;"><strong> Pendahuluan</strong></p>
<p>AVR Doper Mini adalah sebuah programmer ISP untuk mikrokontroller AVR dengan protokol yang kompatibel dengan STK500. Programmer ini sudah dilengkapi dengan konverter USB ke serial built-in. Board ini kompatibel dengan Windows XP dan Windows Vista.<span id="more-92"></span></p>
<p><strong> Perlengkapan</strong></p>
<p>Setiap kemasan AVR Doper Mini terdiri dari:</p>
<ul>
<li>1 buah board “AVR Doper Mini”</li>
<li>Kabel ISP (In System Programming)</li>
<li>Kabel USB</li>
<li>1 CD program</li>
<li>Petunjuk Penggunaan</li>
</ul>
<p><strong>Fitur</strong></p>
<p>AVR Doper Mini mempunyai beberapa fitur sebagai berikut:</p>
<ul>
<li>Setting jumper untuk dua jenis mode device yaitu HID (Human Interface Device) atau CDC (Communication Device Class)</li>
<li>Kompatibel dengan program STK500 pada AVR Studio Atmel pada mode CDC dengan konverter USB Serial built in</li>
<li>Clock ISP yang dapat diubah ubah yang memungkinkan untuk memprogram chip AVR pada frekuensi rendah misalnya 32 KHz</li>
<li>Clock ISP dapat dibuat sangat rendah dengan menggunakan jumper (jika software tidak mendukung perubahan setting Clock ISP)</li>
<li>Menggunakan power supply dari port USB</li>
<li>Dapat mencatu board target dari port USB dengan setting jumper sehingga dapat memproram chip di mana saja dengan laptop tanpa memerlukan catu daya external sama sekali</li>
</ul>
<p><strong>Hardware</strong></p>
<p>AVR Doper Mini mempunyai tata letak komponen yang dapat dilihat pada gambar 1:</p>
<p style="text-align:center;"><a href="http://ayoenx.files.wordpress.com/2010/01/avr-doper_esrg1.png"><img class="size-medium wp-image-94 aligncenter" title="AVR-Doper_ESRG" src="http://ayoenx.files.wordpress.com/2010/01/avr-doper_esrg1.png?w=300&#038;h=180" alt="" width="300" height="180" /></a>Gambar 1 Tata letak AVRDOPER</p>
<p style="text-align:left;"><a href="http://rototron.info/files/Eagle_AD.zip" target="_blank">AVRDOPER_schematic_&amp;_board</a></p>
<p style="text-align:left;">JP1 digunakan untuk mengatur setting USB Power. Jika jumper ini dipasang maka board target akan dicatu dari port USB computer.</p>
<p>JP2 digunakan untuk mengatur setting mode USB. Jika jumper ini dipasang maka digunakan mode HID. Jika jumper ini tidak dipasang maka digunakan mode CDC. Lebih lanjut informasi tentang kedua mode ini dibahas pada bagian selanjutnya.</p>
<p>JP3 digunakan untuk mengatur setting clock SCK untuk ISP agar menggunakan frekuensi sangat rendah. Jika jumper ini dipasang maka clock SCK akan menjadi rendah.</p>
<p>Konfigurasi pin ISP menggunakan konektor standar ISP AVR yaitu:<br />
<a href="http://ayoenx.files.wordpress.com/2010/01/isp_table.png"><img class="size-medium wp-image-96 aligncenter" title="isp_table" src="http://ayoenx.files.wordpress.com/2010/01/isp_table.png?w=300&#038;h=105" alt="" width="300" height="105" /></a></p>
<p style="text-align:left;"><strong>Mode HID (Human Interface Device)</strong></p>
<p>Disarankan menggunakan mode ini untuk menggunakan AVR Doper Mini karena tidak memerlukan instalasi driver khusus, selain itu pada mode ini lebih cepat dibandingkan dengan mode CDC. Untuk menggunakan mode HID pasangkan jumper pada JP2.</p>
<p>Untuk menggunakan AVR Doper Mini pada mode ini digunakan avrdude.</p>
<p>Program avrdude adalah program command line yang mendukung banyak programmer ISP AVR yang disertakan pada WinAVR.</p>
<p>Untuk memprogram dengan antar muka grafik diperlukan program GUI untuk avrdude. Anda dapat menggunakan program AVR8 Burn-O-Mat dan AVRFuses. AVRFuses khusus digunakan untuk memprogram Fuse Bit.</p>
<p>Install program WinAVR. AVR8 Burn-O-Mat adalah program antar muka yang memerlukan Java Virtual Machine. Install Java Virtual Machine (disediakan pada CD). Extract AVR8 Burn-O-Mat ke harddisk pada folder yang anda kehendaki. Buat shortcut pada file start.bat jika diperlukan.</p>
<p>Untuk menggunakannya jalankan start.bat atau klik shortcut jika anda telah membuatnya. Gambar 2 menampilkan tampilan utama program AVR8 Burn-O-Mat.</p>
<p style="text-align:center;"><a href="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat2.png"><img class="size-medium wp-image-99 aligncenter" title="AVR8bURN-O-MAT" src="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat2.png?w=300&#038;h=247" alt="" width="300" height="247" /></a>Gambar 2.  Tampilan utama program AVR8-Burn-O-Mat</p>
<p style="text-align:left;">Untuk pertama kali diperlukan setting AVR8 Burn-O-Mat. Pilih Settings &gt; AVRDUDE. Tampilan setting program ini dapat dilihat pada Gambar 3. Browse file executable avrdude dan file konfigurasi. Ini harus disesuaikan dengan instalasi WinAVR pada komputer anda. Untuk setting Programmer pilihlah stk500v2. Untuk setting port ketik avrdoper. Setelah selesai pilih Apply setelah itu pilih Ok.</p>
<p style="text-align:center;"><a href="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat21.png"><img class="size-medium wp-image-100 aligncenter" title="AVR8bURN-O-MAT2" src="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat21.png?w=300&#038;h=249" alt="" width="300" height="249" /> </a>Gambar 3. Tampilan setting program AVR8 Burn-O-Mat</p>
<p style="text-align:left;">Anda juga dapat menggunakan AVRFuses untuk memprogram Fuse bit. AVRFuses dapat dicopy ke folder instalasi WinAVR contohnya ke C:\WinAVR\bin lalu kita dapat membuat shortcut ke program ini. Tampilan antarmuka AVRFuses dapat dilihat pada Gambar 4.</p>
<p style="text-align:center;"><a href="http://ayoenx.files.wordpress.com/2010/01/avrstudio.png"><img class="alignnone size-medium wp-image-102" title="AVRstudio" src="http://ayoenx.files.wordpress.com/2010/01/avrstudio.png?w=300&#038;h=172" alt="" width="300" height="172" /> </a></p>
<p style="text-align:center;">Gambar 4. Tampilan utama dan setting program AVRFuses</p>
<p style="text-align:left;">Lakukan setting AVRFuses seperti pada Gambar 4. Untuk setting Path lakukan browse ke avrdude.exe sesuai dengan installasi di komputer anda.</p>
<p>Bagi anda yang telah terbiasa dengan menggunakan WinAVR dan Programmer’s Notepad sebagai IDE (Integrated Development Environment) untuk AVR dapat menggunakan cara lain yang lebih praktis dan cepat membuat program dan memprogram chip dengan menggunakan Makefile. Dengan cara ini dapat menghemat waktu development program. Untuk informasi lebih detail dapat melihat petunjuk “Rapid Prototyping dengan AVR Doper” berupa file PDF pada CD.</p>
<p style="text-align:left;"><strong>Mode CDC (Communication Device Class)</strong></p>
<p>Untuk menggunakan mode CDC lepaskan jumper JP2. Mode ini kompatibel dengan Atmel STK500. Untuk dapat menggunakan mode ini pada Windows harus melakukan instalasi driver sebelumnya.</p>
<p>Ketika AVR Doper dipasangkan ke komputer pertama kali akan terdeteksi hardware baru yang tidak dikenali. Pilih driver yang terdapat pada CD. Untuk Windows XP pilih avrdoper.inf sedangkan untuk Windows Vista pilih avrdoper-vista.inf.</p>
<p>Ketika muncul jendela “Found New Hardware” pilih “No, no this time” selanjutnya pilih Next. Pada pilihan selanjutnya pilih “Install from a list or specific location (Advanced)” lalu pilih Next. Selanjutnya pilih “Search for the best driver in these location” pilih “Include this location in the search” lalu pilih Browse. Browse pada folder Driver pada CD, Pilih OK, setelah itu pilih Next. Ikuti langkah pada komputer sampai driver ter-install dan komputer mengenali AVR Doper.</p>
<p>Selanjutnya dapat digunakan program Atmel AVR Studio yang disediakan pada CD. Jalankan program AVR Studio. Hubungkan target board dengan AVR Doper Mini. Pada AVR Studio pilih Tools &gt; Program AVR &gt; Auto Connect.</p>
<p>Contoh Tampilan program STK500 pada AVR Studio dapat dilihat pada Gambar 5. AVR Doper hanya mendukung mode programming ISP saja.</p>
<p style="text-align:center;"><a href="http://ayoenx.files.wordpress.com/2010/01/avrstudio1.png"><img class="size-medium wp-image-103 aligncenter" title="AVRstudio1" src="http://ayoenx.files.wordpress.com/2010/01/avrstudio1.png?w=267&#038;h=300" alt="" width="267" height="300" /></a><br />
Gambar 5. Gambar tampilan program STK500</p>
<p style="text-align:left;"><strong>Software Pendukung</strong>:</p>
<ul>
<li style="text-align:left;"><a href="http://www.4shared.com/file/188677412/2a261e84/AVR8_Burn-O-Mat.html" target="_blank">AVR8_Burn-O-Mat</a></li>
<li><a href="http://www.4shared.com/file/188677427/7161b9c8/aStudio412SP1b462.html" target="_blank">AVRStudio</a></li>
<li><a href="http://www.4shared.com/file/188677443/2056da57/jre-6u7-windows-i586-p-s.html" target="_blank">Java Runtime Environment</a></li>
<li><a href="http://www.4shared.com/file/188677430/f61e1d2a/WinAVR-20081205-install.html">WinAVR</a></li>
<li><a href="http://http://www.4shared.com/file/188722252/7ea50bd5/avr-doper-mega8-12mhz.html" target="_blank">Firmware AVR-DOPER ATMEGA8-12Mhz</a></li>
</ul>
<p>Selamat Mencoba&#8230;..!!!</p>
<p style="text-align:center;">
<p style="text-align:left;">
<p style="text-align:left;"><a href="http://ayoenx.files.wordpress.com/2010/01/isp_table.png"><br />
</a></p>
<p style="text-align:center;">
<div id="_mcePaste" style="position:absolute;left:-10000px;top:1322px;width:1px;height:1px;">Mode HID (Human Interface Device)Disarankan menggunakan mode ini untuk menggunakan AVR Doper Mini karena tidak memerlukan instalasi driver khusus, selain itu pada mode ini lebih cepat dibandingkan dengan mode CDC. Untuk menggunakan mode HID pasangkan jumper pada JP2.</p>
<p>Untuk menggunakan AVR Doper Mini pada mode ini digunakan avrdude.</p>
<p>Program avrdude adalah program command line yang mendukung banyak programmer ISP AVR yang disertakan pada WinAVR.</p>
<p>Untuk memprogram dengan antar muka grafik diperlukan program GUI untuk avrdude. Anda dapat menggunakan program AVR8 Burn-O-Mat dan AVRFuses. AVRFuses khusus digunakan untuk memprogram Fuse Bit.</p>
<p>Install program WinAVR. AVR8 Burn-O-Mat adalah program antar muka yang memerlukan Java Virtual Machine. Install Java Virtual Machine (disediakan pada CD). Extract AVR8 Burn-O-Mat ke harddisk pada folder yang anda kehendaki. Buat shortcut pada file start.bat jika diperlukan.</p>
<p>Untuk menggunakannya jalankan start.bat atau klik shortcut jika anda telah membuatnya. Gambar 2 menampilkan tampilan utama program AVR8 Burn-O-Mat.Mode HID (Human Interface Device)</p>
<p>Disarankan menggunakan mode ini untuk menggunakan AVR Doper Mini karena tidak memerlukan instalasi driver khusus, selain itu pada mode ini lebih cepat dibandingkan dengan mode CDC. Untuk menggunakan mode HID pasangkan jumper pada JP2.</p>
<p>Untuk menggunakan AVR Doper Mini pada mode ini digunakan avrdude.</p>
<p>Program avrdude adalah program command line yang mendukung banyak programmer ISP AVR yang disertakan pada WinAVR.</p>
<p>Untuk memprogram dengan antar muka grafik diperlukan program GUI untuk avrdude. Anda dapat menggunakan program AVR8 Burn-O-Mat dan AVRFuses. AVRFuses khusus digunakan untuk memprogram Fuse Bit.</p>
<p>Install program WinAVR. AVR8 Burn-O-Mat adalah program antar muka yang memerlukan Java Virtual Machine. Install Java Virtual Machine (disediakan pada CD). Extract AVR8 Burn-O-Mat ke harddisk pada folder yang anda kehendaki. Buat shortcut pada file start.bat jika diperlukan.</p>
<p>Untuk menggunakannya jalankan start.bat atau klik shortcut jika anda telah membuatnya. Gambar 2 menampilkan tampilan utama program AVR8 Burn-O-Mat.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=92&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2010/01/05/avr-doper/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/avr-doper_esrg1.png?w=300" medium="image">
			<media:title type="html">AVR-Doper_ESRG</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/isp_table.png?w=300" medium="image">
			<media:title type="html">isp_table</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat2.png?w=300" medium="image">
			<media:title type="html">AVR8bURN-O-MAT</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/avr8burn-o-mat21.png?w=300" medium="image">
			<media:title type="html">AVR8bURN-O-MAT2</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/avrstudio.png?w=300" medium="image">
			<media:title type="html">AVRstudio</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/avrstudio1.png?w=267" medium="image">
			<media:title type="html">AVRstudio1</media:title>
		</media:content>
	</item>
		<item>
		<title>Komunikasi I2C pada ATMEGA8535</title>
		<link>http://ayoenx.wordpress.com/2010/01/05/komunikasi-i2c-pada-atmega8535/</link>
		<comments>http://ayoenx.wordpress.com/2010/01/05/komunikasi-i2c-pada-atmega8535/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 03:10:19 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=86</guid>
		<description><![CDATA[A. Tujuan Mampu membuat program yang menggunakan I2C ( Inter Integrated Circuit ) pada AVR ATMEGA8535 untuk membaca / menulis data ke memori EEPROM 24CXXA B. Bahan Praktikum Kit latih development board AVR ATMEGA8535 EEPROM AT24CXXA ( I2C ) Resistor 4,7 Kohm ( pull – up) Project Board Kabel Penghubung C. Praktikum Rangkaian Skematik I2C [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=86&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>A. </strong><strong>Tujuan</strong></p>
<ul>
<li>Mampu membuat program yang menggunakan I2C ( <em>Inter Integrated Circuit </em>) pada AVR ATMEGA8535 untuk membaca / menulis data ke memori EEPROM 24CXXA<span id="more-86"></span></li>
</ul>
<ul></ul>
<p><strong>B. </strong><strong>Bahan Praktikum</strong></p>
<ul>
<li>Kit latih development board AVR ATMEGA8535
<ul>
<li>EEPROM AT24CXXA ( I2C )</li>
<li>Resistor 4,7 Kohm ( pull – up)</li>
<li>Project Board</li>
<li>Kabel Penghubung</li>
</ul>
</li>
</ul>
<p><strong> </strong></p>
<p><strong>C. </strong><strong>Praktikum </strong></p>
<ul>
<li><strong> </strong><strong>Rangkaian Skematik I2C</strong></li>
</ul>
<p style="text-align:center;"><strong><a href="http://ayoenx.files.wordpress.com/2010/01/i2c_24cxx.png"><img class="size-medium wp-image-88 aligncenter" title="I2C_24CXX" src="http://ayoenx.files.wordpress.com/2010/01/i2c_24cxx.png?w=300&#038;h=251" alt="" width="300" height="251" /></a></strong></p>
<ul>
<li><strong>Program Komunikasi I2C</strong></li>
</ul>
<p>________________________________________________________________________________</p>
<p>#include &lt;mega8535.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;delay.h&gt;</p>
<p>#include &lt;i2c.h&gt;</p>
<p>/*i2c bus secara program dengan menggunakan PORTC</p>
<p>sinyal SDA pada bit 1 (pin PC1)</p>
<p>sinyal SCL pada bit 0 (pin PC0)</p>
<p>Harus ada R pull &#8211; up antara SDA dan SCL dengan VCC */</p>
<p>#asm</p>
<p>.equ __i2c_port=0&#215;15</p>
<p>.equ __sda_bit=1</p>
<p>.equ __scl_bit=0</p>
<p>#endasm</p>
<p>//bit ke 0 pada EEPROM_BUS_ADDRESS harus benilai 0</p>
<p>#define EEPROM_BUS_ADDRESS 0xA0</p>
<p>//Membaca sebuah data(satu byte) dari EEPROM 24C01A</p>
<p>unsigned char eeprom_read(unsigned char address){</p>
<p>unsigned char data;</p>
<p>i2c_start();</p>
<p>i2c_write(EEPROM_BUS_ADDRESS &amp; 0xFE);   // I2C write</p>
<p>i2c_write(address);</p>
<p>i2c_start();</p>
<p>i2c_write(EEPROM_BUS_ADDRESS | 1);      //I2C read</p>
<p>data=i2c_read(0);                       //baca data dan kirim NACK</p>
<p>i2c_stop();</p>
<p>return data;</p>
<p>}</p>
<p>//menulis sebuah data(satu byte) ke EEPROM 24C01A</p>
<p>void eeprom_write(unsigned char address, unsigned char data){</p>
<p>i2c_start();</p>
<p>i2c_write(EEPROM_BUS_ADDRESS &amp; 0xFE);   //I2C write</p>
<p>i2c_write(address);</p>
<p>i2c_write(data);</p>
<p>i2c_stop();</p>
<p>//delay 10ms untuk menyimpan data (tWR)</p>
<p>delay_ms(10);</p>
<p>}</p>
<p>flash unsigned char string[]={&#8220;Data EEPROM : %X H&#8221;};</p>
<p>void main(void){</p>
<p>unsigned char i;</p>
<p>unsigned char data;</p>
<p>// USART Baud Rate: 9600</p>
<p>UCSRA=0&#215;00;</p>
<p>UCSRB=0xD8;</p>
<p>UCSRC=0&#215;86;</p>
<p>UBRRH=0&#215;00;</p>
<p>UBRRL=0&#215;47;             //Untuk kristal 11.05920 Mhz</p>
<p>//Inisialisasi I2C bus</p>
<p>i2c_init();</p>
<p>//menulis sebuah data 55H pada alamat 00H</p>
<p>eeprom_write(0&#215;00,0&#215;55);</p>
<p>while(1){</p>
<p>//membaca sebuah data dari alamat 00H</p>
<p>delay_ms(60);</p>
<p>i=eeprom_read(0&#215;00);</p>
<p>delay_ms(60);</p>
<p>printf(string,i);</p>
<p>putchar(0x0D);</p>
<p>putchar(0x0A);</p>
<p>}</p>
<p>}</p>
<p>________________________________________________________________________________</p>
<ul>
<li> <strong>Program Komunikasi TWI Menggunakan komunikasi TWI mikrokontroler AVR ATMEGA8535</strong></li>
</ul>
<p>________________________________________________________________________________</p>
<p>#include &lt;mega8535.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;delay.h&gt;</p>
<p>//bit ke 0 pada EEPROM_BUS_ADDRESS harus benilai 0</p>
<p>#define EEPROM_BUS_ADDRESS 0xA0</p>
<p>flash unsigned char  err[]={&#8220;ERROR %d\n\r&#8221;};</p>
<p>void error(unsigned char kode_error){</p>
<p>printf(err,kode_error);</p>
<p>while(1);                               //program berhenti disini</p>
<p>}</p>
<p>//Membaca sebuah data(satu byte) dari EEPROM 24C01A</p>
<p>unsigned char eeprom_read(unsigned char address){</p>
<p>unsigned char data;</p>
<p>//i2c:start</p>
<p>TWCR=0xA4;</p>
<p>while(!(TWCR&amp;0&#215;80));         //Tunggu sampai flag TWINT=1 (START terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;08) error(5);</p>
<p>//i2c: tulis alamat device</p>
<p>TWDR=EEPROM_BUS_ADDRESS &amp; 0xFE;         //I2C write</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));          //Tunggu sampai flag TWINT=1 (SLA_W terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;18) error(6);</p>
<p>//i2c: tulis alamat EEPROM yang akan dibaca</p>
<p>TWDR=address;</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));                    //Tunggu sampai flag TWINT=1 (address terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;28) error(7);</p>
<p>//i2c: repeated start</p>
<p>TWCR=0xA4;</p>
<p>while(!(TWCR&amp;0&#215;80));    //Tunggu sampai flag TWINT=1(Repeat START terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;10) error(8);</p>
<p>//i2c : tulis alamat device</p>
<p>TWDR=(EEPROM_BUS_ADDRESS|0&#215;01);</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));        //Tunggu sampai flag TWINT=1 (SLA_R terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;40) error(9);</p>
<p>//i2c: baca data EEPROM</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));                    //Tunggu sampai flag TWINT=1 (terima data)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;58) error(10);</p>
<p>data=TWDR;</p>
<p>//i2c : stop</p>
<p>TWCR=0&#215;94;</p>
<p>return data;</p>
<p>}</p>
<p>//menulis sebuah data(satu byte) ke EEPROM 24C01A</p>
<p>void eeprom_write(unsigned char address, unsigned char data){</p>
<p>//i2c:start</p>
<p>TWCR=0xA4;</p>
<p>while(!(TWCR&amp;0&#215;80));        //Tunggu sampai flag TWINT=1 (START terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;08) error(1);</p>
<p>//i2c : tulis alamat device</p>
<p>TWDR=EEPROM_BUS_ADDRESS &amp; 0xFE;         //I2C write</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));         //Tunggu sampai flag TWINT=1 (SLA_W terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;18) error(2);</p>
<p>//i2c : tulis alamat EEPROM yang digunakan untuk menyimpan data</p>
<p>TWDR=address;</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));        //Tunggu sampai flag TWINT=1 (address terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;28) error(3);</p>
<p>//I2C: tulis data EEPROM</p>
<p>TWDR=data;</p>
<p>TWCR=0&#215;84;</p>
<p>while(!(TWCR&amp;0&#215;80));          //Tunggu sampai flag TWINT=1 (data terkirim)</p>
<p>if((TWSR&amp;0xF8)!=0&#215;28) error(4);</p>
<p>//i2c : stop</p>
<p>TWCR=0&#215;94;</p>
<p>//delay 10ms untuk menyimpan data(tWR)</p>
<p>printf(&#8220;WRITE TO EEPROM : %d&#8221;,data);</p>
<p>delay_ms(10);</p>
<p>}</p>
<p>flash unsigned char string[]={&#8220;Data EEPROM : %X H&#8221;};</p>
<p>void main(void){</p>
<p>unsigned char i;</p>
<p>//inisialisasi  TWI (I2C)</p>
<p>//almaat slave TWI : 00H</p>
<p>//Pulsa SCL : 100.000 kHz</p>
<p>TWBR=0x0C;</p>
<p>TWSR=0&#215;00;              //TWPS:0=&#8217;0&#8242;</p>
<p>TWAR=0&#215;00;</p>
<p>TWCR=0&#215;04;</p>
<p>PORTC.0=0;              //Disable internal pull-up</p>
<p>PORTC.1=0;              //karena terdapat external pull-up</p>
<p>// USART Baud Rate: 9600</p>
<p>UCSRA=0&#215;00;</p>
<p>UCSRB=0xD8;</p>
<p>UCSRC=0&#215;86;</p>
<p>UBRRH=0&#215;00;</p>
<p>UBRRL=0&#215;47;             //Untuk kristal 11.05920 Mhz</p>
<p>//menulis sebuah data 55H pada alamat 00H</p>
<p>eeprom_write(0x0A,0&#215;55);</p>
<p>while(1){</p>
<p>//membaca sebuah data dari alamat 00H</p>
<p>delay_ms(60);</p>
<p>i=eeprom_read(0x0A);</p>
<p>delay_ms(60);</p>
<p>printf(string,i);</p>
<p>putchar(0x0D);</p>
<p>putchar(0x0A);</p>
<p>}</p>
<p>}</p>
<p>________________________________________________________________________________</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=86&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2010/01/05/komunikasi-i2c-pada-atmega8535/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/i2c_24cxx.png?w=300" medium="image">
			<media:title type="html">I2C_24CXX</media:title>
		</media:content>
	</item>
		<item>
		<title>Komunikasi SPI pada ATMEGA8535</title>
		<link>http://ayoenx.wordpress.com/2010/01/05/komunikasi-spi-pada-atmega8535/</link>
		<comments>http://ayoenx.wordpress.com/2010/01/05/komunikasi-spi-pada-atmega8535/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 02:54:52 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=79</guid>
		<description><![CDATA[A. Tujuan Mampu membuat program yaang meggunakan SPI (Serial Peripheral Interface) pada AVR ATMEGA8535 untuk membaca / memprogram mikrokontroler AVR ATTINY2313. B. Bahan Praktikum Kit latih development board AVR ATMEGA8535 Mikrokontroler AVR ATTINY2313 ( SPI ) Resistor 4,7 Kohm ( pull – up) Project Board Kabel Penghubung C. Praktikum Rangkaian Skematik SPI Program untuk membaca [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=79&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>A. </strong><strong>Tujuan</strong></p>
<ul>
<li>Mampu membuat program yaang meggunakan SPI (<em>Serial Peripheral Interface</em>) pada AVR ATMEGA8535 untuk membaca / memprogram mikrokontroler AVR ATTINY2313.</li>
</ul>
<p><span id="more-79"></span><strong>B. </strong><strong>Bahan Praktikum</strong></p>
<ul>
<li>Kit latih development board AVR ATMEGA8535
<ul>
<li>Mikrokontroler AVR ATTINY2313<strong> </strong>( SPI )</li>
<li>Resistor 4,7 Kohm ( pull – up)</li>
<li>Project Board</li>
<li>Kabel Penghubung</li>
</ul>
</li>
</ul>
<p><strong> </strong></p>
<p><strong>C. </strong><strong>Praktikum</strong><strong> </strong></p>
<ul>
<li><strong> Rangkaian Skematik SPI</strong></li>
</ul>
<p><strong> <a href="http://ayoenx.files.wordpress.com/2010/01/spi_attinny23131.png"><img class="alignnone size-medium wp-image-81" title="SPI_ATTINNY2313" src="http://ayoenx.files.wordpress.com/2010/01/spi_attinny23131.png?w=300&#038;h=175" alt="" width="300" height="175" /></a></strong></p>
<ul>
<li><strong> Program untuk membaca <em>signature byte </em>mikrokontroler ATTINY2313</strong></li>
</ul>
<p>________________________________________________________________________________</p>
<p>#include &lt;mega8535.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;delay.h&gt;</p>
<p>unsigned char SPI(unsigned char data){</p>
<p>SPDR = data;            //Mengirimkan sebuah data ke komunikasi SPI</p>
<p>while(SPSR.7==0);       //Menunggu flag SPIF (Pengiriman data selesai)</p>
<p>return(SPDR);           //Membaca I/O register SPDR dan clear flag SPIF</p>
<p>}</p>
<p>flash unsigned char string[]={&#8220;Signature Byte %u: %X H&#8221;};</p>
<p>void main(void){</p>
<p>unsigned char data;</p>
<p>PORTB = 0&#215;00;           //SCK, MOSI, SS = &#8217;0&#8242;</p>
<p>DDRB = 0xB0;            //PB7(SCK), PB5(MOSI), dan PB4(SS) sebagai output</p>
<p>//inisialisasi SPI</p>
<p>//Tipe SPI : Master</p>
<p>//SPI Clock Rate : 31,250 kHz(XTAL/128)</p>
<p>//SPI Clock Phase: Cycle Half</p>
<p>//SPI Data Order : MSB First</p>
<p>SPCR = 0&#215;53;</p>
<p>SPSR = 0&#215;00;</p>
<p>//Inisialisasi USART</p>
<p>//Format frame : 8 Data, 1 Stop , No Parity</p>
<p>//USART Transmitter : On (enable)</p>
<p>//USART Mode : Asynchronous</p>
<p>// USART Baud Rate: 9600</p>
<p>UCSRA=0&#215;00;</p>
<p>UCSRB=0xD8;</p>
<p>UCSRC=0&#215;86;</p>
<p>UBRRH=0&#215;00;</p>
<p>UBRRL=0&#215;47;             //Untuk kristal 11.05920 Mhz</p>
<p>PORTB.4=1;              //set RESET</p>
<p>delay_ms(20);           //Tunggu 20ms</p>
<p>PORTB.4=0;              //Clear RESET</p>
<p>delay_ms(20);</p>
<p>//Enable serial programming while RESET is low</p>
<p>SPI(0xAC);              //Instruction Byte 1</p>
<p>SPI(0&#215;53);              //Instruction Byte 2</p>
<p>SPI(0&#215;00);              //INstruction Byte 3</p>
<p>SPI(0&#215;00);              //Instruction Byte 4</p>
<p>while(1){</p>
<p>delay_ms(60);</p>
<p>//Read Signature byte 00H</p>
<p>SPI(0&#215;30);              //Instruction Byte 1</p>
<p>SPI(0&#215;00);              //Instruction Byte 2</p>
<p>SPI(0&#215;00);              //Instruction Byte 3</p>
<p>data = SPI(0);          //Read Byte 4</p>
<p>printf(string,0,data);</p>
<p>putchar(0x0D);          //Kirim ENTER pada terminal untuk baris baru</p>
<p>putchar(0x0A);</p>
<p>delay_ms(60);</p>
<p>//Read Signature byte 01H</p>
<p>SPI(0&#215;30);</p>
<p>SPI(0&#215;00);</p>
<p>SPI(0&#215;01);</p>
<p>data = SPI(0);</p>
<p>printf(string,1,data);</p>
<p>putchar(0x0D);          //Kirim ENTER pada terminal untuk baris baru</p>
<p>putchar(0x0A);</p>
<p>delay_ms(60);</p>
<p>//Read Signature byte 02H</p>
<p>SPI(0&#215;30);</p>
<p>SPI(0&#215;00);</p>
<p>SPI(0&#215;02);</p>
<p>data = SPI(0);</p>
<p>printf(string,2,data);</p>
<p>putchar(0x0D);          //Kirim ENTER pada terminal untuk baris baru</p>
<p>putchar(0x0A);          //Read Signature byte 02H</p>
<p>}</p>
<p>}</p>
<p>________________________________________________________________________________</p>
<ul>
<li><strong> Program untuk menulis suatu data ke memori program mikrokontroler AVR ATTINY2313.</strong></li>
</ul>
<p>________________________________________________________________________________</p>
<p>#include &lt;mega8535.h&gt;</p>
<p>#include &lt;spi.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;delay.h&gt;</p>
<p>void chip_reset_and_program_enable(void){</p>
<p>PORTB.4=1;           //SET RESET</p>
<p>delay_ms(20);        //tunggu 20 ms</p>
<p>PORTB.4=0;           //clear reset</p>
<p>//enable serial programming while reset is low</p>
<p>spi(0xAC);           //instruction byte 1</p>
<p>spi(0&#215;53);           //instruction byte 2</p>
<p>spi(0&#215;00);           //instruction byte 3</p>
<p>spi(0&#215;00);           //instruction byte 4</p>
<p>}</p>
<p>flash unsigned char string[]={ &#8220;Data pada Flash alamat 000H %p byte : %X H&#8221;};</p>
<p>flash unsigned char hi[]={&#8220;high&#8221;};</p>
<p>flash unsigned char lo[]={&#8220;low&#8221;};</p>
<p>void main(void){</p>
<p>unsigned char data;</p>
<p>PORTB=0&#215;00;          //SCK , MOSI , SS = &#8217;0&#8242;</p>
<p>DDRB=0xB0;           //PB7(SCK),PB5(MOSI), dan PB4(SS) sebagai output</p>
<p>SPCR = 0&#215;53;</p>
<p>SPSR = 0&#215;00;</p>
<p>// USART Baud Rate: 9600</p>
<p>UCSRA=0&#215;00;</p>
<p>UCSRB=0xD8;</p>
<p>UCSRC=0&#215;86;</p>
<p>UBRRH=0&#215;00;</p>
<p>UBRRL=0&#215;47;           //Untuk kristal 11.05920 Mhz</p>
<p>chip_reset_and_program_enable();</p>
<p>//chip erase</p>
<p>spi(0xAC);</p>
<p>spi(0&#215;80);</p>
<p>spi(0&#215;00);</p>
<p>spi(0&#215;00);</p>
<p>delay_ms(4);</p>
<p>/*sesudah perintah chip erase diperlukan reset dan programming enable , untuk lebih jelasnya dapat dilihat pada datasheet cara memprogram mikrokontroler*/</p>
<p>//AVR ATTiNY2313 secara serial (Serial Downloading &#8211; SPI)</p>
<p>chip_reset_and_program_enable();</p>
<p>//Load Program Memory(Flash) : Low byte</p>
<p>//data yang ditulis AAH pada alamat 000H</p>
<p>spi(0&#215;40);</p>
<p>spi(0&#215;00);           //instruction Byte 2 (alamat)</p>
<p>spi(0&#215;00);           //instruction Byte 3 (alamat)</p>
<p>spi(0xAA);           //instruction Byte 4 (Data = AAH)</p>
<p>//Load Program Memory(Flash) : High byte</p>
<p>//data yang ditulis 33H pada alamat 000H</p>
<p>spi(0&#215;48);</p>
<p>spi(0&#215;00);           //instruction Byte 2 (alamat)</p>
<p>spi(0&#215;00);           //instruction Byte 3 (alamat)</p>
<p>spi(0&#215;33);           //instruction Byte 4 Data = 33H)</p>
<p>//Write Program Memory(Flash)</p>
<p>spi(0x4C);</p>
<p>spi(0&#215;00);           //instruction Byte 2 (alamat)</p>
<p>spi(0&#215;00);           //instruction Byte 3(alamat)</p>
<p>spi(0&#215;00);           //instruction Byte 4</p>
<p>delay_ms(5);</p>
<p>while(1){</p>
<p>delay_ms(60);</p>
<p>/*read Program Memory(flash) : High Byte Data yang dibaca pada alamat 000H*/</p>
<p>spi(0&#215;28);</p>
<p>spi(0&#215;00);    //instruction Byte 2 (alamat)</p>
<p>spi(0&#215;00);    //instruction Byte 3 (alamat)</p>
<p>data=spi(0);  //instruction Byte 4 (Baca Data)</p>
<p>printf(string,hi,data);</p>
<p>putchar(0x0D);</p>
<p>putchar(0x0A);</p>
<p>delay_ms(60);</p>
<p>//read program memory(flash): low byte data yang dibaca pada alamat 000H</p>
<p>spi(0&#215;20);    //instruction Byte 2 (alamat)</p>
<p>spi(0&#215;00);    //instruction Byte 3 (alamat)</p>
<p>spi(0&#215;00);    //instruction Byte 4 (Baca Data)</p>
<p>data=spi(0);</p>
<p>printf(string,lo,data);</p>
<p>putchar(0x0D);</p>
<p>putchar(0x0A);</p>
<p>}</p>
<p>}</p>
<p>________________________________________________________________________________</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=79&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2010/01/05/komunikasi-spi-pada-atmega8535/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2010/01/spi_attinny23131.png?w=300" medium="image">
			<media:title type="html">SPI_ATTINNY2313</media:title>
		</media:content>
	</item>
		<item>
		<title>Minimum System Atmega128</title>
		<link>http://ayoenx.wordpress.com/2009/11/26/minimum-system-atmega128/</link>
		<comments>http://ayoenx.wordpress.com/2009/11/26/minimum-system-atmega128/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 16:04:48 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Design PCB]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=73</guid>
		<description><![CDATA[Rangkaian skematik minimum atmega128 yang telah berhasil dibuat. rangkaian fisiknya (PCB) rangkaian tersebut telah teruji kualitasnya, bila berminat, pesan saja dengan harga yang terjangkau.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=73&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Rangkaian skematik minimum atmega128 yang telah berhasil dibuat.</p>
<p><a href="http://ayoenx.files.wordpress.com/2009/11/skemaatmega128.png"><img class="alignnone size-medium wp-image-74" title="skemaatmega128" src="http://ayoenx.files.wordpress.com/2009/11/skemaatmega128.png?w=300&#038;h=267" alt="" width="300" height="267" /></a></p>
<p><span id="more-73"></span></p>
<p>rangkaian fisiknya (PCB)</p>
<p><a href="http://ayoenx.files.wordpress.com/2009/11/pcb.png"><img class="alignnone size-medium wp-image-75" title="PCB" src="http://ayoenx.files.wordpress.com/2009/11/pcb.png?w=300&#038;h=294" alt="" width="300" height="294" /></a></p>
<p>rangkaian tersebut telah teruji kualitasnya, bila berminat, pesan saja dengan harga yang terjangkau.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=73&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/11/26/minimum-system-atmega128/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2009/11/skemaatmega128.png?w=300" medium="image">
			<media:title type="html">skemaatmega128</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2009/11/pcb.png?w=300" medium="image">
			<media:title type="html">PCB</media:title>
		</media:content>
	</item>
		<item>
		<title>Aplikasi Untuk Inisialisasi Port pada Komputer</title>
		<link>http://ayoenx.wordpress.com/2009/11/26/aplikasi-untuk-inisialisasi-port-pada-komputer/</link>
		<comments>http://ayoenx.wordpress.com/2009/11/26/aplikasi-untuk-inisialisasi-port-pada-komputer/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:44:17 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Object Oriented Programming]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=69</guid>
		<description><![CDATA[Program java sederhana yang akan mendeteksi jumlah port pada komputer anda. Untuk itu, kita memerlukan paket java tambahan untuk melakukan koneksi ke serial port . Namanya adalah Java Communication Port yang dapat di-download pada: http://java.sun.com/products/javacomm/. Instalasi Serial Driver Penulis menggunakan versi 2.0, untuk Windows. Download paket javacomm20-win32.zip. Lakukan instalasi sebagai berikut: 1. Uraikan file javacomm20-win32.zip [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=69&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Program java sederhana yang akan mendeteksi jumlah port pada komputer anda. Untuk itu, kita memerlukan paket java tambahan untuk melakukan koneksi ke serial port . Namanya adalah Java Communication Port yang dapat di-download pada:</p>
<p>http://java.sun.com/products/javacomm/.</p>
<p><span id="more-69"></span><strong>Instalasi Serial Driver</strong></p>
<p>Penulis menggunakan versi 2.0, untuk Windows. Download paket javacomm20-win32.zip.</p>
<p>Lakukan instalasi sebagai berikut:</p>
<p>1. Uraikan file <strong>javacomm20-win32.zip </strong>ke direktori sementara, misal C:\commapi,</p>
<p>2. Kopikan file win32comm.dll ke direktori <em>bin </em>tempat JDK anda berada, misal <em>C:\j2sdk1.4.0_01\bin,</em></p>
<p>3. Kopikan file <strong>comm.jar</strong> ke direktori <em>lib </em>tempat JDK anda berada, misal <em>C:\j2sdk1.4.0_01\lib,</em></p>
<p><em>4. </em>Kopikan file <strong>javax.comm.properties</strong> ke direktori <em>lib </em>tempat JDK anda berada, misal <em>C:\j2sdk1.4.0_01\lib,</em></p>
<p><em></em><em><em>5. Tambahkan comm.jar pata CLASSPATH. Jika pengaturan CLASSPATH belum ada, ketikan perintah berikut ini pada DOS-prompt:</em></em></p>
<p><em><em> <em>C:\&gt;set CLASSPATH=c:\j2sdk1.4.0\lib\comm.jar</em></em></em></p>
<p><em><em><em> Apabila setting classpath telah ada, ketikan perintah berikut ini pada D</em>OS-prompt:</em></em></p>
<p><em><em> <em>C:\&gt;set LASSPATH=c:\j2sdk1.4.0\lib\comm.jar;%classpath%</em></em></em></p>
<p><em><em><em>yang lebih detailnya mah baca aja di readme.html dari paket javacomm tersebut.</em></em></em></p>
<p><em><em><em>Program ReadPort.java</em></em></em></p>
<p>//java communication port packages<br />
import javax.comm.CommPortIdentifier;<br />
import java.util.Enumeration;</p>
<p>public class ReadPort{<br />
//Port identifier<br />
static CommPortIdentifier portId;</p>
<p>//Container of the present ports<br />
static Enumeration portList;</p>
<p>public static void main(String[] args){<br />
//demand present ports<br />
portList = CommPortIdentifier.getPortIdentifiers();</p>
<p>//this cycle allows to capture one to one the found ports<br />
while(portList.hasMoreElements()){</p>
<p>//port identifier;<br />
portId=(CommPortIdentifier) portList.nextElement();</p>
<p>//view the port<br />
System.out.println(&#8220;Port: &#8221; + portId.getName());<br />
}<br />
}<br />
}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=69&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/11/26/aplikasi-untuk-inisialisasi-port-pada-komputer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>
	</item>
		<item>
		<title>INTERRUPT TIMER0 PADA ATMEGA128</title>
		<link>http://ayoenx.wordpress.com/2009/11/26/interrupt-timer0-pada-atmega128/</link>
		<comments>http://ayoenx.wordpress.com/2009/11/26/interrupt-timer0-pada-atmega128/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:25:51 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=67</guid>
		<description><![CDATA[Membuat lampu LED berkedip-kedip setiap 1 detik sekali dengan menggunakan interrupt timer0 pada atmega128 Listing Program: #include &#60;mega128.h&#62; #include &#60;stdio.h&#62; unsigned char led=0; unsigned char cacah=0; void init_uart_debug(void); // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { init_uart_debug(); printf(&#8220;msg: cacah = %d\n\r&#8221;,cacah); TCNT0 = 0xB1; cacah++; if(cacah==192){ cacah = 0; led=~led; PORTC=led; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=67&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Membuat lampu LED berkedip-kedip setiap 1 detik sekali dengan menggunakan interrupt timer0 pada atmega128</p>
<p><span id="more-67"></span></p>
<p>Listing Program:</p>
<p>#include &lt;mega128.h&gt;<br />
#include &lt;stdio.h&gt;<br />
unsigned char led=0;<br />
unsigned char cacah=0;</p>
<p>void init_uart_debug(void);<br />
// Timer 0 overflow interrupt service routine<br />
interrupt [TIM0_OVF] void timer0_ovf_isr(void)<br />
{<br />
init_uart_debug();<br />
printf(&#8220;msg: cacah = %d\n\r&#8221;,cacah);</p>
<p>TCNT0 = 0xB1;<br />
cacah++;<br />
if(cacah==192){<br />
cacah = 0;<br />
led=~led;<br />
PORTC=led;<br />
}<br />
}</p>
<p>void init_uart_debug(void){<br />
// USART0 Baud Rate: 9600<br />
UCSR0A=0&#215;00;<br />
UCSR0B=0xD8;<br />
UCSR0C=0&#215;06;<br />
UBRR0H=0&#215;00;<br />
UBRR0L=0&#215;47;<br />
}<br />
void main(void)<br />
{<br />
DDRC=0xff;<br />
// turn on the first LED<br />
PORTC=led;</p>
<p>// Timer/Counter 0 initialization<br />
// Clock source: System Clock<br />
// Clock value: 10.800 kHz<br />
// Mode: Normal top=FFh<br />
// OC0 output: Toggle on compare match<br />
ASSR=0&#215;00;<br />
TCCR0=0&#215;05;<br />
TCNT0=0xB1;<br />
OCR0=0&#215;00;<br />
// Timer(s)/Counter(s) Interrupt(s) initialization<br />
TIMSK=0&#215;01;<br />
ETIMSK=0&#215;00;</p>
<p>// Global enable interrupts<br />
#asm(&#8220;sei&#8221;)</p>
<p>while (1){};<br />
}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=67&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/11/26/interrupt-timer0-pada-atmega128/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>
	</item>
		<item>
		<title>KONVERSI DATA ANALOG KE DIGITAL (ADC) PADA ATMEGA128</title>
		<link>http://ayoenx.wordpress.com/2009/11/26/konversi-data-analog-ke-digital-adc-pada-atmega128/</link>
		<comments>http://ayoenx.wordpress.com/2009/11/26/konversi-data-analog-ke-digital-adc-pada-atmega128/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:18:54 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=63</guid>
		<description><![CDATA[Berikut ini adalah contoh program untuk mengkonversi data analog ke data digital (program adc1_atmega128.c). Sinyal masukan berupa tegangan analog yang terhubung ke pin ADC0 akan dikoversikan menjadi data digital 8-bit dan kemudian data digital hasil konversi ini ditampilkan ke lampu LED yang terhubung melalui Port C,juga ditampilkan ke hyperterminal (kebutuhan debug pada komunikasi serial) untuk [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=63&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Berikut ini adalah contoh program untuk mengkonversi data analog ke data digital (program adc1_atmega128.c). Sinyal masukan berupa tegangan analog yang terhubung ke pin ADC0 akan dikoversikan menjadi data digital 8-bit dan kemudian data digital hasil konversi ini ditampilkan ke lampu LED yang terhubung melalui Port C,juga ditampilkan ke hyperterminal (kebutuhan debug pada komunikasi serial) untuk mengetahui nilai output dari ADC0. Data hasil konversi sebetulnya adalah 10-bit tetepai pada program ini hanya diambil 8-bit MSB saja ( bit9-bit2) yang kemudian dikeluarkan pada Port C. Dengan demikian secara visual kita dapat mengamati data digital hasil konversi ADC ini melalui nyalanya lampu LED. Nilai outputnya pun dapat dilihat dari hyperterminal (komunikasi serial-USART).</p>
<p><span id="more-63"></span>Untuk mensimulasikan program ini maka 8 pin masukan ADC yang terdapat pada Port F mikrokontroler atmega128 harus di hubungkan ke potensiometer seperti gambar berikut:</p>
<p><a href="http://ayoenx.files.wordpress.com/2009/11/potensio.png"><img class="alignnone size-medium wp-image-64" title="potensio" src="http://ayoenx.files.wordpress.com/2009/11/potensio.png?w=300&#038;h=197" alt="" width="300" height="197" /></a></p>
<p>Listing Program adc1_atmega128.c :</p>
<p>#include &lt;mega128.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;delay.h&gt;</p>
<p>#define mode_ADC 0&#215;20<br />
void init_uart_debug(void);<br />
unsigned char data;<br />
unsigned char nilai_adc;<br />
unsigned char debug_mode = 1;<br />
unsigned char baca_adc(unsigned char pin_adc){<br />
ADMUX = pin_adc |mode_ADC;<br />
ADCSRA|=0&#215;40;<br />
while((ADCSRA &amp; 0&#215;10)==0);<br />
ADCSRA|=0&#215;10;<br />
return ADCH;<br />
}<br />
void init_uart_debug(void){<br />
// USART0 Baud Rate: 9600<br />
UCSR0A=0&#215;00;<br />
UCSR0B=0xD8;<br />
UCSR0C=0&#215;06;<br />
UBRR0H=0&#215;00;<br />
UBRR0L=0&#215;47;<br />
}<br />
void main(void){<br />
DDRC=0xFF;<br />
ADMUX=mode_ADC;<br />
ADCSRA=0&#215;85;<br />
while(1){<br />
nilai_adc = ~baca_adc(0);<br />
PORTC=nilai_adc;<br />
if(debug_mode){<br />
init_uart_debug();<br />
printf(&#8220;msg: Nilai ADC: %d\n\r&#8221;,nilai_adc);<br />
}</p>
<p>};<br />
}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=63&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/11/26/konversi-data-analog-ke-digital-adc-pada-atmega128/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2009/11/potensio.png?w=300" medium="image">
			<media:title type="html">potensio</media:title>
		</media:content>
	</item>
		<item>
		<title>Art of Embedded System Design</title>
		<link>http://ayoenx.wordpress.com/2009/08/11/art-of-embedded-system-design/</link>
		<comments>http://ayoenx.wordpress.com/2009/08/11/art-of-embedded-system-design/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 07:55:04 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=59</guid>
		<description><![CDATA[Perancangan sistem embedded adalah sebuah seni. Seni bagaimana mengoptimalkan resource, seni bagaimana melakukan pendekatan suatu masalah secara sederhana dan tepat,  mengoptimalkan kecepatan proses sekaligus code dan seni bagaimana membuat arsitektur yang murah, aman, tepat dan cepat sesuai dengan fungsi dan kebutuhan. Sistem embedded mempunyai cakupan aplikasi yang sangat luas seperti pada peralatan elektronik, mainan, robotika [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=59&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p>Perancangan sistem <em>embedded</em> adalah sebuah seni. Seni bagaimana mengoptimalkan <em>resource</em>, seni bagaimana melakukan pendekatan suatu masalah secara sederhana dan tepat,  mengoptimalkan kecepatan proses sekaligus <em>code</em> dan seni bagaimana membuat arsitektur yang murah, aman, tepat dan cepat sesuai dengan fungsi dan kebutuhan.<br />
<span id="more-59"></span><br />
Sistem <em>embedded</em> mempunyai cakupan aplikasi yang sangat luas seperti pada peralatan elektronik, mainan, robotika dan sistem kontrol, jaringan, persenjataan, medis, otomotif, instrumentasi, akusisi data dll. Mempelajari sistem <em>embedded</em> berarti mempelajari beberapa aspek keilmuan seperti elektronika, komputer, informatika, mekanika dan disiplin ilmu lain tergantung pada kebutuhan dan dimana embedded system akan diterapkan.</p>
<p>Definisi dari sistem <em>embedded</em> cukup beragam. Namun, secara umum sistem <em>embedded</em> memiliki karakteristik sebagai berikut:</p>
<p>-          merupakan sistem yang terpadu (<em>hardware</em> dan <em>firmware</em>).</p>
<p>-          memiliki <em>resource</em> yang terbatas.</p>
<p>-          dirancang untuk menjalankan fungsi tertentu.</p>
<p>-          dapat berdiri sendiri ataupun sebagai bagian dari sistem yang lain.</p>
<p>Jadi sistem embedded dapat didefinisikan sebagai sistem komputer terpadu dengan perangkat keras (<em>hardware</em>) dan perangkat lunak (<em>firmware</em>) terbatas yang menjalankan fungsi tertentu, dapat berupa satu sistem yang berdiri sendiri ataupun sebagai bagian dari sistem lain.</p>
<p>Sistem <em>embedded </em>juga didefiniskan sebagai sistem komputer yang dirancang secara khusus untuk menjalankan satu atau lebih tugas yang bersifat <em>real time</em> dan kontinyu.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=59&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/08/11/art-of-embedded-system-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>
	</item>
		<item>
		<title>Membangun Modul Program Yang Efektif</title>
		<link>http://ayoenx.wordpress.com/2009/08/11/membangun-modul-program-yang-efektif/</link>
		<comments>http://ayoenx.wordpress.com/2009/08/11/membangun-modul-program-yang-efektif/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 07:51:34 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Prosedural]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=54</guid>
		<description><![CDATA[PENDAHULUAN Manusia bila menghadapi permasalahan yang (cukup) besar langkah awal yang dilakukan adalah membagi/memecah permasalahan tersebut menjadi beberapa bagian yang lebih kecil. Selanjutnya menyelesaikan secara bertahap bagian demi bagian, baik secara sendiri maupun berkelompok, sehingga diperoleh solusi dari permasalahan yang besar tersebut. Sebagai gambaran, kita diminta untuk “menyelesaikan” (baca: memakan) buah semangka sampai habis. Langkah [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=54&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>PENDAHULUAN</strong><br />
Manusia bila menghadapi permasalahan yang (cukup) besar langkah awal yang dilakukan adalah membagi/memecah permasalahan tersebut menjadi beberapa bagian yang lebih kecil. Selanjutnya menyelesaikan secara bertahap bagian demi bagian, baik secara sendiri maupun berkelompok, sehingga diperoleh solusi dari permasalahan yang besar tersebut. Sebagai gambaran, kita diminta untuk “menyelesaikan” (baca: memakan) buah semangka sampai habis. Langkah awal yang dilakukan adalah “mempartisi” (memotong) buah semangka menjadi beberapa bagian dan memakannya satu persatu, sendiri atau bersama-sama.<br />
Dalam lingkup pengembangan perangkat lunak (program) analogi di atas harus dipakai, apabila akan menghasilkan perangkat lunak yang baik. Program yang besar harus dipartisi menjadibeberapa modul yang mudah diselesaikan. Modul program dapat berupa prosedur dan/atau fungsi.<br />
Untuk mempartisi program menjadi beberapa bagian terdapat dua paradigma pokok, yaitu Structured Programming (SP) dan Object Oriented Programming (OOP). SP mempartisi program berdasarkan kata kerja (fungsi sistem) atau behavior sedangkan OOP mempartisi program berdasarkan kata benda (objek diskrit). Dalam SP, struktur data dan behavior terpisah, di sisi lain OOP mengenkapsulasi struktur data dan behavior dalam satu objek.<br />
Dalam tulisan ini akan diuraikan sekilas tentang perancangan modul yang baik untuk SP, karena hal ini merupakan modal utama—kalau tidak dikatakan mutlak—untuk menuju ke OOP.</p>
<p><span id="more-54"></span><br />
<strong>MENGUKUR MODUL PROGRAM YANG BAIK<br />
</strong>Reusable adalah kunci pokok dalam pengembangan perangkat lunak, tema inilah yang mengilham perancangan modul program dan perkembangan paradigma pengembangan perangkat lunak secara umum. Reusable bisa diperoleh bila menerapkan information hiding. Yang dimaksud Information hiding adalah: [Presman 2000]<br />
• Setiap modul tersembunyi dengan yang lain<br />
• Modul harus dirancang agar informasi (prosedur dan data) yang berada di dalam modul tidak dapat diakses oleh oleh modul lain <span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">yang tidak memerlukan informasi tersebut.<br />
Keuntungan modul yang efektif<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Mengurangi kompleksitas<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Mempermudah perubahan<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Lebih mudah diimplementasikan dan dapat dikerjakan secara paralel (Tim)<br />
</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Dua Mekanisme pengaktifan modul:<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Diinvokasi </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">by refference </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">(statemen call)<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Dinvokasi oleh interupsi (banyak untuk sistem real-time)</span></span></p>
<p><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Functional Independence </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">merupakan kunci perancangan yang baik dan kunci kualitas program.<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Merupakan hasil pertumbuhan langsung konsep abstraksi dan information hiding.<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Memiliki subfungsi yang spesifik dan antarmuka yang sederhana apabila dipandang dari bagian lain dalam struktur program<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Keuntungan Modul yang independen:<br />
  </span></span><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;">o </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">mudah membagi dalam tim,<br />
  </span></span><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;">o </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">mudah diubah,<br />
  </span></span><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;">o </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">perambatan kesalahan berkurang, dan<br />
  </span></span><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;">o </span></span><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">reusable bertambah</span></span></span></span></p>
<p><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Courier New;"><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Independensi diukur dengan dengan dua kriteria kualitattif, yaitu </span></span></span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Cohesion </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">dan </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Coupling</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">.</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;"><br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">COHESION: mengukur kekuatan funmgsional relatif suatu modul.</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;"><br />
•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">COUPLING: mengukur interdependensi relatif antar modul</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;"> </span></span></p>
<p><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">Ciri Modul yang baik:<br />
•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">High cohesion </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">(</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">functional cohesion</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">): modul hanya melakukan satu tugas dan memerlukan sedikit interaksi dengan modul lain dalam satu program.<br />
</span></span><span style="font-size:small;font-family:SymbolMT;"><span style="font-size:small;font-family:SymbolMT;">•</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Low coupling</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">: modul memiliki kopling antar modul yang lemah atau sebebas mungkin dengan modul yang lain (independen). Kopling tergantung pada kompleksitas antarmuka modul.</span></span></p>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"> </span></span></span></span></div>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></span></span></span></span></div>
<p> </p>
<p><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></p>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"> </span></span></span></span></div>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></span></span></span></span></div>
<p> </p>
<p><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></p>
<p align="left"><strong>STUDI KASUS<br />
</strong></p>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"> </span></span></span></div>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></span></span></span></div>
<p> </p>
<p></span></span></span></span></span><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></p>
<p align="left"> </p>
<p><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Pada halaman berikut diberikan contoh kasus penyelesaian program secara modular. Pada kolom sebelah kiri, program sudah terdiri dari beberapa modul tetapi masih memiliki kopling tinggi. Kolom sebelah kanan merupakan hasil perbaikan yang menunjukkan kopling rendah. Kohesi tidak begitu tampak dalam kasus ini.</span></span></p>
<p> </p>
<p></span></span></span></span></span></span></p>
<p align="left"> </p>
<p> </p>
<p> </p>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"> </span></span></span></span></span></span></span></span></div>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></span></span></span></span></span></span></span></span></div>
<p> </p>
<p><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></p>
<p align="left"><strong>KESIMPULAN<br />
</strong></p>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"> </span></span></span></div>
<div><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></span></span></span></div>
<p> </p>
<p></span></span></span></span></span><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"><span style="font-size:small;font-family:Arial;"></p>
<p align="left"> </p>
<p><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">Dalam menyusun program tidak sekedar memecah program menjadi beberapa modul, tetapi harus memperhatikan bagaimana kualitas modul tersebut. Modul yang baik adalah </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">reusable</span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">, </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">reusable </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">dalam program yang sama maupun </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">reusable </span></span><span style="font-size:small;font-family:Times New Roman;"><span style="font-size:small;font-family:Times New Roman;">untuk program yang lain.</span></span></p>
<p> </p>
<p></span></span></span></span></span></span></p>
<p align="left"> </p>
<p> </p>
<div><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><strong>PROGRAM TIDAK BAIK<br />
</strong></span></span></span></span></div>
<div><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"></span></span></span></span></div>
<p> </p>
<p><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"></p>
<div><span style="font-size:x-small;font-family:Arial;"> </span></div>
<div><span style="font-size:x-small;font-family:Arial;"><br />
Program Contoh;<br />
Uses crt;<br />
Procedure buat_garis (x: byte, y: char);<br />
Begin<br />
for i : = 1 to x do<br />
write (y);<br />
writeln;<br />
End;<br />
Procedure pangkat_tiga (x: integer);<br />
Var z: integer;<br />
Begin<br />
z := x * x * x;<br />
writeln (’Hasil 1 = ‚’, z);<br />
buat_garis (10,&#8217;=');<br />
End;<br />
Function proses(x, y, z: integer): integer;<br />
Var s: integer;<br />
Begin<br />
s := x + y &#8211; z;<br />
Proses := s;<br />
End;<br />
Function hitung_loop(x, y: integer): integer;<br />
Begin<br />
for i := 1 to x do<br />
y := y &#8211; i;<br />
Hitung_loop := y;<br />
End;<br />
Procedure tampilkan_hasil( y: integer);<br />
Begin<br />
Writeln (‘Hasil 2 = ‘, y);<br />
buat_garis(20,&#8217;*');<br />
End;</span></div>
<p></span></span></span><span style="font-size:x-small;font-family:Arial;"> </p>
<p></span></span></p>
<p>Var i: byte;<br />
j, a, b, c: integer;<br />
Begin<br />
a := 5; b := 20; c := 10;<br />
b := hitung_loop(a,b);<br />
pangkat_tiga (b);<br />
j = proses(a,b,c);<br />
tampilkan_hasil(j);<br />
End.</p>
<p> </p>
<div><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"><strong>PROGRAM LEBIH BAIK</strong></span></span></div>
<div><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;"> </span></span></div>
<p><span style="font-size:x-small;font-family:Arial;"><span style="font-size:x-small;font-family:Arial;">Program Contoh;<br />
Uses crt;<br />
Procedure buat_garis (x: byte, y: char);<br />
Var i: byte;<br />
Begin<br />
for i : = 1 to x do<br />
write (y);<br />
writeln;<br />
End; {end procedure buat_garis }<br />
Function pangkat_tiga (x: integer): integer;<br />
Var z: integer;<br />
Begin<br />
z := x * x * x;<br />
Pangkat_tiga := z;<br />
End; {end function pangkat_tiga }<br />
Function proses(x, y, z: integer): integer;<br />
Var s: integer;<br />
Begin<br />
s := x + y &#8211; z;<br />
Proses := s;<br />
End;<br />
Function hitung_loop(x, y: integer): integer;<br />
Var i: byte;<br />
Begin<br />
for i := 1 to x do<br />
y := y &#8211; i;<br />
Hitung_loop := y;<br />
End; {end function hitung_loop }<br />
Procedure tampilkan_hasil( x, y: integer);<br />
Begin<br />
Writeln (‘Hasil 1 = ‘, x);<br />
buat_garis(20,&#8217;=');<br />
Writeln (‘Hasil 2 = ‘, y);<br />
buat_garis(20,&#8217;*');<br />
End; {end procedure tampilkan hasil }</p>
<p>Var<br />
j, k, a, b, c: integer;<br />
Begin {program utama}<br />
a := 5; b := 20; c := 10;<br />
b := hitung_loop(a,b);<br />
k = pangkat_tiga (b);<br />
j = proses(a,b,c);<br />
tampilkan_hasil(k,j);<br />
End. {program utama}l }</p>
<p> </p>
<p> </p>
<p></span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=54&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/08/11/membangun-modul-program-yang-efektif/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>
	</item>
		<item>
		<title>USART IO Menggunakan RX Interrupt</title>
		<link>http://ayoenx.wordpress.com/2009/08/10/usart-io-menggunakan-rx-interrupt/</link>
		<comments>http://ayoenx.wordpress.com/2009/08/10/usart-io-menggunakan-rx-interrupt/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 04:55:12 +0000</pubDate>
		<dc:creator>ayoenx</dc:creator>
				<category><![CDATA[Pemrograman Mikrokontroller]]></category>

		<guid isPermaLink="false">http://ayoenx.wordpress.com/?p=45</guid>
		<description><![CDATA[Deskripsi Program untuk menampilkan data yang dikirim melalui keyboard dengan software hyper terminal. Program menggunakan RX interrupt mengecek apakah data telah selesai dikirim dari keyboard. Jika telah selesai, maka data dalam UDR dipindah ke variabel data, kemudian isi dari variabel data ditampilkan ke LCD. Hardware - LCD di Port C - USART 9600 Source Code [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=45&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Deskripsi</strong><br />
Program untuk menampilkan data yang dikirim melalui keyboard dengan software hyper terminal. Program menggunakan RX interrupt mengecek apakah data telah selesai dikirim dari keyboard. Jika telah selesai, maka data dalam UDR dipindah ke variabel data, kemudian isi dari variabel data ditampilkan ke LCD.</p>
<p><strong><span id="more-45"></span></strong></p>
<p><strong>Hardware<br />
</strong>- LCD di Port C<br />
- USART 9600</p>
<p><strong>Source Code</strong></p>
<p>————————————————————————————————<br />
#include &lt;mega8535.h&gt;<br />
#asm<br />
.equ __lcd_port=0×15<br />
#endasm<br />
#include &lt;lcd.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;delay.h&gt;</p>
<p>char lcd_buffer[33];<br />
unsigned char data;</p>
<p>void main(void)<br />
{<br />
lcd_init(16);<br />
UCSRA=0×00;<br />
UCSRB=0×98;<br />
UCSRC=0×86;<br />
UBRRH=0×00;<br />
UBRRL=0×47;<br />
#asm(”sei”)<br />
}</p>
<p>interrupt [USART_RXC] void usart_rx_complete(void)<br />
{<br />
data=UDR;<br />
delay_ms(50);<br />
lcd_clear();<br />
sprintf(lcd_buffer,”Data %c”,data);<br />
lcd_puts(lcd_buffer);<br />
}<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<strong>Hasil Akhir:<br />
</strong>Karakter yang diinput pada Hyperterminal akan muncul pada LCD seperti gambar dibawah ini.</p>
<p><img class="alignnone size-full wp-image-47" title="lcd" src="http://ayoenx.files.wordpress.com/2009/08/lcd.png?w=460" alt="lcd"   /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ayoenx.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ayoenx.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ayoenx.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ayoenx.wordpress.com&amp;blog=1813141&amp;post=45&amp;subd=ayoenx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ayoenx.wordpress.com/2009/08/10/usart-io-menggunakan-rx-interrupt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bebf221a586544e47a4010543fccd6ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ayoenx</media:title>
		</media:content>

		<media:content url="http://ayoenx.files.wordpress.com/2009/08/lcd.png" medium="image">
			<media:title type="html">lcd</media:title>
		</media:content>
	</item>
	</channel>
</rss>
