Menggunakan Bahasa Pemrograman Assembly

dokumen-dokumen yang mirip
Mengenal bahasa assembly

Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus

INSTRUKSI DAN BAHASA PEMOGRAMAN MIKROKONTROLER

Ringkasan Set Instruksi Dan Mode pengalamatan ( Addressing Mode )

DESKRIPSI SINGKAT INSTRUKSI-INSTRUKSI PADA AT89S51

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

Memprogram Port sebagai Output dan Input Sederhana

Memprogram Interface Motor

Program Studi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lambung Mangkurat

PERTEMUAN BAHASA PEMOGRAMAN ASSEMBLER

BAB VI MIKROKONTROLER

Instruction Set Mikrokontroler

LAMPIRAN D DATA SHEET

Bahasa Pemrograman Assembler 8051

PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI

Memprogram Interupsi AT89S51

BAB 2 LANDASAN TEORI. bisa digunakan untuk memindahkan program yang ber-ekstention.hex ke Flash,

PEMROGRAMAN BAHASA RAKITAN

PERTEMUAN. SET INSTRUKSI MIKROKONTROLER AT 89C51 (Lanjutan)

PEMBUATAN ALAT PRAKTIKUM MIKROKONTROLER (AT89S51)

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

Pengendalian 8 buah Motor oleh DST-51

Set Instruksi: Set instruksi?

Kumpulan instruksi lengkap yang dimengerti

Memprogram Interface Display

Microcontroller: Bahasa Pemrograman Assembly 8051

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

ARSITEKTUR KOMPUTER SET INSTRUKSI

BAB 2 LANDASAN TEORI. Agar kendaraan lebih teratur dan tidak terlalu padat, biasanya tempat perparkiran ini dibagi

Hanif Fakhrurroja, MT

PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI

BELAJAR MIKROKONTOLER AT89C51/52/55 (Teori dan aplikasi)

a b a AND b a OR b a XOR b a NOT a

Pendahuluan (1) D E F

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

LM124/LM224/LM324/LM2902

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Simple As Possible (SAP) - 2. Abdul Syukur

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA

BAB 2 LANDASAN TEORI. Dalam bab ini penulis akan membahas tentang komponen-komponen yang

8/4/2011. Microprocessor & Microcontroller Programming. Bahasa Pemrograman. Bahasa Pemrograman. Bahasa Pemrograman

PERTEMUAN BAHASA PEMOGRAMAN DAN FORMAT BILANGAN MIKROKONTROLER

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

Arsitektur Set Instruksi. Abdul Syukur

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016

DASAR INPUT/OUTPUT (1) (PORT PPI DAN PORT 1 SEBAGAI OUTPUT)

BAHASA PEMROGRAMAN MIKROKOMPUTER

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

BAB 2 LANDASAN TEORI. Dalam bidang elektronika, perlahan-lahan peralatan-peralatan manual mulai digantikan

Arsitektur dan Organisasi

MODUL I PENGENALAN ASSEMBLY

BAB I PENDAHULUAN. A. Deskripsi. B. Prasyarat. C. Petunjuk Penggunaan Modul. 1. Bagi Guru/Fasilitator

Struktur Bahasa Assembler Mikrokontroller MCS51

MIKROKONTROLLER AT89S51

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

PERCOBAAN 2 SAKLAR PUSH BUTTON

DASAR INPUT/OUTPUT (2) (PORT PPI DAN PORT 1 SEBAGAI INPUT/OUTPUT)

APLIKASI MODUL DST -52 SEBAGAI JAM DIGITAL DENGAN INPUT DARI PC KEYBOARD DAN M1632 LCD SEBAGAI PENAMPIL

PETUNJUK PRAKTIKUM MIKROKONTROLER. (AT89Sxx) Disusun oleh : Sumarna.

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

PERTEMUAN SET INSTRUKSI MIKROKONTROLER AT 89C51

Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada. sekitar tahun C adalah bahasa pemrograman terstruktur, yang membagi

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

BAB II DASAR TEORI. Laporan Tugas Akhir Controller Aktuator Plant/Process. Gambar 2.1 Sistem Kontrol Closed Loop

PERCOBAAN 1 DISPLAY LED

