laporan mikroprosesor - wave generator

39
LAPORAN PRAKTIKUM MIKROPROSESOR PROGRAM PEMBANGKIT GELOMBANG TANGGAL PERCOBAAN : 12 Desember 2014 NAMA : Dessy Iztamia Shema (131331043) PARTNER : Ajeung Mustika S. (131331036) Andika Himawan E. (131331039) KELAS : 2 TC B

Upload: dessy-iztamia-shema

Post on 24-Jan-2016

286 views

Category:

Documents


1 download

DESCRIPTION

Laporan Mikroprosesor

TRANSCRIPT

Page 1: Laporan Mikroprosesor - Wave Generator

LAPORAN PRAKTIKUM MIKROPROSESOR

PROGRAM PEMBANGKIT GELOMBANG

TANGGAL PERCOBAAN : 12 Desember 2014

NAMA : Dessy Iztamia Shema (131331043)

PARTNER : Ajeung Mustika S. (131331036)

Andika Himawan E. (131331039)

KELAS : 2 TC B

PROGRAM STUDI D3-TEKNIK TELEKOMUNIKASI

POLITEKNIK NEGERI BANDUNG

2014

Page 2: Laporan Mikroprosesor - Wave Generator

PROGRAM PEMBANGKIT GELOMBANG

I. Tujuan

Membuat program untuk membangkitkan gelombang sinus dengan amplitudo dan

frekuensi tertentu.

Membuat program untuk membangkitkan gelombang modulasi AM dengan

amplitudo dan frekuensi tertentu.

II. Landasan Teori

Sebagian sinyal langsung ditemui dalam ilmu dan teknik yang terus menerus:

intensitas cahaya yang berubah dengan jarak, tegangan yang bervariasi dari waktu ke

waktu, sebuah reaksi kimia tingkat yang tergantung pada temperatur, dll Analog-to-

Digital Konversi (ADC) dan Digital-to Analog-Konversi (DAC) adalah proses yang

memungkinkan komputer digital untuk berinteraksi dengan sinyal-sinyal sehari-hari.

Informasi digital berbeda dari rekan terus-menerus dalam dua hal penting: itu

sampel, dan terkuantisasi. Kedua membatasi berapa banyak informasi sinyal digital

dapat berisi. Bab ini adalah tentang manajemen informasi: memahami informasi apa

yang Anda butuhkan untuk mempertahankan, dan informasi apa yang Anda mampu

untuk kehilangan. Pada gilirannya, ini menentukan pemilihan frekuensi sampling,

jumlah bit, dan jenis penyaringan analog yang diperlukan untuk mengkonversi antara

alam analog dan digital.

Salah satu komponen penting dalam sistem akuisisi data adalah pengubah besaran

analog ke digital atau disebut juga ADC (Analog to Digital Converter).Pengubah ini akan

mengubah besaran - besaran analog menjadi bilangan-bilangan digital sehingga bisa diproses dengan

komputer. IC ADC 0804 dianggap dapat memenuhi kebutuhan dari rangkaian yang akan

dibuat. IC jenis ini bekerja secaracermat dengan menambahkan sedikit komponen

sesuai dengan spesifikasi yangharus diberikan dan dapat mengkonversikan secara cepat

suatu masukan tegangan.

Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC ini adalahtegangan

maksimum yang dapat dikonversikan oleh ADC dari rangkaian pengkondisi sinyal,

resolusi, pewaktu eksternal ADC, tipe keluaran, ketepatan dan waktu konversinya.

Beberapa karakteristik penting ADC :

Page 3: Laporan Mikroprosesor - Wave Generator

1. Waktu konversi

2. Resolusi

3. Ketidaklinieran

4. Akurasi

Contoh aplikasi ADC ini bisa kita lihat misalnya pada voltmeter digital, sampling

suara dengan komputer, sehingga suara dapat disimpan secara digital dalam disket, dan

kamera digital. Konsep pengubah analog ke digital ini adalah sampling (mengambil

contoh dalam waktu tertentu) kemudian mewakilinya dengan bilangan digital dengan

batas yang sudah diberikan.

