{"id":1360,"date":"2024-08-26T01:08:08","date_gmt":"2024-08-25T18:08:08","guid":{"rendered":"https:\/\/delta-electronic.com\/Design\/Hardwares\/?p=1360"},"modified":"2024-08-26T05:46:57","modified_gmt":"2024-08-25T22:46:57","slug":"dasar-mikrokontroler-avr-2-struktur-memori-atmega8535","status":"publish","type":"post","link":"https:\/\/delta-electronic.com\/Design\/Hardwares\/dasar-mikrokontroler-avr-2-struktur-memori-atmega8535\/","title":{"rendered":"Dasar Mikrokontroler AVR 2 Struktur Memori ATMEGA8535"},"content":{"rendered":"<p>Memori pada ATMega8535 terdiri dari:<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 Kb On Chip In System Programmable Flash Memory<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 608 byte SRAM<\/p>\n<p>&#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 512 byte EEPROM<\/p>\n<p><span class=\"Apple-style-span\">On Chip In System Programmable Flash Memory<\/span><\/p>\n<p>Merupakan Memori Flash yang diprogram secara In System Programming (ISP) dan berfungsi untuk menyimpan program mikrokontroler. Pada ATMega8535 memori ini terpisah menjadi dua bagian yaitu Application Flash dan Boot Flash.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-1361 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535.png\" alt=\"\" width=\"515\" height=\"570\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535.png 515w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535-271x300.png 271w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><\/p>\n<p>Application Flash adalah area memori untuk aplikasi yang dirancang oleh programmer sdangkan Boot Flash adalah area memori untuk program bootloader yaitu program kecil yang berfungsi untuk mengambil data dari port serial dan diisi ke application flash sehingga ATMega8535 dapat diisi melalui serial port seperti pada arduino.<\/p>\n<p>Untuk penulisan data ke lokasi Flash Memory ini biasanya dilakukan melalui In System Programming (kecuali bila boot flash sudah terisi bootloader di mana pengisian juga bisa dilakukan melalui port serial).<\/p>\n<p>Proses tersebut dilakukan dengan menggunakan DU ISP (Delta USB In System Programmer) yang terhubung pada SPI Port ATMega8535<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/du-isp-v5-atmel-downloader-usb-win-vista-seven-support-1\"><img decoding=\"async\" class=\"size-full wp-image-1362 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/downloader-atmega8535.png\" alt=\"\" width=\"419\" height=\"357\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/downloader-atmega8535.png 419w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/downloader-atmega8535-300x256.png 300w\" sizes=\"(max-width: 419px) 100vw, 419px\" \/>DU ISP V5.0 Atmel USB Downloader<\/a><\/p>\n<p>Dan saat ini downloader terbaru kami yang baru saja dirilis Agustus 2024 adalah:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/downloader-universal-dst-uni-downloader-esp8266-esp32-arduino-usbasp-usbasp-b36e6\"><img decoding=\"async\" class=\"wp-image-1373 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/dst-uni-downloader-5.jpg\" alt=\"\" width=\"566\" height=\"425\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/dst-uni-downloader-5.jpg 1280w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/dst-uni-downloader-5-300x225.jpg 300w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/dst-uni-downloader-5-1024x768.jpg 1024w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/dst-uni-downloader-5-768x576.jpg 768w\" sizes=\"(max-width: 566px) 100vw, 566px\" \/>DST Universal Downloader<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Namun untuk <a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/sistem-minimum-atmega8535-arduino-mikrokontroler-usb-downloader\">Sistem Minimum ST-8535 USB<\/a>, downloader tersebut tidak diperlukan lagi karena sudah terintegrasi dalam\u00a0 sistem minimum<\/p>\n<p><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/sistem-minimum-atmega8535-arduino-mikrokontroler-usb-downloader\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1363 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/sistem-minimum-atmega8535.png\" alt=\"\" width=\"409\" height=\"308\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/sistem-minimum-atmega8535.png 409w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/sistem-minimum-atmega8535-300x226.png 300w\" sizes=\"(max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>Aplikasi yang digunakan adalah AVR Studio seperti yang dibahas pada bagian 1 Instalasi IDE<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1364 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/avrstudio.png\" alt=\"\" width=\"530\" height=\"258\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/avrstudio.png 530w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/avrstudio-300x146.png 300w\" sizes=\"(max-width: 530px) 100vw, 530px\" \/><\/p>\n<p><strong><span class=\"Apple-style-span\">SRAM<\/span><\/strong><\/p>\n<p>Merupakan Static RAM yang terdiri dari 96 Register dan Memori I\/O serta 512 byte internal SRAM untuk menyimpan variabel.<\/p>\n<div class=\"mceTemp mceIEcenter\" draggable=\"\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1365 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535-2.png\" alt=\"\" width=\"448\" height=\"366\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535-2.png 448w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/memori-atmega8535-2-300x245.png 300w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/p>\n<p>Bagaimanakah penggunaan SRAM dan kapankah SRAM digunakan? Pada Register File digunakan saat program yang kita rancang mengakses register bank mulai R0 hingga R31 dan biasanya digunakan pada bahasa assembler<\/p>\n<p>Listing 3.1:<\/p>\n<p><span class=\"Apple-style-span\">Ldi\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 R16,Low($FF)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ;isi R16 dengan nilai $FF<\/span><\/p>\n<p>I\/O Register digunakan saat program yang kita rancang mengakses I\/O atau register-register fungsi khusus.<\/p>\n<p>Listing 3.2:<\/p>\n<p><span class=\"Apple-style-span\">Assembler Source Code:<\/span><\/p>\n<p><span class=\"Apple-style-span\">LDI\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 R16,Low($55);<\/span><\/p>\n<p><span class=\"Apple-style-span\">Out\u00a0\u00a0\u00a0\u00a0\u00a0 PORTB,R16;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span class=\"Apple-style-span\">C Source Code:<\/span><\/p>\n<p><span class=\"Apple-style-span\">PORTB=0x55;<\/span><\/p>\n<p>Kedua listing di atas berfungsi memberikan nilai $55 ke Port B dengan mengisikan nilai tersebut pada lokasi memori Port B yaitu di alamat 0x38 (dapat dilihat di bagian kanan AVR Studio)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1366 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535.png\" alt=\"\" width=\"271\" height=\"173\" \/><\/p>\n<p>Pada internal SRAM di sini digunakan untuk variabel dari program. Contohnya adalah sebagai berikut:<\/p>\n<p>Listing 3.3:<\/p>\n<p><span class=\"Apple-style-span\">Assembler Source Code:<\/span><\/p>\n<p><span class=\"Apple-style-span\">.DSEG<\/span><\/p>\n<p><span class=\"Apple-style-span\">.org\u00a0\u00a0\u00a0\u00a0\u00a0 SRAM_Start<\/span><\/p>\n<p><span class=\"Apple-style-span\">DataPort:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .byte\u00a0\u00a0\u00a0 1<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span class=\"Apple-style-span\">.CSEG<\/span><\/p>\n<p><span class=\"Apple-style-span\">.org\u00a0\u00a0\u00a0\u00a0\u00a0 0<\/span><\/p>\n<p><span class=\"Apple-style-span\">Start:<\/span><\/p>\n<p><span class=\"Apple-style-span\">Ldi\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 R16,Low($55);<\/span><\/p>\n<p><span class=\"Apple-style-span\">Sts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 DataPort,R16;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span class=\"Apple-style-span\">C Source Code:<\/span><\/p>\n<p><span class=\"Apple-style-span\">unsigned char data_port;<\/span><\/p>\n<p><span class=\"Apple-style-span\">data_port=0x55;<\/span><\/p>\n<p><strong><span class=\"Apple-style-span\">EEPROM<\/span><\/strong><\/p>\n<p>Memori sebesar 512 byte yang digunakan untuk menyimpan data secara permanen sehingga tidak hilang walaupun listrik padam, namun dapat dihapus dan ditimpa kembali apabila diperlukan. Memori ini juga dapat digunakan untuk menyimpan variabel-variabel penting yang tidak boleh hilang walaupun listrik padam. Ada dua metode untuk mengakses memori ini yaitu:<\/p>\n<ol>\n<li>Menulis, membaca dan menghapus melalui ISP Port<\/li>\n<\/ol>\n<p>Proses ini biasanya digunakan untuk:<\/p>\n<ul>\n<li>Memberi nilai awal pada EEPROM pada saat program mulai didownload ke mikrokontroler. Contohnya untuk data factory default<\/li>\n<li>Membaca nilai EEPROM untuk mengetahui apakah fungsi penulisan data ke EEPROM pada saat kita merancang program sudah benar<\/li>\n<\/ul>\n<p>Dibutuhkan Downloader DU ISP dan Software AVR Studio untuk melakukan hal ini<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1367 aligncenter\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/flash-atmega8535.png\" alt=\"\" width=\"488\" height=\"136\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/flash-atmega8535.png 488w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/flash-atmega8535-300x84.png 300w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/p>\n<p style=\"text-align: center;\"><strong>AVRStudio mendownload data dari file eeprom_v19.hex ke ATMega8535<\/strong><\/p>\n<ol>\n<li>Berikutnya adalah akses melalui software, yang dimaksud dalam hal ini adalah program yang berjalan pada ATMega8535 itu sendiri yang menuliskan atau membaca data dari EEPROMnya. Untuk menuliskan program yang dapat mengakses EEPROM, terlebih dahulu kita harus mempelajari register-register EEPROM pada ATMega8535<\/li>\n<\/ol>\n<p><strong><span class=\"Apple-style-span\">Register EEARH dan EEARL<\/span><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1368\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-2.png\" alt=\"\" width=\"628\" height=\"159\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-2.png 628w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-2-300x76.png 300w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>Merupakan register penampung alamat dari EEPROM di mana EEARH adalah alamat byte tinggi dan EEARL adalah alamat byte rendah. Register ini harus diisi terlebih dahulu saat akan membaca atau menulis ke EEPROM<\/p>\n<p><strong><span class=\"Apple-style-span\">Register EEPROM Data &#8211; EEDR<\/span><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1369\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-3.png\" alt=\"\" width=\"628\" height=\"79\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-3.png 628w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-3-300x38.png 300w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>Merupakan register penampung data dari EEPROM yang akan ditulis atau yang sedang dibaca.<\/p>\n<p><strong><span class=\"Apple-style-span\">EEPROM Control Register \u2013 EECR<\/span><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1370\" src=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-4.png\" alt=\"\" width=\"628\" height=\"86\" srcset=\"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-4.png 628w, https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-content\/uploads\/2024\/08\/register-atmega8535-4-300x41.png 300w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>Merupakan register yang berfungsi untuk mengatur penulisan dan pembacaan data ke dan dari EEPROM<\/p>\n<p><span class=\"Apple-style-span\">Bit 3 \u2013 EERIE EEPROM Ready Interrupt Enable<\/span>, logika 1 pada bit ini akan mengaktifkan EEPROM Ready Interrupt apabila bit SREG berlogika 1 dan logika 0 akan menon aktifkan EEPROM Ready Interrupt<\/p>\n<p><span class=\"Apple-style-span\">Bit 2 \u2013 EEMWE EEPROM Master Write Enable<\/span>, apabila bit ini berlogika 1 maka mengaktifkan bit EEWE (memberi logika 1) akan mengaktifkan proses penulisan EEPROM namun apabila bit ini berlogika 0 maka kondisi pada bit EEWE tidak akan menimbulkan efek apapun.<\/p>\n<p><span class=\"Apple-style-span\">Bit 1 \u2013 EEWE EEPROM Write Enable,\u00a0<\/span>apabila bit ini berlogika 1 dan EEMWE juga berlogika 1 maka proses penulisan data ke EEPROM akan dilakukan.<\/p>\n<p><span class=\"Apple-style-span\">Bit 0 \u2013 EERE EEPROM Read Enable<\/span>, apabila bit ini berlogika 1 maka proses pembacaan data pada alamat yang ditunjuk oleh EEAR akan segera dilakukan dan data tersimpan pada EEDR.<\/p>\n<p>Agar program yang kita rancang dapat melakukan penulisan atau pembacaan data di EEPROM maka berikut fungsi yang harus kita masukkan ke dalam program kita.<\/p>\n<p><span class=\"Apple-style-span\">Listing 3.4<\/span><\/p>\n<p><span class=\"Apple-style-span\">unsigned char EEPROM_read(unsigned int uiAddress){<\/span><\/p>\n<p><span class=\"Apple-style-span\">while (EECR&amp;(1&lt;&lt;EEWE));\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/pastikan penulisan EEPROM sedang tidak berjalan<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEAR=uiAddress;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Isi Address Register<\/span><\/p>\n<p><span class=\"Apple-style-span\">EECR|=(1&lt;&lt;EERE);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Mulai baca dengan SET EERE<\/span><\/p>\n<p><span class=\"Apple-style-span\">return EEDR;<\/span><\/p>\n<p><span class=\"Apple-style-span\">}<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span class=\"Apple-style-span\">void EEPROM_write(unsigned int uiAddress,unsigned char ucData){<\/span><\/p>\n<p><span class=\"Apple-style-span\">while(EECR&amp;(1&lt;&lt;EEWE));\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/pastikan penulisan EEPROM sedang tidak berjalan<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEAR=uiAddress;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Isi Address Register<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEDR=ucData;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Isi Data Register<\/span><\/p>\n<p><span class=\"Apple-style-span\">EECR|=(1&lt;&lt;EEMWE);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Aktifkan EEMWE<\/span><\/p>\n<p><span class=\"Apple-style-span\">EECR|=(1&lt;&lt;EEWE);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Mulai tulis dengan SET EEWE<\/span><\/p>\n<p><span class=\"Apple-style-span\">}<\/span><\/p>\n<p>Selanjutnya tuliskan listing berikut pada main program<\/p>\n<p><span class=\"Apple-style-span\">Int main (void){<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEPROM_write(0,0&#215;55);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Tulis data 0x55 ke alamat 0<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEPROM_read(0);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Baca alamat 0<\/span><\/p>\n<p><span class=\"Apple-style-span\">PORTB=EEDR;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Tampilkan EEDR ke PORTB<\/span><\/p>\n<p><span class=\"Apple-style-span\">while(1);<\/span><\/p>\n<p><span class=\"Apple-style-span\">}<\/span><\/p>\n<p>Data 0x55 yang ditulis di alamat 0 EEPROM akan terbaca dan ditampilkan di PORTB<\/p>\n<p>Contoh di atas adalah proses penulisan dan pembacaan data ke EEPROM secara single byte. Pada aplikasinya seringkali dibutuhkan penulisan dan pembacaan data secara berulang-ulang. Untuk itu dapat digunakan listing program berikut pada bagian main program.<\/p>\n<p><span class=\"Apple-style-span\">int main(void)<\/span><\/p>\n<p><span class=\"Apple-style-span\">{<\/span><\/p>\n<p><span class=\"Apple-style-span\">unsigned char data_port;<\/span><\/p>\n<p><span class=\"Apple-style-span\">DDRB=0xFF;<\/span><\/p>\n<p><span class=\"Apple-style-span\">DDRC=0x00;<\/span><\/p>\n<p><span class=\"Apple-style-span\">int tabel_memory [5]={0,1,2,3,4};<\/span><\/p>\n<p><span class=\"Apple-style-span\">for (int i=0;i&lt;5;i++){<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEPROM_write(i,tabel_memory[i]);<\/span><\/p>\n<p><span class=\"Apple-style-span\">}<\/span><\/p>\n<p><span class=\"Apple-style-span\">for (int i=0;i&lt;5;i++){<\/span><\/p>\n<p><span class=\"Apple-style-span\">EEPROM_read(i);<\/span><\/p>\n<p><span class=\"Apple-style-span\">PORTB=EEDR;<\/span><\/p>\n<p><span class=\"Apple-style-span\">_delay_ms(1000);<\/span><\/p>\n<p><span class=\"Apple-style-span\">}<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span class=\"Apple-style-span\">while(1);<\/span><\/p>\n<p>Di sini data yang dituliskan ke EEPROM diambil dari sebuah array berisi 5 byte dan diisikan ke EERPOM pada alamat 0 hingga 0x4. Kemudian data tersebut dibaca kembali dan ditampilkan di PortB setiap detik sehingga kita dapat melihat pembacaan data tersebut melalui LED Logic Tester yang terhubung di Port B.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Modul Pendukung<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/du-isp-v5-atmel-downloader-usb-win-vista-seven-support-1\">DU ISP V5.0 Atmel USB Downloader<\/a> downloader versi lama<\/li>\n<li><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/downloader-universal-dst-uni-downloader-esp8266-esp32-arduino-usbasp-usbasp-b36e6\">DST Universal Downloader<\/a> yang merupakan downloader terbaru yang juga dapat digunakan sebagai downloader ESP8266 dan arduino<\/li>\n<li><a href=\"https:\/\/www.tokopedia.com\/delta-electronic\/sistem-minimum-atmega8535-arduino-mikrokontroler-usb-downloader\">ST-8535 Sistem Minimum ATMega8535<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Software Pendukung<\/strong><\/p>\n<p><a title=\"Software AVR Studio\" href=\"https:\/\/drive.google.com\/file\/d\/1mRQi0N-2OH0pZvq9Dx5GkU90jBWOaD4H\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">Software Atmel IDE AVRStudio<\/a><\/p>\n<p><a title=\"Software Delta Robotic Studio\" href=\"https:\/\/drive.google.com\/file\/d\/0B7yo_qAb8XmwQVpvaTFYZWlzdzA\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">Software Flowchart IDE Delta Robotic Studio<\/a><\/p>\n<p><a title=\"Driver DU ISP win 7\" href=\"https:\/\/drive.google.com\/file\/d\/0B7yo_qAb8XmwQ0NhTEd2a0VkMTg\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">Driver DU ISP untuk Win 7<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong><span class=\"Apple-style-span\">DELTA ELECTRONIC<\/span><\/strong><\/p>\n<p><strong><span class=\"Apple-style-span\">Paulus Andi Nalwan, ST\u00a0<\/span><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Memori pada ATMega8535 terdiri dari: &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 Kb On Chip In System Programmable Flash Memory &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 608 byte SRAM &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 512 byte EEPROM On Chip In System Programmable Flash Memory Merupakan Memori Flash yang diprogram secara In System Programming (ISP) dan berfungsi untuk menyimpan program mikrokontroler. Pada ATMega8535 memori ini terpisah menjadi dua bagian yaitu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[324],"tags":[94,137,165,96,95],"class_list":["post-1360","post","type-post","status-publish","format-standard","hentry","category-memori-atmega8535","tag-arduino","tag-atmega8535","tag-avr","tag-microcontroller","tag-mikrokontroler"],"_links":{"self":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1360"}],"collection":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/comments?post=1360"}],"version-history":[{"count":3,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1360\/revisions"}],"predecessor-version":[{"id":1374,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1360\/revisions\/1374"}],"wp:attachment":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/media?parent=1360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/categories?post=1360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/tags?post=1360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}