PENULISAN KARAKTER DENGAN MENGGUNAKAN TEKNIK PENULISAN PADA KEYPAD HANDPHONE OLEH MODUL DST-51, KEYPAD 4X3 DAN M1632 LCD

Web Site :

BAB III RANCANGAN DAN CARA KERJA ALAT

PERINTAH-PERINTAH DASAR (UMUM)

Percobaan 5 PENGENALAN MIKROKONTROLER 8051

Simple As Posible 2 (bag-1)

BAB 2 TINJAUAN TEORITIS

Register-register MT8888

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

SISTEM PENGENDALIAN LAMPU PADA PENYEWAAN LAPANGAN BULUTANGKIS INDOOR

SISTEM KERJA MIKROPROSESOR

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

ARSITEKTUR SET INSTRUKSI. Ptputraastawa.wordpress.com

Aplikasi Pengukur Ketinggian Air Mengunakan Modul Sensor InfraRed Object Detector

BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR

Arsitektur dan Organisasi Komputer Set Intruksi


LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR APLIKASI DASAR INSTRUKSI ARITMATIKA DAN OPERASI LOGIK

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu. dua macam memori yang sifatnya berbeda yaitu:

PENGGUNAAN KEYPAD 4X3 DAN PC KEYBOARD PADA MODUL DST-52 DENGAN TAMPILAN M1632 LCD

Daftar Isi. Daftar Isi Pertemuan 6: Perintah Masukkan dari Keyboard P6.1. Teori Masukkan dari Keyboard... 3

MESIN KETIK ELEKTRONIK DENGAN TAMPILAN M1632 LCD OLEH MODUL DST-52

Instruksi logika (1) Memanipulasi isi Accumulator, dibagi menjadi 2. Panjang instruksi : 1 byte. Panjang instruksi : 2 byte

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

Kuis : Bahasa Rakitan (UAS)

Mata Kuliah : Bahasa Rakitan

BAB 2 LANDASAN TEORI

Sistem Bilangan & Dasar Assembler Dadang Mulyana

Gambar 1. Rangkaian interface ke LCD Karakter 2 x16

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

Transkripsi:

BAGIAN 1 Tujuan Pembelajaran Umum: 1. Mahasiswa trampil menggunakan bahasa pemrograman assembly Tujuan Pembelajaran Khusus: 1. Mahasiswa memahami konstruksi program assembly 2. Mahasiswa memahami proses kerja assembly 3. Mahasiswa dapat menggunakan berbagai jenis mnemonik 4. Mahasiswa dapat menggunakan assembler directive Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa level tinggi misalnya bahasa C, C++, Pascal, Turbo Basic, Java, dan sebagainya. Bahasa C atau Pascal dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Assembler adalah program yang bekerja membantu penulisan instruksi dalam format bahasa inggris sehingga mudah dibaca dan dipahami. MOV R0, #02h MOV A, #03h ADD A, R0 Perintah baris pertama bekerja menjalankan proses pengisian register R0 dengan data 02h. Perintah baris kedua bekerja menjalankan proses pengisian register A dengan data 03h. Kemudian proses penjumlahan data pada register A dengan data pada register R0 dijalankan menggunakan perintah ADD A,R0 dan menghasilkan data 05h tersimpan di register A. Perintah MOV dan ADD adalah mnemonik atau singkatan dari perintah MOVE dan ADD. Mnemonik dari perintah lainnya dapat dirangkum dalam tabel 8 berikut. Mikrokontroler 69