Ada banyak cara yang dapat digunakan untuk mengubah sinyal analogmenjadi

sinyal digital yang nilainya proposional. Jenis ADC yang biasadigunakan dalam

perancangan adalah jenis successive approximation convertionatau pendekatan bertingkat

yang memiliki waktu konversi jauh lebih singkat dan tidak tergantung pada nilai masukan

analognya atau sinyal yang akan diubah.

III. Alat yang Digunakan

Trainer Midicom 8085

Set monitor

Set keyboard

Page 4: Laporan Mikroprosesor - Wave Generator

IV. Langkah Kerja

1. Buat flowchart dan program untuk membangkitkan gelombang sinus dengan

amplitudo 7 Vpp dan frekuensi 125 Hz (T = 8 ms), seperti berikut:

Hal pertama yang harus dilakukan adalah menyimpan data titik-titik pembentuk

gelombang sinus di lokasi memori, dalam hal ini disimpan di D000. Kemudian

data tersebut di-outputkan ke port DAC satu persatu dengan delay tertentu yang

dihitung berdasarkan perioda atau frekuensi yang diinginkan.

∆˚ = 5˚

Dari 0˚ - 90˚ = 18 langkah

t = 6134 Tc

∆t = 6134 : 18 = 341 Tc

Dari 0˚ - 90˚ = 19 titik

Dari 95˚ - 175˚ = 17 titik

Total 36 titik

Data di Memori

ALAMAT DATA ALAMAT DATAD000 8 D012 57D001 0F D013 56D002 17 D014 55D003 1E D015 52D004 25 D016 4FD005 2C D017 4CD006 25 D018 48

Page 5: Laporan Mikroprosesor - Wave Generator

D007 38 D019 43D008 3E D01A 3ED009 43 D01B 38D00A 48 D01C 32D00B 4C D01D 2CD00C 4F D01E 25D00D 52 D01F 1ED00E 55 D020 17D00F 56 D021 0FD010 57 D022 8D011 58 D023 0

8 ms0,326 μs

=2450 Tc

1 Tc 24540 Tc

21 Tc -

24519 Tc

P/2 12259,5 Tc ≈ 12259 Tc

Delay x = Delay y

(39+x)36 = 12259 Tc

1404 + 36x = 12259 Tc

x = 301,52 ≈ 301 Tc

Delay 1R

14n + 32 = 301

n = 19,21 ≈ 19(10) = 13(16)

Delay = 14 x 19 + 32 = 298 Tc

Kekurangan = 301 – 298 = 3 Tc

Jika n = 18

Delay = 14 x 18 + 32 = 284 Tc

Kekurangan = 301 – 284 = 17 Tc

Sisipan = LXI dan MVI

Data yang diisikan di alamat memori diperoleh dengan mengalikan sinus sudut titik

dengan tegangan maksimal yang dihasilkan berdasarkan amplitudo yang telah

ditentukan. Data tersebut adalah titik-titik pembentuk gelombang sinus setengah

periode pertama. Untuk setengah periode berikutnya didapat dari data sebelumnya

yang diinvertkan terlebih dahulu, sehingga akan dihasilkan setengah gelombang

yang berkebalikan dengan gelombang sebelumnya.

Flowchart

Page 6: Laporan Mikroprosesor - Wave Generator

Program Utama

Page 7: Laporan Mikroprosesor - Wave Generator

Address Hex. Code Mnemonics Keterangan

7000 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

7002 D3 53 OUT 537004 3E 08 MVI A,087006 D3 53 OUT 537008 3E 04 MVI A,04700A D3 52 OUT 52700C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

700F 21 23D0 LXI H,D023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

7012 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

7013 D3 50 OUT 50 Menampilkan data melalui port 50

7015 CD CDAB CALL ABCD Memanggil subrutin delay

7018 0 NOPInstruksi sisipan agar delay seimbang

7019 0 NOP701A 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

701B F2 1270 JP 7012Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

701E 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

7020 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

7021 2F CMA Meng-invert-kan data pada reg A

7022 3C INR A Menambahkan data reg A dengan 1

