Editor: Syahrul1 PENGANTAR SINGLE CHIP COMPUTER
Editor: Syahrul2 IC DIP (Dual in line package) SOIC (small-outline IC) PLCC (Plastic Leaded Chip Carrier) PGA (Pin Grid Array) ZIP (zig-zag in-line package) QFP (Quad Flat Package) Technology of Chips
Editor: Syahrul3 CPU General- Purpose Micro- processor RAMROM I/O Port Timer Serial COM Port Data Bus Address Bus General-Purpose Microprocessor System CPU for Computers No RAM, ROM, I/O on CPU chip itself Example : Many chips on mother’s board General-purpose microprocessor 8 bits => Z-80, Z-180, 8085, bits = > 80286, M16, MSP430, Arm7 32 bits = > M32, 68332, Pentium 64 bits => Pentium4… Microcontroller vs. Microprocessors
Editor: Syahrul4 RAM ROM I/O Port Timer Serial COM Port Microcontroller CPU A smaller computer On-chip RAM, ROM, I/O ports... Example : Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 16X A single chip Microcontroller : Microcontroller vs. Microprocessors
Editor: Syahrul5 Microprocessor CPU is stand-alone, RAM, ROM, I/O, timer are separate designer can decide on the amount of ROM, RAM and I/O ports. expansive versatility general-purpose Microcontroller CPU, RAM, ROM, I/O and timer are all on a single chip fix amount of on-chip ROM, RAM, I/O ports for applications in which cost, power and space are critical single-purpose Microprocessor vs. Microcontroller
Editor: Syahrul6 Microprocessor
7 Microcontroller
8
9 Examples of Embedded Systems
Editor: Syahrul10
Editor: Syahrul11
Editor: Syahrul12
Editor: Syahrul13
Editor: Syahrul14 Inside 8051 Microcontroller PORT P0 P1 P2 P3 Serial port TxD RxD Data RAM 128 Bytes OSC Bus control Ex-interrupt Interrupt control CPU Flash ROM 4 K Bytes Features: 8-bit data bus 16-bit address bus (1 byte wide memory addresses) 34 general purpose registers each of 8 bits 16 bit timers (usually 2, but may have more, or less). 3 internal and 2 external interrupts. 4 8-bit ports, (short models have 2 8-bit ports). 16-bit program counter and data pointer 12 clock cycles / instruction 128 byte RAM for data 4KB flash PEROM (program) Equipped with serial communication The Intel 8051 is a Harvard architecture single chip microcontroller which was developed by Intel in 1980 for use in embedded systems. Timer 0 Timer 1 Timer/Counter Counter Inputs 210 bit-addressable locations
Editor: Syahrul15 Inside 8051 Microcontroller F 17 18
Editor: Syahrul16 Companies Producing 8051 Table 1-2:Some Companies Producing a Member of the 8051 Family Company Web Site Intelwww.intel.com/design/mcs51 Atmelwww.atmel.com Philips/Signeticswww.semiconductors.philips.com Siemenswww.sci.siemens.com Dallas Semiconductor
Editor: Syahrul17 Konfigurasi penyemat (pin) 8051
Editor: Syahrul18 PEMROGRAMAN ASSEMBLY Format Program Bahasa assembly 8051 : Setiap baris instruksi terdiri dari paling banyak empat field yang dipisahkan oleh karakter space atau tab: [Label:] Mnemonic [operand] [, operand] [...] [;comment] mulai: MOV A, #25h ; isikan hexa 25 ke reg akumulator Label mewakili alamat instruksi (atau data). Jika program bercabang ke instruksi ini, maka label ini digunakan oleh instruksi branch atau jump Mnemonic merupakan operasi yang harus dikerjakan Operand adalah A, #25h, A menunjukkan register akumulator dan #25h adalah bilangan hexa 25 Comment adalah ;isikan hexa 25 ke reg akumulator, komentar harus didahului tanda titik koma yang menyatakan bahwa bagian tersebut tidak diproses menjadi kode mesin dalam proses kompilasi
Editor: Syahrul19
Editor: Syahrul20 Instruksi-instruksi Pembacaan Port MnemonicsExamplesDescription MOV A,PX MOV A,P2 Salin data pada prot P2 ke A JNB PX.Y,.. JNB P2.1,TARGET lompat jika pin P2.1 = low JB PX.Y,.. JB P1.3,TARGET lompat jika pin P1.3 = high MOV C,PX.Y MOV C,P2.4 salin status pin P2.4 ke CY Berikut contoh instruksi pembacaan port: X = Y = 0, 1,2, 3, 4, 5, 6, 7
Editor: Syahrul21 PEMROGRAMAN ASSEMBLY JENIS INSTRUKSI: –Instruksi transfer data –Instruksi aritmetika –Instruksi Logika –Instruksi pencabangan (branch / jump, call)
Editor: Syahrul22 NoInstruksiArti Mode Pengalamatan 1 MOV A,#20H Salin byte 20h ke reg akumulator (acc); A ← 20H immediate addressing mode 2 MOV A,20H Salin isi lokasi memori 20h ke reg acc; A ← (20H) direct addressing mode 3 MOV A,R2 Salin byte reg R2 ke reg acc; Salin byte reg R2 ke reg acc; A ← R2 register addressing mode 4 MOV A,P1 Baca byte dari port P1 ke reg acc; A ← P1 register addressing mode 5 MOV P3,A Kirim byte dari acc ke port P3; P3 ← A reigster addressing mode 6 MOV Salin byte dari lokasi yg ditunjuk R7 ke acc; A ← (R0) indirect addressing mode 7 Salin byte dari acc ke lokasi yg ditunjuk reg R5; (R1) ← A indirect addressing mode Contoh Instruksi Transfer Data
Editor: Syahrul23 NoInstruksiArti Mode Pengalamatan 8 PUSH 2 Increment nilai SP (SP = SP + 1) kemudian salin byte RAM lokasi 2 ke stack; stack addressing mode 9 POP 7 Decrement nilai SP (SP = SP – 1) kemudian salin byte dari stack ke RAM lokasi7 stack addressing mode 10 XCH A, R3 pertukarkan byte antara acc dengan register R3; A ↔ R3 register addressing mode 11 XCHD pertukarkan byte antara acc dengan lokasi memori yang ditunjuk R; A ↔ (R0) register addressing mode 12 SWAP A pertukarkan nibel bawah dengan nibel atas dalam reg acc; A3–A0 ↔ A4–A7 register addressing mode Contoh Instruksi Transfer Data
Editor: Syahrul24 NoInstruksiArti Mode Pengalamatan 13 MOVC Salin instruksi ke acc di mana DPTR sebagai pointer; A← (A+DPTR) index addressing mode 14 MOVC Salin instruksi ke acc di mana PC sebagai register tak langsung (pointer); A← (A+PC) index addressing mode Contoh Instruksi Transfer Data *) Untuk pemakaian pada memori program internal, instruksi MOV dituliskan dengan menambahkan akhiran C menjadi MOVC
Editor: Syahrul25 NoInstruksiArti Mode Pengalamatan 15 MOVX Salin data eksternal pada lokasi yg ditunjuk DPTR ke acc; A← (DPTR) index addressing mode 16 Salin data dari acc ke lokasi memori eksternal yg ditunjuk DPTR; (DPTR)← A index addressing mode 17 MOVX Salin data eksternal pada lokasi yg ditunjuk R0 ke acc; A← (R0) index addressing mode 18 Salin data dari acc ke lokasi memori eksternal yg ditunjuk R0; (R0) ← A index addressing mode Contoh Instruksi Transfer Data *) Untuk pengaksessan memori eksternal, instruksi MOV dituliskan dengan menambahkan akhiran X menjadi MOVX
Editor: Syahrul26 NoInstruksiArti Mode Pengalamatan 1 ADD A,R2 tambahkan isi reg R2 ke reg acc; A← A + R2 register mode 2 ADD A,#25h tambahkan konstanta 25h ke acc; A← A + 25h immediate mode 3 ADD tambhakan byte yg lokasinya ditunjuk R1 ke reg acc; A←A+(R1) tambhakan byte yg lokasinya ditunjuk R1 ke reg acc; A←A+(R1) register mode 4 ADDC A,R4 Tambahkan isi reg R4 beserta carry out ke reg acc; A← A + R4 + CY register mode 5 SUBB A,R6 Kurangi reg acc dengan byte di reg R6 beserta carry out; A ← A R6 CY reigster mode 6 SUBB Kurangi reg acc dengan byte yg lokasinya ditunjuk reg R0 beserta carry out; A ← A (R0) CY reigster mode Contoh Instruksi Aritmetika
Editor: Syahrul27 NoInstruksiArti Mode Pengalamatan 7 MUL AB A X B; hasil akhir A = low byte, B = high byte register mode 8 DIV AB A/B, hasil akhir A = hasilbagi, B = sisa pembagian register mode 9DA Decimal adjust register mode 10 INC A Tambahkan satu isi reg acc register mode 11 DEC A Kkurangi satu isi reg acc register mode Contoh Instruksi Aritmetika
Editor: Syahrul28 NoInstruksiArti Mode Pengalamatan 1 ANL A,P2 Lakukan operasi logika AND acc dengan port P2); A ← A AND P2 register mode 2 ANL C,P1.3 Lakukan operasi logika AND Carry out dengan port P1.3; C ← C AND P1.3 Bit addessable 3 ORL A,#16h Lakukan operasi logika OR acc dengan byte 16h; A ← A AND 16h immediate mode 4 ORL C,P1.7 Lakukan operasi logika OR Carry out dengan port P1.7; C ← C AND P1.7 Bit addessable 5 XRL A, R1 Lakukan operasi logika XOR acc dengan reg R1; A ← A XOR R1 reigster mode 6 CPL A complemen-1 byte dalam acc; A ← NOT A register mode Contoh Instruksi Logika
Editor: Syahrul29 NoInstruksiArti Mode Pengalamatan 1 RL A Rotasikan acc ke kiri ; An + 1 ← An, n = 0 – 6 A0 ← A7 register mode 2 RR A Rotasikan acc ke kanan; An ← An + 1, n = 0 – 6 A7 ← A0 register mode 3 RLC A Rotasikan acc ke kiri dengan carry out ; An + 1 ← An, n = 0 – 6 A0 ← C C ← A7 register mode 4 RRC A Rotasikan acc ke kanan dengan carry out;An ← An+1, n = 0 – 6 A7 ← C C ← A0 register mode Contoh Instruksi Logika
Editor: Syahrul30