Pengantar
Disain RangkaianAplikasi yang banyak kita temukan dalam
kehidupan keseharian kita adalah aplikasi yang menggunakan
teknologi digital sebagai salah satu solusi untuk membuat proses
lebih cepat, tepat, ringkas dan lebih mudah untuk mengembangkan
sistem secara keseluruhan. Pada kesempatan ini kami mengenalkan
penggunaan mikrokontroler sebagai pengontrol pada sebuah sistem
yang ingin kita bangun dengan memberikan dasar-dasar pengaksesan
terhadap beberapa perangkat keras seperti pengaksesan port masukan
dan keluaran, Lyquid Crystal Display (LCD), Seven Segment, Dot
Matrik, Analog To Digital Converter (ADC), Digital To Analog
Converter (DAC), dan bagaimana melakukan pengkontrolan pada motor
stepper menggunakan fasilitas yang dimiliki oleh mikrokontroler
keluarga 8051, yaitu 89S51/52. Adapun fasilitas yang dapat
diaplikasikan juga adalah Timer, Interupsi, Serial. Bahasa yang
kita gunakan adalah bahasa C dengan menggunakan compiler Small
Device C Compiler atau lebih dikenal dengan SDCC. Dimana pemrogram
diberikan kemudahan untuk mendekati perangkat keras dengan
menggunakan bahasa aras menengah. Kemudahan yang akan dirasakan
adalah apabila pengguna telah terbiasa menggunakan bahasa C sebagai
bahasa pemrograman dan dapat lebih mudah untuk mengembangkan
beberapa sistem dasar menjadi sistem yang lebih rumit. Disain
sistem yang kita bangun adalah penggabungan beberapa modul menjadi
satu modul yang kita sebut sebagai compact board, dimana didalamnya
sudah terdapat berberapa perangkat keras yang berbeda yang akan
menjadi obyek, dimana masing masing perangkat keras yang akan
dikontrol mempunyai alamat alamat unik yang diperoleh dari disain
perangkat keras itu sendiri, yang telah kami buat sebelumnya.
Adapun disain dari sistem yang kami buat adalah sebagai berikut
:
1
Port 0 LCD Port 1 8 bit LED Port 2 Kontrol Data Port 3 DipSwitch
Tombol Dot Matrik 5 x 8 ADC 7segmen Stepper DAC
89S51/52
Gambar 1. Blok Diagram Sistem Keseluruhan
Rancang bangun sistem yang berupa skematik adalah :
Gambar 2. Skema Rangkaian Kontrol dan pengalamatan
2
Gambar 3. Tombol Masukan
Gambar 4. DipSwitch 8 bit
Gambar 5. Seven Segment (Common Cathode)
3
Gambar 6. LCD
Gambar 7. Motor Stepper
Pengalamatan untuk mengakses masing masing perangkat keras
diatas diagunakan pengalamatan yang diperoleh dengan memberikan
data pada IC 74LS138, yang dapat ditabelkan sebagai berikut :
Tabel 1. Alamat akses perangkat keras No 1 2 3 4 5 6 7 Perangkat
Keras Stepper 7s2 7s1 Matrix/LED DAC ADC LCD Alamat Akses Y0 ( 1100
0111 = 0C7 ) Y1 ( 1100 1111 = 0CF ) Y2 ( 1101 0111 = 0D7 ) Y3 (
1101 1111 = 0DF ) Y4 ( 1110 0111 = 0E7 ) Y5 ( 1110 1111 = 0EF ) Y6
( 1111 0111 = 0F7 )
4
Pengantar
Teknik KompilasiAdapun Teknik Kompilasi Program adalah sebagai
berikut : 1. Mengkompile file percobaan yang berekstensi c menjadi
ihx
Gambar 8. Kompilasi file percobaan.c menjadi percobaan.ihx
Tahapan dalam kompilasi : Kompilasi dalam folder aktif /SDCC/BIN
Instruksi : SDCC namafile.c 2. Mengubah file yang berekstensi ihx
menjadi hex
Gambar 9. Kompilasi file percobaan.ihx menjadi percobaan.hex
5
Tahapan dalam kompilasi : Kompilasi dalam folder aktif /SDCC/BIN
Instruksi : PACKIHX namafile.ihx > namafile.hex 3. Membuka file
downloader File downloader bisa bekerja pada Window XP dengan
memenuhi persyaratan pada folder aktif ada file : ALLOWIO.EXE dan
PORTTALK.SYS. Hal ini bisa dipermudah dengan membuat file shortcut
sebagai berikut : @echo off AllowIo 0x42 0x43 0x61 0x378 0x278
0x3BC ISP-Pgm3v0.exe Simpan instruksi diatas pada file dengan
berekstensi .BAT File untuk download Atmel_Isp.set yang harus
tersedia ISP-Pgm3v0.exe dan
Adapun tahapan dalam pengoperasian program adalah : 1. Memilih
jenis IC 89S atau ATMega yang akan digunakan :
Gambar 10. Tipe IC pada Downloader software
6
2. Membuka file yang berekstensi *.hex untuk diisikan secara
ISP
Gambar 11. Menu Open File
Gambar 12. Membuka file *.hex yang akan di download
7
3. Menuliskan program anda ke IC 89S secara ISP
Gambar 13. Menuliskan Program ke Flash EEPROM Perhatian : Posisi
Lock Bits Tidak Boleh diaktifkan. Hal tersebut akan menyebabkan IC
terkunci dan tidak dapat di program ulang Klik Write apabila
peralatan anda telah siap untuk di program.
8
PERCOBAAN 1
MASUKAN DAN KELUARANTujuan
Setelah mengikuti praktikum ini, yang Anda peroleh adalah: Dapat
menggunakan port mikrokontroler sebagai jalur masukan atau jalur
keluaran Dapat menyebutkan register yang digunakan untuk mengakses
port Dapat membuat program dengan C untuk mengakses port
Dasar teori
Port paralel mikrokontroler terhubung dengan register P0, P1,
P2, dan P3. Masingmasing register tersebut mempunyai lebar 8-bit.
Register-register tersebut berada didalam RAM internal (daerah
Special Function Register atau SFR). P0 berada pada alamat 80h, P1
berada pada alamat 90h, P2 berada pada alamat A0h, dan P3 berada
pada alamat B0h. Untuk mengeluarkan nilai 20h ke port P1 misalnya,
Anda dapat menggunakan instruksi: P1 = 0x20;
Apabila ingin membaca port P2 misalnya, Anda dapat menggunakan
instruksi: baca = P2;
Variabel baca dapat Anda definisikan sebagai unsigned char atau
variabel bertipe byte. Sedangkan P1 dan P2 tidak perlu Anda
definisikan lagi karena telah didaftar didalam file header
at89x52.h. Sehingga pada program, Anda menggunakan instruksi
#include
9
Percobaan
Berikutnya Anda akan melakukan 7 macam percobaan. Amati dengan
seksama dan pahami benar program tersebut. Untuk membantu memahami
mengapa instruksi pada program dibuat maka Anda dapat melihat
skematik dari perangkat keras yang Anda gunakan dengan hubungan
seperti yang ditunjukkan oleh gambar yang ada pada lampiran. Pada
kesempatan ini digunakan lampu LED sebagai sarana menampilkan hasil
keluaran.
a a k
k
Keterangan : a = anoda, k = katoda Gambar 1.1. Bentuk fisik LED
dan simbolnya
Percobaan 1.1 : Keluaran pada Port 1 Tujuan: Anda mencoba untuk
mengeluarkan data 8-bit ke Port 1.// aktifkan Y6 LCD // aktifkan Y5
ADC // aktifkan Y4 DAC = 1111 0111 = 0F7 = 1110 1111 = 0EF = 1110
0111 = 0E7
// aktifkan Y3 Matrix/LED= 1101 1111 = 0DF // aktifkan Y2 7s1 //
aktifkan Y1 7s2 // aktifkan Y0 Stepper = 1101 0111 = 0D7 = 1100
1111 = 0CF = 1100 0111 = 0C7
/* Mengatur latch data LED */ /* Latch pada Y3 LED (P2.5 P2.4
P2.3 = 0 1 1) */ /* Latch pada matrix, matikan (P2.2 P2.1 P2.0 = 1
1 1) */ /* (P2.7 P2.6 = 0 0) */ /* P2 = 0001 1111 = 1Fh) */
#include void led() { /* Aktifkan LED */ P2=0x0DF;
10
/* Kirim data */ P1=0x0AA; } void main() { while (1) { led(); }
// tutup akhir program } Program 1.1. Mengirim data ke Port 1
Percobaan 1.2 : Masukan melalui Port 1 keluaran melalui Port 0
Tujuan : Anda akan mencoba membaca data 8-bit dari Port 3 dan
mengeluarkan data 8-bit tersebut ke Port 1./* Mengatur latch data
LED */ /* Latch pada Y3 LED (P2.5 P2.4 P2.3 = 0 1 1) */ /* Latch
pada matrix, matikan (P2.2 P2.1 P2.0 = 1 1 1) */ /* (P2.7 P2.6 = 0
0) */ /* (P2 = 0001 1111 = 1Fh) */
#include void led() { /* Aktifkan LED */ P2=0x0DF; /* Baca data
P3, keluarkan ke P1 */ P1=P3; }
void main() { while(1) { led();
11
} // tutup akhir program } Program 1.2. Data dari port 3
ditampilkan ke port 1
Percobaan 1.3 : Increment isi Port 1 dan tampilkan hasilnya ke
Port 1 Tujuan : Anda mencoba menambah data pada Port 1 dengan 1
#include void main () { unsigned int cnt1,cnt2; /* Aktifkan LED */
P2=0x0DF; P1=0x00; while (1) { P1 = P1+1; /* delay */ for
(cnt1=0;cnt1