7023 D3 50 OUT 50 Menampilkan data melalui port 50

7025 CD CDAB CALL ABCD Memanggil subrutin delay

7028 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

7029 F2 2070 JP 7020Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

702C C3 0C70 JMP 700C Loop gelombang

Program Subrutin

Address Hex. Code Mnemonics Keterangan

ABCD 06 13 MVI B,13Mengisi register B dengan nilai n yang sudah dihitung

sebelumnya

ABCF 5 DCR B Mengurangi register B

ABC0 C2 CFAB JNZ ABCF Menguji apakah B sudah mencapai 0 atau belum

ABC3 11 0000 MVI D,00Sisipan instruksi untuk delay 17 Tc

ABC6 47 LXI D,0000ABC7 C9 RET Kembali ke program utama

Hasil pada osiloskop

Page 8: Laporan Mikroprosesor - Wave Generator

2. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini dengan amplitudo 4 Vp.

Karena gelombang yang diinginkan berbeda amplitudonya, maka berbeda pula

titik-titik pembentuk gelombangnya. Oleh karena itu kita harus kembali

mengisikan memori dengan data yang sesuai. Program ini lebih pendek dari

program sebelumnya karena hanya akan menampilkan setengah gelombang saja

kemudian diulang.

Data di Memori

ALAMAT DATA ALAMAT DATAA000 8 A012 57A001 0F A013 56A002 17 A014 55A003 1E A015 52A004 25 A016 4FA005 2C A017 4CA006 32 A018 48A007 38 A019 43A008 3E A01A 3E

Page 9: Laporan Mikroprosesor - Wave Generator

A009 43 A01B 38A00A 48 A01C 32A00B 4C A01D 2CA00C 4F A01E 25A00D 52 A01F 1EA00E 55 A020 17A00F 56 A021 0FA010 57 A022 9A011 58 A023 0

Flowchart

Program Utama

Address Hex. Code Mnemonics Keterangan

8000 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

8002 D3 53 OUT 538004 3E 08 MVI A,088006 D3 53 OUT 538008 3E 04 MVI A,04800A D3 52 OUT 52800C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

Page 10: Laporan Mikroprosesor - Wave Generator

800F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

8012 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

8013 D3 50 OUT 50 Menampilkan data melalui port 50

8015 CD CDAB CALL ABCD Memanggil subrutin delay

8018 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

8019 F2 1280 JP 8012Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

801C C3 0C80 JMP 800C Loop gelombang

Hasil pada osiloskop

3. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Gelombang yang diinginkan berbeda amplitudo yang berarti kita harus mengisikan

data di alamat memori yang sesuai dengan amplitudo yang diinginkan. Namun

karena gelombang yang diinginkan cukup banyak dan semuanya berbeda

amplitudo maka akan banyak menghabiskan memori apabila kita memasukkan satu

persatu data yang dibutuhkan. Disini kita bisa menyiasatinya dengan cara

memanipulasi data gelombang sebelumnya yang memiliki amplitudo 4 Vp. Untuk

menghasilkan gelombang dengan 2 Vp, maka kita harus membagi 2 data

Page 11: Laporan Mikroprosesor - Wave Generator

gelombang yang ada dengan perintah RAR (geser kanan). Sedangkan untuk

menghasilkan 8 Vp dilakukan dengan menggandakan data.

Flowchart

Page 12: Laporan Mikroprosesor - Wave Generator

Program Utama

Address Hex. Code Mnemonics Keterangan

9000 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

9002 D3 53 OUT 539004 3E 08 MVI A,089006 D3 53 OUT 539008 3E 04 MVI A,04900A D3 52 OUT 52900C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

900F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

9012 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9013 C6 00 ADI 00 Menambahkan reg A dengan 0 untuk clear carry flag

9015 1F RAR Menggeser data ke kanan untuk membagi 2 data

9016 D3 50 OUT 50 Menampilkan data melalui port 50

9018 CD CDAB CALL ABCD Memanggil subrutin delay

901B 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

901C F2 1290 JP 9012Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

901F 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

9021 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9022 D3 50 OUT 50 Menampilkan data melalui port 50

