Minggu, 06 November 2011

Set Intruksi

Set Intruksi merupakan Program pengendali mikrokontroler disusun dari kumpulan instruksi, instruksi tersebut setara dengan kalimat perintah bahasa manusia yang hanya terdiri atas predikat dan objek. Dengan demikian tahap pertama pembuatan program pengendali mikrokontroler dimulai dengan pengenalan dan pemahaman predikat (kata kerja) dan objek apa saja yang dimiliki mikrokontroler.
Objek dalam pemrograman mikrokontroler adalah data yang tersimpan di dalam memori, register dan input/output. Sedangkan ‘kata kerja’ yang dikenal pun secara umum dikelompokkan menjadi perintah untuk perpindahan data, arithmetik, operasi logika, pengaturan alur program dan beberapa hal khusus. Kombinasi dari ‘kata kerja’ dan objek itulah yang membentuk perintah pengatur kerja mikrokontroler.
Intruksi MOV A,$7F merupakan contoh sebuah intruksi dasar yang sangat spesifik, MOV merupakan ‘kata kerja’ yang memerintahkan peng-copy-an data, merupakan predikat dalam kalimat perintah ini. Sedangkan objeknya adalah data yang di-copy-kan, dalam hal ini adalah data yang ada di dalam memori nomor $7F di-copy-kan ke Akumulator A.
Penyebutan data dalam MCS51
Data bisa berada diberbagai tempat yang berlainan, dengan demikian dikenal beberapa cara untuk menyebut data (dalam bahasa Inggris sering disebut sebagai ‘Addressing Mode’), antara lain sebagai berikut.
1. Penyebutan data konstan (immediate addressing mode): MOV A,#$20. Data konstan merupakan data yang berada di dalam instruksi. Contoh instruksi ini mempunyai makna data konstan $20 (sebagai data konstan ditandai dengan ‘#’) di-copy-kan ke Akumulator A. Yang perlu benar-benar diperhatikan dalam perintah ini adalah bilangan $20 merupakan bagian dari instruksi.
2. Pnyebutan data secara langsung (direct addressing mode), cara ini dipakai untuk menunjuk data yang berada di dalam memori dengan cara menyebut nomor memori tempat data tersebut berada : MOV A,$30. Contoh instruksi ini mempunyai makna data yang berada di dalam memori nomor $30 di-copy-kan ke Akumulator. Sekilas intruksi ini sama dengan instruksi data konstan di atas, perbedaannya instruksi di atas memakai tanda ‘#’ yang menandai $20 adalah data konstan, sedangkan dalam instruksi ini karena tidak ada tanda ‘#’ maka $30 adalah nomor dari memori.
3. Penyebutan data secara tidak langsung (indirect addressing mode), cara ini dipakai untuk menunjuk data yang berada di dalam memori, kalau memori penyimpan data ini letaknya berubah-rubah sehingga nomor memori tidak disebut secara langsung tapi di-‘titip’-kan ke register lain : MOV A,@R0.
4. Dalam instruksi ini register serba guna R0 dipakai untuk mencatat nomor memori, sehingga instruksi ini mempunyai makna memori yang nomornya tercatat dalam R0 isinya di-copy-kan ke Akumulator A.
5. Tanda ‘@’ dipakai untuk menandai nomor memori disimpan di dalam R0.
6. Bandingkan dengan instruksi penyebutan nomor memori secara langsung di atas, dalam instruksi ini nomor memori terlebih dulu disimpan di R0 dan R0 berperan menunjuk memori mana yang dipakai, sehingga kalau nilai R0 berubah memori yang ditunjuk juga akan berubah pula.
7. Dalam instruksi ini register serba guna R0 berfungsi dengan register penampung alamat (indirect address register), selain R0 register serba guna R1 juga bisa dipakai sebagai register penampung alamat.
8. Penyebutan data dalam register (register addressing mode): MOV A,R5. Instruksi ini mempunyai makna data dalam register serba guna R5 di-copy-kan ke Akumulator A. Instruksi ini membuat register serba guna R0 sampai R7 sebagai tempat penyimpan data yang sangat praktis yang kerjanya sangat cepat.
9. Data yang dimaksud dalam bahasan di atas semuanya berada di dalam memori data (termasuk register serba guna letaknya juga di dalam memori data). Dalam penulisan program, sering-sering diperlukan tabel baku yang disimpan bersama dengan program tersebut. Tabel semacam ini sesungguhnya merupakan data yang berada di dalam memori program!
10. Untuk keperluan ini, MCS51 mempunyai cara penyebutan data dalam memori program yang dilakukan secara indirect (code indirect addressing mode) : MOVC A,@A+DPTR.
Perhatikan dalam instruksi ini MOV digantikan dengan MOVC, tambahan huruf C tersebut dimaksud untuk membedakan bahwa instruksi ini dipakai di memori program. (MOV tanpa huruf C artinya instruksi dipakai di memori data).
Tanda ‘@’ dipakai untuk menandai A+DPTR dipakai untuk menyatakan nomor memori yang isinya di-copy-kan ke Akumulator A, dalam hal ini nilai yang tersimpan dalam DPTR (Data Pointer Register - 2 byte) ditambah dengan nilai yang tersimpan dalam Akumulator A (1 byte) dipakai untuk menunjuk nomor memori program.
Secara keseluruhan AT8951 mempunyai sebanyak 255 macam instruksi, yang dibentuk dengan mengkombinasikan ‘kata kerja’ dan objek. “Kata kerja’ tersebut secara kelompok dibahas sebagai berikut :
1.3.1 Instruksi copy data
Kode dasar untuk kelompok ini adalah MOV, singkatan dari MOVE yang artinya memindahkan, meskipun demikian lebih tepat dikatakan perintah ini mempunyai makna peng-copy-an data. Hal ini bisa dijelaskan berikut : setelah instruksi MOV A,R7 dikerjakan, Akumulator A dan register serba guna R7 berisikan data yang sama, yang asalnya tersimpan di dalam R7.
Perintah MOV dibedakan sesuai dengan jenis memori AT89Cx051. Perintah ini pada memori data dituliskan menjadi MOV, misalkan :
MOV A,$20
MOV A,@R1
MOV A,P1
MOV P3,A
Untuk pemakaian pada memori program, perintah ini dituliskan menjadi MOVC, hanya ada 2 jenis instruksi yang memakai MOVC, yakni:
MOVC A,@A+DPTR ; DPTR sebagai register indirect
MOVC A,@A+PC ; PC sebagai register indirect
Selain itu, masih dikenal pula perintah MOVX, yakni perintah yang dipakai untuk memori data eksternal (X singkatakan dari External). Perintah ini hanya dimiliki oleh anggota keluarga MCS51 yang mempunyai memori data eksternal, misalnya AT89C51 dan lain sebagainya, dan jelas tidak dikenal oleh kelompok AT89Cx051 yang tidam punya memori data eksternal. Hanya ada 6 macam instruksi yang memakai MOVX, instruksi-instruksi tersebut adalah:
MOVX A,@DPTR
MOVX A,@R0
MOVX A,@R1
MOVX @DPTR,A
MOVX @R0,A
MOVX @R1,A

