MODUL PRAKTIKUM
ARSITEKTUR KOMPUTER
Disusun Oleh : Jurusan Teknik InfORmatika
Fakultas Sains dan Teknologi Universitas Islam Negeri Sultan Syarif Qasim 2013
Prosedur Pembuatan Program 1. Untuk membuat program dapat dilakukan menggunakan software Notepad atau Wordpad. 2. Jika menggunakan software Notepad atau Wordpad maka prosedur penyimpanan sebagai berikut : a. Gunakan save as untuk menyimpan b. Tulis FILE NAME dengan Extention. Asm (Nama_file.asm) c. SAVE AS TYPE gunakan TEXT DOCUMENT 3. Jalankan software ASM51 (untuk mengompile file.ASM menjadi file .HEX) 4. Setelah program di compile dan tidak ada kesalahan,selanjutnya program dicopykan ke AT89c51 melalui DT HiQ 5. Jalankan program PROGRAMMER untuk memindahkan source.HEX ke AT89C51
PRAKTIKUM I
1. Tujuan Praktikum
a. Untuk memberikan pamahaman tentang bagaimana proses pemasukan/pemindahan data ke suatu address maupun kedalam accumulator b. Untuk memberikan pemahaman tentang bagaimana proses penjumlahan antara isi dari accumulator dengan data 03h,dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) c. Untuk memberikan pemahaman tentang bagaimana proses pengurangan antara isi dari accumulator dengan data 04h,dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) d. Untuk memberikan pemahaman tentang bagaimana proses perkalian antara isi dari accumulator dengan data pada register b , dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led)
2. Peralatan Praktikum
a. Main Modul b. Modul Led
3. Percobaan a. Percobaan 1 : Transfer Data
Ram1 Ram2 Start :
equ equ org mov mov mov mov end
030h 031h 000h ram1,#12h ram2,#0fh a,#05h a,raml
b. Percobaan 2 : Penjumlahan
P1 Jumlah :
equ org mov add mov end
090h 000h a,#05h a,#03h p1,a
c. Percobaan 3 : Pengurangan
P1 Kurang :
equ org mov subb mov end
090h 000h a,#09h a,#04h p1,a
d. Percobaan 4 : Perkalian
P1 B Kali
:
equ equ org mov mov mul mov end
090h 0f0h 000h a,#03h a,#02h ab p1,a
4. Diskusikan a. Berapa isi dari masing – masing ram1,ram2 dan isi dari acc ?
b. Berapa hasil dari penjumlahan tersebut (lihat tampilan pada led) ? c. Berapa hasil dari pengurangan tersebut (lihat tampilan pada led) ? d. Berapa hasil dari perkalian tersebut (lihat tampilan pada led) ?
5. Latihan
Ganti masing-masing data dengan data yang lain !
PRAKTIKUM II
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang bagaimana proses pembagian proses pembagian antara accumulator dengan data pada register b , dan hasilnya (utama) ditampilkan pada port 1 (dihubungkan dengan modul led ) b. Untuk memberikan pemahaman tentang bagaimana proses logika “AND” , dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led ) c. Untuk memberikan pemahaman tentang bagaimana proses logika “OR ” , dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led ) d. Untuk memberikan pemahaman tentang bagaimana proses logika “XOR ” , dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led )
2. Peralatan Praktikum
a. Main Modul b. Modul Led
3. Percobaan a. Percobaan 1 : Pembagian 1
P1 B Bagi 1 :
equ equ org mov mov div mov end
090h 0f0h 000h a,#08h b,#02h ab p1,a
b. Percobaan 2 : Logika “AND”
P1
equ org AND_operation :mov an1 mov end
090h 000h a,25h a,14h pl,a
c. Percobaan 3 : Logika “OR ”
P1
equ org or_operation : mov or1 mov end
090h 000h a,34h a,81h pl,a
d. Percobaan 4 : Logika “XOR ”
P1
equ org or_operation : mov xr1 mov end
090h 000h a,25h a,14h pl,a
4. Diskusi
a. Berapa hasil (utama) dari pembagian tersebut ? b. Berapa hasil (sisa) dari pembagian tersebut ? c. Berapa hasil dari logika “AND” antara data 25h dengan data 14h ? d. Berapa hasil dari logika “OR ” antara data 34h dengan data 81h (liahat tampilan pada led) ? e. Berapa hasil dari logika “XOR ” antara data 25h dengan data 14h (lihat tampilan pada led) ?
5. Latihan
a. Ganti masing masing data dengan data yang lain
PRAKTIKUM III
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang bagaimana proses menggeser data tiga kali ke kiri, dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) b. Untuk memberikan pemahaman tentang bagaimana proses menggeser data tiga kali ke kanan , dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led ) c. Untuk memberikan pemahaman tentang bagaimana proses mengkomplemen data yang ada pada accumulator, dan hasilnya ditampilkan pada port1 (dihubungkan melalui led) d. Untuk memberikan pemahaman tentang bagaimana proses tampilan akan berkedib antara nible msb dengan nible lsb,
dan hasilnya ditampilkan pada port 1
(dihubungkan dengan modul led) , juga bagaimana merubah kecepatan tampilan
2. Peralatan Praktikum
a. Main Modul b. Modul Led
3. Percobaan a. Percobaan 1 :
Shifting Kiri
P1 Rotate_left :
b. Percobaan 2 :
P1
equ org mov rl rl rl mov end
Shifting Kanan
equ org
090h 000h
090h 000h a,#01h a a a pl,a
Rotate_right: rr rr rr mov end c. Percobaan 3 :
Complement
P1 Complement :
d. Percobaan 4 :
mov a,#80h a a a pl,a
equ org mov cpl mov end
090h 000h a,#35h a p1,a
Blinking
P1 Start :
equ org mov call mov call jmp
090h 000h p1,#0fh delay p1,#0f0h delay start
;subroutine delay time Delay : mov r1,#0ffh mov r2,#0f5h djnz r2,$ djnz r1,dly1 ret end
4. Diskusi
a. Berapa hasil dari penggeseran tersebut (lihat tampilan pada led) ? b. Berapa hasil dari komplemen diatas (lihat tampilan pada led) ? c. Jika nilai r1 diganti menjadi 9fh , apa yang terjadi pada tampilan led ?
5. Latihan
a. Ganti isi accumulator dengan data 08h
b. Ganti isi accumulator dengan data 10h c. Ganti data masukan ke port 1 p1,menjadi data 00h dan data 0ffh
PRAKTIKUM IV
1. Tujuan Praktikum a. Untuk memberikan pemahaman tentang bagaimana proses tampilan akan bejalan ke kiri dengan metoda memasukkan data langsung ke port 1 (dihubungkan dengan modul led) b. Untuk memberikan pemahaman tentang bagaimana proses tampilan akan bejalan ke kiri dengan metoda memasukkan data yang akan ditampilkan pada led,dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) c. Untuk memberikan pemahaman tentang bagaimana proses tampilan akan bejalan ke kiri dengan metoda menggunakan perintah rl (rotate left ) terhadap data yang ada pada accumulator, dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) d. Untuk memberikan pemahaman tentang bagaimana proses tampilan akan bejalan ke kiri dengan metoda menggunakan perintah rr (rotate right ) terhadap data yang ada pada accumulator, dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) 2. Peralatan Praktikum a. Main Modul b. Modul Led 3. Percobaan a. Percobaan 1 :
Walking Left 1
Pl Start :
equ org mov call mov call mov call mov call jmp
090h 0000h pl,#01h delay pl,#02h delay pl,#04h delay pl,#08h delay start
; subrountine delay time Delay : mov r1,#0ffh Dlyl : mov r2,#0f5h djnz r2,$
djnz ret end
r1,dlyl
b. Percobaan 2 : Walking Left 2
Pl Start : Loop :
equ org mov mov call rl cjne jmp
090h 0000h a,#01h pl,a delay a a,#01h,loop start
;subroutine delay time Delay : mov r1,#0ffh Dlyl : mov r2,#0f5h djnz r2,$ djnz r1,dlyl ret end
c. Percobaan 3 : Walking Right 1
Pl Start :
equ org mov call mov call mov call mov call jmp
090h 0000h pl,#80h delay pl,#40h delay pl,#20h delay pl,#10h delay start
;subroutine delay time Delay : mov r1,#0ffh Dlyl : mov r2,#0f5h djnz r2,$ djnz r1,dlyl ret end
d. Percobaan 4 : Walking Right 2
Pl Start : Loop :
equ org mov mov call rl cjne jmp
090h 0000h a,#80h pl,a delay a a,#80h,loop start
;subroutine delay time Delay : mov r1,#0ffh Dlyl : mov r2,#0f5h djnz r2,$ djnz r1,dlyl ret end
4. Latihan
a. Untuk percobaan 1 lakukan dengan memasukkan data 10h,20h,40h dan 80h b. Coba buat tampilan led hanya berjalan seperti dibawah ini : 00000001 00000010 00000100 00001000 Program akan terus menerus c. Untuk percobaan 3 lakukan dengan memasukkan data 08h,04h,02h dan 01h d. Coba buat tampilan led hanya berjalan seperti dibawah ini : 10000000 01000000 00100000 00010000 Program akan berulang terus menerus
PRAKTIKUM V
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang bagaimana proses tampilan led yang akan satu demi satudalam bentuk bilangan hexadecimal,dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led). b. Untuk memberikan pemahaman tentang bagaimana proses tampilan led yang akan turun satu demi satu dalam bentuk bilangan hexadecimal,dan hasilnya ditampilkan pada port 1 (dihubungkan dengan modul led) c. Untuk memberikan pemahaman tentang bagaimana proses pengambilan data dari input tombol push on (dihubungkan dengan port p3),dan hasilnya ditampilkan ke output led (port p1). d. Untuk memberikan pemahaman tentang bagaimana proses pengambilan data dari input tombol push on (dihubungkan dengan port p3),dan melakukan sebuah proses berupa variasi tampilan.
2. Pralatan Praktikum
a. Main Modul b. Modul Led c. Modul Switch
3. Percobaan a. Percobaan 1:
P1 Start: Loop:
Counter Up
equ org mov mov call inc cjne call jmp
090h 0000h a,#00h p1,a delay a a,#00h,loop delay start
;subroutine delay time Delay : mov r1,#0ffh D1y1: mov r2.#0f5h djnz r2,S djnz r1,dly1 ret end b. Percobaan 2:
P1 Start: Loop:
Counter Down
equ org mov mov call dec cjne mov call jmp
090h 0000h a,#0ffh p1,a delay a a,#00h,loop p1,a delay start
;subroutine delay time Delay : mov r1,#0ffh D1y1: mov r2.#0f5h djnz r2,S djnz r1,dly1 ret end c. Percobaan 3:
P1 P3 Start:
e. Percobaan 4:
P1 P3 Start:
Input Output 1
equ equ org mov mov jmp end
090h 0b0h 0000h a,p3 p1,a start
Input Output 2
equ equ org mov cjne
090h 0b0h 0000h a,p3 a,#01h,start
Shift_left: Loop:
call jmp mov mov call r1 cjne ret
shift_left start a,#01h p1,a delay a a,#01h,loop
;subroutine delay time Delay : mov r1,#0ffh D1y1: mov r2.#0f5h djnz r2,S djnz r1,dly1 ret end
4. Latihan
a. Coba buat tampilan bilangan naik hanya sampai angka 0fh, dan selanjutnya program akan berulang ke awal program. b. Coba buat tampilan bilangan turun hanya sampai angka f0h, dan selanjutnya program akan berulang ke awal program. c. Coba tekan sembarang tombol pada modul switch dan lihat apa yang terjadi pada tampilan led. Lakukan juga penekanan tombol lebih dari satu secara bersamaan. d. Coba tekan tombol pada modul switch dan liat apa yang terjadi pada tampilan led. Lakukan juga penekanan tombol yang lain setelah led berhenti berjalan kekiri,mengapa tidak terjadi perubahan tampilan pada led ? e. Coba buat untuk switch 2, dengan menambahkan perintah cjne dibawah perintah call dan data #02h. Jika tombol 2 ditekan maka led akan menampilkan shift_right.
PRAKTIKUM VI
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang berbagai proses pekanan beberapa tombol secara bersamaan,namun hanya satu tombol yang akan ditampilkan (dalam bentuk hidup led). Selama tombol masih ditekan, bila da penekanan tombol yang lainmaka tombol tersebut akan diabaikan. b. Untuk memberikan pemahaman bagaimana proses pengambilan data dari output adc, lalu hasilnya ditampilkan pada led. c. Untuk memberikan pemahaman tentang bagaimana proses pengambilan data dari output adc,lalu hasilnya ditampilkan pada led. Namun data dari output adc akan dikurangkan dengan data 14h, Jika lebih besar maka alarm akan on. d. Untuk memberikan pemahaman bagaimana cara menampilkan data pada salah satu 7 segment (segment 1).
2. Peralatan Praktikum
a. Main Modul b. Modul Led c. Modul Switch d. Modul ADC e. Modul 7 Segment
3. Percobaan a. percobaan 1:
p1 p3 Start
Aplikasi Cerdas Cermat
equ equ org jb jb Jb jb jb Jb
090h 0b0h 0000h p3.0,led1 p3.1,led2 p3.2,led3 p3.3,led4 p3.4,led5 p3.5,led6
Led1:
Led2:
Led3:
Led4:
Led5:
Led6:
Led7:
Led8:
b. percobaan 2:
p1 p2
Adc:
c. percobaan 3:
p1 p2
jb jb mov jmp mov Jb jmp mov Jb jmp mov Jb jmp mov Jb jmp mov Jb jmp mov Jb jmp mov Jb jmp mov Jb jmp end
p3.6,led7 p3.7,led8 p1,#80h start p1,#80h p3.0,S start p1,#40h p3.1,S start p1,#20h p3.3,S start p1,#10h p3.4,S start p1,#08h p3.5,S start p1,#04h p3.5,S start p1,#02h p3.6,S start p1,#01h p3.7,S start
Pengukur Temperatur
equ equ org clr mov Mov jmp end
090h 0a0h 0000h p1 a,p2 p1,a adc
Temperatur Alarm
equ equ org
090h 0a0h 0000h
Start:
Alarm:
d. percobaan 4:
p0 p1
start:
clr mov mov subb jc setb jmp clr jmp end
c p1,p2 a,#14h a,p2 alarm p0.7 start p0.7 start
Tampilan Segment 1
equ equ org mov mov mov mov orl mov jmp end
080h 090h 0000h p1,#0ffh p0,#11110000h a,#01h p1,a a,#1101000b p0,a start
4. Latihan
a. Coba beri pemanasan pada sensor lm35 dan lihat apa yang terjadi pada tampilan led. b. Coba beri pemanasan pada sensor lm35 dan lihat apa yang terjadi saat data led diatas 14h. c. Coba ganti data oada acc dengan 05h.
PRAKTIKUM VII
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang bagaimana cara menampilkan data pada salah satu 7 segment (segment 2). b. Untuk memberikan pemahaman tentang bagaimana cara menampilkan data kedua 7 segment secara scanning. c. Untuk memberikan pemahaman tentang bagaimana cara menggeser stepper motor satu kali ke kanan,secara berulang-ulang.
2. Peralatan Praktikum
a. Main Modul b. Modul Led c. Modul 7 Segment d. Modul Motor Stepper
3. Percobaan a. Percobaan 1:
P0 P1
Start
b. Percobaan 2:
P0 P1
Tampilan Segment 2
equ equ org mov mov mov mov ORl mov jmp end
080h 090h 0000h p1,#0ffh p0,#11110000h a,#02h p1,a a,#11100000b p0,a start
Tampilan Segment 1 dan 2
equ equ
080h 090h
Start:
Delay: Del2: Del1:
c. Percobaan 3:
P1 P2 Kanan:
Send:
Delay: Del2:
org mov mov mov mov orl mov call Setb mov mov orl mov call setb jmp
0000h p1,#0ffh p0,#11110000h a,#01h p1,a a,#11010000b p0,a delay p0.5 a,#02h p1,a a,#11100000b p0,a delay p0.4 start
mov mov mov djnz djnz djnz ret end
r3,#0fh r1,#0f5h r2,#6fh r2,S r1,del1 r3,del2
Stepper 1
equ equ org mov call mov call mov call mov call jmp mov mov call ret mov mov djnz
090h 0a0h 0000h a,#00010001b send a,#00100010b send a,#01000100b send a,#10001000b send kanan p2,a p1,a delay r2,#0ddh r3,#052h r3,S
djnz ret end
r2,del2
4. Latihan a. Coba ganti data pada acc dengan data 09h b. Coba ganti data pada isi dari r1 dengan data yang lebih kecil dan lihat apa yang terjadi dengan tampilan pada 7 segment,demikian halnya dengan nilai dari r2 dan r3 c. Coba ganti data pada isi register (r2)dengan data 0b0h,dan lihat apa yang terjadi.
PRAKTIKUM VIII
1. Tujuan Praktikum
a. Untuk memberikan pemahaman tentang bagaimana cara menggeser stepper motor satu kali ke kiri, secara berulang-ulang. b. Untuk memberikan pemahaman tentang bagaimana cara menggeser stepper motor dengan menetukan jumlah putaran/step dengan tepat. c. Untuk memberikan pemahaman tentang bagaimana cara menangkap data dari keypad 4x4 membran secara scanning, selanjutnya data tersebut ditampilkan pada port 1 (modul LED).
2. Peralatan Praktikum
a. Main Modul b. Modul Led c. Modul Motor Stepper d. Modul Keypad 4x4
a. Percobaan 1:
p1 p2 Kiri:
Send:
Delay: Del2:
Stepper 2
equ equ org mov acall mov acall mov acall mov acall jmp mov mov call ret mov mov
090h 0a0h 0000h a,#10001000b send a,#01000100b send a,#00100010b send a,#00010001b send kiri p2,a p1,a delay r2,#0ddh r3,#052h
djnz djnz ret end
b. Percobaan 2:
p1 p2 Buff Kanan: Lagi
Send:
Delay: Dell:
c. Percobaan 3:
P0 P1 P3 B Base Start:
r3,$ r2,del2
Stepper 3
equ equ equ org mov mov acall mov acall mov acall mov acall mov dec mov cjne jmp mov mov call ret mov mov djnz djnz ret end
090h 0a0h 030h 0000h buff,#08h a,#00010001b send a,#00010001b send a,#00010001b send a,#00010001b send a,buff a buff,a a,#00h,lagi S p2,a p1,a delay r2,#0ddh r3,#052h r3,S r2,dell
keypad 4x4
equ equ equ equ equ org setb mov
080h 090h 0b0h 0f0h 030h 0000h p0.7 p1,#00h
Read_key: mov mov cjne mov mov cjne mov mov cjne mov mov cjne jmp Check: mov mov Again: mov acall cjne mov mov setb Display: mov Call jmp Diff: inc cjne clr jmp Read_comb:inc movc ret db db db db db db db db db db db db db db db db
a,#11110111b p3,a a,p3,check a,#11111011b p3,a a,p3,check a,#11111101b p3,a a,p3,check a,#11111110b p3,a a,p3,check read_key b,p3 r2,#000 a,r2 read_coomb a,b,diff a,r2 base,r2 c p1,base blink read_key r2 r2,#010h,again c read_key a a,@a+pc 11101011b;0 01110111b;1 01111011b;2 01111011b;3 10110111b;4 10111011b;5 10111101b;6 11010111b;7 11011011b;8 11011101b;9 11100111b;* 11101101b;# 01111110b;a 10111110b;b 11011110b;c 11101110b;d
Blink:
Delay:
Del: Del1
clr call setb ret mov mov mov nop nop djnz djnz clr ret end
p0.7 delay p0.7 b,#0 r4,#0 r5,#03h
r4,del r5,del1 c
4. Latihan
a. Coba ganti data pada isi register (r2) dengan data 0b0h, dan lihat apa yang terjadi. b. Coba lakukan dengan mengubah arah putaran ke arah kiri, serta merubah isi dari buff menjadi #04, dan lihat apa yang terjadi.