Kompiler Assembler (Mikrokontroler)

Kompiler bisa diibaratkan dengan pengubah listing-listing program dalam hal ini bahasa assember, yang berekstension (*.asm) menjadi bahasa mesin Msesungguhnya dalam bentuk (*.hex).

Kompiler juga beragam dibawah ini ialah salah satu yang sangat sering dipakai:

  • Kompiler Untuk 8051/MCS51 Mikrokontroler
  1. ASM51 dari metalink corp : berjalan pada sistem operasi linux dan windows. bekerja pada mode dos. anda dapat mendownloadnya disini, Manual booknya anda dapat mendownload disini
  2. ASEM-51 dari plit.de: berjalan pada sistem operasi linux, windows, dan freebsd. bekerja pada mode DOS. anda dapat mendownloadnya disini, Manual booknya anda dapat mendownload disini

Catatan: Masih dirilis

Set Interupsi Pada MCS51

Interupsi
8051 mempunyai 5 buah sumber interupsi. Dua buah interupsi eksternal, dua buah interupsi timer dan sebuah interupsi port serial.
Meskipun memerlukan pengertian yang lebih mendalam, pengetahuan mengenai interupsi sangat membantu mengatasi masalah pemrograman mikroprosesor/mikrokontroler dalam hal menangani banyak peralatan input/output. Pengetahuan mengenai interupsi tidak cukup hanya dibahas secara teori saja, diperlukan contoh program yang konkrit untuk memahami.
Saat kaki RESET pada IC mikroprosesor/mikrokontroler menerima sinyal reset (pada MCS51 sinyal tersebut berupa sinyal ‘1’ sesaat, pada prosesor lain umumnya merupakan sinyal ‘0’ sesaat), Program Counter diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor reset (reset vector), merupakan nomor awal memori-program yang menampung program yang harus dijalankan.
Pembahasan di atas memberi gambaran bahwa proses reset merupakan peristiwa perangkat keras (sinyal reset diumpankan ke kaki Reset) yang dipakai untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program prosesor (mengisi Program Counter dengan vektor reset).
Program yang dijalankan dengan cara reset, merupakan program utama bagi prosesor.
Peristiwa perangkat keras yang dipakai untuk mengatur kerja dari perangkat lunak, tidak hanya terjadi pada proses reset, tapi terjadi pula dalam proses interupsi.
Dalam proses interupsi, terjadinya sesuatu pada perangkat keras tertentu dicatat dalam flip-flop khusus, flip-flop tersebut sering disebut sebagai ‘petanda’ (flag), catatan dalam petanda tersebut diatur sedemikian rupa sehingga bisa merupakan sinyal permintaan interupsi pada prosesor. Jika permintaan interupsi ini dilayani prosesor, Program Counter akan diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor interupsi (interrupt vector), yang merupakan nomor awal memori-program yang menampung program yang dipakai untuk melayani permintaan interupsi tersebut.
Program yang dijalankan dengan cara interupsi, dinamakan sebagai program layanan interupsi (ISR - Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan, selesai menjalankan ISR prosesor kembali menjalankan program utama, seperti yang digambarkan dalam Gambar 1.
Gambar 1.8 Bagan kerja prosesor melayani interupsi
Sebuah prosesor bisa mempunyai beberapa perangkat keras yang merupakan sumber sinyal permintaan interupsi, masing-masing sumber interupsi dilayani dengan ISR berlainan, dengan demikian prosesor mempunyai beberapa vektor interupsi untuk memilih ISR mana yang dipakai melayani permintaan interupsi dari berbagai sumber. Kadang kala sebuah vektor interupsi dipakai oleh lebih dari satu sumber interupsi yang sejenis, dalam hal semacam ini ISR bersangkutan harus menentukan sendiri sumber interupsi mana yang harus dilayani saat itu.
Jika pada saat yang sama terjadi lebih dari satu permintaan interupsi, prosesor akan melayani permintaan interupsi tersebut menurut perioritas yang sudah ditentukan, selesai melayani permintaan interupsi perioritas yang lebih tinggi, prosesor melayani permintaan interupsi berikutnya, baru setelah itu kembali mengerjakan program utama.
Saat prosesor sedang mengerjakan ISR, bisa jadi terjadi permintaan interupsi lain, jika permintaan interupsi yang datang belakangan ini mempunyai perioritas lebih tinggi, ISR yang sedang dikerjakan ditinggal dulu, prosesor melayani permintaan yang perioritas lebih tinggi, selesai melayani interupsi perioritas tinggi prosesor meneruskan ISR semula, baru setelah itu kembali mengerjakan program utama. Hal ini dikatakan sebagai interupsi bertingkat (nested interrupt), tapi tidak semua prosesor mempunyai kemampuan melayani interupsi secara ini.
1. Sumber interupsi MCS51
Seperti terlihat dalam Gambar 2, AT89C51 mempunyai 6 sumber interupsi, yakni Interupsi External (External Interrupt) yang berasal dari kaki INT0 dan INT1, Interupsi Timer (Timer Interrupt) yang berasal dari Timer 0 maupun Timer 1, Interupsi Port Seri (Serial Port Interrupt) yang berasal dari bagian penerima dan bagian pengirim Port Seri.
Di samping itu AT89C52 mempunyai 2 sumber interupsi lain, yakni Interupsi Timer 2 bersumber dari Timer 2 yang memang tidak ada pada AT89C51.
Bit IE0 (atau bit IE1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Eksternal. Ada 2 keadaan yang bisa meng-aktip-kan petanda ini, yang pertama karena level tegangan ‘0’ pada kaki INT0 (atau INT1), yang kedua karena terjadi transisi sinyal ‘1’ menjadi ‘0’ pada kaki INT0 (atau INT1). Pilihan bentuk sinyal ini ditentukan lewat bit IT0 (atau bit IT1) yang terdapat dalam register TCON.
1. Kalau bit IT0 (atau IT1) =’0’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat kaki INT0=’0’.
2. Kalau bit IT0 (atau IT1) =’1’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat terjadi transisi sinyal ‘1’ menjadi ‘0’ pada kaki INT0.
Menjelang prosesor menjalankan ISR dari Interupsi Eksternal, bit IE0 (atau bit IE1) dikembalikan menjadi ‘0’, menandakan permintaan Interupsi Eksternal sudah dilayani. Namun jika permintaan Interupsi Ekternal terjadi karena level tegangan ‘0’ pada kaki IT0 (atau IT1), dan level tegangan pada kaki tersebut saat itu masih =’0’ maka bit IE0 (atau bit IE1) akan segera menjadi ‘1’ lagi!
Bit TF0 (atau bit TF1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Timer, bit TF0 (atau bit TF1) menjadi ‘1’ pada saat terjadi limpahan pada pencacah biner Timer 0 (atau Timer 1).
Menjelang prosesor menjalankan ISR dari Interupsi Timer, bit TF0 (atau bit TF1) dikembalikan menjadi ‘0’, menandakan permintaan Interupsi Timer sudah dilayani.
Interupsi port seri terjadi karena dua hal, yang pertama terjadi setelah port seri selesai mengirim data 1 byte, permintaan interupsi semacam ini ditandai dengan petanda (flag) TI=’1’. Yang kedua terjadi saat port seri telah menerima data 1 byte secara lengkap, permintaan interupsi semacam ini ditandai dengan petanda (flag) RI=’1’.
Petanda di atas tidak dikembalikan menjadi ‘0’ menjelang prosesor menjalankan ISR dari Interupsi port seri, karena petanda tersebut masih diperlukan ISR untuk menentukan sumber interupsi berasal dari TI atau RI. Agar port seri bisa dipakai kembali setelah mengirim atau menerima data, petanda-petanda tadi harus di-nol-kan lewat program.
Petanda permintaan interupsi (IE0, TF0, IE1, TF1, RI dan TI) semuanya bisa di-nol-kan atau di-satu-kan lewat instruksi, pengaruhnya sama persis kalau perubahan itu dilakukan oleh perangkat keras. Artinya permintaan interupsi bisa diajukan lewat pemrograman, misalnya permintaan interupsi eksternal IT0 bisa diajukan dengan instruksi SETB IE0.
2 Mengaktifkan Interupsi
Semua sumber permintaan interupsi yang di bahas di atas, masing-masing bisa di-aktip-kan atau di-nonaktip-kan secara tersendiri lewat bit-bit yang ada dalam register IE (Interrupt Enable Register).
Bit EX0 dan EX1 untuk mengatur interupsi eksternal INT0 dan INT1, bit ET0 dan ET1 untuk mengatur interupsi timer 0 dan timer 1, bit ES untuk mengatur interupsi port seri, seperti yang digambarkan dalam Gambar 2. Di samping itu ada pula bit EA yang bisa dipakai untuk mengatur semua sumber interupsi sekali gus.
Setelah reset, semua bit dalam register IE bernilai ‘0’, artinya sistem interupsi dalam keadaan non-aktip. Untuk mengaktipkan salah satu sistem interupsi, bit pengatur interupsi bersangkutan diaktipkan dan juga EA yang mengatur semua sumber interupsi. Misalnya instruksi yang dipakai untuk mengaktipkan interupsi ekternal INT0 adalah SETB EX0 disusul dengan SETB EA.
MSB

LSB
EA
X
X
ES
ET1
EX1
ET0
EX0
BIT
SYMBOL
FUNCTION
IE.7 EA
Disables all interrupts. If EA=0, no interrupt will be acknowledged. If EA=1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit.
IE.6 - -
IE.5 - -
IE.4 ES
Enables or disables the Serial Port interrupt. If ES=0, the Serial Port interrupt is disabled.
IE.3 ET1
Enables or disables the Timer 1 Overflow interrupt. If ET1=0, the Timer 1 interrupt is disabled.
IE.2 EX1
Enables or disables External Interrupt 1. If EX1=0, External interrupt 1 is disabled.
IE.1 ET0
Enables or disables the Timer 0 Overflow interrupt. If ET0=0, the Timer 0 interrupt is disabled.
IE.0 EX0
Enables or disables External interrupt 0. If EX0=0, External interrupt 0 is disabled.
3. Vektor Interupsi
Saat MCS51 menanggapi permintaan interupsi, Program Counter diisi dengan sebuah nilai yang dinamakan sebagai vektor interupsi, yang merupakan nomor awal dari memori-program yang menampung ISR untuk melayani permintaan interupsi tersebut. Vektor interupsi itu dipakai untuk melaksanakan inststuksi LCALL yang diaktipkan secara perangkat keras.
Vektor interupsi untuk interupsi eksternal INT0 adalah $0003, untuk interupsi timer 0 adalah $000B, untuk interupsi ekternal INT1 adalah $0013, untuk interupsi timer 1 adalah $001B dan untuk interupsi port seri adalah $0023.
Jarak vektor interupsi satu dengan lainnya sebesar 8, atau hanya tersedia 8 byte untuk setiap ISR. Jika sebuah ISR memang hanya pendek saja, tidak lebih dari 8 byte, maka ISR tersebut bisa langsung ditulis pada memori-program yang disediakan untuknya. ISR yang lebih panjang dari 8 byte ditulis ditempat lain, tapi pada memori-program yang ditunjuk oleh vektor interupsi diisikan instruksi JUMP ke arah ISR bersangkutan
Source
Vector Address
IE0
0003H
TF0
000BH
IE1
0013H
TF1
001BH
RI + TI
0023H
4. Tingkatan Perioritas
Masing-masing sumber interupsi bisa ditempatkan pada dua tingkatan perioritas yang berbeda. Pengaturan tingkatan perioritas isi dilakukan dengan bit-bit yang ada dalam register IP (Interrupt Priority).
Bit PX0 dan PX1 untuk mengatur tingkatan perioritas interupsi eksternal INT0 dan INT1, bit PT0 dan PT1 untuk mengatur interupsi timer 0 dan timer 1, bit PS untuk mengatur interupsi port seri, seperti yang digambarkan dalam Gambar 2.
Setelah reset, semua bit dalam register IP bernilai ‘0’, artinya semua sumber interupsi ditempatkan pada tingkatan tanpa perioritas. Masing-masing sumber interupsi bisa ditempatkan pada tingkatan perioritas utama dengan cara men-‘satu’-kan bit pengaturnya. Misalnya interupsi timer 0 bisa ditempatkan pada tingkatan perioritas utama dengan instruksi SETB PT1.
Sebuah ISR untuk interupsi tanpa perioritas bisa diinterupsi oleh sumber interupsi yang berada dalam tingkatan perioritas utama. Tapi interupsi yang berada pada tingkatan perioritas yang sama, tidak dapat saling meng-interupsi.
Jika 2 permintaan interupsi terjadi pada saat yang bersamaan, sedangkan kedua interupsi tersebut terletak pada tingkatan perioritas yang berlainan, maka interupsi yang berada pada tingkatan perioritas utama akan dilayani terlebih dulu, setelah itu baru melayani interupsi pada tingkatan tanpa perioritas.
Jika kedua permintaan tersebut bertempat pada tingkatan perioritas yang sama, perioritas akan ditentukan dengan urutan sebagai berikut : interupsi eksternal INT0, interupsi timer 0, interupsi ekternal INT1, interupsi timer 1 dan terakhir adalah interupsi port seri.
Bagan Lengkap Sistem Interupsi MCS51
Meskipun sistem interupsi MCS51 termasuk sederhana dibandingkan dengan sistem interupsi MC68HC11 buatan Motorola, tapi karena menyangkut 5 sumber interupsi yang masing-masing harus diatur secara tersendiri, tidak mudah untuk mengingat semua masalah tersebut, terutama pada saat membuat program sering dirasakan sangat merepotkan membolak-balik buku untuk mengatur masing-masing sumber interupsi tersebut.
Gambar 2 menggambarkan sistem interupsi MCS51 selangkapnya, berikut dengan masing-masing bit dalam register-register SFR (Special Function Register) yang dipakai untuk mengatur masing-masing sumber interupsi.
Saklar yang digambarkan dalam Gambar 2 mewakili bit dalam register yang harus diatur untuk mengendalikan sumber interupsi, kotak bergambar bendera kecil merupakan flag (petanda) dalam register yang mencatat adanya permintaan interupsi dari masing-masing sumber interupsi. Kedudukan saklar dalam gambar tersebut menggambarkan kedudukan awal setelah MCS51 di-reset.
Gambar ini sangat membantu saat penulisan program menyangkut interupsi MCS51.
Interrupt Priority Register ( IP )
MSB
LSB
X
X
X
PS
PT1
PX1
PT0
PX0

Note:
BIT
SYMBOL
FUNCTION
IP.7
-
-
IP.6
-
-
IP.5
-
-
IP.4
PS
Defines the Serial Port interrupt priority level. PS=1 programs it to the higher priority level.
IP.3
PT1
Defines the Timer 1 interrupt priority level. PT1=1 programs it to the higher priority level.
IP.2
PX1
Defines the External Interrupt 1 priority level. PX1=1 programs it to the higher priority level.
IP.1
PT0
Enables or disables the Timer 0 interrupt priority level. PT0=1 programs it to the higher priority level.
IP.0
PX0
Defines the External Interrupt 0 priority level. PX0=1 programs it to the higher priority level.
Catatan: Dikutip dari http://www.mytutorialcafe.com


Jenis Pengalamatan Pada MCS51

Pengalamatan
Mode pengalamatan, mengacu bagaimana anda mengalamati suatu lokasi memori tertentu Mode pengalamatan pada set instruksi 8051 adalah ditunjukkan sebagai berikut

Immediate Addressing MOV A,#20h
Direct Addressing MOV A,30h
Indirect Addressing MOV A,@R0
External Direct MOVX A,@DPTR
Code Indirect MOVC A,@A+DPTR

1. Immediate Addressing
Immediate addressing dinamakan seperti ini, karena nilai yang akan disimpan didalam memori, secara langsung berada dalam kode.

      org 0h
start:MOV A,#20h; put constant 20 into Acc
end
Org 0h
Start:MOV 70h,#0h; put constant 0 into RAM 70h
MOV 71h,#1h;
MOV 72h,#2h;
end
;
Org 0h
Start:MOV DPTR,#1234h;put constant 1234 into DPTR
end
 Org 0h
Start:MOV PSW,#0; Select register bank 0
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
;
org 0h
Start:MOV PSW,#8; Select register bank 1
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end

Immediate addressing adalah pengalamatan yang sangat cepat karena nilai yang akan diloadkan berada didalam instruksi tersebut.

1.2.2. Direct Addressing
Disebut direct addressing karena nilai yang akan disimpan didalam memori, diperoleh secara langsung dari memori yang lain.

      org 0h
Start:MOV A,30h;
end
      Org 0h
Start:Mov 70h,#1;put constant 1 into RAM 70h
Mov A, 70h;copy RAM 70 content into Acc
Mov A,#0 ;put constant 0 into Acc
Mov 90h,A ;copy Acc content into RAM 90h
end
Inbyte equ 70h
Port1 equ 90h
Org 0h
Start:Mov Inbyte,#3;put constant 3 into RAM 70h
Mov A,Inbyte ;copy RAM 70h content into Acc
Mov A,#0 ;Clear accumulator
Mov Port1,A ;copy Acc content into RAM 90h
end
Org 0h
Mov DPTR,#Character
Start:Mov A, #0
Inc DPTR
Movc A, @A+DPTR
Mov R0,A
Sjmp Start
Character:
DB 0,1,2,3,4,5,6,7,8,9

1.2.3 Indirect Addressing
Indirect addressing adalah mode pengalamatan yang sangat ampuh, yang memberikan fleksibelitas dalam hal transfer data. Indirect addressing juga satu-satunya cara untuk mengakses 128 byte ekstra dari internal RAM yang ditemukan pada keluarga 8052.

MOV A,@R0

Instruksi ini menyebabkan 8051 menganalisa nilai dari register R0. 8051 kemudian akan mengambil data dari akumulator dengan nilai yang berasal dari alamat RAM internal yang ditunjukkan oleh R0. Sebagai contoh, misal R0 akan digunakan untuk menandai alamat RAM 40h yang berisi data 67h. Ketika instruksi diatas, dieksekusi maka 8051 akan melihat nilai dari R0, yang berisi 40h, dan mengirimkan isi RAM 40h (dalam hal ini mempunyai nilai 67h) ke akumulator.

MOV R0,#99h ;
MOV @R0,#01h;

Instruksi tersebut adalah tidak valid. Karena indirect addressing selalu mengacu ke RAM internal, dua instruksi ini akan menulis nilai 01 ke RAM internal alamat 99h pada 8052. Pada 8051 instruksi tersebut akan menghasilkan hasil yang tak terdifinisi, karena 8051 hanya mempunyai internal RAM 128 byte

Org 0h
Start:Mov PSW, #0 ; choose register bank 0
Mov R0, #78h; put constant 78h into R0
Mov @R0, #1 ; put contanta 1 into 78h
end
Org 0h
Start:Mov PSW,#0; pilih register bank 1
Mov R0,90h; copy RAM 90h content into R0
Mov @R0,#1; put constant 1 into 90h
End
;

Pengantar Pemrograman Assembler untuk Mikrokontroler

Bahasa Asembly

Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari memori program yang akan dibaca, dan melakukan proses baca data di memori. Data yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya program aritmatika yang melibatkan 2 register. Sarana yang ada dalam program assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas (high level language programming) semuanya sudah siap pakai. Penulis program assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat data konstan dan tablel konstan dalam memori-program, membuat variabel yang dipakai kerja dalam memori-data dan lain sebagainya.

Program sumber assembly
Program-sumber assembly (assembly source program) merupakan kumpulan dari baris-baris perintah yang ditulis dengan program penyunting-teks (text editor) sederhana, misalnya program EDIT.COM dalam DOS, atau program NOTEPAD dalam Windows atau MIDE-51. Kumpulan baris-printah tersebut biasanya disimpan ke dalam file dengan nama ekstensi *.ASM dan lain sebagainya, tergantung pada program Assembler yang akan dipakai untuk mengolah program-sumber assembly tersebut.
Setiap baris-perintah merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah menjadi lebih dari satu baris. Satu baris perintah bisa terdiri atas 4 bagian, bagian pertama dikenali sebagai label atau sering juga disebut sebagai symbol, bagian kedua dikenali sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar.
Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.


Bagian label
Label dipakai untuk memberi nama pada sebuah baris-perintah, agar bisa mudah menyebitnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan huruf, biasa panjangnya tidak lebih dari 16 huruf. Huruf-huruf berikutnya boleh merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris-perintah tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis.
Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada label yang kembar.
Sering sebuah baris-perintah hanya terdiri dari bagian label saja, baris demikian itu memang tidak bisa dikatakan sebagai baris-perintah yang sesungguhnya, tapi hanya sekedar memberi nama pada baris bersangkutan.
Bagian label sering disebut juga sebagai bagian symbol, hal ini terjadi kalau label tersebut tidak dipakai untuk menandai bagian program, melainkan dipakai untuk menandai bagian data.

Bagian kode operasi
Kode operasi (operation code atau sering disingkat sebagai OpCode) merupakan bagian perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang pertama adalah kode-operasi untuk mengatur kerja mikroprosesor / mikrokontroler. Jenis kedua dipakai untuk mengatur kerja program assembler, sering dinamakan sebagai assembler directive.
Kode-operasi ditulis dalam bentuk mnemonic, yakni bentuk singkatan-singkatan yang relatip mudah diingat, misalnya adalah MOV, ACALL, RET dan lain sebagainya. Kode-operasi ini ditentukan oleh pabrik pembuat mikroprosesor/mikrokontroler, dengan demikian setiap prosesor mempunyai kode-operasi yang berlainan.
Kode-operasi berbentuk mnemonic tidak dikenal mikroprosesor/mikrokontroler, agar program yang ditulis dengan kode mnemonic bisa dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi program yang dibentuk dari kode-operasi kode-biner, yang dikenali oleh mikroprosesor/mikrokontroler.
Tugas penerjemahan tersebut dilakukan oleh program yang dinamakan sebagai Program Assembler.
Di luar kode-operasi yang ditentukan pabrik pembuat mikroprosesor/mikrokontroler, ada pula kode-operasi untuk mengatur kerja dari program assembler, misalnya dipakai untuk menentukan letak program dalam memori (ORG), dipakai untuk membentuk variabel (DS), membentuk tabel dan data konstan (DB, DW) dan lain sebagainya.

Bagian operand
Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan tanda koma.
Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan Register dalam prosesor, bisa berupa nomor-memori (alamat memori) yang dinyatakan dengan bilangan atau pun nama label, bisa berupa data yang siap di-operasi-kan. Semuanya disesuaikan dengan keperluan dari kode-operasi.
Untuk membedakan operand yang berupa nomor-memori atau operand yang berupa data yang siap di-operasi-kan, dipakai tanda-tanda khusus atau cara penulisan yang berlainan.
Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan Boolean, dalam hal semacam ini program Assembler akan menghitung nilai dari persamaan-persamaan dalam operand, selanjutnya merubah hasil perhitungan tersebut ke kode biner yang dimengerti oleh prosesor. Jadi perhitungan di dalam operand dilakukan oleh program assembler bukan oleh prosesor!

Bagian komentar
Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentar-komentar pada setiap baris-perintah, dengan mudah bisa dimengerti maksud tujuan baris bersangkutan, hal ini sangat membantu orang lain yang membaca program.
Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator, meskipun demikian huruf pertama dari komentar sering-sering berupa tanda titik-koma, merupakan tanda pemisah khusus untuk komentar.
Untuk keperluan dokumentasi yang intensip, sering-sering sebuah baris yang merupakan komentar saja, dalam hal ini huruf pertama dari baris bersangkutan adalah tanda titik-koma.
AT89S51 memiliki sekumpulan instruksi yang sangat lengkap. Instruksi MOV untuk byte dikelompokkan sesuai dengan mode pengalamatan (addressing modes). Mode pengalamatan menjelaskan bagaimana operand dioperasikan. Berikut penjelasan dari berbagai mode pengalamatan. Bentuk program assembly yang umum ialah sebagai berikut :

Label/Simbol
Opcode
Operand
Komentar

Org 0H

Start:

Kiri:





Delay:
Del1:
Del2:



Mov
Mov
Mov
Call
RL
DEC
CJNE
Sjmp
mov
mov
djnz
djnz
ret
end
A, #11111110b
R0, #7
P0, A
Delay
A
R0
R0, #0, Kiri
Start
R1, #255
R2, #255
R2, del2
R1, del1


; Isi Akumulator
; Isi R0 dengan 7
; Copy A ke P0
; Panggil Delay









Isi memori ialah bilangan heksadesimal yang dikenal oleh mikrokontroler kita, yang merupakan representasi dari bahasa assembly yang telah kita buat. Mnemonic atau opcode ialah kode yang akan melakukan aksi terhadap operand . Operand ialah data yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1 ,2 atau lebih operand, kadang juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan menggunakan tanda titik koma (;). Berikut contoh jumlah operand yang berbeda beda dalam suatu assembly.

CJNE R5,#22H, aksi ;dibutuhkan 3 buah operand
MOVX @DPTR, A ;dibutuhkan 2 buah operand
RL A ;1 buah operand
NOP ; tidak memerlukan operand

Program yang telah selesai kita buat dapat disimpan dengan ekstension .asm. Lalu kita dapat membuat program objek dengan ekstension HEX dengan menggunakan compiler MIDE-51, yang dijelaskan sebagai berikut:

Assembly Listing

Program-sumber assembly di atas, setelah selesai ditulis diserahkan ke program Assembler untuk diterjemahkan. Setiap prosesor mempunyai program assembler tersendiri, bahkan satu macam prosesor bisa memiliki beberapa macam program Assembler buatan pabrik perangkat lunak yang berlainan.
Hasil utama pengolahan program Assembler adalah program-obyek. Program-obyek ini bisa berupa sebuah file tersendiri, berisikan kode-kode yang siap dikirimkan ke memori-program mikroprosesor/mikrokontroler, tapi ada juga program-obyek yang disisipkan pada program-sumber assembly seperti terlihat dalam Assembly Listing di Gambar 2.
Bagian kanan Gambar 2 merupakan program-sumber Assembly karya asli penulis program, setelah diterjemahkan oleh program Assembler kode-kode yang dihasilkan berikut dengan nomor-nomor memori tempat penyimpanan kode-kode tadi, disisipkan pada bagian kiri setiap baris perintah, sehingga bentuk program ini tidak lagi dikatakan sebagai program-sumber assembly tapi dikatakan sebagai Assembly Listing.
Membaca Assembly Listing bisa memberikan gambaran yang lebih jelas bagi program yang ditulis, bagi pemula Assembly Listing memberi pengertian yang lebih mendalam tentang isi memori-program, sehingga bisa lebih dibayangkan bagaimana kerja dari sebuah program.

Line  Addr   Code                Source
1:                                        Org 0H
2: 0000 74 FE Start: Mov A,#11111110b
3: 0002 78 07 Mov R0,#7
4: 0004 F5 80 Kiri: Mov P0,A
5: 0006 12 00 1C Call Delay
6: 0009 23 RL A
7: 000A 18 DEC R0
8: 000B B8 00 F6 CJNE R0,#0,Kiri
9: 000E 78 07 Mov R0,#7
10: 0010 F5 80 Kanan: Mov P0,A
11: 0012 12 00 1C Call Delay
12: 0015 03 RR A
13: 0016 18 DEC R0
14: 0017 B8 00 F6 CJNE R0,#0,Kanan
15: 001A 80 E4 Sjmp Start
16: ;
17: 001C 79 FF Delay: mov R1,#255
18: 001E 7A FF Del1: mov R2,#255
19: 0020 DA FE Del2: djnz R2,del2
20: 0022 D9 FA djnz R1,del1
21: 0024 22 ret
22: end

Dikutip dari : http://www.mytutorialcafe.com

Aktuator Pneumatik

http://adf.ly/1Zsehttp://adf.ly/1Zsehttp://adf.ly/1ZseAktuator adalah bagian keluaran untuk mengubah energi suplai menjadi energi kerja yang dimanfaatkan. Sinyal keluaran dikontrol oleh sistem kontrol dan aktuator bertanggung jawab pada sinyal kontrol melalui elemen kontrol terakhir.
Aktuator pneumatik dapat digolongkan menjadi 2 kelompok : gerak lurus dan putar. :
  1. Gerakan lurus (gerakan linear) :
* Silinder kerja tunggal.
* Silinder kerja ganda.
  1. Gerakan putar :
* Motor udara
* Aktuator yang berputar (ayun)

Simbol-simbol aktuator linear sebagai berikut :


screenhunter_10-nov-03-2032.gif
Simbol aktuator gerakan putar :
screenhunter_12-nov-03-2033.gif
1.2. Silinder Kerja Tunggal
1.2.1 Konstruksi
Silinder kerja tunggal mempunyai seal piston tunggal yang dipasang pada sisi suplai udara bertekanan. Pembuangan udara pada sisi batang piston silinder dikeluarkan ke atmosfir melalui saluran pembuangan. Jika lubang pembuangan tidak diproteksi dengan sebuah penyaring akan memungkinkan masuknya partikel halus dari debu ke dalam silinder yang bisa merusak seal. Apabila lubang pembuangan ini tertutup akan membatasi atau menghentikan udara yang akan dibuang pada saat silinder gerakan keluar dan gerakan akan menjadi tersentak-sentak atau terhenti. Seal terbuat dari bahan yang fleksibel yang ditanamkan di dalam piston dari logam atau plastik. Selama bergerak permukaan seal bergeser dengan permukaan silinder.
Gambar konstruksi silinder kerja tunggal sebagai berikut :
screenhunter_13-nov-03-2033.gif
1.2.2 Prinsip Kerja
Dengan memberikan udara bertekanan pada satu sisi permukaan piston, sisi yang lain terbuka ke atmosfir. Silinder hanya bisa memberikan gaya kerja ke satu arah . Gerakan piston kembali masuk diberikan oleh gaya pegas yang ada didalam silinder direncanakan hanya untuk mengembalikan silinder pada posisi awal dengan alasan agar kecepatan kembali tinggi pada kondisi tanpa beban.
Pada silinder kerja tunggal dengan pegas, langkah silinder dibatasi oleh panjangnya pegas . Oleh karena itu silinder kerja tunggal dibuat maksimum langkahnya sampai sekitar 80 mm.
1.2.3 Kegunaan
Menurut konstruksinya silinder kerja tunggal dapat melaksanakan berbagai fungsi gerakan , seperti :
· menjepit benda kerja
· pemotongan
· pengeluaran
· pengepresan
· pemberian dan pengangkatan.
1.2.4. Macam-Macam Silinder Kerja Tunggal
Ada bermacam-macam perencanaan silinder kerja tunggal termasuk :
· Silinder membran (diafragma)
· Silinder membran dengan rol
1.3 Silinder Ganda
1.3.1 Konstruksi
Konstruksi silinder kerja ganda adalah sama dengan silinder kerja tunggal, tetapi tidak mempunyai pegas pengembali. Silinder kerja ganda mempunyai dua saluran (saluran masukan dan saluran pembuangan). Silinder terdiri dari tabung silinder dan penutupnya, piston dengan seal, batang piston, bantalan, ring pengikis dan bagian penyambungan. Konstruksinya dapat dilihat pada gambar berikut ini :
screenhunter_14-nov-03-2036.gif
Biasanya tabung silinder terbuat dari tabung baja tanpa sambungan. Untuk memperpanjang usia komponen seal permukaan dalam tabung silinder dikerjakan dengan mesin yang presisi. Untuk aplikasi khusus tabung silinder bisa dibuat dari aluminium , kuningan dan baja pada permukaan yang bergeser dilapisi chrom keras. Rancangan khusus dipasang pada suatu area dimana tidak boleh terkena korosi.
Penutup akhir tabung adalah bagian paling penting yang terbuat dari bahan cetak seperti aluminium besi tuang. Kedua penutup bisa diikatkan pada tabung silinder dengan batang pengikat yang mempunyai baut dan mur.
Batang piston terbuat dari baja yang bertemperatur tinggi. Untuk menghindari korosi dan menjaga kelangsungan kerjanya, batang piston harus dilapisi chrom.
Ring seal dipasang pada ujung tabung untuk mencegah kebocoran udara. Bantalan penyangga gerakan batang piston terbuat dari PVC, atau perunggu. Di depan bantalan ada sebuah ring pengikis yang berfungsi mencegah debu dan butiran kecil yang akan masuk ke permukaan dalam silinder. Bahan seal pasak dengan alur ganda :
· Perbunan untuk - 20° C s/d + 80° C
· Viton untuk - 20° C s/d + 190° C
· Teflon untuk - 80° C s/d + 200° C
Ring O normal digunakan untuk seal diam.
1.3.2 Prinsip Kerja
Dengan memberikan udara bertekanan pada satu sisi permukaan piston (arah maju) , sedangkan sisi yang lain (arah mundur) terbuka ke atmosfir, maka gaya diberikan pada sisi permukaan piston tersebut sehingga batang piston akan terdorong keluar sampai mencapai posisi maksimum dan berhenti. Gerakan silinder kembali masuk, diberikan oleh gaya pada sisi permukaan batang piston (arah mundur) dan sisi permukaan piston (arah maju) udaranya terbuka ke atmosfir.
Keuntungan silinder kerja ganda dapat dibebani pada kedua arah gerakan batang pistonnya. Ini memungkinkan pemasangannya lebih fleksibel. Gaya yang diberikan pada batang piston gerakan keluar lebih besar daripada gerakan masuk. Karena efektif permukaan piston dikurangi pada sisi batang piston oleh luas permukaan batang piston
Silinder aktif adalah dibawah kontrol suplai udara pada kedua arah gerakannya. Pada prinsipnya panjang langkah silinder dibatasi, walaupun faktor lengkungan dan bengkokan yang diterima batang piston harus diperbolehkan. Seperti silinder kerja tunggal, pada silinder kerja ganda piston dipasang dengan seal jenis cincin O atau membran.
1.3.3. Pemasangan Silinder
Jenis pemasangan silinder ditentukan oleh cara cara gerakan silinder yang ditempatkan pada sebuah mesin atau peralatan . Silinder bisa dirancang dengan jenis pemasangan permanen jika tidak harus diatur setiap saat. Alternatif lain, silinder bisa menggunakan jenis pemasangan yang diatur, yang bisa diubah dengan menggunakan perlengkapan yang cocok pada prinsip konstruksi modul. Alasan ini adalah penyederhanaan yang penting sekali dalam penyimpanan, lebih khusus lagi dimana silinder pneumatik dengan jumlah besar digunakan seperti halnya silinder dasar dan bagian pemasangan dipilih secara bebas membutuhkan untuk disimpan.
Pemasangan silinder dan kopling batang piston harus digabungkan dengan hati-hati pada penerapan yang relevan, karena silinder harus dibebani hanya pada arah aksial. Secepat gaya dipindahkan ke sebuah mesin, secepat itu pula tekanan terjadi pada silinder. Jika sumbu salah gabung dan tidak segaris dipasang, tekanan bantalan pada tabung silinder dan batang piston dapat diterima. Sebagai akibatnya adalah :
· Tekanan samping yang besar pada bantalan silinder memberikan indikasi bahwa pemakaian silinder meningkat.
· Tekanan samping pada batang piston akan mengikis bantalan
· Tekanan tidak seimbang pada seal piston dan batang piston.
Tekanan samping ini sering mendahului faktor pengurangan perawatan silinder yang sudah direncanakan sebelumnya. Pemasangan bantalan silinder yang dapat diatur dalam tiga dimensi membuat kemungkinan untuk menghindari tekanan bantalan yang berlebihan pada silinder. Momen bengkok yang akan terjadi selanjutnya dibatasi oleh penggesekan yang bergeser pada bantalan. Ini bertujuan bahwa silinder diutamakan bekerja hanya pada tekanan yang sudah direncanakan, sehingga bisa mencapai secara maksimum perawatan yang sudah direncanakan.
Gambar di bawah menunjukkan cara pemasangan silinder.
screenhunter_15-nov-03-2037.gif
1.3.4 Kegunaan
Silinder pneumatik telah dikembangkan pada arah berikut :
· Kebutuhan penyensoran tanpa sentuhan (menggunakan magnit pada piston untuk mengaktifkan katup batas /limit switch dengan magnit )
· Penghentian beban berat pada unit penjepitan dan penahan luar tiba-tiba.
· Silinder rodless digunakan dimana tempat terbatas.
· Alternatif pembuatan material seperti plastik
· Mantel pelindung terhadap pengaruh lingkungan yang merusak, misalnya sifat tahan asam
· Penambah kemampuan pembawa beban.
· Aplikasi robot dengan gambaran khusus seperti batang piston tanpa putaran, batang piston berlubang untuk mulut pengisap.
1.3.5 Macam-Macam Silinder Kerja Ganda
screenhunter_16-nov-03-2039.gif
1.3.5.1 Silinder Dengan Peredam Diakhir Langkah
Jika silinder harus menggerakkan massa yang besar, maka dipasang peredam di akhir langkah untuk mencegah benturan keras dan kerusakan silinder. Sebelum mencapai posisi akhir langkah, peredam piston memotong langsung jalan arus pembuangan udara ke udara bebas. Untuk itu disisakan sedikit sekali penampang pembuangan yang umumnya dapat diatur. Sepanjang bagian terakhir dari jalan langkah , kecepatan masuk dikurangi secara drastis.
Jangan sekali-sekali menutup baut pengatur secara penuh sebab akan mengakibatkan batang piston tidak dapat mencapai posisi akhir gerakannya. Pada gaya yang sangat besar dan percepatan yang tinggi, harus dilakukan upaya pengamanan khusus. Pasanglah peredam kejut luar untuk memperkuat daya hambat.
Konstruksi silinder kerja ganda dengan bantalan udara sebagai berikut :
screenhunter_17-nov-03-2041.gif
1.4 Karakteristik Silinder
Karakteristik penampilan silinder dapat ditentukan secara teori atau dengan data-data dari pabriknya. Kedua metode ini dapat dilaksanakan, tetapi biasanya untuk pelaksanaan dan penggunaan tertentu, data-data dari pabriknya adalah lebih menyakinkan.
1.4.1 Gaya Piston
Gaya piston yang dihasilkan oleh silinder bergantung pada tekanan udara, diameter silinder dan tahanan gesekan dari komponen perapat. Gaya piston secara teoritis dihitung menurut rumus berikut :
screenhunter_18-nov-03-2047.gif
Untuk silinder kerja tunggal :
screenhunter_19-nov-03-2048.gif
Untuk silinder kerja ganda :
Langkah Maju :
screenhunter_20-nov-03-2049.gif
langkah mundur:
screenhunter_21-nov-03-2051.gif
Keterangan :
screenhunter_22-nov-03-2052.gif
Pada silinder kerja tunggal, gaya piston silinder kembali lebih kecil daripada gaya piston silinder maju karena pada saat kembali digerakkan oleh pegas . Sedangkan pada silinder kerja ganda, gaya piston silinder kembali lebih kecil daripada silinder maju karena adanya diameter batang piston akan mengurangi luas penampang piston. Sekitar 3 – 10 % adalah tahanan gesekan. Berikut ini adalah gaya piston silinder dari berbagai ukuran pada tekanan 1 – 10 bar.
screenhunter_23-nov-03-2054.gif
Silinder pneumatik tahan terhadap beban lebih. Silinder pneumatik dapat dibebani lebih besar dari kapasitasnya. Beban yang tinggi menyebabkan silinder diam .
1.4.2 Kebutuhan Udara
Untuk menyiapan udara dan untuk mengetahui biaya pengadaan energi, terlebih dahulu harus diketahui konsumsi udara pada sistem. Pada tekanan kerja, diameter piston dan langkah tertentu, konsumsi udara dihitung sebagai berikut :
screenhunter_24-nov-03-2057.gif
Untuk mempermudah dan mempercepat dalam menentukan kebutuhan udara, tabel di bawah ini menunjukkan kebutuhan udara persentimeter langkah piston untuk berbagai macam tekanan dan diameter piston silinder.
Tabel : Kebutuhan udara silinder pneumatik persentimeter langkah dengan fungsi tekanan kerja dan diameter piston.
screenhunter_25-nov-03-2103.gif
Kebutuhan udara dihitung dengan satuan liter/menit (l/min) sesuai dengan standar kapasitas kompresor. Kebutuhan udara silinder sebagai berikut :
screenhunter_26-nov-03-2105.gif
Keterangan :
screenhunter_27-nov-03-2106.gif
1.4.3 Kecepatan Piston
Kecepatan piston rata-rata dari silinder standar berkisar antara 0,1-1,5 m/s (6 – 90 m/min). Silinder khusus dapat mencapai kecepatan 10 m/s. Kecepatan silinder pneumatik tergantung :
· beban ( gaya yang melawan silinder ),
· tekanan kerja,
· diameter dalam dan panjang saluran antara silinder dan katup kontrol arah,
· ukuran katup kontrol arah yang digunakan.
Kecepatan piston dapat diatur dengan katup pengontrol aliran dan dapat ditingkatkan dengan katup pembuang cepat yang dipasang pada sistem kontrol tersebut. Kecepatan rata-rata piston tergantung dari gaya luar yang melawan piston (beban) dan ukuran lubang aliran dapat dilihat seperti pada tabel berikut :
screenhunter_28-nov-03-2107.gif
1.4.4 Langkah Piston
Langkah silinder pneumatik tidak boleh lebih dari 2 m, sedangkan untuk silinder rodless jangan lebih dari 10 m. Akibat langkah yang panjang, tekanan mekanik batang piston dan bantalan menjadi terlalu besar. Untuk menghindari bahaya tekanan, diameter batang piston pada langkah yang panjang harus sedikit lebih besar.

Target3001 V14 (PCB Design Software)

Setelah mencoba-coba hampir seluruh software gambar design PCB, software inilah yang paling saya rekomendasikan bagi teman-teman dalam mendesain PCB, karena selain lengkap software sangat mudah digunakan, lengkap dengan fungsi :

Screenshotnya:

System Requirements :
  • Operating system: Windows ME/NT4/2000/XP/Vista
  • Processor: AMD Athlon or Pentium III , 500 mHz recommended
  • 256 MB RAM
  • Graphics: 1024x768 pixels, 256 colors, Open GL support (for 3D view)
  • Graphics memory: 512 MB
  • CD-ROM drive

Freeware versin dari software ini anda langsung bisa download disini
Manual booknya anda bisa mendownload disini

Modul Pneumatik Lengkap Gratis Bagian 2

  • Judul : Modul Lengkap Pnematik Bagian 2
  • Bahasa : Indonesia
  • Jenis File : PDF (Adobe reader)
  • Jumlah Halaman : 40
  • Lain-lain : Bagian 2
  • Isi :
  1. Penggambaran Diagram Rangkaian
  2. Rangkaian Langsung Silinder
  3. Rangkaian Tidak Langsung Silinder
  4. Fungsi Logika DAN
  5. Fungsi Logika ATAU
  6. Pengaturan Kecepatan Silinder

Agar download lebih cepat harap daftar dulu disini
Ebook dapat di download disini

Link download telah diperbaharui, tanpa password.
Terima Kasih



Modul Pneumatik Lengkap Gratis Bagian 1

  • Judul : Modul Lengkap Pnematik Bagian 1
  • Bahasa : Indonesia
  • Jenis File : PDF (Adobe reader)
  • Jumlah Halaman : 60
  • Lain-lain : Bagian 1
  • Isi :
  1. Pendahuluan
  2. Silinder Kerja Tunggal
  3. Macam-macam Silinder Kerja Tunggal
  4. Silinder Kerja Ganda
  5. Macam-macam Silinder Kerja Ganda
  6. Karakteristik Silinder
  7. Katup Kontrol Arah (KKA)
  8. Katup Satu Arah
  9. Katup Kontrol Aliran
  10. Katup Tekanan
  11. Katup Tunda Waktu

Agar download lebih cepat harap daftar dulu disini

Ebook dapat di download disini

Password rar nya : r415

Stereo Hi-Fi FM Receiver

Radio penerima FM yang sangat jernih, disertai PLL Stereo demodulator dan indikator sinyal. lengkap dengan filter anti desis.

Catatan: direkomendasikan untuk PCB menggunakan fiber PCB untuk menghindari noise.

Gambar PCB dalam versi web yang telah dikompresi, untuk download versi aslinya disini
laporkan jika link diatas gagal/salah, terima kasih

Syswin 3.4 (omron PLC software)

Untuk PLC omron type, CPM1A, CPM2A, dan CQM, untuk lebih jelasnya anda dapat membaca user manualnya.


Screenshoot
Klik pada gambar untuk ukuran sebenarnya

Supaya downloadnya lebih cepat jangan lupa register dahulu disini
Softwarenya anda dapat mendownload disini
User Manualnya anda bisa mendownload disini

Up/Down Counter Digital (menggunakan 7 segmen)

Rangkaian ini menggunakan IC digital CD401101BE yang memang khusus untuk UP/Down Counter.

Hati-hati tertukar IC401101BE dengan IC CD4011 ketika membeli, karena kedua IC tersebut sama sekali berbeda.Catatan:
  • Untuk menambah digit seven segment anda tinggal mengkoneksikan seperti pada IC kedua, ketiga dan seterusnya.
  • Semua resistor pada seven segment bernilai 330Ohm.
  • Seven segment menggunakan Common katoda
Berikut Skematik dan PCB Diagramnya:
Klik pada gambar untuk ukuran sebenarnya

EdSIM51 (MIkrokontroler MCS51 Simulator)

Software gratis Simulator mikrontroler keluarga MCS51 berbasis Java dilengkapi dengan virtual keypad, led dan srepper motor.

Anda juga dapat menulis kode program langsung pada modul software sehingga dapat langsung dijalankan.
Screenshootnya
Klik pada gambar untuk ukuran sebenarnya

Untuk mendownload klik disini

Untuk menjalankan software ini membutuhkan Java Runtime Environment yang dapat didownload disini

Topview Simulator (MCS51 Mikrokontroler Simulator)

Topview simulator ialah software simulasi mikrokontroler keluarga MCS51 (AT89C51,S51,dst) , memberikan kemudahan kita dalam merancang perangkat mikrokontroler karena dilengkapi dengan virtual input output berupa pushbutton, led, keypad, sevensegment, dll.



Screenshootnya
Klik pada gambar untuk ukuran sebenarnya.

Untuk download silahkan klik disini
Untuk tutorial lengkapnya saya posting disini
 Download link telah diperbaharui.

Diptrace PCB

Software untuk membuat gambar PCB ataupun skematik elektronik dengan mudah, dilengkapi fitur autorouting yang lebih baik dibanding protel serta lebih ringan, sehingga ketika anda selesai membuat skematik anda langsung bisa meng ekportnya ke dalam bentuk PCB.


screenshootnya
klik pada gambar untuk ukuran lebih besar

Silahkan download freewarenya di sini