Mnemonic
Operation
Addressing Mode
Exect.
Dir
Ind
Reg
Imm
Timer uS
Mov A,<src> A=<src>
V
V
V
V
1
Mov <dest>,A <dest>=A
V
V
V
V
1
Mov <dest>, <src> <dest>=<src>
V
V
V
V
1
Mov DPTR,#data16 DPTR=16 bit immediate const
Accumulator Only
1
Push <src> Inc SP
V
V
V

1
Pop <src> Dec SP
Data Pointer Only
2
Xch A,<byte> Acc and <byte> exchange data
Accumulator Only
1
Xchd A,@Ri Acc and @Ri exchange low nibbles
V
V
V

1
Sumber : http://www.mytutorialcafe.com/mikrokontroller%20set%20instruksi.htm














Encoding

TEKNIK ENCODING
Modulasi adalah proses encoding sumber data dalam suatu sinyal carrier dengan frekuensi fc.
Macam - macam teknik encoding :
• Data digital, sinyal digital
• Data analog, sinyal digital
• Data digital, sinyal analog
• Data analog, sinyal analog

DATA DIGITAL, SINYAL DIGITAL
Sinyal digital adalah sinyal diskrit dengan pulsa tegangan diskontinyu. Tiap pulsa adalah elemen sinyal data biner diubah menjadi elemen - elemen sinyal.
Spektrum sinyal : disain sinyal yang bagus harus mengkonsentrasikan kekuatan transmisinya pada daerah tengah dari bandwidth transmisi; untuk mengatasi distorsi dalam penerimaan sinyal digunakan disain kode yang sesuai dengan bentuk dari spektrum sinyal transmisi.

