Uploaded by EKI'S SECRET EMAIL

Soal Solusi UTS Sistem Embedded 2016

advertisement
[SISTEM EMBEDDED]
Bundel soal teknik telekomunikasi semester 4 tahun 2017
(19)
Ujian Tengah Semester
Sistem Embedded (Kamis, 7 April 2016)
Nomor 1
Apa arti :
Mov
Mov
SETB
CLR
P1, #FFH
A, P3
P2, 3
P3, 3
Nomor 2
Jika port 1 dihubungkan dengan LED ke ground dengan R 330Ω, apa arti program berikut :
MULAI
Mov P1, #00001111B
Acall Delay 1
Mov P1, #11110000B
Acall Delay 2
SJMP Mulai
Nomor 3
Jika port 2 dihubungkan dengan LED ke ground dengan R 330Ω, apa arti program berikut :
MULAI
Mov P1, #01010101B
Acall Delay 1
Mov P1, #10101010B
Acall Delay 2
SJMP Mulai
Nomor 4
Apa artinya program berikut :
Mov
MULAI
Mov
Acall
RL
SJMP
A, #11111110B
P1, A
Delay
A
MULAI
Nomor 5 Buat program, timer 0 mod 3 untuk melakukan cacahan 100.
Nomor 6 Buat program, program timer 0 mod 3 sebagai counter untuk melakukan cacahan 30.
Nomor 7 (a) Bagaimana cara/langkah menginisialisasi sebuah port
(b) Bagaimana langkah-langkah inisialisasi interupsi
Nomor 8
Bagaimana cara memprogram mengirim data melalui port serial, gunakan SBUF untuk menulis data yang akan
dikirim lalu tunggu sampai T1 berlogika satu (set), setelah bit T1 berlogika satu, bit T1 dinolkan kembali untuk
kirim data yang lain.
Nomor 9
Bagaimana memprogram menerima data melalui port secara serial, gunakan SBUF register R1 untuk cek logika
satu, jika berlogika 1 maka data baru dibaca lalu R1 di nolkan untuk membaca data baru lagi.
Nomor 10
Buat program interupsi eksternal M.controller untuk menghidupkan LED.
Bundel soal teknik telekomunikasi semester 4 tahun 2017
(20)
[sistem embedded]
Solusi Ujian Tengah Semester
Sistem Embedded (7 April 2016)
1. Maksud dari instruksi berikut adalah
MOV
P1, #FFH : Memasukkan nilai bilangan hexadecimal FF ke dalam keseluruhan 8 bit port
1.
MOV
A, P3
: Memindahkan isi dari keseluruhan 8 bit port 3 ke dalam register A.
SETB
P2.4
: Mengeset isi dari port 2 bit ke 4 dengan nilai 1 (high)
CLR
P3.3
: Mengeset isi dari port 3 bit ke 3 dengan nilai 0 (low)
2. Jika port 1 dihubungkan dengan LED ke ground dengan R 330Ω, maksud dari program berikut
adalah
MULAI
MOV P1, #00001111B (mengeset port 1 bit 0-3 dengan nilai 1, bit 4-7 dengan nilai 0)
Acall Delay 1
MOV P2, #11110000B (mengeset port 1 bit 0-3 dengan nilai 0, bit 4-7 dengan nilai 1)
Acall Delay 2
SJMP MULAI
Pada port 1 ada 8 bit yang digunakan, masing-masing bit dihubungkan pada LED dan resistor yang
kemudian dihubungkan ke ground.
 Pada awal program MULAI, instruksi menyebabkan 4 buah LED di bit 0-3 menyala,
sedangkan 4 buah LED lainnya di bit 4-7 padam.
 Instruksi Acall adalah instruksi untuk memanggil subrutin program. Karena subrutin
program delay 1 dan delay 2 belum terdefinisi, maka instruksi ini dilewatkan. Jika delay 1
dan delay 2 didefinisikan sebelumnya berarti akan mengakibatkan adanya penundaan waktu
sebelum masuk ke instruksi berikutnya. Lama penundaan tergantung definisi delay.
 Kemudian, instruksi mov berikutnya menyebabkan 4 buah LED di bit 0-3 padam,
sedangkan 4 buah LED lainnya di bit 4-7 padam.
 Instruksi SJMP membuat program ini berulang.
Sehingga pada akhirnya, program ini akan membuat lampu LED menyala kedap kedip antara bit 03 dan bit 4-7.
3. Jika port 2 dihubungkan dengan LED ke ground dengan R 330Ω, maksud dari program berikut
adalah
MULAI
MOV P2, #01010101B (mengeset port 2 bit genap dengan nilai 1, bit ganjil dengan
nilai 0)
Acall Delay 1
MOV P2, #10101010B (mengeset port 2 bit genap dengan nilai 0, bit ganjil dengan
nilai 1)
Acall Delay 2
SJMP MULAI
Pada port 2 ada 8 bit yang digunakan, masing-masing bit dihubungkan pada LED dan resistor yang
kemudian dihubungkan ke ground. Bit genap adalah bit 0, 2, 4, dan 6, sedangkan bit ganjil adalah
bit 1, 3, 5, dan 7.
 Pada awal program MULAI, instruksi menyebabkan 4 buah LED di bit genap menyala,
