MODUL 3 Perancangan Berbasis Mikroprosesor
MODUL 3 Perancangan Berbasis Mikroprosesor
MODUL PERKULIAHAN
PERANCANGAN
BERBASIS
MIKROPROSESSO
R
Studi kasus dancing LED
Abstrak Sub-CPMK
03
Baradista Dimas Leotman, ST, M.Pd
Fakultas Teknik Teknik Elektro
Definis
Cara mengakses Port
Karena prosesor 8051 memiliki internal Port, maka prosesor ini dapat digunakan
sendirian (single chip application) tanpa melibatkan external clock generator, external I/O
device, external Memory, address decoder atau chip digital lainnya. Prosesor ini sudah
dapat digunakan sebagai kontroler tanpa melibatkan chip digital lainnya.
Port 0
Selain untuk paralel port, pin-pin pada port 0 juga dapat digunakan untuk pin
address (A0 – A7) maupun pin data (D0 – DA7) ketika prosesor menggunakan memory atau
I/O eksternal.
Port 1
Port 1 terdapat pada pin 1 s/d pin 8. Port 1 adalah port paralel 8-bit dua arah yang
telah dilengkapi dengan internal pull-up. Setiap pin pada port 1 dapat mensuplai arus ke 4
buah pin TTL. Seluruh pin dapat digunakan sebagai input maupun output.
Port 2
Port 2 terdapat pada pin 21 s/d pin 28. Port 2 adalah paralel port dua arah yang
dilengkapi dengan rangkaian pull-up. Output dari port 2 dapat mensuplai arus ke 4 buah
pin TTL. Selain sebagai paralel port. Port 2 juga dapat digunakan sebagai pin address (lihat
gambar 3.1.). Untuk fungsi ini port 2 mengunakan internal pull-up yang kuat.
Port 3
Port 3 terletak pada pin 10 s/d 17. Port 3 adalah port paralel dua arah yang dilengkapi
dengan rangkaian pull-up. Output dari port 3 dapat mensuplai arus ke 4 pin TTL. Selain itu
port 3 juga memiliki fungsi lain yang dapat dilihat pada tabel 3.1 berikut :
Berarti Register Port 1 pada SFR diberi data 10110110 dalam bilangan biner. Karena
program menyebabkan Port 1 mendapat data, berarti pada saat tsb Port 1 digunakan
sebagai OUTPUT port. Akibatnya pin-pin pada Port 1 akan memberikan tegangan
sesuai dengan data yang dimasukkan tadi, yaitu P1.0 (baca: bit ke-nol pada Port 1) atau
pin 1 (lihat gambar 3.1.) akan bertegangan 0 volt karena diberi data “0”, sedangkan P1.1
atau pin 2 akan bertegangan 5 volt karena diberi data “1”, dst sampai P1.7.
Karena P0, P1, P2 dan P3 merupakan register bit addressable, maka cara
mengaksesnya juga dapat dilakukan bit per bit, tidak harus sekaligus 1-byte atau 8-bit.
Gambar 3.2. merupakan contoh 2 cara mengakses Port, yaitu dengan memberikan data
sekaligus 1-byte atau 8-bit (sebelah kiri tanda sama dengan), dan memberikan data bit
per bit (sebelah kanan tanda sama dengan). Sebuah instruksi :
MOV P1,#10010110B
untuk mengakses sekaligus seluruh bit pada register Port 1, setara dengan 8 instruksi
yang mengakses bit-bit pada Port 1 satu per satu, yaitu :
CLR P1.0
SETB P1.1
SETB P1.2
CLR P1.3
SETB P1.4
SETB P1.5
CLR P1.6
96H = 1 0 0 1 0 1 1 0
Jika kita ingin menjadikan Port 1 sebagai Port input, maka kita dapat mengambil
data dari Port 1 sekaligus 1-byte atau kita ambil dan cek setiap bit pada Port 1 satu per
satu.. Berikut ini adalah contoh koneksi P1.4 dengan sebuah tombol. Seperti tampak
pada gambar 3.3. di bawah ini, P1.4 dalam keadaan menggantung (floating). Jika
tombol ditekan, maka P1.4 akan terhubung dengan ground sehinggan keadaannya LOW
atau logika ‘0’. Ketika tombol dilepas, maka P1.4 akan berlogika HIGH, karena masing-
masing pin pada Port 1 dilengkapi dengan internal pull-up, yaitu sebuah resistor yang
menghubungkan Vcc dengan pin tersebut.
tombol
P1.4
Berdasarkan gambar 3.3, jika kita ingin memastikan apakah tombol sedang ditekan
atau tidak, kita cukup memeriksanya dengan instruksi JNB (Jump if No Bit) atau
instruksi JB (Jump if Bit). Perhatikan instruksi di bawah ini :
JB P1.4, $ ;tetap di sini selama P1.4 HIGH atau tombol dilepas
JNB P1.4, $ ;tetap di sini selama P1.4 LOW atau tombol ditekan
ADD A,#10 ;A = A + 10 dilakukan setelah tombol dilepas
kembali.
Karena prosesor hanya menerima sinyal digital sedangkan saluran telepon dilalui
oleh sinyal analog, maka untuk menghubungkan prosesor dengan saluran telepon
diperlukan komponen khusus. Jika kita ingin mengubah besaran analog ke besaran
digital, kita dapat menggunakan ADC (Analog to Digital Converter), sedangkan untuk
tujuan sebaliknya kita dapat menggunakan DAC (Digital to Analog Converter). Untuk
mengubah sinyal analog nada DTMF menjadi sinyal digital yang dapat dibaca oleh
prosesor cukup digunakan decoder DTMF. Input DTMF adalah sinyal analog berupa 1
di antara 16 kemungkinan nada yang dihasilkan oleh tekanan tombol pesawat telepon,
sedangkan outputnya berupa sinyal digital 4-bit. Gambar 3.5. memperlihatkan diagram
blok internal DTMF decoder MT8870, sedangkan Tabel 3.2. memperlihatkan hubungan
antara tombol yang ditekan untuk menghasilkan nada panggil dengan output yang
dihasilkan oleh decoder DTMF.
Perlu ditekankan di sini, decoder DTMF bukan mengubah tekanan tombol menjadi
bilangan biner 4-bit, tetapi mengubah sinyal analog nada telepon menjadi bilangan biner
4-bit, di mana nada telepon tersebut berasal dari pesawat telepon yang salah satu tombol
angkanya ditekan. Gambar 3.6. berikut ini memperlihatkan contoh koneksi DTMF
decoder.
Dengan cara penulisan program seperti ini, modifikasi program lebih mudah dilakukan,
misalnya jika data yang ingin diambil berjumlah 30, maka perubahan yang dilakukan
cukup dengan mengganti instruksi pertama menjadi :
MOV B,#30
; gfedcba
Segment: DB 11000000B ; angka 0
DB 11111001B ; angka 1
DB 10100100B ; angka 2
DB 10110000B ; angka 3
DB 10011001B ; angka 4
DB 10010010B ; angka 5
DB 10000010B ; angka 6
DB 11111000B ; angka 7
DB 10000000B ; angka 8
DB 10010000B ; angka 9
DB 11111111B ;Blank, padam semua
andi,yogyakarta,2003.
4. Prasetia,Retna. Teori dan praktek interfacing port paralel dan port serial komputer
komputindo,jakarta,2004.