9024 CD CDAB CALL ABCD Memanggil subrutin delay

9027 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9028 F2 2190 JP 9021Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9029 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

902D 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

902E 87 ADD A Menggandakan data di reg A

902F D3 50 OUT 50 Menampilkan data melalui port 50

9031 CD CDAB CALL ABCD Memanggil subrutin delay

9034 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9035 F2 2D90 JP 902DKembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9038 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

903A 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

903B C6 00 ADI 00 Menambahkan reg A dengan 0 untuk clear carry flag

903D 1F RAR Menggeser data ke kanan untuk membagi 2 data

903E 86 ADD MMenambahkan reg A dengan data M agar didapatkan

data dengan amplitudo 6 V

Page 13: Laporan Mikroprosesor - Wave Generator

903F D3 50 OUT 50 Menampilkan data melalui port 50

9041 CD CDAB CALL ABCD Memanggil subrutin delay

9044 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9045 F2 3A90 JP 903AKembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9048 C3 0F90 JMP 900F Loop gelombang

Hasil pada osiloskop

4. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Untuk menghasilkan gelombang seperti gambar diatas pada prinsipnya sama

seperti pada point sebelumnya. Perbedaannya pada bentuk gelombang yang

terbalik kita harus menyisipkan invert data register A pada masing-masing

prosesnya. Namun gelombang yang dihasilkan akan berada dibawah 0 V sehingga

kita harus menaikkan gelombang tersebut sebesar 8 V. Caranya data ditambahkan

65 yang merupakan jumlah step dari 8 V yang ditambahkan dengan komplemen

data.

Flowchart

Page 14: Laporan Mikroprosesor - Wave Generator

Program

Page 15: Laporan Mikroprosesor - Wave Generator

Address Hex. Code Mnemonics Keterangan

9000 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

9002 D3 53 OUT 539004 3E 08 MVI A,089006 D3 53 OUT 539008 3E 04 MVI A,04900A D3 52 OUT 52900C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

900F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

9012 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9013 C6 00 ADI 00 Menambahkan reg A dengan 0 untuk clear carry flag

9015 1F RAR Menggeser data ke kanan untuk membagi 2 data

9016 2F CMA Meng-invert-kan data pada reg A

9017 C6 65 ADI 65Menambahkan data reg A dengan 65 agar gelombang

naik 8 V

9019 D3 50 OUT 50 Menampilkan data melalui port 50

901B CD CDAB CALL ABCD Memanggil subrutin delay

901E 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

901F F2 1290 JP 9012Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9022 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

9024 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9025 2F CMA Meng-invert-kan data pada reg A

9026 C6 65 ADI 65Menambahkan data reg A dengan 65 agar gelombang

naik 8 V

9028 D3 50 OUT 50 Menampilkan data melalui port 50

902A CD CDAB CALL ABCD Memanggil subrutin delay

902D 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

902E F2 2590 JP 9024Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9031 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

9033 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9034 87 ADD A Menggandakan data reg A

9035 2F CMA Meng-invert-kan data pada reg A

9036 C6 65 ADI 65Menambahkan data reg A dengan 65 agar gelombang

naik 8 V

9038 D3 59 OUT 50 Menampilkan data melalui port 50

903A CD CDAB CALL ABCD Memanggil subrutin delay

903D 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

903E F2 3490 JP 9033Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

Page 16: Laporan Mikroprosesor - Wave Generator

9041 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

9043 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9044 C6 00 ADI 00 Menambahkan reg A dengan 0 untuk clear carry flag

9046 1F RAR Menggeser data ke kanan untuk membagi 2 data

9047 86 ADD MMenambahkan reg A dengan data M agar didapatkan

data dengan amplitudo 6 V

9048 2F CMA Meng-invert-kan data pada reg A

9049 C6 65 ADI 65Menambahkan data reg A dengan 65 agar gelombang

naik 8 V

904B D3 50 OUT 50 Menampilkan data melalui port 50

904D CD CDAB CALL ABCD Memanggil subrutin delay

9050 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9051 F2 4490 JP 9043Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9054 C3 0FD JMP 900F Loop gelombang

