pengantar single chip computer
DESCRIPTION
PENGANTAR SINGLE CHIP COMPUTER. Technology of Chips. ZIP (zig-zag in-line package). PGA (Pin Grid Array). IC. SOIC (small-outline IC). DIP (Dual in line package). PLCC (Plastic Leaded Chip Carrier). QFP (Quad Flat Package). Microcontroller vs. Microprocessors. - PowerPoint PPT PresentationTRANSCRIPT
Editor: SyahrulEditor: Syahrul 1
PENGANTAR PENGANTAR SINGLE CHIP COMPUTERSINGLE CHIP COMPUTER
Editor: SyahrulEditor: Syahrul 2
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: SyahrulEditor: Syahrul 3
CPU
General-Purpose Micro-processor
RAM ROM I/O Port
TimerSerial COM Port
Data Bus
Address Bus
General-Purpose Microprocessor System
CPU for ComputersCPU for Computers No RAM, ROM, I/O on CPU chip itselfNo RAM, ROM, I/O on CPU chip itself ExampleExample ::
Many chips on mother’s board
General-purpose microprocessor
8 bits => Z-80, Z-180, 8085, 808016 bits = > 80286, M16, MSP430, Arm732 bits = > M32, 68332, Pentium64 bits => Pentium4…
Microcontroller vs. MicroprocessorsMicrocontroller vs. Microprocessors
Editor: SyahrulEditor: Syahrul 4
RAM ROM
I/O Port
TimerSerial COM Port
Microcontroller
CPU
A smaller computerA smaller computer On-chip RAM, ROM, I/O ports...On-chip RAM, ROM, I/O ports... ExampleExample :: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 16XMotorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 16X
A single chip
Microcontroller :
Microcontroller vs. MicroprocessorsMicrocontroller vs. Microprocessors
Editor: SyahrulEditor: Syahrul 5
MicroprocessorMicroprocessor CPU is stand-alone, RAM, CPU is stand-alone, RAM,
ROM, I/O, timer are separateROM, I/O, timer are separate designer can decide on the designer can decide on the
amount of ROM, RAM and amount of ROM, RAM and I/O ports.I/O ports.
expansiveexpansive versatility versatility general-purposegeneral-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: SyahrulEditor: Syahrul 6
MicroprocessorMicroprocessor
cpu ROM RAM I O I/OADD
Address
ADD
D
cont
Request DecoderRead/write
cpu
O
I
MEMI/O
Data BusData
cpu ROM RAM I O I/OADD
Address
ADD
D
cont
Request DecoderRead/write
cpu
O
I
MEMI/O
Data BusData
Editor: SyahrulEditor: Syahrul 7
MicrocontrollerMicrocontroller
cpu ROM RAM I O I/OADD
Address
ADD
D
cont
Request DecoderRead/write
cpu
O
I
MEMI/O
Data BusData
cpu ROM RAM I O I/OADD
Address
ADD
D
cont
Request DecoderRead/write
cpu
O
I
MEMI/O
Data BusData
Editor: SyahrulEditor: Syahrul 8
Editor: SyahrulEditor: Syahrul 9
Examples of Embedded Systems
Editor: SyahrulEditor: Syahrul 10
Editor: SyahrulEditor: Syahrul 11
Editor: SyahrulEditor: Syahrul 12
Editor: SyahrulEditor: Syahrul 13
Editor: SyahrulEditor: Syahrul 14
Inside 8051 MicrocontrollerInside 8051 Microcontroller
PORT
P0 P1 P2 P3
Serial port
TxD RxD
Data RAM128 Bytes
OSC Bus control
Ex-interrupt
Interruptcontrol
CPU
Flash ROM4 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: SyahrulEditor: Syahrul 15
Inside 8051 MicrocontrollerInside 8051 Microcontroller
0708
100F
1718
Editor: SyahrulEditor: Syahrul 16
Companies Producing 8051Companies Producing 8051
Table 1-2:Some Companies Producing a Member Table 1-2:Some Companies Producing a Member of the 8051 Familyof the 8051 Family
CompanyCompany Web SiteWeb Site
IntelIntel www.intel.com/design/mcs51www.intel.com/design/mcs51
AtmelAtmel www.atmel.comwww.atmel.com
Philips/SigneticsPhilips/Signetics www.semiconductors.philips.comwww.semiconductors.philips.com
SiemensSiemens www.sci.siemens.comwww.sci.siemens.com
Dallas SemiconductorDallas Semiconductor www.dalsemi.comwww.dalsemi.com
Editor: SyahrulEditor: Syahrul 17
Konfigurasi penyemat (pin) 8051Konfigurasi penyemat (pin) 8051
Editor: SyahrulEditor: Syahrul 18
PEMROGRAMAN ASSEMBLYPEMROGRAMAN ASSEMBLYFormat Program Bahasa assembly 8051 :Format Program Bahasa assembly 8051 : Setiap baris instruksi terdiri dari paling banyak empat field yang Setiap baris instruksi terdiri dari paling banyak empat field yang
dipisahkan oleh karakter space atau tab:dipisahkan oleh karakter space atau tab:
[Label:] Mnemonic [operand] [, operand] [. . .] [;comment][Label:] Mnemonic [operand] [, operand] [. . .] [;comment]
mulai: MOV A, #25h mulai: MOV A, #25h ; isikan hexa 25 ke reg akumulator ; isikan hexa 25 ke reg akumulator
LabelLabel mewakili alamat instruksi (atau data). Jika program bercabang ke instruksi ini, mewakili alamat instruksi (atau data). Jika program bercabang ke instruksi ini, maka label ini digunakan oleh instruksi branch atau jumpmaka label ini digunakan oleh instruksi branch atau jump
Mnemonic Mnemonic merupakan operasi yang harus dikerjakanmerupakan operasi yang harus dikerjakan Operand Operand adalah adalah A, #25h, AA, #25h, A menunjukkan register akumulator dan menunjukkan register akumulator dan #25h#25h adalah bilangan adalah bilangan
hexa 25hexa 25 CommentComment adalah adalah ;isikan hexa 25 ke reg akumulator , ;isikan hexa 25 ke reg akumulator , komentar harus didahului tanda komentar harus didahului tanda
titik koma yang menyatakan bahwa bagian tersebut tidak diproses menjadi kode mesin titik koma yang menyatakan bahwa bagian tersebut tidak diproses menjadi kode mesin dalam proses kompilasidalam proses kompilasi
Editor: SyahrulEditor: Syahrul 19
Editor: SyahrulEditor: Syahrul 20
Instruksi-instruksi Pembacaan PortInstruksi-instruksi Pembacaan Port
MnemonicsMnemonics ExamplesExamples DescriptionDescription
MOV A,PXMOV A,PX MOV A,P2MOV A,P2 Salin data pada prot P2 ke ASalin data pada prot P2 ke A
JNB PX.Y,..JNB PX.Y,.. JNB P2.1,TARGETJNB P2.1,TARGET lompat jika pin P2.1 = lowlompat jika pin P2.1 = low
JB PX.Y,..JB PX.Y,.. JB P1.3,TARGETJB P1.3,TARGET lompat jika pin P1.3 = highlompat jika pin P1.3 = high
MOV C,PX.YMOV C,PX.Y MOV C,P2.4MOV C,P2.4 salin status pin P2.4 ke CYsalin status pin P2.4 ke CY
Berikut contoh instruksi pembacaan port:Berikut contoh instruksi pembacaan port:
X = Y = 0, 1,2, 3, 4, 5, 6, 7
Editor: SyahrulEditor: Syahrul 21
PEMROGRAMAN ASSEMBLYPEMROGRAMAN ASSEMBLY
JENIS INSTRUKSI:JENIS INSTRUKSI:– Instruksi transfer dataInstruksi transfer data– Instruksi aritmetikaInstruksi aritmetika– Instruksi LogikaInstruksi Logika– Instruksi pencabangan (branch / jump, call)Instruksi pencabangan (branch / jump, call)
Editor: SyahrulEditor: Syahrul 22
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
11 MOV A,#20HMOV A,#20H Salin byte 20h ke reg akumulator Salin byte 20h ke reg akumulator (acc); (acc); A A ← 20H← 20H
immediate immediate addressing modeaddressing mode
22 MOV A,20HMOV A,20H Salin isi lokasi memori 20h ke reg Salin isi lokasi memori 20h ke reg acc; acc; A A ← (20H)← (20H)
direct addressing direct addressing modemode
33 MOV A,R2MOV A,R2 Salin byte reg R2 ke reg acc;Salin byte reg R2 ke reg acc;
A A ← R2← R2
register addressing register addressing modemode
44 MOV A,P1MOV A,P1 Baca byte dari port P1 ke reg acc; Baca byte dari port P1 ke reg acc; A A ← P1← P1
register addressing register addressing modemode
55 MOV P3,AMOV P3,A Kirim byte dari acc ke port P3; Kirim byte dari acc ke port P3;
P3 P3 ← A← A
reigster addressing reigster addressing modemode
66 MOV A,@R0MOV A,@R0 Salin byte dari lokasi yg ditunjuk Salin byte dari lokasi yg ditunjuk R7 ke acc; R7 ke acc; A A ← (R0)← (R0)
indirect addressing indirect addressing modemode
77 MOV @R1,AMOV @R1,A Salin byte dari acc ke lokasi yg Salin byte dari acc ke lokasi yg ditunjuk reg R5; ditunjuk reg R5; (R1) (R1) ← A← A
indirect addressing indirect addressing modemode
Contoh Instruksi Transfer DataContoh Instruksi Transfer Data
Editor: SyahrulEditor: Syahrul 23
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
88 PUSH 2PUSH 2 Increment nilai SP (SP = SP + 1) Increment nilai SP (SP = SP + 1) kemudian salin byte RAM lokasi 2 kemudian salin byte RAM lokasi 2 ke stack; ke stack;
stack addressing stack addressing modemode
99 POP 7POP 7 Decrement nilai SP (SP = SP – 1) Decrement nilai SP (SP = SP – 1) kemudian salin byte dari stack ke kemudian salin byte dari stack ke RAM lokasi7RAM lokasi7
stack addressing stack addressing modemode
1010 XCH A, R3XCH A, R3 pertukarkan byte antara acc pertukarkan byte antara acc dengan register R3; dengan register R3; A A ↔ R3↔ R3
register addressing register addressing modemode
1111 XCHD A,@R0XCHD A,@R0 pertukarkan byte antara acc pertukarkan byte antara acc dengan lokasi memori yang dengan lokasi memori yang ditunjuk R; ditunjuk R; A A ↔ (R0)↔ (R0)
register addressing register addressing modemode
1212 SWAP ASWAP A pertukarkan nibel bawah dengan pertukarkan nibel bawah dengan nibel atas dalam reg acc; nibel atas dalam reg acc; A3–A0 A3–A0 ↔ ↔ A4–A7A4–A7
register addressing register addressing modemode
Contoh Instruksi Transfer DataContoh Instruksi Transfer Data
Editor: SyahrulEditor: Syahrul 24
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
1313 MOVC A,@A+DPTRMOVC A,@A+DPTR Salin instruksi ke acc di Salin instruksi ke acc di mana DPTR sebagai mana DPTR sebagai pointer; pointer; AA← (A+DPTR)← (A+DPTR)
index addressing index addressing modemode
1414 MOVC A,@A+PCMOVC A,@A+PC Salin instruksi ke acc di Salin instruksi ke acc di mana PC sebagai register mana PC sebagai register tak langsung (pointer); tak langsung (pointer);
AA← (A+PC)← (A+PC)
index addressing index addressing modemode
Contoh Instruksi Transfer DataContoh Instruksi Transfer Data
*) Untuk pemakaian pada memori program internal, instruksi MOV dituliskan dengan menambahkan akhiran C menjadi MOVC
Editor: SyahrulEditor: Syahrul 25
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
1515 MOVX A,@DPTRMOVX A,@DPTR Salin data eksternal pada Salin data eksternal pada lokasi yg ditunjuk DPTR ke lokasi yg ditunjuk DPTR ke acc; acc; AA← (DPTR)← (DPTR)
index addressing index addressing modemode
1616 MOVX @DPTR,AMOVX @DPTR,A Salin data dari acc ke lokasi Salin data dari acc ke lokasi memori eksternal yg memori eksternal yg ditunjuk DPTR; ditunjuk DPTR; (DPTR)← (DPTR)← AA
index addressing index addressing modemode
1717 MOVX A,@R0MOVX A,@R0 Salin data eksternal pada Salin data eksternal pada lokasi yg ditunjuk R0 ke lokasi yg ditunjuk R0 ke acc; acc; AA← (R0)← (R0)
index addressing index addressing modemode
1818 MOVX @R0,AMOVX @R0,A Salin data dari acc ke lokasi Salin data dari acc ke lokasi memori eksternal yg memori eksternal yg ditunjuk R0; ditunjuk R0; (R0) (R0) ← A← A
index addressing index addressing modemode
Contoh Instruksi Transfer DataContoh Instruksi Transfer Data
*) Untuk pengaksessan memori eksternal, instruksi MOV dituliskan dengan menambahkan akhiran X menjadi MOVX
Editor: SyahrulEditor: Syahrul 26
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
11 ADD A,R2ADD A,R2 tambahkan isi reg R2 ke reg acc; tambahkan isi reg R2 ke reg acc; AA← A + R2← A + R2
register moderegister mode
22 ADD A,#25hADD A,#25h tambahkan konstanta 25h ke acc;tambahkan konstanta 25h ke acc;AA← A + 25h← A + 25h
immediate modeimmediate mode
33 ADD A,@R1ADD A,@R1 tambhakan byte yg lokasinya tambhakan byte yg lokasinya ditunjuk R1 ke reg acc; ditunjuk R1 ke reg acc; AA←A+(R1)←A+(R1)
register moderegister mode
44 ADDC A,R4ADDC A,R4 Tambahkan isi reg R4 beserta Tambahkan isi reg R4 beserta carry out ke reg acc; carry out ke reg acc; AA← A + R4 + CY← A + R4 + CY
register moderegister mode
55 SUBB A,R6SUBB A,R6 Kurangi reg acc dengan byte di reg Kurangi reg acc dengan byte di reg R6 beserta carry out; R6 beserta carry out; A A ← A ← A R6 R6 CY CY
reigster modereigster mode
66 SUBB A,@R0SUBB A,@R0 Kurangi reg acc dengan byte yg Kurangi reg acc dengan byte yg lokasinya ditunjuk reg R0 beserta lokasinya ditunjuk reg R0 beserta carry out; carry out; A A ← A← A(R0) (R0) CY CY
reigster modereigster mode
Contoh Instruksi AritmetikaContoh Instruksi Aritmetika
Editor: SyahrulEditor: Syahrul 27
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
77 MUL ABMUL AB A X B; A X B; hasil akhir A = low byte, B hasil akhir A = low byte, B = high byte= high byte
register moderegister mode
88 DIV ABDIV AB A/B, A/B, hasil akhir A = hasilbagi, hasil akhir A = hasilbagi, B = sisa pembagianB = sisa pembagian
register moderegister mode
99 DADA Decimal adjustDecimal adjust register moderegister mode
1010 INC AINC A Tambahkan satu isi reg accTambahkan satu isi reg acc register moderegister mode
1111 DEC ADEC A Kkurangi satu isi reg accKkurangi satu isi reg acc register moderegister mode
Contoh Instruksi AritmetikaContoh Instruksi Aritmetika
Editor: SyahrulEditor: Syahrul 28
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
11 ANL A,P2ANL A,P2 Lakukan operasi logika AND acc Lakukan operasi logika AND acc dengan port P2); dengan port P2); A A ← A AND P2← A AND P2
register moderegister mode
22 ANL C,P1.3ANL C,P1.3 Lakukan operasi logika AND Lakukan operasi logika AND Carry out dengan port P1.3; Carry out dengan port P1.3;
C C ← C AND P1.3← C AND P1.3
Bit addessableBit addessable
33 ORL A,#16hORL A,#16h Lakukan operasi logika OR acc Lakukan operasi logika OR acc dengan byte 16h; dengan byte 16h; A A ← A AND 16h← A AND 16h
immediate modeimmediate mode
44 ORL C,P1.7ORL C,P1.7 Lakukan operasi logika OR Carry Lakukan operasi logika OR Carry out dengan port P1.7; out dengan port P1.7;
C C ← C AND P1.7← C AND P1.7
Bit addessableBit addessable
55 XRL A, R1XRL A, R1 Lakukan operasi logika XOR acc Lakukan operasi logika XOR acc dengan reg R1; dengan reg R1; A A ← A XOR R1← A XOR R1
reigster modereigster mode
66 CPL ACPL A complemen-1 byte dalam acc;complemen-1 byte dalam acc;
A A ← NOT A← NOT A
register moderegister mode
Contoh Instruksi LogikaContoh Instruksi Logika
Editor: SyahrulEditor: Syahrul 29
NoNo InstruksiInstruksi ArtiArti Mode PengalamatanMode Pengalamatan
11 RL ARL A Rotasikan acc ke kiri ; Rotasikan acc ke kiri ;
An + 1 An + 1 ← An, n = 0 – 6← An, n = 0 – 6
A0 A0 ← A7← A7
register moderegister mode
22 RR ARR A Rotasikan acc ke kanan; Rotasikan acc ke kanan;
An An ← An + 1 , n = 0 – 6← An + 1 , n = 0 – 6
A7 A7 ← A0← A0
register moderegister mode
33 RLC ARLC A Rotasikan acc ke kiri dengan carry Rotasikan acc ke kiri dengan carry out ; out ; An + 1 An + 1 ← An, n = 0 – 6← An, n = 0 – 6
A0 A0 ← C← C
C ← A7C ← A7
register moderegister mode
44 RRC ARRC A Rotasikan acc ke kanan dengan Rotasikan acc ke kanan dengan carry out;carry out;An An ← An+1, n = 0 – 6← An+1, n = 0 – 6
A7 A7 ← C← C
C ← A0C ← A0
register moderegister mode
Contoh Instruksi LogikaContoh Instruksi Logika
Editor: SyahrulEditor: Syahrul 30