Tabel 8 Mnemonik Perintah Assembly AT89S51 No PERINTAH MNEMONIK 1. ADD ADD 2. ADD WITH CARRY ADC 3. SUB WITH BORROW SBB 4. INCREMENT INC 5. DECREMENT DEC 6. MULTIPLY MUL 7. DEVIDE DIV 8. AND LOGIC ANL 9. OR LOGIC ORL 10. EXLUSIVE OR LOGIK XRL 11. DECIMAL ADJUST ACCUMULATOR DAA 12. CLEAR ACCUMULATOR CLR A 13. COMPLEMENT ACCUMULATOR CPL A 14. ROTATE ACCUMULATOR LEFT RLA 15. ROTATE ACCUMULATOR LEFT THROUGH CARRY RLCA 16. ROTATE ACCUMULATOR RIGHT RRA 17. ROTATE ACCUMULATOR RIGHT THROUGH RRCA CARRY 18. SWAPP NIBBLE WITHIN ACCUMULATOR SWAP 19. PUSH DIRECT BYTE KE STACK PUSH 20. POP DIRECT BYTE DARI STACK POP 21. JUMP IF CARRY SET C=1 JC 22. JUMP IF CARRY NOT SET C = 0 JNC 23. JUMP IF DIRECT BIT SET JB 24. JUMP IF DIRECT BIT NOT SET JNB 25. JUMP IF DIRECT BIT SET & CLEAR BIT JBC 26. ABSOLUTE CALL ACALL 27. LONG CALL LCALL 28. RETURN RET 29. RETURN FROM INTERRUPT RETI 30. ABSOLUTE JUMP AJMP 31. LONG JUMP LJMP 32. SHORT JUMP SJMP 33. JUMP INDIRECT JMP 34. JUMP IF ACCUMULATOR ZERRO JZ 35. JUMP IF ACCUMULATOT NOT ZERRO JNZ 36. COMPARE AND JUMP IF NOT EQUAL CJNE 37. DECREAMENT AND JUMP IF NOT ZERO DJNZ 38. NO OPERATION NOP Mikrokontroler 70

Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Di dalam mikrokontroler instruksi disimpan dalam kode heksa sehingga sulit dibaca dan dipahami maknanya. Sedangkan bahasa assembly memakai kode mnemonik untuk menggantikan kode biner, agar lebih mudah diingat sehingga lebih memudahkan dalam penulisan program. No OPERATION CODE ASSEMBLY 1. 78 02 MOV R0, #02h 2. 74 03 MOV A, #03h 3. 28 ADD A, R0 Kode bahasa mesin atau sering disebut dengan operation code dari perintah MOV R0,#02h adalah 78 02. Untuk MOV A,#03h kode operasinya dalah 74 03 dan 28 adalah kode operasi dari perintah ADD A, R0. Kode operasi untuk setiap perintah dapat dibaca pada lembar instruction set. Program yang ditulis dengan bahasa assembly terdiri dari label; kode mnemonik, operand 1, operand 2, keterangan, dan lain sebagainya. Program ini disebut sebagai program sumber (Source Code). Source code belum bisa diterapkan langsung pada prosesor untuk dijalankan sebagai program. Source code harus diterjemahkan dulu menjadi bahasa mesin dalam bentuk kode biner atau operasi. Source code ditulis dengan program editor biasa, misalnya Note Pad pada Windows atau SideKick pada DOS, TV demo, lalu source code diterjemahkan ke bahasa mesin dengan menggunakan program Assembler. Proses menterjemahkan source code menjadi bahasa mesin disebut dengan proses assembled. Hasil kerja program Assembler adalah program objek dan juga assemly listing. Program Objek berisikan kode kode operasi bahasa mesin. Biasanya file program objek menguanakan ekstensi.hex. Kode-kode operasi bahasa mesin inilah yang dituliskan ke memoriprogram prosesor. Dalam dunia mikrokontroler biasanya program objek ini diisikan ke UV EPROMatau EEPROM dan khusus untuk mikrokontroler buatan Atmel, program ini diisikan ke dalam Flash PEROM yang ada di dalam chip mikrokontroler AT89S51 atau AT89C2051. Assembly Listing merupakan naskah yang berasal dari program sumber, dalam naskah tersebut pada bagian sebelah setiap baris dari program sumber diberi tambahan hasil terjemahan program Assembler. Tambahan tersebut berupa nomor memori-program berikut dengan kode yang akan diisikan pada memori-program bersangkutan. Naskah ini sangat berguna untuk dokumentasi dan sarana untuk menelusuri program yang ditulis. Gambar 22 menunjukkan model editor program assembly dan bagan kerja proses assembly. Mikrokontroler 71

