tugas uas mikro
DESCRIPTION
Mikro ElektroTRANSCRIPT
-
Tugas Mikroposesor
Nama : Miftahuddin Arsyahadij
NIM : 21060113130179
Kelas :A
Teknik Elektro
Fakultas Teknik
Universitas Diponegoro
2015
-
Soal:
1. Sebutkan beragam mode pengalamatan dalam bahasa assembler mikroprosesor
disertai contoh.
2. Suatu bahasa asembler ;
START:
Mov a,#0F0h
Mov b,#10
Acall clmem
Sjmp $ ;??? A,b dan C
CLMEM: MOV b,#10
Mov a,#0F0h
CLR C
LOOP: add a,b
Djnz b,loop
RET
3. Sebutkan dan jelaskan semua jenis penyimpan data yang digunakan dalam
suatu sistem mikroprosesor sederhana.
4. Berikan penjelasan tentang bcd, buatlah algoritma yang mengkonversi biner ke
bcd 3 digit.
5. Port 1 suatu mikrokontroler AT89MCS 51 adalah input data 8 bit yang
menerima data biner 8 bit. P3.4 dan P3.5 adalah output bit led hijau dan led
merah. Buatlah asembler yang mendeteksi sbb; jika input biner genap, led
merah menyala, kalau ganjil led hijau menyala. Led aktif low.
6. Port 1 suatu mikrokontroler AT89MCS 51 adalah input data 8 bit yang
menerima data biner 8 bit. P3.3, P3.4 dan P3.5 adalah output bit led hijau,
kuning dan merah. Buatlah asembler yang mendeteksi sbb; jika input =200 led merah
menyala. Led aktif low.
-
7. Kapan sistem mikroprosesor menggunakan kristal dan kapan hanya
menggunakan RLC untuk osilatornya, jelaskan dengan contoh.
8. Kapan sistem mikroprosesor menggunakan memory ram statis dan kapan
menggunakan memory ram dinamis.
9. Kapan dipilih menggunakan sistem mikroprosesor dan kapan dipilih sistem
mikrokontroler.
10. Kapan dipilih menggunakan bahasa C, dan kapan dipilih menggunakan bahasa
Asembler.
-
Jawab:
1. Ragam Pengalamatan (Addressing Mode)
a. Pengalamatan Register (Register Addressing)
Ex : ADD a,R7 ;aBARU = aLAMA + R7
b. Pengalamatan Langsung (Direct Addressing)
Ex : ADD a,79h ;aBARU = aLAMA + (data di lokasi memori
;79h)
c. Pengalamatan Tidak Langsung (Indirect Addressing)
Ex : MOV a,@R1 ;Baca isi R1 (isi R1 = 79h). Isi a dengan
;data yang berada di lokasi 79h
d. Pengalamatan Segera (Immediate Addressing)
Ex : ADD a,#79h ;aBARU = aLAMA + 79h (79h adalah
;konstanta)
e. Pengalamatan Relatif (Relatif Anddressing)
Ex : Sjmp dekat ;short jump relatif dengan jarak +127
dan -128
f. Pengalamatan Absout 11 bit (Absolute Adderessing)
Ex : Ajmp sedang ;absolute jump 11 bit alamat
g. Pengalamatan Absout 16 bit (Long Adderessing)
Ex : Ljmp jauh ;absolute long 16 bit alamat
h. Pengalamatan Berindeks (Indexed Adderessing)
Ex : MOVX a, @DPTR ;copy data di lokasi memori yang ada di
;dalam DPTR ke register a
-
2. Program Assembler
a = F0h
b = 10 = 0Ah
c = 0
Loop 1
a = a + b
a = F0 + 0A
a = FA => c = 0
Loop 2
a = a + b
a = FA + 09
a = 03 => c = 1
Loop 3
a = a + b
a = 03 + 08
a = 0B => c = 0
Loop 4
a = a + b
a = 0B + 07
a = 12 => c = 0
Loop 5
a = a + b
a = 12 + 06
a = 18 => c = 0
Loop 6
a = a + b
a = 18 + 05
a = 1D => c = 0
Loop 7
a = a + b
a = 1D + 04
a = 21 => c = 0
-
Loop 8
a = a + b
a = 21 + 03
a = 24 => c = 0
Loop 7
a = a + b
a = 24 + 02
a = 26 => c = 0
Loop 7
a = a + b
a = 26 + 01
a = 27 => c = 0
Jadi, nilai a = 27h, b = 0h, dan c = 0
3. Jenis Penyimpanan Data
a. Register Bank
Dari alamat 00h sampai 1Fh disebut Register Bank 0, yang
terdiri dari R0 sampai R7, demikian juga di atasnya sampai alamat 1Fh.
Nama dari masing-masing memri tersebut juga R0 smapai R7 untuk
masing-masing register bank, atau secara umum dinamakan Rn.
Pengalamatan menggunakan nama Rn lebih efektif dibandingkan
dengan pengalamatan dengan menggunakan nomor alamat.
Penggunaan dan pengaktifan Rn pada pemrograman, lokasinya
ditentukan oleh dua bit kecuali kendali pada register PSW. Rn hanya
dapat berfungsi sebagai nilai operand kedua pada perhitungan aritmatika
atau pun operasi logika dengan operand pada akumulator
-
b. RAM yang dapat dialamati bit (Bit-Addressable RAM)
Di atas Rn, mulai alamat 20 sampai 2F adalah memori RAM yang
memiliki alamat byte (selayaknya RAM biasa) dan memiliki alamat bit,
artinya tiap dari byte data di alamat tersebut dapat diakses, contoh :
lokasi 2Fh dapat diisi dengan data 8 bit (pengalamatan secara byte) dan
bit ke-7 dari data dilokasi tersebut dapat di set (1) atau di clear (0),
tanpa mempengaruhi bi-bit yang lain, yaitu dengan mengalamati 7Fh.
-
c. RAM Fungsi Umum
Dari lokasi 30h hingga 7Fh adalah RAM biasa yang tidak dapat
dialamati secara bit. Lokasi 30h biasanya dalam program digunakan
untuk proses tumpukan (stack)
d. Register Fungsi Khusus (Special Function Registers)
Register dengan fungsi khusus adalah register-register pada
mikrokontroller AT89C51 yang memiliki fungsi-fungsi khusus.
Register-register ini menempati alamat pada RAM internal 80 sampai
FFh.
4. BCD
Binary Code Decimal (BCD) adalah sebuah sistem sandi yang umum
digunakan untuk menyatakan angka desimal secara digital. BCD adalah sistem
pengkodean bilangan desimal yang metodenya mirip dengan bilangan biner
biasa; hanya saja dalam proses konversi, setiap simbol dari bilangan desimal
dikonversi satu per satu, bukan secara keseluruhan seperti konversi bilangan
desimal ke biner biasa. BCD (Binary Coded Decimal) merupakan kode biner
-
yang digunakan hanya untuk mewakili nilai digit desimal saja, yaitu nilai angka
0 sampai dengan 9. BCD menggunakan kombinasi dari 4 bit, sehingga
sebanyak 16 (24=16) kemungkinan kombinasi yang bisa diperoleh dan hanya
10 kombinasi yang dipergunakan. Kode BCD yang orisinil sudah jarang
dipergunakan untuk komputer generasi sekarang, karena tidak dapat mewakili
huruf atau simbol-simbol karakter khusus. BCD dipergunakan untuk
komputer generasi pertama.
BCD sangat umum dalam sistem elektronik dimana nilai numerik yang
akan ditampilkan, terutama dalam sistem yang terdiri semata-mata logika
digital, dan tidak mengandung mikroprosesor. Dengan memanfaatkan BCD,
manipulasi data numerik untuk layar dapat sangat disederhanakan dengan
memperlakukan setiap digit sebagai rangkaian tunggal yang terpisah-sub. Oleh
karena itu, dalam kasus di mana perhitungan relatif sederhana yang bekerja di
seluruh dengan BCD dapat mengakibatkan sistem secara keseluruhan lebih
sederhana daripada konversi ke biner.
1) Apabila setiap digit desimal (satuan, puluhan, atau ratusan) bernilai 5,
tambah 3 pada digit decimal tersebut.
2) Geser 1 digit biner ke kiri.
3) Ulangi hingga digit biner habis.
-
Pembuktian Algoritma
Ex:
Konversi biner dari 179 menjadi BCD. Awalnya ubah 179 menjadi
biner. 179=000010110011b.
Ratusan Puluhan Satuan Biner
000010110011
1 0110011
10 110011
101 10011
+11
1000 10011
1 0001 0011
10 0010 011
100 0100 11
1000 1001 1
+11 +11
1011 1100 1
1 0111 1001
1 7 9
Dari percobaan di atas, algoritma terbukti benar karena mampu
menghasilkan angka BCD 179 dari biner 179. Angka BCD untuk 179 adalah
101111001BCD
5. Program indicator bialngan ganjil dan genap
ORG 0000h
MERAH EQU P3.5
HIJAU EQU P3.4
-
INIT:
MOV P1,#0ffh ;Set Port1 menjadi input
START:
JB P1.0,GANJIL ;Jika P1.0 = 1, lompat ke GANJIL
JNB P1.0,GENAP ;Jika P1.0 = 0 lompat ke GENAP
GANJIL:
SETB MERAH ;Matikan led merah
CLR HIJAU ;Nyalakan led hijau
RET ;Kembali ke awal program
GENAP:
SETB HIJAU ;Matikan led hijau
CLR MERAH ;Nyalakan led merah
RET ;Kembali ke awal program
End ;mengakhiri program
6. Program mengelompokan angka
ORG 0000h
BAWAH EQU 20h
ATAS EQU 21h
HIJAU EQU P3.3
KUNING EQU P3.4
MERAH EQU P3.5
-
INIT:
MOV BAWAH,#100 ;Set batas bawah
MOV ATAS,#200 ;Set batas atas
MOV P1, #0ffh ;Set Port1 menjadi input
START:
MOV A, P1
UPPER:
CJNE A, ATAS, LOWER ;Bandingkan nilai A dengan atas
LOWER:
JNC MERAH_ON ;Jika C=1, lompat ke MERAH_ON
CJNE A, BAWAH, MIDDLE ;Bandingkan nilai A dengan atas
SJMP HIJAU_ON ;Jika A=BAWAH,lompat ke HIJAU_ON
MIDDLE:
JC HIJAU_ON ;Jika C=1, lompat ke HIJAU_ON
SJMP KUNING_ON ;Jika C=0, lompat ke KUNING_ON
HIJAU_ON:
CLR HIJAU ;nyalakan led hijau
SETB KUNING ;matikan led kuning
SETB MERAH ;matikan led merah
RET ;Kembali ke awal program
-
KUNING_ON:
SETB HIJAU ;matikan led hijau
CLR KUNING ;nyalakan led kuning
SETB MERAH ;matikan led merah
RET ;kembali ke awal program
MERAH_ON:
SETB HIJAU ;matikan led hijau
SETB KUNING ;matikan led kuning
CLR MERAH ;nyalakan led merah
RET ;kembali ke awal program
End ;mengakhiri program
7. Penggunaan osilator kristal dan osilator RLC
Kristal lazimnya digunakan untuk rangkaian osilator yang menuntut
stabilitas frekuensi yang tinggi dalam jangka waktu yang panjang. Alasan
utamanya adalah karena perubahan nilai frekuensi kristal seiring dengan waktu,
atau disebut juga dengan istilah faktor penuaan frekuensi (frequency aging),
jauh lebih kecil dari pada osilator-osilator lain. Faktor penuaan frekuensi untuk
kristal berkisar pada angka 5ppm/tahun, jauh lebih baik dari pada faktor
penuaan frekuensi osilator RC ataupun osilator LC yang biasanya berada diatas
1%/tahun.
Kristal juga mempunyai stabilitas suhu yang sangat bagus. Lazimnya,
nilai koefisien suhu kristal berada dikisaran 50ppm direntangan suhu operasi
normal dari -20C sampai dengan +70C. Bandingkan dengan koefisien suhu
kapasitor yang bisa mencapai beberapa persen. Untuk aplikasi yang menuntut
stabilitas suhu yang lebih tinggi, kristal dapat dioperasikan didalam sebuah oven
kecil yang dijaga agar suhunya selalu konstan.
-
8. Pemilihan RAM statis dan RAM dinamis
RAM statis digunakan untuk membuat sistem yang menginginkan
memori yang dapat dengan cepat diakses, sedangkan RAM dinamis digunakan
ketika membuat sistem yang menginginkan memori yang besar.
9. Mikrokontroler dan mikroprosesor
Sistem mikroprosesor digunakan ketika sebuah sistem dirancang untuk
melakukan proses data yang membutuhkan manajemen memori besar,
contohnya komputer, Tablet PC, Smartphone, dan lain-lain. Manajemen
memori biasanya digunakan untuk mempermudah menjalankan sebuah
Operating System pada suatu sistem.
Sedangkan sistem mikrokontroler digunakan ketika sebuah sistem
dirancang untuk banyak berinteraksi dengan dunia luar, contohnya seperti
robot. Sistem mikrokontroler memiliki akses yang lebih mudah dalam hal
manajemen input output sistem, karena sistem I/O sudah terdapat langsung
pada chip mikrokontroler
10. Bahasa pemrograman
Bahasa C digunakan ketika pengembang sistem menginginkan kode
yang ditulisnya mudah di-debug sehingga mempersingkat waktu
pengembangan, terutama ketika kode dikembangkan oleh banyak orang.
Bahasa Assembler digunakan ketika pengembang mengharapkan kode yang
ditulisnya memakan memori yang lebih kecil dan penggunaan sistem yang lebih
efisien.
Untuk memenuhi kedua tujuan ini, kode ditulis dalam bahasa C dan
sebagian didalamnya dituliskan dengan bahasa Assembler dengan
memberitahu kompiler C bahwa bagian tersebut merupakan bahasa
Assembler.