Modul Mikrokontroler
Modul Mikrokontroler
MODUL
MIKROKONTROLER
AT89S51
MODUL AND JOB SHEET
Arranged by : Haris Afiatno, ST
F / 76 / K3TOE / 1
28 JUNI 2010
SMK GONDANG
WONOPRINGGO PEKALONGAN
Jenis Modul/Jobsheet
Kompetensi
Kelas
: X (SEPULUH)
Nama Penyusun
: Haris Afiatno, ST
No
Semester : 2 (DUA)
Hasil Verifikasi
Sesuai
Tidak
Page 2
Daftar isi
Pendahuluan
Arsitektur MCS-51
Operasi Timer/Counter
Operasi Pemindahan Data
Operasi Logika
Operasi Aritmatika
Operasi Percabangan
Aplikasi Seven Segmen
Aplikasi Motor Stepper
Komunikasi Data Serial
Operasi Interupsi
Page 3
Pendahuluan
Kemajuan Teknologi di bidang elektronik begitu pesat sejak
ditemukannya transistor dengan cepat perangkat semi konduktor
menggantikan posisi tabung hampa karena ukurannya yang lebih
kesil,tegangan kerjanya yang lebih rendah,konsumsi daya
nya
yang lebih kecil dan tentu saja harganya yang jauh lebih
murah.Transistor kemudian membawa kepada penemuan
intergrated circuit (IC), sebuah perangakat semi konduktor
yang
berisi dari beberapa buah transistor sampai jutaan
transistor yang membentuk suatu rangkaian dengan fungsi
tertentu, dari penguat operasional ( Op Amp) sampai
pengelola sinyal digital ( digital signal prosesor). Dari
transistor inilah lahir mikrokontroler.
Sebuah komputer mikro memiliki tiga komponen utama: unit
pengolahan pusat (CPU= central processing Unit) memori dengan sistem
input / output (I/O) untuk dihubungkan dengan perangkat luar. CPU, yang
mengatur
sistem
kerja
komputer
mikro,
dibangun
oleh
sebuah
CPU,
memori
dan
sistem
I/O
dibuat
dalam
sebuah
Chip
mikrokontroler
adalah
pengendali
suatu
rangkaian
elektronik yang dapat diprogam dan bekerja sesuai dengan aplikasi tertentu,
sebagai
contoh
mikrokontroler
sebuah
tapemobi
didalamnya.
dengan
Digunakan
peraga
juga
LCD
untuk
pastilah
ada
mengendalikan
Page 4
Mi
krokontroler 8051 standart adalah mikrokontroler 8 bit dengan fasilitas
sebagai berikut :
1.
2.
3.
4.
5.
6.
Page 5
Page 6
Catatan :
MODUL MIKROKONTROLER SMK GONDANG
Page 7
Gambar diatas adalah peta memori internal 89S51 yang terdiri dari RAM, SFR dan
ROM. Tampak bahwa ada kesamaan address antara RAM, SFR dan ROM yaitu pada
address 00 s/d FF. Atas pertimbangan inilah maka biasanya source code ditulis
setelah address 00FF yaitu 0100 pada ROM, Hal ini dimaksudkan agar data RAM dan
SFR tidak terisi oleh byte source code.
maupun tak
langsung (indirect)
Contoh :
Direct ->
Register adalah register dengan fungsi tertentu. Misalnya, register TMOD dan
TCON adalah timer control register yang berfungsi mengatur fasilitas timer
mikrokontroler. SFR pada AT89S51 menempati address 80 s/d FF.
MODUL MIKROKONTROLER SMK GONDANG
Page 8
(Random
Access
Memory)
internal
AT89S51
Page 9
Page 10
Operasi Timer
Timer sangat diperlukan untuk membuat delay/tundaan waktu. AT89S51
menyediakan fasilitas timer 16 bit. sebanyak 2 buah yaitu Timer 0 dan Timer 2.
Timer ini juga bisa di fungsikan sebagai counter/pencacah. Timer bekerja dengan
MODUL MIKROKONTROLER SMK GONDANG
Page 11
cara menghitung pulsa clock internal mikrokontroler yang dihasilkan dari rangkaian
osilator. Jumlah pulsa clock akan dibandingkan dengan sebuah nilai yang terdapat
dalam register timer (TH dan TL). Jika jumlah pulsa clock sama dengan nilai timer,
maka sebuah interrupt akan terjadi (ditandai oleh flag TF). Interrupt ini dapat
dipantau oleh program sebagai tanda bahwa timer telah overflow. Counter bekerja
dengan cara menghitung pulsa eksternal pada P3.4 (T0) dan P3.5 (T1). Jumlah pulsa
ini akan disimpan dalam register timer (TH dan TL).
Timer akan menghitung pulsa clock dari osilator yang sebelumnya telah
dibagi 12. Agar berfungsi sebagai timer maka :
1.
2.
3.
4.
Register TCON
Page 12
7 TF1 Timer 1 overflow flag. Set saat timer berubah dari satu ke nol. Clear
saat prosesor mengeksekusi interrupt service routine pada address 001Bh.
6 TR1 Timer 1 run control bit. Set 1 oleh program agar timer mulai
menghitung. Clear oleh program untuk menghentikan timer, bukan me-reset
timer.
5 TF0 Timer 0 overflow flag. Set saat timer berubah dari satu ke nol.
Clear saat prosesor mengeksekusi interrupt service routine pada address
000Bh.
4 TR0 Timer 0 run control bit. Set 1 oleh program agar timer mulai
menghitung. Clear oleh program untuk menghentikan timer, bukan me-reset
timer.
3 IE1 External interrupt 1 edge flag. Set 1 pada saat transisi sinyal high
ke low diterima oleh port3 pin 3.3 (INT1). Clear saat prosesor mengeksekusi
interrupt service routine pada ddress 0013h.Tidak terkait dengan operasi
timer.
2 IT1 External interrupt 1 signal type control bit. Set 1 oleh program
untuk mengaktifkan external interrupt 1 yang dipicu oleh sisi turun sinyal
(falling edge/ transisi high ke low). Clear oleh program untuk mengaktifkan
sinyal low pada external interrupt 1 untuk menghasilkan sebuah interrupt.
1 IE0 External interrupt 0 edge flag. Set 1 pada saat transisi sinyal high
ke low diterima oleh port3 pin 3.2 (INT0). Clear saat prosesor mengeksekusi
interrupt service routine pada ddress 0003h.Tidak terkait dengan operasi
timer.
0 IT0 External interrupt 0 signal type control bit. Set 1 oleh program
untuk mengaktifkan external interrupt 0 yang dipicu oleh sisi turun sinyal
(falling edge/ transisi high ke low). Clear oleh program untuk mengaktifkan
sinyal low pada external interrupt 0 untuk menghasilkan sebuah interrupt.
Page 13
Register TMOD
Page 14
Timer/Counter Interrupt
Timer/Counter pada AT89S51 adalah sebuah Up Counter, nilai
counternya akan naik (increment) dari nilai awalnya sampai nilai
maksimumnya dan kembali ke nilai nol. Saat bergulir menjadi nol (overflow),
maka sebuah timer flag akan bernilai 1. Flag ini dapat diuji oleh program
untuk menandakan bahwa counter telah selesai menghitung, atau flag
tersebut bisa digunakan untuk meng-interrupt program.
Nilai awal timer/counter harus dimasukkan dulu ke dalam timer
register Timer High (TH) dan Timer Low (TL) sebelum timer/counter
dijalankan.
Page 15
Mode
Mode
Mode
Mode
0
1
2
3
:
:
:
:
13-bit Timer/Counter
16-bit Timer/Counter
8-bit Autoreload Timer/Counter
Two 8 bit Timer/Counter
Page 16
Page 17
Secara umum delay waktu timer (T) dapat dihitung dengan persamaan
sebagai berikut :
1. Sebagai timer 8 bit.
T=(255-TLx)*1uS
2. Sebagai timer 13 bit.
T=(8191-THxTLx)*1uS
3. Sebagai timer 16 bit.
T=(65535-THxTLx)*1uS
Dengan catatan frekuensi crystal yang digunakan adalah 12 MHz.
Contoh :
Diinginkan delay waktu 10 mS menggunakan timer 16 bit. Maka nilai THx
dan TLx adalah :
T=(65535-THxTLx)*1Us
THxTLx=65535-(T/1uS)
THxTLx=65535-(10mS/1uS)
THxTLx=65535-10000
THxTLx=55535d=D8EFh
Maka THx=D8h dan TLx=EFh
Page 18
bahasa
ini.
Dalam
menjalankan
ataupun
memprogram
Page 19
Page 20
Bilangan Hexadesimal
Bilangan yang mempunyai radiks 16 atau system bilangan berbasis 16,
bilangan hexadecimal menggunakan symbol 0-9, A untuk cacahan 10, B
untuk cacahan 11,C untuk cacahan 12, D untuk cacahan 13, E untuk
cacahan 14 ,dan F untuk cacahan 15. Keuntungan dari system hexadecimal
adalah kegunaannya dalam pengubahan secara langsung dari bilangan biner
4-bit. Tiap bilangan biner 4-bit dari 0000 sampai 1111 dapat diwakili oleh
suatu digit hexadecimal yang unik.
Page 21
Page 22
Page 23
Page 24
Page 25
Movc A, @A+DPTR
Atau
Movc A, @+PC
Dalam bahasa assembler terdapat pernyataan untuk mendefinisikan
konstanta dalam memori program. Pernyataan itu adalah db (define bytes).
Konstanta ini misalnya digunakan untuk menyimpan data yang akan
ditampilkan melalui LCD atau menyimpan data untuk mengubah bilangan
menjadi data display 7 segmen. Sebagai contoh :
DB
DB
Db
DB
DB
DB
DB
DB
DB
DB
0C0H
OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H
dptr, #0100h
A,@A+dptr
Org
DB
0100h
0C0H
Page 26
DB
Db
DB
DB
DB
DB
DB
DB
DB
OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H
A
A,@A+PC
Org
DB
DB
Db
DB
DB
DB
DB
DB
DB
DB
0100h
0C0H
OF9H
0A4H
0B0H
099H
092H
082H
0F8H
080H
090H
PC
harus
tepat
setelah
instruksi
ret,
sedangkan
jika
Page 27
menggunakan DPTR, tabel data bisa diletakkan dimana saja dalam area
program memori.
Pengolahan data
Mikrokontroler 8051 memiliki sebuah unit aritmatika dan logika (ALU)
yang berfungsi untuk melakukan pengolahan data ( data prosecing) melalui
operasi operasi aritmatika dan logika. Oleh karena itu, 8051 dilengkapi
dengan instruksi instruksi untuk melakukan pengolahan data yang dibagi
menjadi 2 yaitu instruksi instruksi aritmatika dan intstruksi logika.
Instruksi aritmatika digunakan untuk melakukan operasi operasi
aritmatika seperti , penjumlahan, pengurangan, perkalian, dan pembagian,
sedangkan instruksi instruksi logika digunakan untuk melakukan operasi
operasi logika seperti perkalian digital (instruksi AND) atau penjumlahan
digital ( OR).
A. Operasi Logika
Instruksi logika adalah instruksi yang akan melakukan operasi operasi
logika seperti , logika AND, OR, ekslusif OR (XOR). Operasi komplemen
akumulator, memutar bit akumulator, dan operasi swap juga termasuk
kedalam operasi logika ini. Operasi logika bisa digunakan untuk data
berbentuk byte atau bit.
a) Logika BOOLEAN
Page 28
Page 29
B. Operasi aritmatika
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
Page 37
Page 38