Hasil pada osiloskop

5. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Untuk menghasilkan gelombang modulasi dengan frekuensi tinggi seperti gambar

diatas, dibuat dengan cara mengisikan data di register A dengan 0 kemudian

Page 17: Laporan Mikroprosesor - Wave Generator

dikurangi dengan data yang disimpan di memori agar gelombang bergerak ke

bawah. Proses ini dilakukan di setiap stepnya sebelum data di loop kembali ke step

berikutnya. Agar periode satu gelombangnya sesuai maka delay harus dibagi 2 dari

delay sebelumnya.

Delay x/2 = 301/2 Tc = 150,5 ≈ 150 Tc

Delay 1R

14n + 32 = 150

n = 8,42 ≈ 8(10) = 08(16)

Delay = 14 x 8 + 32 = 144 Tc

Kekurangan = 150 – 144 = 6 Tc

Sisipan = DCX

Flowchart

Program Utama

Address Hex. Code Mnemonics Keterangan

Page 18: Laporan Mikroprosesor - Wave Generator

8500 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

8502 D3 53 OUT 538504 3E 08 MVI A,088506 D3 53 OUT 538508 3E 04 MVI A,04850A D3 52 OUT 52850C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

850F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

8512 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

8513 D3 50 OUT 50 Menampilkan data melalui port 50

8515 CD CDAB CALL ABCD Memanggil subrutin delay

8518 3E 00 MVI A,00 Mengisi data reg A dengan 00

851A 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

851B D3 50 OUT 50 Menampilkan data melalui port 50

851D CD CDAB CALL ABCD Memanggil subrutin delay

8520 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

8521 F2 1285 JP 8512Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

8524 C3 0F85 JMP 850F Loop gelombang

Program Subrutin

Address Hex. Code Mnemonics Keterangan

ABCD 06 08 MVI B,08Mengisi register B dengan nilai n yang sudah dihitung

sebelumnya

ABCF 5 DCR B Mengurangi register B

ABC0 C2 CFAB JNZ ABCF Menguji apakah B sudah mencapai 0 atau belum

ABC3 1B DCX D Sisipan instruksi

ABC4 C9 RET Kembali ke program utama

Hasil pada osiloskop

Page 19: Laporan Mikroprosesor - Wave Generator

6. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Sama seperti pada point sebelumnya, namun pada program ini ada penambahan

saat gelombang berada pada 0 V. Register A diisikan 0 kemudian ditampilkan

selama delay yang ditentukan. Delay tersebut diulang sebanyak 72 kali agar

periodenya seimbang dengan gelombang yang dihasilkan.

Flowchart

Page 20: Laporan Mikroprosesor - Wave Generator

Program

Page 21: Laporan Mikroprosesor - Wave Generator

Address Hex. Code Mnemonics Keterangan

8500 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

8502 D3 53 OUT 538504 3E 08 MVI A,088506 D3 53 OUT 538508 3E 04 MVI A,04850A D3 52 OUT 52850C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

850F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

8512 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

8513 D3 50 OUT 50 Menampilkan data melalui port 50

8515 CD CDAB CALL ABCD Memanggil subrutin delay

8518 3E 00 MVI A,00 Mengisi data reg A dengan 00

851A 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

851B D3 50 OUT 50 Menampilkan data melalui port 50

851D CD CDAB CALL ABCD Memanggil subrutin delay

8520 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

8521 F2 1285 JP 8512Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

8524 3E 00 MVI A,00 Mengisi data reg A dengan 00

8526 D3 50 OUT 50 Menampilkan data melalui port 50

8528 0E 48 MVI C,48 Mengisi reg C dengan 48 sebagai loop delay

852A CD CDAB CALL ABCD Memanggil subrutin delay

852D 0D DCR C Mengurangkan reg C

852E C2 2A85 JNZ 852A Menguji apakah C sudah mencapai 0 atau belum8531 C3 0F85 JMP 850F Loop gelombang

Hasil pada osiloskop

Page 22: Laporan Mikroprosesor - Wave Generator

7. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Sama seperti pembuatan gelombang modulasi di point 5, perbedaannya hanya letak

gelombangnya. Data di register A ditambahkan dengan 32 untuk menghasilkan

gelombang naik sebesar 4 V dan dikurangkan dengan 32 untuk menghasilkan

gelobang turun sebesar 4 V di bawah 0 V.

Flowchart

Page 23: Laporan Mikroprosesor - Wave Generator

Program

Address Hex. Code Mnemonics Keterangan

9500 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

9502 D3 53 OUT 539504 3E 08 MVI A,089506 D3 53 OUT 539508 3E 04 MVI A,04950A D3 52 OUT 52950C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

950F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

9512 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9513 C6 32 ADI 32Menambahkan data di reg A dengan 32 agar

gelombang naik 4 V

9515 D3 50 OUT 50 Menampilkan data melalui port 50

9517 CD CDAB CALL ABCD Memanggil subrutin delay

951A 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

951C 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

951D C6 32 ADI 32Menambahkan data di reg A dengan 32 agar

gelombang naik 4 V

951F D3 50 OUT 50 Menampilkan data melalui port 50

9521 CD CDAB CALL ABCD Memanggil subrutin delay

9524 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9525 F2 1295 JP 9512Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9528 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

952A 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

952B D6 32 SUI 32Mengurangkan data di reg A dengan 32 agar

gelombang turun 4 V

952D D3 50 OUT 50 Menampilkan data melalui port 50

952F CD CDAB CALL ABCD Memanggil subrutin delay

9532 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

9534 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

9535 D6 32 SUI 32Mengurangkan data di reg A dengan 32 agar

gelombang turun 4 V

9537 D3 50 OUT 50 Menampilkan data melalui port 50

9539 CD CDAB CALL ABCD Memanggil subrutin delay

953C 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

Page 24: Laporan Mikroprosesor - Wave Generator

953D F2 2A95 JP 952AKembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9540 C3 0F95 JMP 950F Loop gelombang

Hasil pada osiloskop

8. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Program ini menggunakan penggabungan prinsip gelombang gelombang sinus dan

gelombang modulasi. Pada setengah periode gelombang pertama, data akan terus

naik turun dibatasi pada 0 V. Kemudian pada setengah periode ke-2 ada beberapa

cara untuk membuatnya, yaitu dengan menginvertkan data dan dengan

mengurangkan A yang berisi 0 dengan data tersebut.

Page 25: Laporan Mikroprosesor - Wave Generator

Flowchart

Program

Address Hex. Code Mnemonics Keterangan

8200 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

8202 D3 53 OUT 538204 3E 08 MVI A,088206 D3 53 OUT 538208 3E 04 MVI A,04820A D3 52 OUT 52820C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

820F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

Page 26: Laporan Mikroprosesor - Wave Generator

8212 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

8213 D3 50 OUT 50 Menampilkan data melalui port 50

8215 CD CDAB CALL ABCD Memanggil subrutin delay

8218 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

821A D3 50 OUT 50 Menampilkan data melalui port 50

821C CD CDAB CALL ABCD Memanggil subrutin delay

821F 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

8220 F2 1282 JP 8212Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

8223 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

8225 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

8227 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

8228 D3 50 OUT 50 Menampilkan data melalui port 50

822A CD CDAB CALL ABCD Memanggil subrutin delay

822D 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

822F D3 50 OUT 50 Menampilkan data melalui port 50

8231 CD CDAB CALL ABCD Memanggil subrutin delay

8234 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

8235 F2 2682 JP 8225Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

8238 C3 0F82 JMP 820F Loop gelombang

Hasil pada osiloskop

9. Buat flowchart dan program untuk membangkitkan gelombang seperti gambar di

bawah ini.

Page 27: Laporan Mikroprosesor - Wave Generator

Flowchart

Page 28: Laporan Mikroprosesor - Wave Generator

Program

Address Hex. Code Mnemonics Keterangan

9700 3E A2 MVI A,A2

Mengalihkan port 50 dan 51 yang tadinya digunakan untuk input saklar dan output LED menjadi DAC dan

ADC.