Elemen sinyal adalah tiap pulsa dari sinyal digital. Data binary ditransmisikan dengan meng-encoder-kan tiap bit data menjadi elemen-elemen sinyal.
Ketentuan :
• Unipolar: Semua elemen-elemen sinyal dalam bentuk yang sama yaitu positif semua atau negatif semua.
• Polar :adalah elemen-elemen sinyal dimana salah satu state logic dinyatakan oleh level tegangan positif dan sebaliknya oleh tegangan negatif
• Rating Data : Rating data transmisi data dalam bit per secon
• Durasi atau panjang suatu bit: Waktu yang dibutuhkan pemancar untuk memancarkan bit
• Rating modulasi
• Rating dimana level sinyal berubah
• Diukur dalam bentuk baud=elemen-elemen sinyal per detik
• Tanda dan ruang
• Biner 1 dan biner 0 berturut-turut
• Modulation rate adalah kecepatan dimana level sinyal berubah, dinyatakan dalam bauds atau elemen sinyal per detik.
• Istilah mark dan space menyatakan digit binary '1' dan '0'.

Tugas-tugas receiver dalam mengartikan sinyal-sinyal digital:
• receiver harus mengetahui timing dari tiap bit
• receiver harus menentukan apakah level sinyal dalam posisi bit high(1) atau low(0).
Tugas-tugas ini dilaksanakan dengan men-sampling tiap posisi bit pada tengah-tengah interval dan membandingkan nilainya dengan threshold.

Faktor yang menentukan sukses dari receiver dalam mengartikan sinyal yang datang :
• Data rate (kecepatan data) : peningkatan data rate akan meningkatkan bit error
rate (kecepatan error dari bit).
• S/N : peningkatan S/N akan menurunkan bit error rate.
• Bandwidth : peningkatan bandwidth dapat meningkatkan data rate.

Lima faktor yang perlu dinilai atau dibandingkan dari berbagai teknik komunikasi :
• Spektrum sinyal : disain sinyal yang bagus harus mengkonsentrasikan kekuatan transmisinya pada daerah tengah dari bandwidth transmisi; untuk mengatasi distorsi dalam penerimaan sinyal digunakan disain kode yang sesuai dengan bentuk dari spektrum sinyal transmisi.
• Clocking : menentukan awal dan akhir dari tiap posisi bit dengan mekanisme synchronisasi yang berdasarkan pada sinyal transmisi.
• Deteksi error : dibentuk dalam skema fisik encoding sinyal.
• Interferensi sinyal dan Kekebalan terhadap noise
• Biaya dan kesulitan : semakin tinggi kecepatan pensinyalan untuk memenuhi data rate yang ada, semakin besar biayanya.
Perlu diketahui
• Waktu bit saat mulai dan berakhirnya
• Level sinyal
Faktor-faktor penerjemahan sinyal yang sukses
• Perbandingan sinyal dengan noise(gangguan)
• Rating data
• Bandwidth
Perbandingan Pola-Pola Encoding
• Spektrum sinyal
Kekurangan pada frekuensi tinggi mengurangi bandwidth yang dibutuhkan. Kekurangan pada komponen dc menyebabkan kopling ac melalui trafo menimbulkan isolasi Pusatkan kekuatan sinyal di tengah bandwidth
• Clocking
• Sinkronisasi transmiter dan receiver
• Clock eksternal
• Mekanisme sinkronisasi berdasarkan sinyal
• Pendeteksian error
• Dapat dibangun untuk encoding sinyal
• Interferensi sinyal dan kekebalan terhadap noise
• Beberapa code lebih baik daripada yang lain
• Harga dan Kerumitan
• Rating sinyal yang lebih tinggi(seperti kecepatan data) menyebabkan harga semakin tinggi
• Beberapa code membutuhkan rating sinyal lebih tinggi
Pola –Pola encoding
• Nonreturn to Zero-Level (NRZ-L)
• Nonreturn to Zero Inverted (NRZI)
• Bipolar-AMI
• Pseudoternary
• Manchester
• Differential Manchester
• B8ZS
• HDB3

Sumber : http://mzaidharitsah.blogspot.com/2009/05/teknik-encoding.html