tugas uas mikro

14
Tugas Mikroposesor Nama : Miftahuddin Arsyahadij NIM : 21060113130179 Kelas :A Teknik Elektro Fakultas Teknik Universitas Diponegoro 2015

Upload: adimifar

Post on 10-Sep-2015

240 views

Category:

Documents


1 download

DESCRIPTION

Mikro Elektro

TRANSCRIPT

  • 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.