ORG 0 MOV.. ADD.. Source Program Program Objek 78 02 48 03 28 ----; ---- ----; ---- PLASH Memori Mikrokontroler Assembler Assembly Listing Gambar 22 Model editor dan bagan kerja proses Assembly Yang perlu diperhatikan adalah setiap prosesor mempunyai konstruksi yang berlainan, instruksi untuk mengendalikan masing-masing prosesor juga berlainan, dengan demikian bahasa Assembly untuk masing-masing prosesor juga berlainan, yang sama hanyalah pola dasar cara penulisan program Assembly saja. Konstruksi Program Assembly Source program dalam bahasa Assembly menganut prinsip 1 baris untuk satu perintah tunggal. Setiap baris perintah tersebut bisa terdiri atas beberapa bagian (field), yakni bagian Label, bagian mnemonik, bagian operand yang bisa lebih dari satu dan terakhir bagian komentar. Untuk membedakan masing-masing bagian tersebut dibuat ketentuan sebagian berikut: 1. Masing-masing bagian dipisahkan dengan spasi atau TAB, khusus untuk operand yang lebih dari satu masing-masing operand dipisahkan dengan koma. Mikrokontroler 72

2. Bagian-bagian tersebut tidak harus semuanya ada dalam sebuah baris, jika ada satu bagian yang tidak ada maka spasi atau TAB sebagai pemisah bagian tetap harus ditulis. 3. Bagian Label ditulis mulai huruf pertama dari baris, jika baris bersangkutan tidak mengandung Label maka label tersebut digantikan dengan spasi atau TAB, yakni sebagai tanda pemisah antara bagian Label dan bagian mnemonik. ORG 0H MOV A,#11111110B Mulai: Koma MOV P0,A ACALL Delay Tab/Spasi RL A SJMP Mulai Delay: Delay1: Delay2: END MOV R0,#0FFH MOV R1,#0FFH DJNZ R1,Delay2 DJNZ R0,Delay1 RET Label Label mewakili nomor memori-program dari instruksi pada baris bersangkutan, pada saat menulis instruksi JUMP, Label ini ditulis dalam bagian operand untuk menyatakan nomor memori-program yang dituju. Dengan demikian Label selalu mewakili nomor memoriprogram dan harus ditulis dibagian awal baris instruksi. Disamping Label dikenal pula Symbol, yakni satu nama untuk mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori-program. Cara penulisan Symbol sama dengan cara penulisan Label, harus dimulai di huruf pertama dari baris instruksi. Mnemonik (artinya sesuatu yang memudahkan diingat) merupakan singkatan perintah, dikenal dua macam mnemonik, yakni manemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lain sebagainya. Ada pula mnemonik yang dipakai untuk mengatur kerja dari program Assembler misalnya ORG, EQU atau DB, mnemonik untuk mengatur kerja dari program Assembler ini dinamakan sebagai Assembler Directive. Operand adalah bagian yang letaknya di belakang bagian mnemonik, merupakan pelangkap bagi mnemonik. Kalau sebuah instruksi di-ibaratkan sebagai kalimat perintah, Mikrokontroler 73

maka mnemonik merupakan subjek (kata kerja) dan operand merupakan objek (kata benda) dari kalimat perintah tersebut. Tergantung pada jenis instruksinya, operand bisa berupa berbagai macam hal. Pada instruksi JUMP operand berupa Label yang mewakili nomor memori-program yang dituju misalnya LJMP Start, pada instruksi untuk pemindahan/pengolahan data, operand bisa berupa Symbol yang mewakili data tersebut, misalnya ADD A,#Offset. Banyak instruksi yang operandnya adalah register dari prosesor, misalnya MOV A,R1. Bahkan ada pula instruksi yang tidak mempunyai operand, misalnya RET. Komentar merupakan bagian yang sekedar sebagai catatan, tidak berpengaruh pada prosesor juga tidak berpengaruh pada kerja program Assembler, tapi bagian ini sangat penting untuk keperluan dokumentasi. Assembler Directive Seperti sudah dibahas di atas, bagian Mnemonik dari sebuah baris perintah bisa merupakan instruksi untuk prosesor, maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler. Mnemonik untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai, sedangkan mnemonik untuk Assembler Directive tergantung pada program Assembler yang dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama untuk banyak macam program Assembler. Assembler Directive yang bersifat umum tersebut, antara lain adalah ORG singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai setelah perintah itu, misalnya ORG 0000h maka memori berikutnya yang dipakai Assembler adalah 0000h. ORG berlaku untuk memori program maupun memori-data. Dalam hal penomoran memori, dikenal tanda sebagai awalan untuk menyatakan nomor memori dari baris bersangkutan. Misalnya : ORG 0H MOV A,#11111110B Mulai: MOV P0,A EQU singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol. Misalnya Angka88 EQU 88 memberi nilai 88 pada Symbol Angka88, atau CR EQU 0D mempunyai makna kode ASCII dari CR (Caarriage Return) adalah 08. Mikrokontroler 74