sedangkan 4 buah LED lainnya di bit ganjil padam.


Instruksi Acall adalah instruksi untuk memanggil subrutin program. Karena subrutin
program delay 1 dan delay 2 belum terdefinisi, maka instruksi ini dilewatkan. Jika delay 1
dan delay 2 didefinisikan sebelumnya berarti akan mengakibatkan adanya penundaan waktu
sebelum masuk ke instruksi berikutnya. Lama penundaan tergantung definisi delay.
Kemudian, instruksi mov berikutnya menyebabkan 4 buah LED di bit genap padam,
sedangkan 4 buah LED lainnya di bit ganjil padam.
 Instruksi SJMP membuat program ini berulang.
Sehingga pada akhirnya, program ini akan membuat lampu LED menyala kedap kedip antara bit
ganjil dan bit genap.
4. Maksud dari program dibawah ini adalah
MOV A, #111111110B (Register A menyimpan nilai 11111110)
MULAI
MOV P1, A (Pindahkan isi register A ke port 2 sehingga nilai bit 0 adalah 0 dan bit 1-7
adalah 1)
Acall Delay
RL
A (Menggeser ke kiri isi dari register A)
SJMP MULAI
Pada port 1 akan dipasang 8 buah LED di masing-masing bitnya, kemudian pengaturan awal
membuat 8 buah LED ini menyala dengan kondisi bit 1-7 menyala dan bit 0 padam. Kemudian
instruksi RL membuat isi dari register A tergeser ke kiri, yang otomatis nilai masing-masing bit
pada port 2 juga ikut tergeser, contoh :
Kondisi Awal
P1. P1. P1. P1.
5
4
3
2
1
1
1
1
P1.
7
1
P1.
6
1
P1.
1
1
P1.
0
0
P1.
7
1
Instruksi RL (pergeseran ke kiri)
P1. P1. P1. P1. P1. P1.
6
5
4
3
2
1
1
1
1
1
1
0
P1.
0
1
Kemudian, instruksi SJMP membuat perintah dari program ini dilaksanakan berulang, sehingga
instruksi RL ini juga dilaksanakan berulang. Akibatnya nyala lampu pada LED akan terlihat seperti
lampu yang berjalan (running text) dengan penundaan waktu pergeseran sebesar delay.
5. Program timer 0 mod 3 untuk melakukan cacahan 100
CLR P2.3
(menggunakan port 2 bit 3 sebagai penanda timer)
MOV TMOD, #03 (Timer 0, mode 3)
HERE:
MOV
TL0, #00H (TL0 = 0)
MOV TH0, #64H (TH0 = 100)
SETB P2.3
(mengeset port 2 bit 3 dengan nilai 1)
SETB TR0
(mulai Timer 0)
AGAIN: JNB
TF0, AGAIN (monitor timer 0 flag)
CLR TR0
(stop Timer 0)
CLR TF0
(clear Timer 0 flag for next round)
CLR P2.3
6. Program timer 0 mod 3 sebagai counter untuk melakukan cacahan 30.
DELAY:
MOV TMOD, #3H
MOV
TL0, #E2H
SETB
TR0
WAIT:
JNB TF0, WAIT
CLR
TR0
CLR
TF0
RET
7. Langkah inisialisasi port serial
SERIAL_INT:
MOV
TMOD, #20H
MOV
SCON, #50H
MOV
TH1, #0FDH
MOV
TL1, #0FDH
SETB
TR1
RET
Langkah inisialisasi interupsi
 Lakukan pengaturan dari register IE untuk mengaktifkan serial interrupt.
 Lakukan pengaturan register SCON untuk operasi menerima atau mentransfer data.
 Tulis subprogram untuk interup ini dengan fungsi yang sesuai dan lakukan fungsi CLR
untuk flag TI atau RI.
8.
Program untuk mengirim data melalui port serial, menggunakan SBUF untuk menulis data yang
akan dikirim lalu tunggu sampai T1 berlogika satu (set) setelah bit T1 berlogika satu, bit T1
dinolkan kembali untuk kirim data yang lain.
AGAIN:
MOV SBUF, #”A”
HERE:
JNB T1, HERE
CLR
T1
SJMP
AGAIN
9.
Program untuk mengirim data melalui port serial, menggunakan SBUF register R1, untuk
mengecek logika satu, jika berlogika 1 maka data baru dibaca lalu R1 dinolkan untuk membaca
data baru lagi.
AGAIN
MOV “A”, SBUF
HERE:
JNB R1, HERE
CLR
R1
SJMP
AGAIN
10. Program interupsi eksternal oleh M.controller untuk menghidupkan LED.
ORG
0000H
LJMP
MAIN
ORG
0013H
SETB
P1.3
MOV
R3, #255
BACK:
CLR
RET
DJNZ R3, BACK
P1.3
ORG
MAIN:
HERE:
END
30H
MOV IE, #10000100B
SJMP HERE
Download