9702 D3 53 OUT 539704 3E 08 MVI A,089706 D3 53 OUT 539708 3E 04 MVI A,04970A D3 52 OUT 52970C 31 FFFF LXI SP,FFFF Inisialisasi stack pointer

970F 21 23A0 LXI H,A023Mengisi reg HL dengan alamat akhir tempat data

gelombang sinus yang akan ditampilkan

9712 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

9713 C6 32 ADI 32Menambahkan data di reg A dengan 32 agar

gelombang naik 4 V

9715 D3 50 OUT 50 Menampilkan data melalui port 50

9717 CD CDAB CALL ABCD Memanggil subrutin delay

971A 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

971C 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

971D C6 32 ADI 32Menambahkan data di reg A dengan 32 agar

gelombang naik 4 V

971F D3 50 OUT 50 Menampilkan data melalui port 50

9721 CD CDAB CALL ABCD Memanggil subrutin delay

9724 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9725 F2 1297 JP 9712Kembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9728 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

972A 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

972B D3 50 OUT 50 Menampilkan data melalui port 50

972D CD CDAB CALL ABCD Memanggil subrutin delay

9730 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

9732 3E 00 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

9733 D3 50 OUT 50 Menampilkan data melalui port 50

9735 CD CDAB CALL ABCD Memanggil subrutin delay

9738 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9739 F2 2A97 JP 972AKembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

973C 2E 23 MVI L,23 Mengisi reg L dengan alamat akhir data

973E 7E MOV A,MMengisi reg A dengan data pada alamat yang

ditunjukkan reg HL

Page 29: Laporan Mikroprosesor - Wave Generator

973F D6 32 SUI 32Mengurangkan data di reg A dengan 32 agar

gelombang turun 4 V

9741 D3 50 OUT 50 Menampilkan data melalui port 50

9743 CD CDAB CALL ABCD Memanggil subrutin delay

9746 3E 00 MVI A,00Mengisi data reg A dengan 00 agar gelombang

kembali ke 0 V

9748 96 SUB MMengurangkan reg A dengan data di M untuk bagian

gelombang di bawah 0 V

9749 D6 32 SUI 32Mengurangkan data di reg A dengan 32 agar

gelombang turun 4 V

974D CD CDAB CALL ABCD Memanggil subrutin delay

9750 2D DCR L Mengurangkan L untuk menunjuk ke data selanjutnya

9751 F2 3E97 JP 973EKembali ke proses pengisian data reg A, apabila L

belum mencapai alamat negatif

9754 C3 0F97 JMP 970F Loop gelombang

Hasil pada osiloskop

V. Kesimpulan

Page 30: Laporan Mikroprosesor - Wave Generator

Kesimpulan yang dapat ditarik dari praktikum diatas adalah:

Pada saat kita membuat program untuk menampilkan gelombang atau pulsa harus

selalu ada ke 6 instruksi awal, karena 6 instruksi awal itu berfungsi mengalih

fungsikan menjadi ADC atau DAC.

Untuk membuat gelombang sinus, berbeda dengan gelombang kotak atau segitiga.

Kita harus mencari satu persatu titik yang membentuk gelombang sinus tersebut

kemudian disimpan pada suatu alamat memori tertentu. Apabila kita ingin

menampilkan gelombang tersebut, dilakukan dengan cara memanggil data yang

sudah kita simpan di memori tadi.

Titik-titik gelombang sinus akan berbeda tergantung pada amplitudo gelombang.

Namun kita bisa memanipulasinya dengan cara menggandakan, mengurangi atau

menambahkan data untuk menghasilkan gelombang sinus yang berbeda

amplitudonya dalam satu kali tampil.

Delay harus diperhatikan karena akan sangat berpengaruh terhadap frekuensi

gelombang yang akan ditampilkan.

Untuk membuat gelombang modulasi, dilakukan dengan cara mengisi register A

dengan 0 atau mengurangi datanya pada setiap step sebelum melakukan loop ke

proses selanjutnya. Sehingga akan terbentuk gelombang yang terus naik turun

dengan frekuensi tinggi.