DB singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada memoriprogram. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka ataupun kode ASCII. DB merupakan Assembler Directive yang dipakai untuk membentuk teks maupun tabel. DW singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke memoriprogram pada baris bersangkutan. Assembler Directive ini biasa dipakai untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori-program. DS singkatan dari Define Storage, Assembler Directive ini dipakai untuk membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah memori-data (RAM) bukan memori-program (ROM). Hal ini harus benar-benar dibedakan dengan Assembler Directive DB dan DW yang membentuk kode di memori-program. Dan karena DS bekerja di RAM, maka DS hanya sekedar menyediakan tempat di memori, tapi tidak mengisi nilai pada memori bersangkutan.(budhy Sutanto). Mikrokontroler 75

A. PETUNJUK PRE-TEST BAGIAN 2 PETUNJUK KERJA 1. Kerjakan soal dan latihan pre-test yang ada pada Modul 4 dengan mengisi tanda cek. 2. Isi dengan sebenarnya sesuai keadaan saudara 3. Jika saudara telah memiliki kompetensi seperti yang dinyatakan dalam pre test kerjakan soal-soal Post-Test 4. Jika saudara belum memiliki kompetensi seperti yang dinyatakan dalam pre test pelajari materi pada bagian satu dari Modul ini B. PETUNJUK POST-TEST I. UMUM Dalam tugas ini, pada akhirnya saudara akan memiliki kompetensi terkait dengan : 1. Memahami konstruksi program assembly 2. Memahami proses kerja assembly. 3. Menggunakan berbagai jenis mnemonik 4. Menggunakan assembler directive II. KHUSUS 1. Kumpulkan dan pelajari contoh-contoh program kemudian mencermati konstruksi program, jenis mnemonik dan assembler directive yang digunakan. Mikrokontroler 76

BAGIAN 3 PRE-TEST Subkompetensi 4. Menggunakan Bahasa pemrograman Asembly Pernyataan 4.1. Saya memahami konstruksi program assemly secara baik 4.2. Saya memahami Proses kerja asembly secara benar 4.3. Saya memahami semus jenis-jenis mnemonik mikrokontroler AT89S51 4.4. Saya menguasai assembler directive Saya memiliki kompetensi ini Tidak Ya Mikrokontroler 77

BAGIAN 4 POST-TEST A. Pilihlah salah satu jawaban yang saudara anggap paling benar 1. Bahasa Assembly adalah a. Bahasa high level b. Bahasa mesin c. Bahasa diantara bahasa mesin dan bahasa high level d. Bahasa Low level 2. Untuk mengisikan data 64h ke register A maka perintah yang benar a. MOV A, #64h b. MOVE A,#64h c. MOV A,64h d. MOVE A,64h 3. Mnemonik CLR A mewakili perintah a. Complement Accumulator b. Clear Accumulator c. Complement Register Accumulator d. Clear Register Accumulator 4. Mnemonik JNC mewakili perintah a. Jump if carry not set b. Jump if carry set c. Jum if non carry d. Jump if carry 5. Pernyataan berikut yang benar a. Source program dapat dijalankan langsung pada mikrokontroler b. Listing program dapat dijalankan pada mikrokontroler c. Program objek dapat dijalankan pada mikrokontroler d. Assembler dapat dijalankan pada mikrokontroler 6. Konstruksi program assembly berikut yang salah a. Satu baris satu perintah dimulai dengan spasi atau tab b. Kolom pertama setiap baris merupakan lokasi Label c. Operand pada setiap perintah dipisahkan dengan tanda koma d. Operand pada setiap perintah diakhiri dengan tanda titik 7. Pada mikrokontroler AT89S51 program awal harus ditulis pada original 0000h karena a. Vektor interupsi beralamat 0000h b. Vektor reset beralamat 0000h c. Vektor control beralamat 0000h d. Vektor booting beralamat 0000h Mikrokontroler 78

A. Pilihan ganda 1. c 2. a 3. b 4. a 5. c 6. d 7. b BAGIAN 5 KUNCI JAWABAN Mikrokontroler 79