PERHITUNGAN & TIMING DIAGRAM MACHINE CYCLES
Machine Cycle atau siklus mesin merupakan satuan waktu terkecil dalam menjalankan satu instruksi MCS51. Satu machine cycle terdiri atas enam state atau tahap. Masing-masing tahap terdiri dan 2 phase atau fase. Jadi, satu machine cycle terdiri dan 12 periode osilator (6 state x 2 phase) atau 12 pulsa clock. Jika frekuensi crystal yang digunakan adalah 12 MHz, maka crystal tersebut akan mengeluarkan 12.000.000 pulsa per detik. Hal ini berarti dalam satu detik akan ada 1.000.000 (12.000.000/12) machine cycle. Atau dengan kata lain, satu machine cycle akan memakan waktu satu mikro detik. Jika frekuensi crystal yang digunakan lebih tinggi, maka akan ada lebih banyak machine cycle dalam satu detik sehingga lebih banyak instruksi/opcode yang dapat dijalankan.
Gambar.1 Satu Siklus Mesin
Dan untuk lebih mudahnya kita akan membuat program tundaan satu detik dengan bahasa assembly. Perhatikan listing program berikut ini
MOV R1,#2 ; 1 SIKLUS MESIN DEL1: MOV R2,#244 ; 1 SIKLUS MESIN DEL2: MOV R3,#255 ; 1 SIKLUS MESIN DEL3: DJNZ R3,DEL3 ; 2 SIKLUS MESIN X 255 DJNZ R2,DEL2 ; 2 SIKLUS MESIN X 244 DJNZ R1,DEL ; 2 SIKLUS MESIN X 2Dari program diatas kita dapat melihat ada dua buat Op-Code yang kita gunakan yakni MOV dan DJNZ. Masing-masing op-code tersebut memiliki siklus mesin namun berbeda. MOV memiliki 1 siklus mesin sedankan DJNZ memiliki 2 Siklus Mesin. Dan untuk perhitungan Waktunya kita menggunakan Persamaan:
Delay = [ siklus mesin MOV+ (siklus mesin DJNZ x jumlah Putaran) ] x perioda clock
= [ 1 + ( 1 + ( 1 + ( 2 x 255 ) ) x ( 2 x 244 ) ) x ( 2 x 2 ) ] x 1 mikrosekon
= 997477 mikrosekon
= 1 detik
Tidak ada komentar:
Posting Komentar
Silahkan berkomentar !