Anda di halaman 1dari 5

RANDOM NUMBER GENERATOR USING SEVEN SEGMENT LAPORAN PROJECT PRAKTIKUM MIKROPRESESOR 2 Dasar Teori Sebuah generator nomor

acak menggunakan MCS-51 yang menampilkan nomor acak antara 0 s/d 99 ditampilkan pada artikel ini. Rangkaian itu sendiri sangat sederhana dan mungkin tidak menemukan aplikasi dalam proyek-proyek embedded serius dan artikel ini hanya ilustrasi. Rangkaian ini berbasis mikrokontroler AT89S51, dua seven segment LED display, dua transistor dan beberapa komponen pasif. 2 buah Seven segmen LED display multiplexing bersama-sama dan garis data terhubung ke Port0 dari mikrokontroler. Transistor Q1 dan Q2 drive menampilkan sesuai D1 dan D2. Sinyal mengemudi karena ada transistor diperoleh dari P1.1 dan P1.2. Tekan tombol saklar S1, kapasitor C1 dan resistor R10 membentuk rangkaian reset debouncing. Resistor R9, kapasitor C2 dan tombol tekan saklar S2 akan memberikan harware rendah sinyal interrupt aktif di INTO (pin12) ketika pernah S2 ditekan. Di sini juga R9 dan C2 dimaksudkan untuk debouncing. Setelah power ON akan muncul tampilan kosong dan ketika tombol S2 ditekan layar akan menampilkan nomor acak antara 0 s/d 99. Untuk mencoba lagi Anda harus menekan tombol reset dan kemudian beralih S2. Jika Anda membutuhkan setup satu digit saja, D2 tampilan menghapus dan komponen terkait. Segala sesuatu yang lain adalah sama.

Alat dan Bahan 1. 2. 3. 4. 5. 6. 7. 8. IC AT89S51 Resistor 8.2 k Resistor 10 k Resistor 100 Kapasitor 10uF/10V` Push Button Transistor 2N2222 Seven segmen 1 buah 1 buah 1 buah 10 buah 2 buah 2 buah 2 buah 2 buah

Algoritma 1. Menentukan parameter awal dan parameter interrupt 2. LABEL:MOV R6,#99D mendaftarkan R6 3. Kemudian menurunkan dengan 1 sampai 0 4. Mengulangi siklus kembali 5. Tiap kali R6 decremented nilai maka akan dipindahkan ke akumulator A 6. Kemudian, menginterrupt servis rutin (subroutine) 7. Jika interupsi di INT0 (tombol S2 ditekan) 8. Subroutine menambah nilai A dengan alamat yang tersimpan dalam DPTR 9. Menampilkan isi nilai A pada seven segment

Blok Diagram

Gambar 1. Blok Diagram Random Number Generator

Gambar Rangkaian

Gambar 2. Rangkaian Random Number Generator Program $MOD51 ORG 000H PULUHAN SATUAN LABEL : LOOP :

EQU 31H EQU 32H

MOV R3,#99D ;Bagian mengenerate angka acak CALL ANGKA CALL DISPLAY7SEGMENT DJNZ R3,LOOP SJMP LABEL ANGKA : MOV A, R3 MOV B,#10D DIV AB MOV PULUHAN,A MOV SATUAN,B RET DISPLAY7SEGMENT : CALL TUNGGU

TUNGGU : TUNGG : TUNGGU1 :

MOV MOV MOV DJNZ DJNZ DJNZ RET DELAY : MOV MOV LOAD : MOV MOV SETB OFLOW : CALL JNB CLR CLR INC CJNE RET DATA7SEGMENT :

SETB P2.6 CLR P2.7 MOV A,PULUHAN MOV DPTR,#DATA7SEGMENT MOVC A,@A+DPTR MOV P0,A CALL TUNGGU CLR P2.6 SETB P2.7 MOV A,SATUAN MOV DPTR,#DATA7SEGMENT MOVC A,@A+DPTR MOV P0,A RET R5,#01H R6,#02FH R2,#02FH R2,$ R6,TUNGGU1 R5,TUNGG R0,#0 TMOD,#00000001B TH0,#0E8H TL0,#0F0H TR0 DISPLAY7SEGMENT TF0,OFLOW TR0 TF0 R0 R0,#100,LOAD DB DB DB DB DB DB DB DB 3FH ; Look up table 06H 5BH 4FH 66H 6DH 7DH 07H

DB 7FH DB 6FH END Cara Kerja Bagian pertama dari program ini adalah bagian berlabel MAIN yang menetapkan kondisi awal dan parameter interupsi. Bagian berikutnya adalah loop bernama LABEL yang beban 99D untuk mendaftar R6 kemudian menurunkan dengan 1 sampai 0 dan kemudian mengulangi siklus itu lagi. Ini adalah bagian yang menghasilkan nomor acak. Setiap kali R6 decremented nilai yang dihasilkan dipindahkan ke akumulator A. bagian berikutnya adalah interupsi servis rutin yang ditulis sebagai subroutine bernama ISR. Ketika pernah ada interupsi di INT0 (tombol S2 ditekan), ISR disebut. The ISR perfoms manipulasi matematika yang diperlukan pada isi A dalam rangka untuk membagi dua digit dan kemudian mulai menunjukkan pada layar. Subrutin menghasilkan delay sekitar 1ms untuk beralih menampilkan. DISPLAY subroutine menambah nilai saat ini di A dengan alamat yang tersimpan dalam DPTR (mulai alamat LUT) dan bergerak isi target A. Hasilnya akan pola digit drive untuk digit saat ini di A.

Anda mungkin juga menyukai