MONOLITIC MIXER
Teknologisilikonpd implementasiMixer
• Arsitekturbalance (tunggal dan ganda) secara luas digunakan dalam perancangan mixer IC silikon monolitik.
•Topologimixer terdapat sepasang differensial transistor Q56 dan Q57.
•Transistor masukan Q58 common gate dirancang sedemikian impedansi masukan 50 Ohm pd RF frek.
•Sirkit stabilisasi bias untuk meminimalkan variasi parameter mixer karen perubahan suhu.
•Penguat antegmixer sebesar10 dB selamaisolasi LO dengan RF sebesar 36 dB. Mixer BiCMOS silikon
•Implementasi lain mixer balance teknologi Bi CMOS silikon 1,0 μm.
•LNA dan mixer terintegrasi dirancang pada chip tungga l1,57 GHz utk GPS.
•Penguatan konversi SBM sekitar 2 kali DBM pada tegbias yg sama, tetapi karakteristik linieritas dan feed through LO lebih buruk dari DBM.
•NF DSB-nya diperkirakan sekitar 18 dB pada keluaran 0 dBm.
•Karakteristik kombinasi LNA/mixer yiNF 8,1 dB dan penguatan 26,5 dB pd 1,57 GHz.
•Contoh lain mixer konversi kebawah dan keatasDBM BiCMOS untuk aplikasi DCT pada RF = 1,9 GHZ dan IF = 240 MHz
Mixer BiCMO Spd 1,57 GHz untuk aplikasi GPS.
•Contoh lain mixer konversi kebawah (RF = 1,9 GHz danIF = 240 MHz) dirancang untuk menekan kebocoran LO.
•Karena emitter follower mengkonsumsi daya besar, maka didirancang topologi open collector.
•LPF terdiridari kapasitor CC dan tahanan RC menekan sinyal spurius yang tak diinginkan sehinga meningkatkan linieritas.
•Beban induktif off-chip disambungkan kekeluaran untuk mengambilsinya lIF.
•Penguatan konversi 12 kali, masukan IP3 –7 dBm, dan NF 12 dB. Mixer konversi kebawah DB BiCMO Spd 1,9 GHz utkPHS
•Conto hlain mixer monolitik BiCMO Sutkaplikasi LAN seluler mode ganda.
•Simulasi Spice untuk mengoptimalkan drop tegangan beban tahanan R3 danR4, transistor gate seri B1 da B6, dan arus sumber MOS1 dan MOS2.
•Mixer konversi kebawah menggunakan transistor NMOS push-pull buffer stage, sedang keatas menggunakan bipolar emitter follower buffer stage.
•FrekRF = 2,4 GHz danLO = 2,3 GHz. Mixer monolitik konversi ke atas untuk aplikasi LAN seluler Mixer monolitik konversi kebawah untuk aplikasi LAN seluler Penguatan konversi mixer konversi kebawah dan daya keluaran sebagai fungsi level daya masukan pada dayaLO –16 dBm.
Pada NMOS dasar, M1 sbgpenguattransconductansi, M2 & M3 sebagai pasangan differensial membentuk sel mixer.
Contoh lain mixer CMOS 900MHz pd system NADC (North American Digital Celluler)
Network eksterna lNS sepadan dengan kutub RF mixer imp 50 Ohm.
VRF masukan RF memacu gate trans M5 & M6.
M5 danM6 dikonfigurasi sdmkshgarusdrain keduanya berbeda gmt VRF, dimana gmt adalah jumlah trans konduktansi M5 dan M6.
Selisih arus kemudian diambil mixer sehinga menghasilkan arus IF dikeluaran mixer, Vout1 danVout 2.
Sel mixer NMOS dasar Mixer CMOS utkNADC 900MHz.
Pada mixer daya rendah digunakan RF GCMOS (Graded Channel MOS) untuk aplikasi telepon seluler 900 MHz.
Mixer terdiri dari 2 buah GCMOS FET disambungkan secara cascade .
Fungsi mixer pertama sebagai penguat sinyal RF common source untuk mendapatkan penguatan dan NF yg baik.
LO dicatukan ke gate FET common gate.
Keluaran diambi ldari drain FET common gate.
Topologimixer RF GCMOS untuk aplikasi telepon seluler 900 MHz
MIXER GaAsMESFET
Ada2 jenis konfigurasi mixer single-ended FET, dengan menggunakan hybrid 90o dan dual gate FET.
Penyepadanan impedansi dilakukan diterminal gate MESFET untuk mengoptimalkan unjukkerja mixer low-power.
Pada mixer dual-gate FET, sinyal RF diberikan ke gate pertama dan LO ke gate ke dua.
Gate 1 sepadan dengan frek RF dan gate 2 dengan frek LO.
Sinya l IF diambil dari drain dual-gate FET.
Skema sirkit mixer single-ended mixer dengan hybrid 90o.
Skema sirkit mixer dual-gate FET
Implementasi mixer dengan HEMT
Mixer dual-gate HFET menggunakan sambungan cascade 2 buah single-gate HFET.
Kutub RF dan LO disepadankan on-chip, sedangkan kutub IF disepadankan eksternal dengan chip.
Unjuk kerja mixer sangat tergantung pd tegangan yang diberikan pada gate kedua.
Mixer dual-gate HEMT dengan penyepadanan RF dan LO on-chip
Loss konversimixer dual-gate GaAsHEMT.
Foto IC konversi kebawah monolithic HEMT
Minggu, 14 Juni 2009
Senin, 08 Juni 2009
mikrokontroler
mDasar Mikrokontroler
Jika kita ingin membuat projek atau tugas akhir yang menggunakan mikroprosesor 8086/8088 tampaknya saat ini cukup sulit karena dibutuhkan biaya yang besar serta diperlukannnya EPROM Programmer. Cara lain yang lebih gampang dan murah ialah kita mengembangkan aplikasi menggunakan kit mikrokontroler ( main board) yang sudah ada di pasaran. Kit tersebut umumnya terdiri dari mikrokontroler, memori serta interface untuk koneksi ke lcd, ke PPI atau ke port serial komputer. Kita tinggal membuat program serta menyambungkan dengan board atau komponen tambahan saja. Membangun aplikasi Elektronika berbasis embedded system merupakan topik yang sangat hangat saat ini. Apalagi mikrokontroler tertentu sudah mendukung aplikasi yang terhubung ke jaringan computer (network microcontroller).
Ada perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari CPU, Memori , I/O tertentu dan unit pendukung, misalnya Analog to Digital Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut. Kelebihan utama dari Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang digunakan secara luas? di dunia. Diantaranya yang terkenal ialah dari Intel, Maxim, Motorolla , dan ATMEL. Beberapa seri mikrokontroler yang digunakan secara luas ialah 8031, 68HC11, 6502 , 2051 dan 89S51. Mikrokontroler yang mendukung jaringan komputer seperti DS80C400 tampaknya akan menjadi primadona pada tahun-tahun mendatang . Untuk mencoba kit mikrokontroler, anda dapat membeli kit kami bernama SMART52 berbasiskan 89S52 , SmartAVR atau kit produksi lainnya, dapat anda pesan di situs penulis di www.toko-elektronika.com
Pengenalan Mikrokontroler AT89C51
Mikrokontroler AT89C51 ialah mikrokomputer CMOS 8 bit dengan 4KB Flash Programmable dan Erasable Read Only Memory (PEROM). Mikrokontroler berteknologi memori non volatile kerapatan tingi dari Atmel ini kompatibel dengan mikrokontroler standar industri MCS-51 (seperti mikrokontroler 8031 yang terkenal dan banyak digunakan beberapa waktu lalu) baik pin kaki IC maupun set instruksinya serta harganya yang cukup murah. Oleh karena itu, sangatlah tepat jika kita mempelajari mikrokontroler jenis ini. Anda juga diharapkan mempelajari versi terbaru yaitu berseri AT89S51. Informasi lebih detail mengenai interfacing dan penerapan aplikasi pada mikrokontroler 89C51 dapat Anda temukan pada buku Saya sebelumnya.
AT89C51 mempunyai memori yang terdiri dari RAM internal sebesar 128 byte dengan alamat 00H-7FH dapat diakses menggunakan RAM address register. RAM Internal ini terdiri dari Register Banks dengan 8 buah register (R0-R7).Memori lain yaitu 21 buah Special Function Register dimulai dari alamat 80H-FFH. RAM ini beda lokasi dengan Flash PEROM
Special Function Register
RAM Internal
Type RAM Flash Memory EEPROM
AT89C51/ AT89S51 8 X 128 byte 4 Kbyte Tidak
AT89C52/ AT89S52 8 X 256 byte 8 Kbyte Tidak
AT89C55 8 X 256 byte 20 Kbyte Tidak
AT89S53 8 X 256 byte 12 Kbyte Tidak
AT89S8252 8 X 256 byte 8 Kbyte 2 Kbyte
IC AT89C51 mempunyai 40 pin yang sesuai dengan mikrokontroler 8031.
Jika kita lihat diagram blok mikrokontroler ini, terlihat jelas kesempurnaan dari fasilitas yang diberikannya.
Bahasa Assembly di Mikrokontroler
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.
AT89C51 memiliki sekumpulan instruksi yang sangat lengkap. Jika anda telah mempelajari bahasa assembly mikroprosesor keluarga intel (misal 8086), ada sedikit perbedaan dengan bahasa assembly di mikrokontroler. Instruksi MOV untuk byte dan bit dikelompokkan sesuai dengan mode pengalamatan (addressing modes). Mode pengalamatan menjelaskan bagaimana operand dioperasikan.Berikut penjelasan dari berbagai mode pengalamatan.
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 buat program objek menggunakan program ASM51 yang dapat diperoleh secara gratis di internet. Berikut contoh mengkompile file tesppi.asm yang tersedia di dalam paket DT-51 menggunakan ASM51, yang akan menghasilkan file tesppi.hex dan tesppi.lst. File .hex inilah yang kita masukkan ke Flash PEROM mikrokontroler AT89C51 atau ke eksternal memori seperti AT28C64B menggunakan program downloader.
Mendownload Program ke Mikrokontroler
Jika telah selesai menulis program; simpan dgn ekstension.asm, lalu kompile degan ASM51( c:\asm51 lampu.asm, nanti jdnya lampu.hex, anda dapat mendowload file hex anda ke Minimum System mikrokontroler anda menggunakan file dt51l.exe (berbasiskan DOS) atau dt51lwin.exe (berbasiskan windows )atau ATMEL ISP PROGRAMMER
Mode Pengalamatan
Pengalamatan Langung
Pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung, Untuk melaksanakan hal tesersebut digunakan tanda #. Operand yang digunakan pada pengalamatan langsung /immediate data dapat berupa bilangan bertanda mulai 256 hingga +256.
Contoh :
MOV A,#25H ;Isi akumulator dengan bilangan 25H
MOV DPTR, #20H :isi register DPTR dengan bilangan 20H
MOV R1,10H : ; isi register R1 dengan 10H
MOV A,#-1 ; sama dengan MOV A,#0FFH
; karena 00H 1 menjadi FFH
Pengalamatan Tak Langung
Pada pengalamatan ini, operand menunjuk ke sebuah register yang berisi lokasi alamat memori yang akan digunakan dalam operasi. Untuk melaksanakan pengalamatan tak langsung digunakan symbol @. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori. AT89C51 mempunyai sebuah register 16 bit (DPTR) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.
Contoh :
ADD, A,R1 ;Tambahkan isi RAM yang lokasinya ditunjukkan oleh register R1
; ke akumulator
DEC @R1 ;Kurangi satu isi RAM yang alamatnya ditunjukkan oleh R1
MOVX, ADPTR, A :Pindahkan isi dari akumulator ke memori luar yang
; lokasinya ditunjukkan oleh data pointer (DPTR)
Pengalamatan Data
Pengalamatan data terjadi pada sebuah perintah ketika nilai operasi merupakan alamat dari data yang akan diisi atau yang akan dipindahkan.
Contoh :
MOV P1,A ;isi P1 dari Akumulator
MOV P2,FFH ;isi P2 dengan nilai FFH
Pengalamatan Kode
Pengalamatan kode terjadi ketika operand merupakan alamat dari instruksi JUMP dan CALL. Berikut contoh ACALL yang memanggil label Tunda, sehingga akan melompat ke lokasi memori bernama Tunda.
Contoh :
ACALL Tunda
TUNDA:
MOV A,#FEH
LOOP:
DJNZ A, LOOP
RET
Pengalamatan Bit
Pengalamatan bit ialah penunjukkan alamat lokasi bit baik dalam RAM internal atau perangkat keras menggunakan symbol titik (.).
Contoh :
SETB P1.7 ; Set bit port 1.7 aktif
SETB TR1 : Set TR1 (Timer 1 aktif)
SETB RXD ; memberikan logika 1 pada kaki RXD yang berada di port 3.0
Operator
Operator digunakan untuk melakukan aksi aritmatika, logika pergeseran bit dan lain-lainnya pada operand .Beberapa operator yang tersedia diantaranya :
Operator Aritmatika
* untuk perkalian
/ untuk pembagian
+ untuk penambahan
- untuk pengurangan
Contoh : MOV A, #25H+3H ; sama dengan MOV A,#28H
Operator Logika
OR untuk poerasi OR
AND untuk operasi AND
XOR untuk operasi XOR
EXOR untuk operasi EXOR
NOT untuk operasi invert
Contoh :
MOV A, #20H OR 40H ;sama dengan MOV A,#60H
MOV A,#10H AND 31H ;sama dengan MOV A, 10H
Operasi Khusus
SHR 16 bit geser ke kanan
SHL 16 bit geser ke kiri
HIGH pilih bagian tas bit
LOW pilih bagian bawah bit
EQ = sama dengan
NET <> tidak sama dengan
Lt < lebih kecil
LE <= lebih kecil atau sama dengan
GT > lebih besar
GE >= lebih besar atau sama dengan
Dimana perlu anda perhatikan prioritas dari operator sebagai berikut :
()
HIGH , LOW
Z*/, MOD, SHL , SHR
+, -
EQ, NE, LT, LE, GT, GE,=,<>,<,<=,>,>=
NOT
AND
OR, XOR
Pengarah Pilihan Segmen (Segment Selection Directives)
Ada 5 buah pengarah pilihan segmen yaitu CSEG, BSEG , DSEG ISEG dan XSEG yang menunjukkan salah satu dari 5 buah area memori . Penjelasan dari masing-masing segmen sebagai berikut :
CSEG : untuk memilih lokasi memori program
BSEG : untuk meilih lokasi memori yang dapat dialamati
secara pengalamatan bit
DSEG untuk memilih lokasi memori RAM Internal
ISEG untuk memilih lokasi memori RAM Internal yang
dialamati secara tak langsung
XSEG untuk memilih lokasi memori eksternal
Mencoba Membuat Program
Anda dapat mengetik program di mana saja seperti notepad, wordpad dan ALDS. ALDS ialah software yang dapat kita gunakan membuat program dan melacak kesalahan. Program pertama kita ialah Program yang menerima input dari port dan lalu menampilkan outputnya berlogika 1 atau 0 di port 1. Karena DT-51 menggunakan memori eksternal, maka dimulai dari alamat 4000H. Kode selanjutnya ialah membuat sebuah label dengan nama mulai, isi dari label tersebut ialah menerima data dari P2 lalu dikirim ke akumulator A menggunakan perintah MOV. Lalu datai di Akumulator di pindahkan ke P1 menggunakan fungsi MOV juga. Untuk terjadi perulangan terus menerus, kita menggunakan fungsi JMP untuk loncat ke label mulai.Program diakhiri menggunakan fungsi END. Untuk merancang program, sebaiknya dibua terlebih dahulu flowchart? yang kemudian dapat diterjemahkan ke dalam pseudocode.
Listing Program 1. Program menerima data dari port 2 lalu dikirim ke port 1 (tesio.asm)
$mod51
ORG 4000H ; menggunakan alamat awal EEPROM DT51
mulai: ; Label mulai
MOV A,P2 ; Kirim Data pada Port 2 Ke Accumulator
MOV P1,A ; Kirim Data pada Accumulator ke Port 1
JMP mulai ; Loncat Ke Label Mulai
END
Pastikan file mod51 berada di dalam folder yang sama dan kode tidak case sensitive. Anda dapat menggunakan saklar yang diberi tegangan 5 V dan ground untuk menghasilkan pulsa 1 atau 0 yang dihubungkan ke input port 2. Lalu port 1 dapat menggunakan LED. Atau anda juga dapat menggunakan Trainer Board dari Innovative Electronics sehingga tidak membuang waktu untuk merangkai rangkaian tersebut. Kompile program ini lalu masukkan ke kit DT-51 menggunakan dt51l.exe dalam mode dos atau dt51lwin.exe dalam mode windows.
Program berikut akan mengetes port 1 di DT-51 Minimum System. Output di port 1 akan berlogika 1 dan 0 secara bergantian. Untuk melihat hasil output, kita menggunakan delay agar perubahan logika di port tersebut dapat terlihat.
Listing Program 2 . Tes port 1 DT-51(tesport.asm)
$MOD51
$TITLE(TESPORT)
CSEG
ORG 4000H
AJMP START
ORG 4100H
Delay: MOV R2,#0FH
Del1: MOV R1,#0FFH
DJNZ R1,$
DJNZ R2,Del1
RET
START: MOV SP,#30H
XX: MOV P1,#0FFH ;semua pin di port 1 high
ACALL Delay
MOV P1,#00H ; set low
ACALL Delay
AJMP XX
END
Program diatas akan mengisi SP dengan 30H dan membuat P1 kelap - kelip . Untuk memanggil label Delay digunakan fungsi ACALL .
Hanya dengan menggunakan 1 buah Mikrontroler, kita? dapat menghubungkannya dengan peralatan lainnya seperti sensor, lampu indicator, relay dan LCD. Jika port yang tesedia tidak memadai, biasanya kita menggunakan IC tambahan seperti PPI 8255 sebagai interface dengan rangkaian digital lainnya. Gambar 16.5 menampilkan model interfacing mikrokontroler yang umum, dimana 1 buah mikrokontroler mampu dihubungkan dengan berbagai devais.
Jika kita ingin membuat projek atau tugas akhir yang menggunakan mikroprosesor 8086/8088 tampaknya saat ini cukup sulit karena dibutuhkan biaya yang besar serta diperlukannnya EPROM Programmer. Cara lain yang lebih gampang dan murah ialah kita mengembangkan aplikasi menggunakan kit mikrokontroler ( main board) yang sudah ada di pasaran. Kit tersebut umumnya terdiri dari mikrokontroler, memori serta interface untuk koneksi ke lcd, ke PPI atau ke port serial komputer. Kita tinggal membuat program serta menyambungkan dengan board atau komponen tambahan saja. Membangun aplikasi Elektronika berbasis embedded system merupakan topik yang sangat hangat saat ini. Apalagi mikrokontroler tertentu sudah mendukung aplikasi yang terhubung ke jaringan computer (network microcontroller).
Ada perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari CPU, Memori , I/O tertentu dan unit pendukung, misalnya Analog to Digital Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut. Kelebihan utama dari Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang digunakan secara luas? di dunia. Diantaranya yang terkenal ialah dari Intel, Maxim, Motorolla , dan ATMEL. Beberapa seri mikrokontroler yang digunakan secara luas ialah 8031, 68HC11, 6502 , 2051 dan 89S51. Mikrokontroler yang mendukung jaringan komputer seperti DS80C400 tampaknya akan menjadi primadona pada tahun-tahun mendatang . Untuk mencoba kit mikrokontroler, anda dapat membeli kit kami bernama SMART52 berbasiskan 89S52 , SmartAVR atau kit produksi lainnya, dapat anda pesan di situs penulis di www.toko-elektronika.com
Pengenalan Mikrokontroler AT89C51
Mikrokontroler AT89C51 ialah mikrokomputer CMOS 8 bit dengan 4KB Flash Programmable dan Erasable Read Only Memory (PEROM). Mikrokontroler berteknologi memori non volatile kerapatan tingi dari Atmel ini kompatibel dengan mikrokontroler standar industri MCS-51 (seperti mikrokontroler 8031 yang terkenal dan banyak digunakan beberapa waktu lalu) baik pin kaki IC maupun set instruksinya serta harganya yang cukup murah. Oleh karena itu, sangatlah tepat jika kita mempelajari mikrokontroler jenis ini. Anda juga diharapkan mempelajari versi terbaru yaitu berseri AT89S51. Informasi lebih detail mengenai interfacing dan penerapan aplikasi pada mikrokontroler 89C51 dapat Anda temukan pada buku Saya sebelumnya.
AT89C51 mempunyai memori yang terdiri dari RAM internal sebesar 128 byte dengan alamat 00H-7FH dapat diakses menggunakan RAM address register. RAM Internal ini terdiri dari Register Banks dengan 8 buah register (R0-R7).Memori lain yaitu 21 buah Special Function Register dimulai dari alamat 80H-FFH. RAM ini beda lokasi dengan Flash PEROM
Special Function Register
RAM Internal
Type RAM Flash Memory EEPROM
AT89C51/ AT89S51 8 X 128 byte 4 Kbyte Tidak
AT89C52/ AT89S52 8 X 256 byte 8 Kbyte Tidak
AT89C55 8 X 256 byte 20 Kbyte Tidak
AT89S53 8 X 256 byte 12 Kbyte Tidak
AT89S8252 8 X 256 byte 8 Kbyte 2 Kbyte
IC AT89C51 mempunyai 40 pin yang sesuai dengan mikrokontroler 8031.
Jika kita lihat diagram blok mikrokontroler ini, terlihat jelas kesempurnaan dari fasilitas yang diberikannya.
Bahasa Assembly di Mikrokontroler
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.
AT89C51 memiliki sekumpulan instruksi yang sangat lengkap. Jika anda telah mempelajari bahasa assembly mikroprosesor keluarga intel (misal 8086), ada sedikit perbedaan dengan bahasa assembly di mikrokontroler. Instruksi MOV untuk byte dan bit dikelompokkan sesuai dengan mode pengalamatan (addressing modes). Mode pengalamatan menjelaskan bagaimana operand dioperasikan.Berikut penjelasan dari berbagai mode pengalamatan.
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 buat program objek menggunakan program ASM51 yang dapat diperoleh secara gratis di internet. Berikut contoh mengkompile file tesppi.asm yang tersedia di dalam paket DT-51 menggunakan ASM51, yang akan menghasilkan file tesppi.hex dan tesppi.lst. File .hex inilah yang kita masukkan ke Flash PEROM mikrokontroler AT89C51 atau ke eksternal memori seperti AT28C64B menggunakan program downloader.
Mendownload Program ke Mikrokontroler
Jika telah selesai menulis program; simpan dgn ekstension.asm, lalu kompile degan ASM51( c:\asm51 lampu.asm, nanti jdnya lampu.hex, anda dapat mendowload file hex anda ke Minimum System mikrokontroler anda menggunakan file dt51l.exe (berbasiskan DOS) atau dt51lwin.exe (berbasiskan windows )atau ATMEL ISP PROGRAMMER
Mode Pengalamatan
Pengalamatan Langung
Pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung, Untuk melaksanakan hal tesersebut digunakan tanda #. Operand yang digunakan pada pengalamatan langsung /immediate data dapat berupa bilangan bertanda mulai 256 hingga +256.
Contoh :
MOV A,#25H ;Isi akumulator dengan bilangan 25H
MOV DPTR, #20H :isi register DPTR dengan bilangan 20H
MOV R1,10H : ; isi register R1 dengan 10H
MOV A,#-1 ; sama dengan MOV A,#0FFH
; karena 00H 1 menjadi FFH
Pengalamatan Tak Langung
Pada pengalamatan ini, operand menunjuk ke sebuah register yang berisi lokasi alamat memori yang akan digunakan dalam operasi. Untuk melaksanakan pengalamatan tak langsung digunakan symbol @. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori. AT89C51 mempunyai sebuah register 16 bit (DPTR) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.
Contoh :
ADD, A,R1 ;Tambahkan isi RAM yang lokasinya ditunjukkan oleh register R1
; ke akumulator
DEC @R1 ;Kurangi satu isi RAM yang alamatnya ditunjukkan oleh R1
MOVX, ADPTR, A :Pindahkan isi dari akumulator ke memori luar yang
; lokasinya ditunjukkan oleh data pointer (DPTR)
Pengalamatan Data
Pengalamatan data terjadi pada sebuah perintah ketika nilai operasi merupakan alamat dari data yang akan diisi atau yang akan dipindahkan.
Contoh :
MOV P1,A ;isi P1 dari Akumulator
MOV P2,FFH ;isi P2 dengan nilai FFH
Pengalamatan Kode
Pengalamatan kode terjadi ketika operand merupakan alamat dari instruksi JUMP dan CALL. Berikut contoh ACALL yang memanggil label Tunda, sehingga akan melompat ke lokasi memori bernama Tunda.
Contoh :
ACALL Tunda
TUNDA:
MOV A,#FEH
LOOP:
DJNZ A, LOOP
RET
Pengalamatan Bit
Pengalamatan bit ialah penunjukkan alamat lokasi bit baik dalam RAM internal atau perangkat keras menggunakan symbol titik (.).
Contoh :
SETB P1.7 ; Set bit port 1.7 aktif
SETB TR1 : Set TR1 (Timer 1 aktif)
SETB RXD ; memberikan logika 1 pada kaki RXD yang berada di port 3.0
Operator
Operator digunakan untuk melakukan aksi aritmatika, logika pergeseran bit dan lain-lainnya pada operand .Beberapa operator yang tersedia diantaranya :
Operator Aritmatika
* untuk perkalian
/ untuk pembagian
+ untuk penambahan
- untuk pengurangan
Contoh : MOV A, #25H+3H ; sama dengan MOV A,#28H
Operator Logika
OR untuk poerasi OR
AND untuk operasi AND
XOR untuk operasi XOR
EXOR untuk operasi EXOR
NOT untuk operasi invert
Contoh :
MOV A, #20H OR 40H ;sama dengan MOV A,#60H
MOV A,#10H AND 31H ;sama dengan MOV A, 10H
Operasi Khusus
SHR 16 bit geser ke kanan
SHL 16 bit geser ke kiri
HIGH pilih bagian tas bit
LOW pilih bagian bawah bit
EQ = sama dengan
NET <> tidak sama dengan
Lt < lebih kecil
LE <= lebih kecil atau sama dengan
GT > lebih besar
GE >= lebih besar atau sama dengan
Dimana perlu anda perhatikan prioritas dari operator sebagai berikut :
()
HIGH , LOW
Z*/, MOD, SHL , SHR
+, -
EQ, NE, LT, LE, GT, GE,=,<>,<,<=,>,>=
NOT
AND
OR, XOR
Pengarah Pilihan Segmen (Segment Selection Directives)
Ada 5 buah pengarah pilihan segmen yaitu CSEG, BSEG , DSEG ISEG dan XSEG yang menunjukkan salah satu dari 5 buah area memori . Penjelasan dari masing-masing segmen sebagai berikut :
CSEG : untuk memilih lokasi memori program
BSEG : untuk meilih lokasi memori yang dapat dialamati
secara pengalamatan bit
DSEG untuk memilih lokasi memori RAM Internal
ISEG untuk memilih lokasi memori RAM Internal yang
dialamati secara tak langsung
XSEG untuk memilih lokasi memori eksternal
Mencoba Membuat Program
Anda dapat mengetik program di mana saja seperti notepad, wordpad dan ALDS. ALDS ialah software yang dapat kita gunakan membuat program dan melacak kesalahan. Program pertama kita ialah Program yang menerima input dari port dan lalu menampilkan outputnya berlogika 1 atau 0 di port 1. Karena DT-51 menggunakan memori eksternal, maka dimulai dari alamat 4000H. Kode selanjutnya ialah membuat sebuah label dengan nama mulai, isi dari label tersebut ialah menerima data dari P2 lalu dikirim ke akumulator A menggunakan perintah MOV. Lalu datai di Akumulator di pindahkan ke P1 menggunakan fungsi MOV juga. Untuk terjadi perulangan terus menerus, kita menggunakan fungsi JMP untuk loncat ke label mulai.Program diakhiri menggunakan fungsi END. Untuk merancang program, sebaiknya dibua terlebih dahulu flowchart? yang kemudian dapat diterjemahkan ke dalam pseudocode.
Listing Program 1. Program menerima data dari port 2 lalu dikirim ke port 1 (tesio.asm)
$mod51
ORG 4000H ; menggunakan alamat awal EEPROM DT51
mulai: ; Label mulai
MOV A,P2 ; Kirim Data pada Port 2 Ke Accumulator
MOV P1,A ; Kirim Data pada Accumulator ke Port 1
JMP mulai ; Loncat Ke Label Mulai
END
Pastikan file mod51 berada di dalam folder yang sama dan kode tidak case sensitive. Anda dapat menggunakan saklar yang diberi tegangan 5 V dan ground untuk menghasilkan pulsa 1 atau 0 yang dihubungkan ke input port 2. Lalu port 1 dapat menggunakan LED. Atau anda juga dapat menggunakan Trainer Board dari Innovative Electronics sehingga tidak membuang waktu untuk merangkai rangkaian tersebut. Kompile program ini lalu masukkan ke kit DT-51 menggunakan dt51l.exe dalam mode dos atau dt51lwin.exe dalam mode windows.
Program berikut akan mengetes port 1 di DT-51 Minimum System. Output di port 1 akan berlogika 1 dan 0 secara bergantian. Untuk melihat hasil output, kita menggunakan delay agar perubahan logika di port tersebut dapat terlihat.
Listing Program 2 . Tes port 1 DT-51(tesport.asm)
$MOD51
$TITLE(TESPORT)
CSEG
ORG 4000H
AJMP START
ORG 4100H
Delay: MOV R2,#0FH
Del1: MOV R1,#0FFH
DJNZ R1,$
DJNZ R2,Del1
RET
START: MOV SP,#30H
XX: MOV P1,#0FFH ;semua pin di port 1 high
ACALL Delay
MOV P1,#00H ; set low
ACALL Delay
AJMP XX
END
Program diatas akan mengisi SP dengan 30H dan membuat P1 kelap - kelip . Untuk memanggil label Delay digunakan fungsi ACALL .
Hanya dengan menggunakan 1 buah Mikrontroler, kita? dapat menghubungkannya dengan peralatan lainnya seperti sensor, lampu indicator, relay dan LCD. Jika port yang tesedia tidak memadai, biasanya kita menggunakan IC tambahan seperti PPI 8255 sebagai interface dengan rangkaian digital lainnya. Gambar 16.5 menampilkan model interfacing mikrokontroler yang umum, dimana 1 buah mikrokontroler mampu dihubungkan dengan berbagai devais.
Langganan:
Komentar (Atom)
