SlideShare ist ein Scribd-Unternehmen logo
1 von 101
Triwiyanto - Jurusan Teknik
Elektromedik
A Software
Oriented Device
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
uC
Device
Programmer
APAKAH MIKROKONTROLLER ?
uC: sebuah komputer
didalam chip untuk
mengontrol peralatan
elektronik
Sebuah device memerlukan komponen-komponen pendukung seperti IC TTL
dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta
dikendalikan oleh mikrokontroler ini
Triwiyanto - Jurusan Teknik
Elektromedik
KENAPA MENGGUNAKAN
MIKROKONTROLLER ?
Dengan penggunaan mikrokontroler ini maka :
 Sistem elektronik akan menjadi lebih ringkas
 Rancang bangun sistem elektronik akan lebih
cepat karena sebagian besar dari sistem adalah
perangkat lunak yang mudah dimodifikasi
 Pencarian gangguan lebih mudah ditelusuri
karena sistemnya yang kompak
Triwiyanto - Jurusan Teknik
Elektromedik
APA MANFAATNYA ?
Dengan menguasainya kita dapat menerapkan :
1. Dalam kehidupan sehari-hari:
a. Toaster
b. Mesin Cuci
c. Microwave dll.
2. Di bidang peralatan kedokter:
a. Incubator baby
b. Phototherapy
c. Autoclave
d. Photometer dll.
3. Di bidang industri
a. Pengaturan proses produksi
b. Pengaturan Motor, Robotika, Telekomunikasi dll.
Triwiyanto - Jurusan Teknik
Elektromedik
BAGAIMANA CARANYA?
Desain Program
Assembly
(MIDE-51)
Org 0h
mov A,10000000b
mov P0,A
end
0001110101
0101010101
0101010101
0101010101
Compile
(MIDE-51)
PROGRAM
Download
(ProgISP Soft.)
01000101001
01111000100
01001010100
00111101010
Test
Triwiyanto - Jurusan Teknik
Elektromedik
BAGAIMANA CARA MEMPELAJARINYA ?
1.Belajar sendiri (otodidak), Anda bisa
mempelajari sendiri mikrokontroler dengan
panduan buku dan peralatan yang diperlukan,
mulailah dari contoh-contoh sederhana.
2.Melalui lembaga Pendidikan, cara kedua ini
bisa Anda dapatkan baik melalui pendidikan
formal seperti sekolah, perguruan tinggi, maupun
pendidikan non formal (kursus, pelatihan, les dan
sejenisnya).
Triwiyanto - Jurusan Teknik
Elektromedik
Microcontroller A smaller computer
 On-chip RAM, ROM,
I/O ports...
 Example: Motorola’s
6811, Intel’s 8051,
Zilog’s Z8 and PIC
16X, AVR
A single chip
Microcontroller :
Triwiyanto - Jurusan Teknik
Elektromedik
1. MIKROKONTROLER AT89S51 ISP
( In System Programmable )
1.1. Karakteristik
 Kompatibel dengan produk MCS-51
 4K byte In System Programmable Flas Memory
 Dapat dilakukan pemrograman 1000 tulis dan hapus
 Range catu daya 4,0V s/d 5,0V
 Operasi statis: 0 Hz s/d 33 MHz
 Tiga Tingkat Program memory lock
 128 x 8 bit RAM internal
 32 Programmable Jalur I/O
 Dua 16 bit Timer/ Counter
 Enam Sumber Interupsi
 Full Duplex Serial Channel
 Low Power Idle dan Mode Power Down
 Watcht Dog Timer
 Fast Programming Time
 Fleksibel ISP programming
Triwiyanto - Jurusan Teknik
Elektromedik
1.2. Konfigurasi PIN
Triwiyanto - Jurusan Teknik
Elektromedik
CPU
On-chip
RAM
On-chip
Flash
ROM
4 I/O Ports
Timer 0
Serial
PortOSC
Interrupt
Control
External interrupts
Timer 1
Timer/Counter
Bus
Control
TxD RxDP0 P1 P2 P3
Address/Data
Counter
Inputs
1.3. ARSITEKTUR
Triwiyanto - Jurusan Teknik
Elektromedik
Comparison of the 8051 Family Members
Feature 8031 89C51 89S51
ROM (bytes) 0K 4k 4k
RAM (bytes) 128 128 128
Timers 2 2 2
I/O pins 32 32 32
Serial port 1 1 1
Interrupt sources 6 6 6
Programming ROM Ext Parallel Serial/ ISP
Triwiyanto - Jurusan Teknik
Elektromedik
DIRECT/
INDIRECT
ADDRESSING
128 RAM
LOWER
DIRECT
ADDRESSING
128 RAM
SFR
0
7F H
80 H
FF H
INDIRECT
ADDRESSING
128 RAM
UPPER
80 H
FF H
4 K ROM
INTERNAL
0000 H
0FFF H
RAM INTERNAL
P0
/EA
ALE
P2
/RD
/WR
8951
Register Nilai ( biner )
ACC 00000000
B 00000000
PSW 00000000
SP 00000111
DPTR 00000000
P0-P3 11111111
IP 00000000
IE 00000000
TMOD 00000000
TCON 00000000
THO 00000000
TL0 00000000
TH1 00000000
TL1 00000000
SCON 00000000
1.4. Memori map in 89s51 family
Triwiyanto - Jurusan Teknik
Elektromedik
Contoh Program
LOC OBJ LINE ASSEMBLY
0000 1 org 0h
0000 00 2 nop
0001 E5B0 3 start: mov a,p3
0003 F590 4 mov p1,a
0005 80FA 5 sjmp start
0006 6 end
Memori Program ( ROM )
Contoh hasil kompilasi tersebut menjelaskan
1. Data 00 di save ke alamat 0000H
2. Data B0 di save ke alamat 0001H
3. Data E5 di save ke alamat 0002h
4. Data 90 di save ke alamat 0003H
5. Data F5 di save ke alamat 0004H
6. Data FA di save ke alamat 0005H
7. Data 80 di save ke alamat 0006H
Triwiyanto - Jurusan Teknik
Elektromedik
CY AC FO RS1 RS0 OV - P
REGISTER PSW
Carry flag CY PSW.7
Auxilarry carry flag AC PSW.6
General purpose F0 PSW.5
Register Bank Select RS1 PSW.4
Register Bank Select RS0 PSW.3
Over Flow OV PSW.2
General purpose - PSW.1
Parity P PSW.0
RS1 RS0 Bank Address
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH
Memori Data (RAM)
RO R7R6R5R4R3R2R1
RO R7R6R5R4R3R2R1
RO R7R6R5R4R3R2R1
RO R7R6R5R4R3R2R1
OOH
12H11H1OH
OFH
O7H
O8H
18H
16H15H14H13H
OEHODHOCHOBH
O6HO5HO4HO3HO2HO1H
OAHO9H
1EH1DH1CH 1FH1AH19H 1BH
17H
20 H
2F H
BIT-ADDRESSABLE SPACE
30 H
7F H
RAM SERBAGUNA
BANK 0
BANK 3
BANK 2
BANK 1
P0
P2
SCON SBUF
P1
TH1TH0TL1TL0TMODTCON
PCONDPHDPLSP
B
ACC
PSW
IP
P3
IE
80 H 87 H
88 H
90 H
98 H
A0 H
A8 H
B0 H
B8 H
D0 H
E0 H
F0 H
8F H
8951
1.5. CLOCK CONNECTION
 XTALL CONNECTION  EXTERNAL CLOCK
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
Power-On RESET Circuit
+

 RESET
Triwiyanto - Jurusan Teknik
Elektromedik
2. Set Instruction Assembly
MOV P0,A ;mov A to port 0
MOV A,#72H ;A=72H
MOV A, #’r’ ;A=‘r’ OR 72H
MOV R4,#62H ;R4=62H
MOV DPTR,#7634H ;DPTR=7634
Note 1:
MOV A,#30H ≠ MOV A,30H
Note 2:
MOV A,R3 ≡ MOV A,3
2.1. Instruksi copy data
MOV dest, source ; dest = source
Triwiyanto - Jurusan Teknik
Elektromedik
SETB C ; C=1
SETB P0.0 ;bit 0 from Port 0 =1
SETB P3.7 ;bit 7 from port 3 =1
SETB ACC.2 ;bit 2 from ACCUMULATOR =1
Note:
CLR instruction is as same as SETB
i.e:CLR P0.0 ;P0.0=0
But following instruction is only for CLR:
CLR A ;A=0
2.2. Instruksi I/O Satu Bit
SETB bit ; bit=1
CLR bit ; bit=0
LED ( light emmiting diode )
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 1.1. Menghidupkan/ Mematikan
LED dengan perintah MOV
Start: mov P0,#00001111b
sjmp start
end
Start: mov P0,#11111110b
call delay
mov P0,#11111101b
call delay
sjmp start
Delay: mov R0,#255
Del1: nop;
nop;
nop;
nop;
djnz R0,Del1
ret
end
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 1.2. Menghidupkan/ Mematikan
LED dengan perintah SETB dan CLR
Start: CLR P0.0 ; P0.0=0
sjmp start
end
Start: CLR P0.0; P0.0=0
call delay
SETB P0.0; P0.0=1
call delay
sjmp start
Delay: mov R0,#255
Del1: nop;
nop;
nop;
nop;
djnz R0,Del1
ret
end
Triwiyanto - Jurusan Teknik
Elektromedik
Instruksi Penjumlahan
2.3. Instruksi Aritmatika
Instruksi Pengurangan
ADD A, Source ;A=A+SOURCE
ADD A,#6 ;A=A+6
ADD A,R6 ;A=A+R6
ADD A,030H ;A=A+[0F3H]
SUBB A,source ;A=A-source-CY
SETB C ;CY=1
SUBB A,R5 ;A=A-R5-1
Triwiyanto - Jurusan Teknik
Elektromedik
Instruksi Perkalian
MUL AB ;B|A = A*B
DIV AB ;A = A/B, B = A mod B
MOV A,#25H
MOV B,#65H
EX: MUL AB ;25H*65H=0E99
;B=0EH, A=99H
MOV A,#25
MOV B,#10
EX: DIV AB ;A=2, B=5
Instruksi Pembagian
Triwiyanto - Jurusan Teknik
Elektromedik
EXAMPLE:
MOV R5,#89H
ANL R5,#08H
Mov A,#11000000b
RR A ;[A]=01100000b
Example:
INC R7 ;[R7]=[R7]+1
DEC A ;[A]=[A]-1
DEC 40H ; [40]=[40]-1
DEC byte ;byte=byte-1
INC byte ;byte=byte+1
Instruksi Decrement dan Increment
ANL - ORL – XRL-CPL
RR – RL – RRC – RLC
Instruksi Logika
Triwiyanto - Jurusan Teknik
Elektromedik
Table Instruksi Aritmatika
Mnemonic
Operation
Addressing Mode Exect.
Dir Ind Reg Imm Timer uS
Add A,<byte> A=A+<byte> V V V V 1
Addc A,<byte> A=A+<byte>+C V V V V 1
Subb A,<byte> A=A-<byte>-C V V V V 1
Inc A A=A+1 Accumulator Only 1
Inc <byte> <byt>=<byt>+1 V V V 1
Inc DPTR DPTR=DPTR+1 Data Pointer Only 2
Dec A A=A-1 Accumulator Only 1
Dec <byte> <byt>=<byt>-1 V V V 1
Mul AB B:A=BxA Accumulator and B Only 4
Div AB
A=Int[A/B]
B=Mod[A/B]
Accumulator and B only 4
DAA Dec Adjust Accumulator Only 1
Triwiyanto - Jurusan Teknik
Elektromedik
2.4. Instruksi Logika
ANL - ORL – XRL-CPL
EXAMPLE:
MOV R5,#89H
ANL R5,#08H
RR – RL – RRC – RLC
EXAMPLE:
Mov A,#11000000b
RR A ;[A]=01100000b
Triwiyanto - Jurusan Teknik
Elektromedik
Example:
D7 D6 D5 D4 D3 D2 D1 D0
RL A ;rotate left A
Contoh:
ORG 0H
START: MOV A,#00000001B
PUTAR: RL A
SJMP PUTAR
END
A = 00000010
A = 00000100
A = 00001000
:
A = 10000000
A = 00000001
A = dst.
CY D7 D6 D5 D4 D3 D2 D1 D0
RLC A ;rotate left and carry A
Contoh:
ORG 0H
START: MOV A,#00000001B
PUTAR: RLC A
SJMP PUTAR
END
A = 00000010
A = 00000100
: :
A = 10000000
C=1 A = 00000000
A = 00000001
dst.
RR A ;rotate right A
RRC A ;rotate right
;and carry A
Triwiyanto - Jurusan Teknik
Elektromedik
Mnemonic Operation
Addressing Mode Exect.
Dir Ind Reg Imm uS
Anl A,<byte> A=A and <byte> V V V V 1
Anl <byte>,A <byte>=<byte>anl A V V V V 1
Anl <byte>,#data <byte>=<byte>and #data V V V V 1
Orl A,<byte> A=A or <byte> Accumulator Only 1
Orl <byte>,A <byt>=<byt>orl A V V V 1
Orl <byte>,#data <byte>=<byte> or #data Data Pointer Only 2
Xrl A,<byte> A=A xor<byte> Accumulator Only 1
Xrl<byte>,A <byt>=<byt>xor A V V V 1
Xrl <byte>,#data <byte>=<byte>xor #data Accumulator and B Only 4
CLR A A=00h Accumulator only 1
CPL A A= not A Accumulator only 1
RL A Rotate A left 1 bit Accumulator only 1
RLC A Rotate A left trough Carry Accumulator only 1
RR A Rotate A right 1 bit Accumulator only 1
RRC Rotate A right trough carry Accumulator only 1
SWAP A Swap nibbles in A Accumulator only 1
1. Implementasikan AND dan NOT
2. Implementasikan ORL dan ADC
3. Implementasikan NOT dan XOR
4. Sebuah A berisi 38h, lakukan geser data
kekiri RL sebanyak 3x dan hasilnya di
AND kan dengan 36h
5. Sebuah A berisi 78d, geser ke kanan RR
4x hasil tambahkan dg 10h
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
2.5. LOOP and JUMP Instructions
DJNZ ( Decrement & Jump if Not Zero )
Ex.: write a program to clear ACC, then add 3 to the accumulator ten time
Solution:
MOV A,#0;
MOV R2,#10
AGAIN: ADD A,#03
DJNZ R2,AGAIN ;repeat until R2=0 (10 times)
MOV R5,A
CJNE (Compare & Jump if Not Equal )
Ex.: to detect, wheather the A= #8
Get: Mov A, P1
Cjne A,#8, get
end
Triwiyanto - Jurusan Teknik
Elektromedik
SJMP and LJMP:
LJMP(long jump)
Jump to any memory location from 0000 to FFFFH.
SJMP(short jump)
Jump to the relative address range of 00-FFH is
divided into forward and backward jumps, that is ,
within -128 to +127 bytes of memory relative to the
address of the current PC.
Triwiyanto - Jurusan Teknik
Elektromedik
Other conditional jumps :
Instruksi Keterangan Waktu(us)
JZ Jump if A=0 1
JNZ Jump if A/=0 1
DJNZ Decrement and jump if A/=0 2
CJNE A,#byte, label Jump if A/=byte 2
CJNE reg,#data,label Jump if byte/=#data 2
JC Jump if CY=1 1
JNC Jump if CY=0 1
JB Jump if bit=1 1
JNB Jump if bit=0 1
JBC Jump if bit=1 and clear bit 1
Triwiyanto - Jurusan Teknik
Elektromedik
CALL Instructions
which is used to call a subroutine.
LCALL(long call)
LCALL can be used to call subroutines located anywhere within the 64K
byte address space of the 8051.
ACALL(long call)
ACALL can be used to call subroutines located anywhere within the
2K byte address space of the 8051.
CALL(a flexible call)
ACALL can be used to call subroutines located anywhere within the
address space of the 8051.
SWITCH PUSH BUTTON
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 2.1. Menghidupkan LED melalui SW, dengan
instruksi MOV
Start: mov A, P2
mov P0, A
sjmp start
end
Percobaan 2.2. Menghidupkan/ mematikan LED melalui
satu buah SW, dengan instruksi JB
setb P0.0
Start: jb P2.0,start
nop;nop;nop
cpl P0.0
sjmp start
end
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 2.3. Menghidupkan dan mematikan LED
melalui dua buah SW, dengan instruksi JB.
Start: JB P2.0, led_off
MOV P0,#00000000b
SJMP start
Led_off: JB P2.1, start
MOV P0,#11111111b
SJMP start
END
Start: JB P2.0, led_off
CLR P0.0
SJMP start
Led_off: JB P2.1, start
SETB P0.0
SJMP start
END
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 2.3. Menghidupkan LED melalui SW, dengan
instruksi JB. Rencanakan program untuk mendeteksi
saklar P2.7, apabila ditekan maka LED P0.0 sd P0.3
Nyala dan yang lain padam, dan bila saklar P2.6 ditekan
maka LED P0.4 sd P0.7 nyala dan yg lain padam.
?
Triwiyanto - Jurusan Teknik
Elektromedik
Immediate Addressing Mode
MOV A,#65H
MOV A,#’A’
MOV R6,#65H
MOV DPTR,#2343H
MOV P1,#65H
Example :
Num EQU 30
…
MOV R0,Num
MOV DPTR,#data1
…
ORG100H
data1: db “Surabaya”
2.6. Addressing Modes
Triwiyanto - Jurusan Teknik
Elektromedik
Register Addressing Mode
MOV Rn, A ;n=0,..,7
ADD A, Rn
MOV DPL, R6
MOV DPTR, A
MOV Rm, Rn
Triwiyanto - Jurusan Teknik
Elektromedik
Direct Addressing Mode
Although the entire of 128 bytes of RAM can be
accessed using direct addressing mode, it is most often
used to access RAM loc. 30 – 7FH.
 MOV R0, 40H
 MOV 56H, A
 MOV A, 4 ; ≡ MOV A, R4
 MOV 6, 2 ; copy R2 to R6
; MOV R6,R2 is invalid !
SFR register and their address
 MOV 0E0H, #66H ; ≡ MOV A,#66H
 MOV 0F0H, R2 ; ≡ MOV B, R2
 MOV 80H,A ; ≡ MOV P1,A
Triwiyanto - Jurusan Teknik
Elektromedik
Register Indirect Addressing Mode
In this mode, register is used as a pointer to the data.
MOV A,@Ri ; move content of RAM loc.Where address is held by Ri into A
MOV @R1,B ;( i=0 or 1 )
In other word, the content of register R0 or R1 is sources or target in MOV, ADD and
SUBB insructions.
Example:
Write a program to copy a block of 10 bytes from RAM location sterting at
30h to RAM location starting at 60h.
Solution:
MOV R0,#30h ; source pointer
MOV R1,#60h ; dest pointer
MOV R2,#10 ; counter
L1:MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,L1
Triwiyanto - Jurusan Teknik
Elektromedik
Indexed Addressing Mode And ROM Access
 This mode is widely used in accessing data elements
of look-up table entries located in the program (code)
space ROM at the 8051
MOVC A,@A+DPTR
A= content of address A +DPTR from ROM
Note:
Because the data elements are stored in the program
(code ) space ROM of the 8051, it uses the instruction
MOVC instead of MOV. The “C” means code.
Triwiyanto - Jurusan Teknik
Elektromedik
Example:
Assuming that ROM space starting at 250h contains “Hello.”, write a
program to transfer the bytes into RAM locations starting at 40h.
Solution:
ORG 0
MOV DPTR,#MYDATA
MOV R0,#40H
L1: CLR A
MOVC A,@A+DPTR
JZ L2
MOV @R0,A
INC DPTR
INC R0
SJMP L1
L2: SJMP L2
;-------------------------------------
ORG 250H
MYDATA:DB “Hello”,0
END
Notice the NULL character ,0, as end of string and how we use the JZ instruction to detect that.
Triwiyanto - Jurusan Teknik
Elektromedik
Example:
Write a program to get the x value from P1 and send x2 to P2, continuously .
Solution:
ORG 0
MOV DPTR, #TAB1
L01:
MOV A,P1
MOVC A,@A+DPTR
MOV P2,A
SJMP L01
;----------------------------------------------------
ORG 300H
TAB1: DB 0,1,4,9,16,25,36,49,64,81
END
7 SEGMEN
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 0 1
0 1 0 1 1 1 1 1 0 1 1
0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 1 1 0 1 1 1 1
1 0 1 1 1 0 1 1 1 1 1
: : :
1 1 1 0 1 1 1 1 1 1 1
Tabel Kebenaran 74LS138
Percobaan 3.1. Display Huruf A
Display huruf A pada 7 segmen ke 8
Start: MOV P0,#10001000b
CLR P3.5
CLR P3.6
CLR P3.7
SJMP Start
END
Percobaan 3.2. Display Huruf Ab
Display huruf Ab pada 7 segmen ke 8 & 7
Start: mov P0, #10001000b
clr P3.5
clr P3.6
clr P3.7
call delay
mov P0, #10000011b
setb P3.5
clr P3.6
clr P3.7
call delay
sjmp Start
Delay: -----------------------
-----------------------
ret
end
Triwiyanto - Jurusan Teknik
Elektromedik
Interaksi 7 segmen dengan SW
Percobaan 3.3.
Apabila 8 buah SW terhubung ke P2.0 sd P2.7
rencanakan program untuk mencetak karakter
A bila P2.0 ditekan, dan mencetak karakter b
bila P2.1 ditekan.
karA: JB P2.0,karB
mov P0, #10001000b
clr P3.5
clr P3.6
clr P3.7
karB: JB P2.1, karA
mov P0, #10000011b
clr P3.5
clr P3.6
clr P3.7
sjmp karA
end
Triwiyanto - Jurusan Teknik
Elektromedik
Liquid Crystal Display
PIN Name Function Discription
1,16 VSS Ground
2 VCC Power Supply
3 VEE Contras
4 RS Register Select 0: D7..D0, interpreted as commands
1: D7..D0, interpreted as data
5 R/W Read/ Write 0: write data, 1: read data
6 E Enable 1 to 0: data/command are transferred to lcd
14..7 D7..D0 Data
15 BPL Back Pane Light cahaya background
Triwiyanto - Jurusan Teknik
Elektromedik
4.1. LCD Screen
1. LCD Screen terdiri dari 2 baris dan 16
kolom karakter
2. Setiap karakter terdiri 5x8 dot matrix
3. Kontras dapat menggunakan pembagi
tegangan atau menggunakan potensio
Triwiyanto - Jurusan Teknik
Elektromedik
4.2. DDRAM
DDRAM memory is used for storing characters that should be displayed. The
size of this memory is sufficient for storing 80 characters. One part of these
locations is directly connected to the characters on display.
Triwiyanto - Jurusan Teknik
Elektromedik
4.3. Basic Command
Command RS RW D7 D6 D5 D4 D3 D2 D1 D0 Exec
Time(us)
Clear display 0 0 0 0 0 0 0 0 0 1 1.64 ms
Cursor home 0 0 0 0 0 0 0 0 1 X 1.64 ms
Entry mode set 0 0 0 0 0 0 0 1 I/D S 40 us
Display on/off 0 0 0 0 0 0 1 D U B 40 us
Cursor/display shift 0 0 0 0 0 1 D/C R/L X X 40 us
Function set 0 0 0 0 1 DL N F X X 40 us
Set DDRAM address 0 0 1 X X X X X X X 40 us
Set CGRAM address 0 0 0 1 X X X X X X 40 us
Write to CG/DDRAM 1 0 X X X X X X X X 40 us
Read fr. CG/DDRAM 1 1 X X X X X X X X 40 us
Triwiyanto - Jurusan Teknik
Elektromedik
3.4. Inisialisasi LCD Karakter
0 0 0 0 1 DL N F X X
Function Set
DL : Set Data Length (1= data length 8 bit, 0= data length 4 bit )
N : Set jumlah baris ( 1= 2 line display, 0=1 line display)
F : Set Character font (1= 5 x 10 dots; 0= 5 x 7 dots )
0 0 0 0 0 0 0 1 I/D S
Entry Mode Set
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
I/D : Set increment/ decrement ( 1= increment, 0= decrement )
S : Display Sift ( 1=on, 0=off )
Display On/ Off Control
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B
B : Cursor blink ( 1= blink on,0=blink off )
C : Cursor display (1=cursor on, 0=cursor off)
D : display On ( 1= display on)
Triwiyanto - Jurusan Teknik
Elektromedik
Cursor or Display Sift
Shifts the cursor position or display to the right or left without writing or reading
display data. This function is used to corect or search for the display
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 D/C R/L X X
Note : x = Dont care
D/C R/L Note
0 0 Shift cursor position to the left
0 1 Shift cursor position to the right
1 0 Shift the entire display to the left
1 1 Shift the entire display to the right
Triwiyanto - Jurusan Teknik
Elektromedik
0 0 1 A A A A A A A
Clear Display
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Dengan menuliskan instruksi tersebut maka semua tamplan akan reset
0 0 0 0 0 0 0 0 0 1
A : Lokasi memori display
0000000 – 1111111 ( 00 h – 7F h )
Instruksi Pemilihan RAM
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ….
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F ….
Ram Display Address ( in Hexa )
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Baris 1
Baris 2
Percobaan 4.1.
Rencanakan program untuk mencetak
sebuah karakter A pada baris 1 kolom 1
Triwiyanto - Jurusan Teknik
Elektromedik
org 0h
call init_LCD
start: mov R1,#80h
call write_inst
mov R1,#'A'
call write_data
stop: sjmp stop
Init_lcd: mov r1,#00000001b; Disp clear
call write_inst
mov r1,#00111000b; Function Set
call write_inst
mov r1,#00001100b; Disp.on
call write_inst
mov r1,#00000110b ;Entry mode
call write_inst
ret
Write_inst:
clr P3.6 ; RS =0
mov P0,R1
setb P3.7 ; EN=1
call delay
clr P3.7 ; EN =0
ret
Write_data: setb P3.6
mov P0,R1
setb P3.7
call delay
clr p3.7
ret
;
delay: mov R0,#0
delay1: mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
end
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 4.2. Rencanakan program untuk
mencetak kalimat “Selamat Datang “ pada
baris 1
org 0h
call init_LCD
Start:
call write_char
Stop:
sjmp stop
;
write_char:
mov dptr,#word1
mov r3,#16
mov r1,#80h
call write_inst
;
write1:
clr a
movc a, @a+dptr
mov r1,A
inc dptr
call write_data;
djnz r3,write1
ret
Write_inst: …( lihat percb. Sebelumnya)
ret
;
Write_data: …( lihat percb. Sebelumnya)
ret
;
Init_LCD: …( lihat percb. Sebelumnya)
ret
;
Delay: …( lihat percb. Sebelumnya)
ret
word1: DB ' Selamat Datang';
end
Triwiyanto - Jurusan Teknik
Elektromedik
5. Analog to Digital Converter 0804 VCC
D1
3V
G 74LS244
P3.2
10k
P3.3
P3.4
VCC
10
10k
VCC
VCC
150p
13
2
13
2
10k
8
R6
220
ADC0804
6
7
9
11
12
13
14
15
16
17
18
19
4
5
1
2
3
+IN
-IN
VREF/2
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
CLKR
CLKIN
INTR
CS
RD
WR
20P1.7..P1.0
PROG
RUN/ EN ADC
6
5
4
3
2
1
maksVV INREF 2
1

255
MAKSV
V IN
RESOLUSI 
Pin ADC 0804 Fungsi
/INTR End of conversion, active low
/WR Start conversion, pulse transition
/RD Read data
D0 s/d D7 Data
/CS Chip Select, active low
CLK IN/ CLK R Clock Oscilator
Vref Tegangan referensi
Vin Tegangan input
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 5.1. Rencanakan program untuk menampilkan data ADC0804 ke LCD
karakter 2x16, seperti yang ditunjukkan pada gambar.
ratusan equ 30h
puluhan equ 31h
satuan equ 32h
org 0h
call init_LCD
call write_char
start: call ADC
call Bin2Dec
call Write2LCD
sjmp start
;
ADC: clr P3.3
nop
setb P3.3
eoc: jb P3.2,eoc
clr P3.4
mov A,P1
setb P3.4
ret
Write2LCD:
mov r1,#089h
call write_inst
mov a,ratusan
add a,#30h
mov r1,a
call write_data
;
mov r1,#08ah
call write_inst
mov a,puluhan
add a,#30h
mov r1,a
call write_data
;
mov r1,#08bh
call write_inst
mov a,satuan
add a,#30h
mov r1,a
call write_data
ret
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;
write_char:
mov dptr,#word1
mov r3,#16
mov r1,#80h
acall write_inst
;
write1:clr a
movc a,@a+dptr
mov r1,A
inc dptr
acall write_data
djnz r3,write1
ret
Init_lcd: …
ret
;
Write_data: …
ret
;
Write_inst: ….
ret
;
Delay: ....
ret
word1:
DB ‘Data : '
end
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
Watch out !, you may
miss my overflow every 10s. If
you get sleep
COUNTER UP/DOWN
UP 4 BIT Co
74193
D3 D2 D1 D0
What a number to be
loaded to my register, so
I can get pulse out every
10 s on Co
My heart beat
periode is 1 Hz
now
Think smart, you must load data
: 16-10 = 6 or 0110 b on me
COUNTER UP
Clock 16 BIT TF1
TH1(D15..D8) TL1(D7..D0)
I just finished
My work out.
So, my heart
Beat is 1 MHz,
Now
If you loaded, TL1 =00 TH1
=00, then you, need 65536
pulse. To Get overflow on my
TF1
If my periode input clock is 1 u
Then I wil interupt you, after
1 uS x 65536 = 0.065536 s
Load
Triwiyanto - Jurusan Teknik
Elektromedik
COUNTER UP
Clock 16 BIT TF1
TH1(D15..D8) TL1(D7..D0)
Clock = 1 Mhz
0E0h0B1h
Over flow, after 20000 us = 0.02 s
To get over flow after 20000 uS or 0.02 s :
65536 – 20000 = 45536 or 0B1E0 h
To get over flow after 10000 uS or 0.01 s :
65536 – 10000 = 55536 or 0D8F0 h
Data to be loaded to
TL1 and TH1
Register
9. Basic Timer/ Counter
Triwiyanto - Jurusan Teknik
Elektromedik
MODE COUNTER OR TIMER
XTALL/
12
G C/T M1 M0 G C/T M1 M0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TL1 TH1
TMOD
TCON
0 = S1 keatas
1 = S1 kebawah
S1
0 = S2 buka
1 = S2 tutup
S2
Limpahan Timer/ Counter
T1/ P3.5
INT1/ P3.3
89C51
Timer1 Timer 0
Pemilihan Mode: Counter or Timer Mulai mencacah
Overflow on TFx
Triwiyanto - Jurusan Teknik
Elektromedik
M1 M0 OPERATING
0 0 Mode 0: 13 bit Timer/ Counter
0 1 Mode 1: 16 bit Timer/ Counter
1 0 Mode 2: 8 bit auto reload Timer/ Counter. THx
menerima data yang akan direload ke TLx
setiap kali TLx overflow
1 1 Mode 3: 8 bit Timer/ Counter by TL0. TH0
merupakan 8 bit Timer yang dikontrol dari
Timer 1
Gate C/T M1 M0 Gate C/T M1 M0
TIMER 1 TIMER 0
TMOD REGISTER
Triwiyanto - Jurusan Teknik
Elektromedik
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON REGISTER ( BIT ADDRESSABLE REGISTER)
TIMER 1 TIMER 0 TIMER 1 TIMER 0
BIT SYMBOL FUNCTION
TCON.7 TF1 Timer 1 overflow flag. Set by harware on timer/counter overflow. Clear by
hardware when processor vectors to interupt routine, or clearing by
software
TCON.6 TR1 Timer 1 run control bit. Set/cleared by software to turn timer/counter
on/off
TCON.5 TF0 Idem timer 0
TCON.4 TR0 Idem timer 0
TCON.3 IE1 Interupt 1 Edge flag, set by harware when external interrupt edge
detected.
Cleared when interupt processed
TCON.2 IT1 Interrupt 1 type control bit. Set/ Cleared by software to specify falling
edge/ low level triggered external interupt
TCON.1 IE0 Idem timer 0
TCON.0 IT0 Idem timer 0
Triwiyanto - Jurusan Teknik
Elektromedik
MODE 1 :
TIMER 16 BIT ON TIMER 1
XTALL/
12
0 0 0 1 0 0 0 0
TF1TR1
TL1
TMOD
TCON
0 = S1 keatas
1 = S1 kebawah
S1
0 = S2 buka
1 = S2 tutup
S2
T1/ P3.5
INT1/ P3.3
89C51
COUNTER 16 BIT
TH1 P1.0
OSCILOSCOPE
Please load a
number to my
register ( TL1, TH1)
tobe counted, by
MOV TH1,#0D8h
MOV TL1,#0EFh
Triwiyanto - Jurusan Teknik
Elektromedik
XTALL/
12
0 0 1 0 0 0 0 0
TF1TR1
TL1( 8 BIT )
TMOD
TCON
0 = S1 keatas
1 = S1 kebawah
S1
0 = S2 buka
1 = S2 tutup
S2
T1/ P3.5
INT1/ P3.3
89C51
COUNTER 16 BIT
TH1 (8 BIT)
P0.0
OSCILOSCOPE
LATCH
MODE 2 : 8 BIT AUTO-RELOAD
Reload
data 8 bit
on TH1
RUN as TIMER
SETB TR1 to Start RUN
Triwiyanto - Jurusan Teknik
Elektromedik
XTALL/
12
0 1 1 1 0 0 0 0
TF1
TR1
TL1
TMOD
TCON
0 = S1 keatas
1 = S1 kebawah
S1
0 = S2 buka
1 = S2 tutup
S2
T1/ P3.5
INT1/ P3.3
89C51
COUNTER 8 BIT
‘1’
MODE 3 : COUNTER 8 BIT ON TIMER1
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 6.1. Rencanakan program untuk menghitung clock eksternal
dengan menggunakan fungsi Counter pada TIMER 0, tampilkan pada
display 7 segmen dengan nilai desimal : 000 sd. 255.
Hubungkan pin
T0/P3.4/ pin 14 pada
IC 89s51 ke clock
generator
Triwiyanto - Jurusan Teknik
Elektromedik
hundreds equ 30h
Tens equ 31h
Units equ 32h
Org 0h
Mov TMOD,#00000100b
Setb TR0
Get: Mov A, TL0
Call Bin2Dec
Call Display7Segmen
Sjmp Get
;
Bin2Dec:
mov b,#100d
div ab
mov hundreds,a
mov a,b
mov b,#10d
div ab
mov tens,a
mov units,b
ret
Display7Segmen:
clr P3.5
clr P3.6
clr P3.7
mov A, Hundreds
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
;
setb P3.5
clr P3.6
clr P3.7
mov A, Tens
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
clr P3.5 ;
setb P3.6
clr P3.7
mov A, units
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
ret
delay: mov R1,#25
del1: mov R2,#25
del2: djnz R2,del2
djnz R1,del1
ret
;
Data7segmen:
db
11000000b,11111001b,
10100100b,10110000b,
10011001b
db
10010010b,10000010b,
11111000b,10000000b,
10010000b
;
end
Triwiyanto - Jurusan Teknik
Elektromedik
05.00
BANGUN PAGI
06.00
SARAPAN
07.00
KULIAH
15.00
KERJAKAN TGS.
18.00
MAIN
19.00
BELAJAR
?
21.00
TIDUR
RUTINITAS dan PRIORITAS KARENA INTERUPSI
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Triwiyanto - Jurusan Teknik
Elektromedik
EA X X ES ET1 EX1 ET0 EX0
LSBMSB INTERRUPT ENABLE REGISTER ( IE )
BIT SYMBOL FUNCTION
IE.7 EA Disables all interrupts.If EA=0, no interrupt will be
acknoledged. If EA=1,each interrupt source is individually
enabled/ dis.by software
IE.6 - Reserved
IE.5 - Reserved
IE.4 ES Enables or dis. the serial port interrupt, if ES=0, ->
disabled
IE.3 ET1 Enables or dis. the timer 1 overflow interrupt, if ET1=0 ->
disabled
IE.2 EX1 Enables or dis. External interrupt 1.If EX1=0 -> disabled
IE.1 ET0 Enables or dis. the timer 0 overflow interrupt, if ET0=0 ->
disabled
IE.0 EX0 Enables or dis. External interrupt 0.If EX0=0 -> disabled
Triwiyanto - Jurusan Teknik
Elektromedik
X X X PS PT1 PX1 PT0 PX0
LSBMSB
INTERRUPT PRIORITY REGISTER ( IP )
BIT SYMBOL FUNCTION
IP.7 - Reserved
IP.6 - Reserved
IP.5 - Reserved
IP.4 PS Defines the serial port interrupt. PS=1 programs it to the
higher priority
IP.3 PT1 Defines the timer 1
IP.2 PX1 Defines the external 1
IP.1 PT0 Defines the timer 0
IP.0 PX0 Defines the external 0
Triwiyanto - Jurusan Teknik
Elektromedik
VEKTOR INTERUPSI
Source Vector Address
IE0 0003H
TF0 000BH
IE1 0013H
TF1 001BH
RI + TI 0023H
Triwiyanto - Jurusan Teknik
Elektromedik
Interupsi Eksternal 0
Org 0h
Sjmp Start
Org 03h
Ljmp AdaInterupsiEkst0
Start: call InitInterupsiEkst0
;
Forever: setb P1.0
`sjmp Forever
;
InitInterupsiEks0:
Setb P1.0
Setb IT0; hi to low
Setb EX0; en ext int 0
Setb EA; en global
ret
AdaInterupsiEkst0:
Clr P1.0
reti
end
INT0
P1.0
Rencanakan program untuk
menanggapi sebuah interupsi
pada INT0 transisi hi-lo, sehingga
bila ada interupsi maka P1.0 = 0
dan kembali lagi P1.0=1.
Triwiyanto - Jurusan Teknik
Elektromedik
Interupsi TF0
Org 0h
Sjmp Start
Org 0Bh
Ljmp AdaInterupsiTF0
Start: call InitInterupsiTF0
;
Forever: sjmp Forever
;
InitInterupsiTF0:
Setb P1.0
Setb ET0
Setb EA
call LoadData
ret
LoadData: Mov TMOD,#.......
Mov TL0,#....
Mov TH0,#....
Setb TR0
ret
AdaInterupsiTF0:
Clr P1.0
call Loaddata
reti
end
TF0
P1.0
Rencanakan program untuk
menanggapi sebuah interupsi
yang dibangkitkan oleh
Timer0,Mode 1 melalui bit TF0,
sehingga bila tidak ada interupsi
P1.0 = 1, dan ada interupsi P1.0
=0. Interupsi akan dibangkitkan
setiap 50.000 us.
Latihan
Triwiyanto - Jurusan Teknik
Elektromedik
1. Rencanakan program untuk menanggapi interupsi pada INT0 level, sehingga
bila:
1. Ada interupsi: buzer bunyi
2. Tidak ada interupsi : Display A
Tentukan: a. subrutin InitIntExt0 b. Subrutine Display A, c. Keseluruhan
2. Rencanakan program untuk menanggapi interupsi pada INT Transisi, sehingga
bila:
1. Ada interupsi: buzer bunyi
2. Tidak ada interupsi : Display O
Tentukan: a. subrutin InitIntExt1 b. Subrutine Display O, c. Keseluruhan
3. Rencanakan program untuk melayani interupsi dari TIMER 0 mode 2 sebagai
TIMER, dan melayani interupsi setiap 250 uS, bila:
1. Tidak ada interupsi : Display L
2. Ada Interupsi : buzer berbunyi
Tentukan: a. Init Interupsi Timer b. Subrutine Display L c. Rutin Keseluruhan
Triwiyanto - Jurusan Teknik
Elektromedik
Triwiyanto - Jurusan Teknik
Elektromedik
The Power of Serial Comm. RS232
SINKRON KOMUNIKASI
1. Dua buah divais diinisialisasi atau disinkronisasi menggunakan clock
yang sama dan secara kontinu dapat mengirimkan atau menerima
karakter untuk tetap sinkron.
2. Komunikasi sinkron mempunyai kecepatan yang lebih tinggi bila
dibandingkan dengan asinkron, karena tidak ada penambahan bit, untuk
menandai permulaan dan akhiran byte data.
3. Port Serial pada PC adalah asinkron divais, sehingga hanya support
untuk komunikasi serial asinkron
D0 D6D5D4D3D2D1 D7DATA
CLOCK
Triwiyanto - Jurusan Teknik
Elektromedik
ASINKRON KOMUNIKASI
1. Asinkron berarti tanpa sinkronisasi, sehingga tidak diperlukan
pengiriman sinyal clock.
2. Akan tetapi, pada setiap awalan dan akhiran harus ditandai dengan bit
start dan bit stop.
3. Start bit menunjukkan, bahwa data akan segera dikirim atau diterima,
dan bit stop menyatakan akhiran dari sinyal.
4. Keperluan penambahan pengiriman dua bit ini akan menyebabkan
komunikasi asinkron akan lebih lambat bila dibandingkan dengan
komunikasi sinkron.
5. Pada jalur asinkron, kondisi idle dinyatakan sebagai nilai ‘1’ ( yang juga
disebut sebagai keadaan mark )
Triwiyanto - Jurusan Teknik
Elektromedik
PANJANG KABEL KOM. RS232
1. Standart RS232 menyarankan batasan panjang kabel 50
feet ( 1 m = 3,3 feet )
2. Sesungguhnya kita dapat mengabaikan standard ini, karena
kabel dapat lebih panjang dari 10.000 feet pada baudrate
sampai 19200 bps, jika kita menggunakan kabel yang
berkualitas dan terlindungi.
Baudrate
BPS
Shielded Cable Length
(feet)
Unshielded Cable Length
(feet)
9600 250 100
4800 500 250
2400 2000 500
1200 3000 500
300 4000 1000
110 5000 1000
Triwiyanto - Jurusan Teknik
Elektromedik
Standart RS232
RS232 LEVEL
Triwiyanto - Jurusan Teknik
Elektromedik
Interfacing Serial Port pada Mikrokontroller
Interfacing port serial lebih sulit dibandingkan dengan port parallel. Pada
beberapa peralatan telah memiliki port serial untuk berkomunikasi dengan
komputer atau peralatan lain.
Apa keuntungan menggunakan serial komunikasi ?
1. Kabel serial dapat lebih panjang dibandingkan kabel parallel. Port
Serial mentransmisikan logika ‘1’ dengan tegangan ~ -25V dan logika
‘0’ dengan tegangan ~ +25V. Dibandingkan parallel : 0 dan 5 V. Cable
Loss bukan menjadi masalah utama pada transmisi data secara serial.
2. Anda tidak memerlukan kabel yang banyak, dibandingkan parallel.
Hanya perlu 3 kabel, bandingkan dengan cara parallel, sehingga biaya
lebih murah.
Triwiyanto - Jurusan Teknik
Elektromedik
Port Serial pada Mikrokontroller
YOU CAN CONTROL YOUR DEVICE
FROM REMOTE PLACE, JUST BY
THREE CABLE
Start Stop
P3.0/ RXD
P3.1/ TXD
T1OUT
R1IN
GND
R1OUT
T1IN
RS232 89C51
RD(2)
TD(3)
GND (5)
COMM 1,COMM 2 Etc. ( DB 9 )
My job is to convert
RS232 level to TTL
Logic Level
2400 bps
Triwiyanto - Jurusan Teknik
Elektromedik
Port Serial PC
Pin Assignment Description
1 DCD Data carrier detect
2 RXD Receive data
3 TXD Transmit data
4 DTR Data terminal ready
5 GND Signal ground
6 DSR Data set ready
7 RTS Request to send
8 CTS Clear to send
9 RI Ring indicator
Base Address:
-3F8 h
-2F8 h
Triwiyanto - Jurusan Teknik
Elektromedik
KONVERTER RS232 TO TTL/ TTL TO RS232
VCC
MAX232
13
8
11
10
1
3
4
5
2
6
12
9
14
7
R1IN
R2IN
T1IN
T2IN
C+
C1-
C2+
C2-
V+
V-
R1OUT
R2OUT
T1OUT
T2OUT
+ 10u
P3.1 ( Tx )
+
10u
+
10u
P3.0 ( Rx )
15
P1
PC DB9 Male
5
9
4
8
3
7
2
6
1
+
10u
16
VCC
Triwiyanto - Jurusan Teknik
Elektromedik
SERIAL PORT DAPAT DIOPERSIKAN DALAM 4 MODE
1. Mode O : Mode Sinkron, data dikirim dan diterima melalui P3.0, dan menyalurkan
clock melalui P3.1
2. Mode 1 :10 bit are transmitted ( through TxD ) or receive
(through RxD), a start bit (0), a 8 bit data ( LSB first ), and
a stop bit (1). On receive, the stop bit goes into RB8 in SFR
SCON. The baud rate is variable.
3. Mode 2 : 11 bit are transmitted ( through TxD ) or receive ( through RxD ), a start
bit (0), a 8 bit data ( LSB first ), 9th bit and a stop bit (1).
4. Mode 3 : idem mode 2, baudrate dapat diatur
SBUF merupakan SFR (Special Function Register) yang terletak pada memori-data
internal dengan nomor $99. SBUF mempunyai kegunaan ganda, data yang disimpan
pada SBUF akan dikirim keluar MCS51 lewat port seri, sedangkan data dari luar
MCS51 yang diterima port seri diambil dari SBUF pula
D7 D6 D5 D4 D3 D2 D1 D0
SBUF - SERIAL BUFFER REGISTER
Triwiyanto - Jurusan Teknik
Elektromedik
SM2
Enables the multiprocessor communication feature in Modes 2 and 3. In Mode 2 or 3, if SM2 is set to
1, then Rl will not be activated if the received 9th data bit (RB8) is 0. In Mode 1, if SM2=1 then RI
will not be activated if a valid stop bit was not received. In Mode 0, SM2 should be 0.
REN Enables serial reception. Set by software to enable reception. Clear by software to disable reception.
TB8 The 9th data bit that will be transmitted in Modes 2 and 3. Set or clear by software as desired.
RB8
In Modes 2 and 3, is the 9th data bit that was received. In Mode 1, it SM2=0, RB8 is the stop bit that was
received. In Mode 0,RB8 is not used
TI
Transmit interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or at the
beginning of the stop bit in the other modes, in any serial transmission. Must be cleared
by software.
RI
Receive interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or halfway
through the stop bit time in the other modes, in any serial reception (except see SM2).
Must be cleared by software.
SM0 SM1 SM2 REN TB8 RB8 TI RI
SCON - SERIAL PORT CONTROL REGISTER
SM0 SM1 MODE Keterangan Baudrate
0 0 0
0
0
1
1
1 1
1
2
3
Sinkron
UART 8 BIT
UART 9 BIT
UART 9 BIT
TETAP (fosc/12)
VARIABEL
TETAP (fosc/32 dan
fosc/64)
VARIABEL
Triwiyanto - Jurusan Teknik
Elektromedik
Menggunakan Timer 1 untuk membangkitkan Baud Rate
Ketika timer 1 digunakan untuk membangkitkan clock baud rate, baud rate
pada mode 1 dan 3 adalah ditentukan oleh laju overflow timer 1 dan nilai
dari SMOD. Penentuan baud rate untuk mode 1 dan 3 adalah sebagai
berikut:
Interupsi timer 1 harus disable pada aplikasi ini. Pada kebanyakan
aplikasi, timer ini dioperasikan sebagai timer, dengan mode auto reload
mode 2. Pada kasus ini baud rate diberikan dengan rumus sebagai
berikut:
Triwiyanto - Jurusan Teknik
Elektromedik
Baudrate untuk Timer1 sebagai generator Baudrate
Baud Rate Frekuensi
Kristal
SMOD Nilai Isi
Ulang TH1
Baud rate
Aktual
9600 12 MHz 1 F9h 8923
2400 12 MHz 0 F3h 2400
1200 12 MHz 0 F6h 1202
-SMOD -- GF1 GF0 PD IDL
PCON - POWER CONTROL REGISTER
NOTE:
Baudrate untuk mode 2 bergantung pada nilai bit SMOD pada register PCON.
Jika SMOD=0, baudratenya 1/64 frekuensi oscilator, jika SMOD=1 maka baudratenya
1/32 frekuensi oscilator
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 7.1 Rencanakan program untuk mengendalikan LED melalui port
serial communication
Bahasa pemrograman:
Delphi, Visual Basic, C dll
File: *.HEX
Triwiyanto - Jurusan Teknik
Elektromedik
{ pemrograman Delphi }
procedure TForm1.Button1Click(Sender: TObject);
var data:byte; count:integer;
begin
data:=255-1
count:=1;
comport1.write(data,count);
end;
;
procedure TForm1.Button2Click(Sender: TObject);
var data:byte; count:integer;
begin
data:=255-2
count:=1;
comport1.write(data,count);
end;
; Program Assembly
org 0h
nop
Gets: call initserial
call inchar
mov P0,a
sjmp gets
;
Initserial:mov scon,#50h
mov tmod,#20h
mov th1,#0F3h
setb tr1
ret
inchar:
detect: jnb ri,detect ;
clr ri
mov a,sbuf
ret
End
Triwiyanto - Jurusan Teknik
Elektromedik
Percobaan 7.2. Rencanakan program untuk mengirimkan Data ADC
melalui komunikasi serial RS232 ke PC
{ Pemrograman Delphi }
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var buff:string;y:integer;
begin
comport1.ReadStr(buff,count);
y:=ord(buff[1]);
edit1.text:=inttostr(y);
end;
Triwiyanto - Jurusan Teknik
Elektromedik
Pemrograman Assembly pada Mikrokontroller:
call initserial
;
start: call ADC
call Sendout
sjmp start
;
ADC: clr P3.3
nop
nop
setb P3.3
eoc: jb P3.2,eoc
clr P3.4
mov A,P1
setb P3.4
ret
Sendout:
detect: jnb ti,detect
clr ti
mov sbuf,a
ret
;
initserial:
mov scon,#52h
mov tmod,#20h
mov th1,#0F3h; 2400 bps
setb tr1
ret
end
Triwiyanto - Jurusan Teknik
Elektromedik
1. Rencanakan program untuk komunikasi serial dengan data yang
dikirim 3Bh, dalam mode 1, dengan kecepatan 4800BPS, dan bit
SMOD=1, tentukan a)Gambar sinyal dalam format TTL, b) gambar
sinyal dalam format RS232, c) Hitung nilai TH1 bila xtall yang dipakai
11,0592 MHz.
2. Idem dengan data yg dikirim 1Fh, kecepatan 9600, tentukan a) idem, b,
idem, c) idem dengan xtall 12MHz
3. Rencanakan program untuk mengirimkan karakter 1, 2, dan 3 secara
berturutan dari mikro ke PC dengan kecepatan 4800, SMOD=1, xtall
11.0592 MHz, a) Tentukan TH1, b) tentukan program untuk mengirim
data2 tersebut
4. Rencanakan program untuk menjumlahkan 3+4 dan hasilnya dikirim
via serial ke PC, dengan Baudrate 2400, Xtall: 11.0592 MHz a)
Tentukan TH1, b) tentukan program untuk mengirim data ke PC
5. Tentukan program untuk mengambil data dari PC, yaitu karakter 1 dan
2 bila terdapat karakter 1 maka semua LED akan OFF dan bila karakter
2 maka semua LED akan ON ( LED terhubung ke P1 ), baudrate 1200,
xtall: 12MHz, a) tentukan TH1, b) tentukan program untuk ambil data
tersebut.
Triwiyanto - Jurusan Teknik
Elektromedik
1. Rencanakan sebuah sistem yang memanfaatkan TIMER, dengan
menggunakan mode 2 pada TIMER0, berapakah data yang harus
diloadkan ke TH0 bila diinginkan overflow setiap 100uS,
a. Bagaimanakah inisialisasi sebagai fungsi TIMER
b. bila terjadi overflow maka sebuah LED yang terhubung ke P0.0
akan nyala, selain itu maka akan padam.
2. Rencanakan sebuah sistem yang memanfaatkan COUNTER, dengan
menggunakan mode 2, pada TIMER1, data counter dioutputkan pada
P0.
a. Bagaimanakah inisialisasi sebagai fungsi counter tersebut
b. Bagaimana instruksi untuk mendeteksi bila TL1>10 maka LED
yang terhubung ke P0 akan padam semua
3. Rencanakan sebuah interupsi yang dibangkitkan oleh timer, pada
mode 1 (13 bit), dengan kejadian interupsi setiap 5000 us.
a. Bagaimanakah inisialisasi sistem interupsi tersebut
b. Buatlah program bila terjadi interupsi maka akan memproses 2+3
dan dikirim ke P0
Triwiyanto - Jurusan Teknik
Elektromedik
1. Rencanakan program untuk mendeteksi saklar SW1 dan
SW2, yang masing2 terhubung ke P2.0 dan P2.1, bila
SW1 ditekan maka akan kirim karakter A via serial, bila
SW2 ditekan maka akan kirim karakter B via serial,
dengan BPS 4800, xtall 11,0592 MHz, SMOD=1, a)
tentukan TH1, b) tentukan program untuk deteksi dan
kirim data.
2. Rencanakan program idem, bila SW1 (P3.6) ditekan
maka akan mengirimkan hasil perkalian 5*7 via serial
dan bila SW2(P3.7) ditekan maka akan mengirimkan
hasil pembagian 12/4 via serial dengan baudrate 2400,
xtall 11,0592 MHZ, SMOD=1, a) tentukan TH1, b)
tentukan program untuk deteksi dan kirim data
Soal Latihan
Triwiyanto - Jurusan Teknik
Elektromedik
3. Rencakan program untuk mendeteksi interupsi eksternal
transisi, pada INT1, bila terjadi interupsi maka akan mengirim
sebuah karakter ‘A’ dan ‘B’ secara berturutan, via komunikasi
serial. Dengan keterangan, BPS 1200, xtall 12MHz, SMOD=1,
a) tentukan program untuk inisialisasi interupsi external b)
tentukan program keseluruhan ( bila sudah diketahui subrutin:
sendCHAR, InitSerial)
4. Rencanakan program untuk menangkap interupsi TIMER 0
mode 16 bit, sebagai TIMER, bila terjadi OverFlow setiap
50.000 us maka program akan mengirimkan data karakter ‘A’
via serial dan sebaliknya bila tidak terjadi interupsi maka
program terus menerus akan mengirimkan karakter ‘B’ via
serial. (BPS: 4800, xtall 12MHz, SMOD=1) a) tentukan
program inisialisasi TIMER0 mode 16 bit b) tentukan program
keseluruhan ( bila sudah diketahui subrutine: sendCHAR, dan
InitSerial.
Triwiyanto - Jurusan Teknik
Elektromedik
1. Rencanakan rangkaian power On Reset, dan jelaskan cara kerjanya v
2. Rencanakan program untuk mengisi data 05h ke R0 v
3. Rencanakan program untuk mengisi data 50h ke R1 bank 1 v
4. Rencanakan program untuk mengisi data 11d ke alamat 30h v
5. Rencanakan program untuk mengisi data 30h ke alamat R7 bank 2 dan
copykan ke R0 bank 2 v
6. Rencanakan program untuk mengisi data 40h ke alamat R3 bank 3 dan
copykan ke R2 bank 3
7. Rencanakan program untuk mengisi data 23d ke alamat 30h dan copykan ke
alamat 40h
8. Rencanakan program untuk mengisi data 45h ke akumulator, dan copykan
ke R0 bank 1
Triwiyanto - Jurusan Teknik
Elektromedik
TERIMAKASIH
A K H I R N Y A
Email : mytutorialcafe@yahoo.co.id
Yahoo messanger : mytutorialcafe@yahoo.co.id
Telp : 08155126883, 03177406013

Weitere ähnliche Inhalte

Was ist angesagt?

Presentasi flip flop
Presentasi flip flopPresentasi flip flop
Presentasi flip flopIna Locku
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsiSiti Khotijah
 
8 perbaikan faktor daya
8 perbaikan faktor daya8 perbaikan faktor daya
8 perbaikan faktor dayaSimon Patabang
 
Dasar Flip Flop
Dasar Flip FlopDasar Flip Flop
Dasar Flip Flopagenkcopz
 
metode euler
metode eulermetode euler
metode eulerRuth Dian
 
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)IPA 2014
 
Rangkaian logika digital
Rangkaian logika digitalRangkaian logika digital
Rangkaian logika digitalRez Inc
 
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskritPengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskritBeny Nugraha
 
Bab iv. dinamika robot manipulator
Bab iv. dinamika robot manipulatorBab iv. dinamika robot manipulator
Bab iv. dinamika robot manipulatorRumah Belajar
 
Siklus pengambilan (fetch cycle)
Siklus pengambilan (fetch cycle)Siklus pengambilan (fetch cycle)
Siklus pengambilan (fetch cycle)Lusiana Diyan
 
4 metoda analisis rangkaian elektronika
4 metoda analisis rangkaian elektronika4 metoda analisis rangkaian elektronika
4 metoda analisis rangkaian elektronikaSimon Patabang
 
Dasar Sistem Pengaturan-Matlab
Dasar Sistem Pengaturan-MatlabDasar Sistem Pengaturan-Matlab
Dasar Sistem Pengaturan-MatlabChardian Arguta
 
Pertemuan 04. Diagram Blok
Pertemuan 04. Diagram BlokPertemuan 04. Diagram Blok
Pertemuan 04. Diagram BlokAprianti Putri
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsilaurensius08
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 

Was ist angesagt? (20)

Presentasi flip flop
Presentasi flip flopPresentasi flip flop
Presentasi flip flop
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
8 perbaikan faktor daya
8 perbaikan faktor daya8 perbaikan faktor daya
8 perbaikan faktor daya
 
Dasar Flip Flop
Dasar Flip FlopDasar Flip Flop
Dasar Flip Flop
 
metode euler
metode eulermetode euler
metode euler
 
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)
Flip flop (maria hanifah 14708251105 & oky ristya trisnawati-14708251020)
 
Bab 5 komputer sederhana sap-1
Bab 5   komputer sederhana sap-1Bab 5   komputer sederhana sap-1
Bab 5 komputer sederhana sap-1
 
JARINGAN TEGANGAN RENDAH ( JTR)
JARINGAN TEGANGAN RENDAH ( JTR)JARINGAN TEGANGAN RENDAH ( JTR)
JARINGAN TEGANGAN RENDAH ( JTR)
 
Rangkaian logika digital
Rangkaian logika digitalRangkaian logika digital
Rangkaian logika digital
 
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskritPengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
 
Bab iv. dinamika robot manipulator
Bab iv. dinamika robot manipulatorBab iv. dinamika robot manipulator
Bab iv. dinamika robot manipulator
 
Sap 2
Sap 2Sap 2
Sap 2
 
Siklus pengambilan (fetch cycle)
Siklus pengambilan (fetch cycle)Siklus pengambilan (fetch cycle)
Siklus pengambilan (fetch cycle)
 
4 metoda analisis rangkaian elektronika
4 metoda analisis rangkaian elektronika4 metoda analisis rangkaian elektronika
4 metoda analisis rangkaian elektronika
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Dasar Sistem Pengaturan-Matlab
Dasar Sistem Pengaturan-MatlabDasar Sistem Pengaturan-Matlab
Dasar Sistem Pengaturan-Matlab
 
Pertemuan 04. Diagram Blok
Pertemuan 04. Diagram BlokPertemuan 04. Diagram Blok
Pertemuan 04. Diagram Blok
 
Contoh soal
Contoh soalContoh soal
Contoh soal
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 

Ähnlich wie Microcontroller 8051

simple-as-possible-computer-1.ppt
simple-as-possible-computer-1.pptsimple-as-possible-computer-1.ppt
simple-as-possible-computer-1.pptwidieyyaya
 
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16Mochammadfinandika
 
131367696-PLC-dasar-ppt.ppt
131367696-PLC-dasar-ppt.ppt131367696-PLC-dasar-ppt.ppt
131367696-PLC-dasar-ppt.pptNazpexss
 
PERANCANGAN PUTAR BALIK MOTOR DC WALKING ROBOT MENGGUNAKAN MIKROKONTROLLER ...
PERANCANGAN PUTAR BALIK MOTOR DC  WALKING ROBOT MENGGUNAKAN  MIKROKONTROLLER ...PERANCANGAN PUTAR BALIK MOTOR DC  WALKING ROBOT MENGGUNAKAN  MIKROKONTROLLER ...
PERANCANGAN PUTAR BALIK MOTOR DC WALKING ROBOT MENGGUNAKAN MIKROKONTROLLER ...muhamadaulia3
 
Model Traffic Light Menggunakan ATMega16
Model Traffic Light Menggunakan ATMega16Model Traffic Light Menggunakan ATMega16
Model Traffic Light Menggunakan ATMega16faidhurohmanm22
 
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.ppt
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.pptDASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.ppt
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.pptSaifudinIksan
 
Basic avr-microcontroller-tutorial v3
Basic avr-microcontroller-tutorial v3Basic avr-microcontroller-tutorial v3
Basic avr-microcontroller-tutorial v3Mabekni Yulianto
 
Basic avr-microcontroller-tutorial 8535
Basic avr-microcontroller-tutorial 8535Basic avr-microcontroller-tutorial 8535
Basic avr-microcontroller-tutorial 8535LAZY MAGICIAN
 
Traffic light dengan atmega16
Traffic light dengan atmega16Traffic light dengan atmega16
Traffic light dengan atmega16Qurrotul Aini
 
RANCANG BANGUN PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...
RANCANG BANGUN  PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...RANCANG BANGUN  PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...
RANCANG BANGUN PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...RenataNoviene
 
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Muhammad Kennedy Ginting
 
Robot Dengan Motor DC dan Atmega 16
Robot Dengan Motor DC dan Atmega 16Robot Dengan Motor DC dan Atmega 16
Robot Dengan Motor DC dan Atmega 16ibna mauladany
 
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Muhammad Kennedy Ginting
 
PERANCANGAN CONVEYOR MENGGUNAKAN MIKROKONTROLLER ATMEGA 16
PERANCANGAN CONVEYOR  MENGGUNAKAN  MIKROKONTROLLER ATMEGA 16PERANCANGAN CONVEYOR  MENGGUNAKAN  MIKROKONTROLLER ATMEGA 16
PERANCANGAN CONVEYOR MENGGUNAKAN MIKROKONTROLLER ATMEGA 16muhamadaulia3
 
10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusumaAryanti99
 
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535al farisi
 

Ähnlich wie Microcontroller 8051 (20)

Microcontroller-8051.ppt
Microcontroller-8051.pptMicrocontroller-8051.ppt
Microcontroller-8051.ppt
 
Tutorial at89s51
Tutorial at89s51Tutorial at89s51
Tutorial at89s51
 
simple-as-possible-computer-1.ppt
simple-as-possible-computer-1.pptsimple-as-possible-computer-1.ppt
simple-as-possible-computer-1.ppt
 
2213106059-Presentation
2213106059-Presentation2213106059-Presentation
2213106059-Presentation
 
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16
Rancang bangun conveyor Menggunakan Mikrokontroller atmega 16
 
131367696-PLC-dasar-ppt.ppt
131367696-PLC-dasar-ppt.ppt131367696-PLC-dasar-ppt.ppt
131367696-PLC-dasar-ppt.ppt
 
PERANCANGAN PUTAR BALIK MOTOR DC WALKING ROBOT MENGGUNAKAN MIKROKONTROLLER ...
PERANCANGAN PUTAR BALIK MOTOR DC  WALKING ROBOT MENGGUNAKAN  MIKROKONTROLLER ...PERANCANGAN PUTAR BALIK MOTOR DC  WALKING ROBOT MENGGUNAKAN  MIKROKONTROLLER ...
PERANCANGAN PUTAR BALIK MOTOR DC WALKING ROBOT MENGGUNAKAN MIKROKONTROLLER ...
 
Model Traffic Light Menggunakan ATMega16
Model Traffic Light Menggunakan ATMega16Model Traffic Light Menggunakan ATMega16
Model Traffic Light Menggunakan ATMega16
 
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.ppt
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.pptDASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.ppt
DASAR-DASAR PROGRAMMABLE LOGIC CONTROLLER 1.ppt
 
Basic avr-microcontroller-tutorial v3
Basic avr-microcontroller-tutorial v3Basic avr-microcontroller-tutorial v3
Basic avr-microcontroller-tutorial v3
 
Basic avr-microcontroller-tutorial 8535
Basic avr-microcontroller-tutorial 8535Basic avr-microcontroller-tutorial 8535
Basic avr-microcontroller-tutorial 8535
 
Traffic light dengan atmega16
Traffic light dengan atmega16Traffic light dengan atmega16
Traffic light dengan atmega16
 
RANCANG BANGUN PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...
RANCANG BANGUN  PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...RANCANG BANGUN  PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...
RANCANG BANGUN PUTAR BALIK MOTOR DC CONVEYOR MENGGUNAKAN MIKROKONTROLER ATME...
 
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
 
Robot Dengan Motor DC dan Atmega 16
Robot Dengan Motor DC dan Atmega 16Robot Dengan Motor DC dan Atmega 16
Robot Dengan Motor DC dan Atmega 16
 
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
 
06 jurnal anita
06 jurnal anita06 jurnal anita
06 jurnal anita
 
PERANCANGAN CONVEYOR MENGGUNAKAN MIKROKONTROLLER ATMEGA 16
PERANCANGAN CONVEYOR  MENGGUNAKAN  MIKROKONTROLLER ATMEGA 16PERANCANGAN CONVEYOR  MENGGUNAKAN  MIKROKONTROLLER ATMEGA 16
PERANCANGAN CONVEYOR MENGGUNAKAN MIKROKONTROLLER ATMEGA 16
 
10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma
 
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535
Perancangan keypad mesin fotocopy sederhana menggunakan ATmega8535
 

Kürzlich hochgeladen

Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfYoyokSuwiknyo
 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPusatKeteknikanKehut
 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptxVinaAmelia23
 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdffitriAnnisa54
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...rororasiputra
 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptDellaEkaPutri2
 
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdfGambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdfYoyokSuwiknyo
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxarifyudianto3
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxArisatrianingsih
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxAndimarini2
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptxilanarespatinovitari1
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxMuhamadIrfan190120
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfIftitahKartika
 
Kalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.pptKalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.pptAchmadDwitamaKarisma
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptarifyudianto3
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxyoodika046
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturAhmadAffandi36
 
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptxPPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptxssuserdfcb68
 

Kürzlich hochgeladen (19)

Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
 
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
 
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdfGambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
 
Kalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.pptKalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.ppt
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
 
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptxPPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
PPT AHLI MADYA BANGUNAN GEDUNGggggg.pptx
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
 

Microcontroller 8051

  • 1. Triwiyanto - Jurusan Teknik Elektromedik A Software Oriented Device
  • 2. Triwiyanto - Jurusan Teknik Elektromedik
  • 3. Triwiyanto - Jurusan Teknik Elektromedik uC Device Programmer APAKAH MIKROKONTROLLER ? uC: sebuah komputer didalam chip untuk mengontrol peralatan elektronik Sebuah device memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini
  • 4. Triwiyanto - Jurusan Teknik Elektromedik KENAPA MENGGUNAKAN MIKROKONTROLLER ? Dengan penggunaan mikrokontroler ini maka :  Sistem elektronik akan menjadi lebih ringkas  Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi  Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak
  • 5. Triwiyanto - Jurusan Teknik Elektromedik APA MANFAATNYA ? Dengan menguasainya kita dapat menerapkan : 1. Dalam kehidupan sehari-hari: a. Toaster b. Mesin Cuci c. Microwave dll. 2. Di bidang peralatan kedokter: a. Incubator baby b. Phototherapy c. Autoclave d. Photometer dll. 3. Di bidang industri a. Pengaturan proses produksi b. Pengaturan Motor, Robotika, Telekomunikasi dll.
  • 6. Triwiyanto - Jurusan Teknik Elektromedik BAGAIMANA CARANYA? Desain Program Assembly (MIDE-51) Org 0h mov A,10000000b mov P0,A end 0001110101 0101010101 0101010101 0101010101 Compile (MIDE-51) PROGRAM Download (ProgISP Soft.) 01000101001 01111000100 01001010100 00111101010 Test
  • 7. Triwiyanto - Jurusan Teknik Elektromedik BAGAIMANA CARA MEMPELAJARINYA ? 1.Belajar sendiri (otodidak), Anda bisa mempelajari sendiri mikrokontroler dengan panduan buku dan peralatan yang diperlukan, mulailah dari contoh-contoh sederhana. 2.Melalui lembaga Pendidikan, cara kedua ini bisa Anda dapatkan baik melalui pendidikan formal seperti sekolah, perguruan tinggi, maupun pendidikan non formal (kursus, pelatihan, les dan sejenisnya).
  • 8. Triwiyanto - Jurusan Teknik Elektromedik Microcontroller A smaller computer  On-chip RAM, ROM, I/O ports...  Example: Motorola’s 6811, Intel’s 8051, Zilog’s Z8 and PIC 16X, AVR A single chip Microcontroller :
  • 9. Triwiyanto - Jurusan Teknik Elektromedik 1. MIKROKONTROLER AT89S51 ISP ( In System Programmable ) 1.1. Karakteristik  Kompatibel dengan produk MCS-51  4K byte In System Programmable Flas Memory  Dapat dilakukan pemrograman 1000 tulis dan hapus  Range catu daya 4,0V s/d 5,0V  Operasi statis: 0 Hz s/d 33 MHz  Tiga Tingkat Program memory lock  128 x 8 bit RAM internal  32 Programmable Jalur I/O  Dua 16 bit Timer/ Counter  Enam Sumber Interupsi  Full Duplex Serial Channel  Low Power Idle dan Mode Power Down  Watcht Dog Timer  Fast Programming Time  Fleksibel ISP programming
  • 10. Triwiyanto - Jurusan Teknik Elektromedik 1.2. Konfigurasi PIN
  • 11. Triwiyanto - Jurusan Teknik Elektromedik CPU On-chip RAM On-chip Flash ROM 4 I/O Ports Timer 0 Serial PortOSC Interrupt Control External interrupts Timer 1 Timer/Counter Bus Control TxD RxDP0 P1 P2 P3 Address/Data Counter Inputs 1.3. ARSITEKTUR
  • 12. Triwiyanto - Jurusan Teknik Elektromedik Comparison of the 8051 Family Members Feature 8031 89C51 89S51 ROM (bytes) 0K 4k 4k RAM (bytes) 128 128 128 Timers 2 2 2 I/O pins 32 32 32 Serial port 1 1 1 Interrupt sources 6 6 6 Programming ROM Ext Parallel Serial/ ISP
  • 13. Triwiyanto - Jurusan Teknik Elektromedik DIRECT/ INDIRECT ADDRESSING 128 RAM LOWER DIRECT ADDRESSING 128 RAM SFR 0 7F H 80 H FF H INDIRECT ADDRESSING 128 RAM UPPER 80 H FF H 4 K ROM INTERNAL 0000 H 0FFF H RAM INTERNAL P0 /EA ALE P2 /RD /WR 8951 Register Nilai ( biner ) ACC 00000000 B 00000000 PSW 00000000 SP 00000111 DPTR 00000000 P0-P3 11111111 IP 00000000 IE 00000000 TMOD 00000000 TCON 00000000 THO 00000000 TL0 00000000 TH1 00000000 TL1 00000000 SCON 00000000 1.4. Memori map in 89s51 family
  • 14. Triwiyanto - Jurusan Teknik Elektromedik Contoh Program LOC OBJ LINE ASSEMBLY 0000 1 org 0h 0000 00 2 nop 0001 E5B0 3 start: mov a,p3 0003 F590 4 mov p1,a 0005 80FA 5 sjmp start 0006 6 end Memori Program ( ROM ) Contoh hasil kompilasi tersebut menjelaskan 1. Data 00 di save ke alamat 0000H 2. Data B0 di save ke alamat 0001H 3. Data E5 di save ke alamat 0002h 4. Data 90 di save ke alamat 0003H 5. Data F5 di save ke alamat 0004H 6. Data FA di save ke alamat 0005H 7. Data 80 di save ke alamat 0006H
  • 15. Triwiyanto - Jurusan Teknik Elektromedik CY AC FO RS1 RS0 OV - P REGISTER PSW Carry flag CY PSW.7 Auxilarry carry flag AC PSW.6 General purpose F0 PSW.5 Register Bank Select RS1 PSW.4 Register Bank Select RS0 PSW.3 Over Flow OV PSW.2 General purpose - PSW.1 Parity P PSW.0 RS1 RS0 Bank Address 0 0 0 00H-07H 0 1 1 08H-0FH 1 0 2 10H-17H 1 1 3 18H-1FH Memori Data (RAM) RO R7R6R5R4R3R2R1 RO R7R6R5R4R3R2R1 RO R7R6R5R4R3R2R1 RO R7R6R5R4R3R2R1 OOH 12H11H1OH OFH O7H O8H 18H 16H15H14H13H OEHODHOCHOBH O6HO5HO4HO3HO2HO1H OAHO9H 1EH1DH1CH 1FH1AH19H 1BH 17H 20 H 2F H BIT-ADDRESSABLE SPACE 30 H 7F H RAM SERBAGUNA BANK 0 BANK 3 BANK 2 BANK 1 P0 P2 SCON SBUF P1 TH1TH0TL1TL0TMODTCON PCONDPHDPLSP B ACC PSW IP P3 IE 80 H 87 H 88 H 90 H 98 H A0 H A8 H B0 H B8 H D0 H E0 H F0 H 8F H 8951
  • 16. 1.5. CLOCK CONNECTION  XTALL CONNECTION  EXTERNAL CLOCK Triwiyanto - Jurusan Teknik Elektromedik
  • 17. Triwiyanto - Jurusan Teknik Elektromedik Power-On RESET Circuit +   RESET
  • 18. Triwiyanto - Jurusan Teknik Elektromedik 2. Set Instruction Assembly MOV P0,A ;mov A to port 0 MOV A,#72H ;A=72H MOV A, #’r’ ;A=‘r’ OR 72H MOV R4,#62H ;R4=62H MOV DPTR,#7634H ;DPTR=7634 Note 1: MOV A,#30H ≠ MOV A,30H Note 2: MOV A,R3 ≡ MOV A,3 2.1. Instruksi copy data MOV dest, source ; dest = source
  • 19. Triwiyanto - Jurusan Teknik Elektromedik SETB C ; C=1 SETB P0.0 ;bit 0 from Port 0 =1 SETB P3.7 ;bit 7 from port 3 =1 SETB ACC.2 ;bit 2 from ACCUMULATOR =1 Note: CLR instruction is as same as SETB i.e:CLR P0.0 ;P0.0=0 But following instruction is only for CLR: CLR A ;A=0 2.2. Instruksi I/O Satu Bit SETB bit ; bit=1 CLR bit ; bit=0
  • 20. LED ( light emmiting diode ) Triwiyanto - Jurusan Teknik Elektromedik
  • 21. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 1.1. Menghidupkan/ Mematikan LED dengan perintah MOV Start: mov P0,#00001111b sjmp start end Start: mov P0,#11111110b call delay mov P0,#11111101b call delay sjmp start Delay: mov R0,#255 Del1: nop; nop; nop; nop; djnz R0,Del1 ret end
  • 22. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 1.2. Menghidupkan/ Mematikan LED dengan perintah SETB dan CLR Start: CLR P0.0 ; P0.0=0 sjmp start end Start: CLR P0.0; P0.0=0 call delay SETB P0.0; P0.0=1 call delay sjmp start Delay: mov R0,#255 Del1: nop; nop; nop; nop; djnz R0,Del1 ret end
  • 23. Triwiyanto - Jurusan Teknik Elektromedik Instruksi Penjumlahan 2.3. Instruksi Aritmatika Instruksi Pengurangan ADD A, Source ;A=A+SOURCE ADD A,#6 ;A=A+6 ADD A,R6 ;A=A+R6 ADD A,030H ;A=A+[0F3H] SUBB A,source ;A=A-source-CY SETB C ;CY=1 SUBB A,R5 ;A=A-R5-1
  • 24. Triwiyanto - Jurusan Teknik Elektromedik Instruksi Perkalian MUL AB ;B|A = A*B DIV AB ;A = A/B, B = A mod B MOV A,#25H MOV B,#65H EX: MUL AB ;25H*65H=0E99 ;B=0EH, A=99H MOV A,#25 MOV B,#10 EX: DIV AB ;A=2, B=5 Instruksi Pembagian
  • 25. Triwiyanto - Jurusan Teknik Elektromedik EXAMPLE: MOV R5,#89H ANL R5,#08H Mov A,#11000000b RR A ;[A]=01100000b Example: INC R7 ;[R7]=[R7]+1 DEC A ;[A]=[A]-1 DEC 40H ; [40]=[40]-1 DEC byte ;byte=byte-1 INC byte ;byte=byte+1 Instruksi Decrement dan Increment ANL - ORL – XRL-CPL RR – RL – RRC – RLC Instruksi Logika
  • 26. Triwiyanto - Jurusan Teknik Elektromedik Table Instruksi Aritmatika Mnemonic Operation Addressing Mode Exect. Dir Ind Reg Imm Timer uS Add A,<byte> A=A+<byte> V V V V 1 Addc A,<byte> A=A+<byte>+C V V V V 1 Subb A,<byte> A=A-<byte>-C V V V V 1 Inc A A=A+1 Accumulator Only 1 Inc <byte> <byt>=<byt>+1 V V V 1 Inc DPTR DPTR=DPTR+1 Data Pointer Only 2 Dec A A=A-1 Accumulator Only 1 Dec <byte> <byt>=<byt>-1 V V V 1 Mul AB B:A=BxA Accumulator and B Only 4 Div AB A=Int[A/B] B=Mod[A/B] Accumulator and B only 4 DAA Dec Adjust Accumulator Only 1
  • 27. Triwiyanto - Jurusan Teknik Elektromedik 2.4. Instruksi Logika ANL - ORL – XRL-CPL EXAMPLE: MOV R5,#89H ANL R5,#08H RR – RL – RRC – RLC EXAMPLE: Mov A,#11000000b RR A ;[A]=01100000b
  • 28. Triwiyanto - Jurusan Teknik Elektromedik Example: D7 D6 D5 D4 D3 D2 D1 D0 RL A ;rotate left A Contoh: ORG 0H START: MOV A,#00000001B PUTAR: RL A SJMP PUTAR END A = 00000010 A = 00000100 A = 00001000 : A = 10000000 A = 00000001 A = dst. CY D7 D6 D5 D4 D3 D2 D1 D0 RLC A ;rotate left and carry A Contoh: ORG 0H START: MOV A,#00000001B PUTAR: RLC A SJMP PUTAR END A = 00000010 A = 00000100 : : A = 10000000 C=1 A = 00000000 A = 00000001 dst. RR A ;rotate right A RRC A ;rotate right ;and carry A
  • 29. Triwiyanto - Jurusan Teknik Elektromedik Mnemonic Operation Addressing Mode Exect. Dir Ind Reg Imm uS Anl A,<byte> A=A and <byte> V V V V 1 Anl <byte>,A <byte>=<byte>anl A V V V V 1 Anl <byte>,#data <byte>=<byte>and #data V V V V 1 Orl A,<byte> A=A or <byte> Accumulator Only 1 Orl <byte>,A <byt>=<byt>orl A V V V 1 Orl <byte>,#data <byte>=<byte> or #data Data Pointer Only 2 Xrl A,<byte> A=A xor<byte> Accumulator Only 1 Xrl<byte>,A <byt>=<byt>xor A V V V 1 Xrl <byte>,#data <byte>=<byte>xor #data Accumulator and B Only 4 CLR A A=00h Accumulator only 1 CPL A A= not A Accumulator only 1 RL A Rotate A left 1 bit Accumulator only 1 RLC A Rotate A left trough Carry Accumulator only 1 RR A Rotate A right 1 bit Accumulator only 1 RRC Rotate A right trough carry Accumulator only 1 SWAP A Swap nibbles in A Accumulator only 1
  • 30. 1. Implementasikan AND dan NOT 2. Implementasikan ORL dan ADC 3. Implementasikan NOT dan XOR 4. Sebuah A berisi 38h, lakukan geser data kekiri RL sebanyak 3x dan hasilnya di AND kan dengan 36h 5. Sebuah A berisi 78d, geser ke kanan RR 4x hasil tambahkan dg 10h Triwiyanto - Jurusan Teknik Elektromedik
  • 31. Triwiyanto - Jurusan Teknik Elektromedik 2.5. LOOP and JUMP Instructions DJNZ ( Decrement & Jump if Not Zero ) Ex.: write a program to clear ACC, then add 3 to the accumulator ten time Solution: MOV A,#0; MOV R2,#10 AGAIN: ADD A,#03 DJNZ R2,AGAIN ;repeat until R2=0 (10 times) MOV R5,A CJNE (Compare & Jump if Not Equal ) Ex.: to detect, wheather the A= #8 Get: Mov A, P1 Cjne A,#8, get end
  • 32. Triwiyanto - Jurusan Teknik Elektromedik SJMP and LJMP: LJMP(long jump) Jump to any memory location from 0000 to FFFFH. SJMP(short jump) Jump to the relative address range of 00-FFH is divided into forward and backward jumps, that is , within -128 to +127 bytes of memory relative to the address of the current PC.
  • 33. Triwiyanto - Jurusan Teknik Elektromedik Other conditional jumps : Instruksi Keterangan Waktu(us) JZ Jump if A=0 1 JNZ Jump if A/=0 1 DJNZ Decrement and jump if A/=0 2 CJNE A,#byte, label Jump if A/=byte 2 CJNE reg,#data,label Jump if byte/=#data 2 JC Jump if CY=1 1 JNC Jump if CY=0 1 JB Jump if bit=1 1 JNB Jump if bit=0 1 JBC Jump if bit=1 and clear bit 1
  • 34. Triwiyanto - Jurusan Teknik Elektromedik CALL Instructions which is used to call a subroutine. LCALL(long call) LCALL can be used to call subroutines located anywhere within the 64K byte address space of the 8051. ACALL(long call) ACALL can be used to call subroutines located anywhere within the 2K byte address space of the 8051. CALL(a flexible call) ACALL can be used to call subroutines located anywhere within the address space of the 8051.
  • 35. SWITCH PUSH BUTTON Triwiyanto - Jurusan Teknik Elektromedik Percobaan 2.1. Menghidupkan LED melalui SW, dengan instruksi MOV Start: mov A, P2 mov P0, A sjmp start end Percobaan 2.2. Menghidupkan/ mematikan LED melalui satu buah SW, dengan instruksi JB setb P0.0 Start: jb P2.0,start nop;nop;nop cpl P0.0 sjmp start end
  • 36. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 2.3. Menghidupkan dan mematikan LED melalui dua buah SW, dengan instruksi JB. Start: JB P2.0, led_off MOV P0,#00000000b SJMP start Led_off: JB P2.1, start MOV P0,#11111111b SJMP start END Start: JB P2.0, led_off CLR P0.0 SJMP start Led_off: JB P2.1, start SETB P0.0 SJMP start END
  • 37. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 2.3. Menghidupkan LED melalui SW, dengan instruksi JB. Rencanakan program untuk mendeteksi saklar P2.7, apabila ditekan maka LED P0.0 sd P0.3 Nyala dan yang lain padam, dan bila saklar P2.6 ditekan maka LED P0.4 sd P0.7 nyala dan yg lain padam. ?
  • 38. Triwiyanto - Jurusan Teknik Elektromedik Immediate Addressing Mode MOV A,#65H MOV A,#’A’ MOV R6,#65H MOV DPTR,#2343H MOV P1,#65H Example : Num EQU 30 … MOV R0,Num MOV DPTR,#data1 … ORG100H data1: db “Surabaya” 2.6. Addressing Modes
  • 39. Triwiyanto - Jurusan Teknik Elektromedik Register Addressing Mode MOV Rn, A ;n=0,..,7 ADD A, Rn MOV DPL, R6 MOV DPTR, A MOV Rm, Rn
  • 40. Triwiyanto - Jurusan Teknik Elektromedik Direct Addressing Mode Although the entire of 128 bytes of RAM can be accessed using direct addressing mode, it is most often used to access RAM loc. 30 – 7FH.  MOV R0, 40H  MOV 56H, A  MOV A, 4 ; ≡ MOV A, R4  MOV 6, 2 ; copy R2 to R6 ; MOV R6,R2 is invalid ! SFR register and their address  MOV 0E0H, #66H ; ≡ MOV A,#66H  MOV 0F0H, R2 ; ≡ MOV B, R2  MOV 80H,A ; ≡ MOV P1,A
  • 41. Triwiyanto - Jurusan Teknik Elektromedik Register Indirect Addressing Mode In this mode, register is used as a pointer to the data. MOV A,@Ri ; move content of RAM loc.Where address is held by Ri into A MOV @R1,B ;( i=0 or 1 ) In other word, the content of register R0 or R1 is sources or target in MOV, ADD and SUBB insructions. Example: Write a program to copy a block of 10 bytes from RAM location sterting at 30h to RAM location starting at 60h. Solution: MOV R0,#30h ; source pointer MOV R1,#60h ; dest pointer MOV R2,#10 ; counter L1:MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R2,L1
  • 42. Triwiyanto - Jurusan Teknik Elektromedik Indexed Addressing Mode And ROM Access  This mode is widely used in accessing data elements of look-up table entries located in the program (code) space ROM at the 8051 MOVC A,@A+DPTR A= content of address A +DPTR from ROM Note: Because the data elements are stored in the program (code ) space ROM of the 8051, it uses the instruction MOVC instead of MOV. The “C” means code.
  • 43. Triwiyanto - Jurusan Teknik Elektromedik Example: Assuming that ROM space starting at 250h contains “Hello.”, write a program to transfer the bytes into RAM locations starting at 40h. Solution: ORG 0 MOV DPTR,#MYDATA MOV R0,#40H L1: CLR A MOVC A,@A+DPTR JZ L2 MOV @R0,A INC DPTR INC R0 SJMP L1 L2: SJMP L2 ;------------------------------------- ORG 250H MYDATA:DB “Hello”,0 END Notice the NULL character ,0, as end of string and how we use the JZ instruction to detect that.
  • 44. Triwiyanto - Jurusan Teknik Elektromedik Example: Write a program to get the x value from P1 and send x2 to P2, continuously . Solution: ORG 0 MOV DPTR, #TAB1 L01: MOV A,P1 MOVC A,@A+DPTR MOV P2,A SJMP L01 ;---------------------------------------------------- ORG 300H TAB1: DB 0,1,4,9,16,25,36,49,64,81 END
  • 45. 7 SEGMEN Triwiyanto - Jurusan Teknik Elektromedik
  • 46. Triwiyanto - Jurusan Teknik Elektromedik C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 : : : 1 1 1 0 1 1 1 1 1 1 1 Tabel Kebenaran 74LS138 Percobaan 3.1. Display Huruf A Display huruf A pada 7 segmen ke 8 Start: MOV P0,#10001000b CLR P3.5 CLR P3.6 CLR P3.7 SJMP Start END Percobaan 3.2. Display Huruf Ab Display huruf Ab pada 7 segmen ke 8 & 7 Start: mov P0, #10001000b clr P3.5 clr P3.6 clr P3.7 call delay mov P0, #10000011b setb P3.5 clr P3.6 clr P3.7 call delay sjmp Start Delay: ----------------------- ----------------------- ret end
  • 47. Triwiyanto - Jurusan Teknik Elektromedik Interaksi 7 segmen dengan SW Percobaan 3.3. Apabila 8 buah SW terhubung ke P2.0 sd P2.7 rencanakan program untuk mencetak karakter A bila P2.0 ditekan, dan mencetak karakter b bila P2.1 ditekan. karA: JB P2.0,karB mov P0, #10001000b clr P3.5 clr P3.6 clr P3.7 karB: JB P2.1, karA mov P0, #10000011b clr P3.5 clr P3.6 clr P3.7 sjmp karA end
  • 48. Triwiyanto - Jurusan Teknik Elektromedik Liquid Crystal Display PIN Name Function Discription 1,16 VSS Ground 2 VCC Power Supply 3 VEE Contras 4 RS Register Select 0: D7..D0, interpreted as commands 1: D7..D0, interpreted as data 5 R/W Read/ Write 0: write data, 1: read data 6 E Enable 1 to 0: data/command are transferred to lcd 14..7 D7..D0 Data 15 BPL Back Pane Light cahaya background
  • 49. Triwiyanto - Jurusan Teknik Elektromedik 4.1. LCD Screen 1. LCD Screen terdiri dari 2 baris dan 16 kolom karakter 2. Setiap karakter terdiri 5x8 dot matrix 3. Kontras dapat menggunakan pembagi tegangan atau menggunakan potensio
  • 50. Triwiyanto - Jurusan Teknik Elektromedik 4.2. DDRAM DDRAM memory is used for storing characters that should be displayed. The size of this memory is sufficient for storing 80 characters. One part of these locations is directly connected to the characters on display.
  • 51. Triwiyanto - Jurusan Teknik Elektromedik 4.3. Basic Command Command RS RW D7 D6 D5 D4 D3 D2 D1 D0 Exec Time(us) Clear display 0 0 0 0 0 0 0 0 0 1 1.64 ms Cursor home 0 0 0 0 0 0 0 0 1 X 1.64 ms Entry mode set 0 0 0 0 0 0 0 1 I/D S 40 us Display on/off 0 0 0 0 0 0 1 D U B 40 us Cursor/display shift 0 0 0 0 0 1 D/C R/L X X 40 us Function set 0 0 0 0 1 DL N F X X 40 us Set DDRAM address 0 0 1 X X X X X X X 40 us Set CGRAM address 0 0 0 1 X X X X X X 40 us Write to CG/DDRAM 1 0 X X X X X X X X 40 us Read fr. CG/DDRAM 1 1 X X X X X X X X 40 us
  • 52. Triwiyanto - Jurusan Teknik Elektromedik 3.4. Inisialisasi LCD Karakter 0 0 0 0 1 DL N F X X Function Set DL : Set Data Length (1= data length 8 bit, 0= data length 4 bit ) N : Set jumlah baris ( 1= 2 line display, 0=1 line display) F : Set Character font (1= 5 x 10 dots; 0= 5 x 7 dots ) 0 0 0 0 0 0 0 1 I/D S Entry Mode Set RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 I/D : Set increment/ decrement ( 1= increment, 0= decrement ) S : Display Sift ( 1=on, 0=off ) Display On/ Off Control RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 D C B B : Cursor blink ( 1= blink on,0=blink off ) C : Cursor display (1=cursor on, 0=cursor off) D : display On ( 1= display on)
  • 53. Triwiyanto - Jurusan Teknik Elektromedik Cursor or Display Sift Shifts the cursor position or display to the right or left without writing or reading display data. This function is used to corect or search for the display RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 1 D/C R/L X X Note : x = Dont care D/C R/L Note 0 0 Shift cursor position to the left 0 1 Shift cursor position to the right 1 0 Shift the entire display to the left 1 1 Shift the entire display to the right
  • 54. Triwiyanto - Jurusan Teknik Elektromedik 0 0 1 A A A A A A A Clear Display RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Dengan menuliskan instruksi tersebut maka semua tamplan akan reset 0 0 0 0 0 0 0 0 0 1 A : Lokasi memori display 0000000 – 1111111 ( 00 h – 7F h ) Instruksi Pemilihan RAM 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F …. 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F …. Ram Display Address ( in Hexa ) RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Baris 1 Baris 2
  • 55. Percobaan 4.1. Rencanakan program untuk mencetak sebuah karakter A pada baris 1 kolom 1 Triwiyanto - Jurusan Teknik Elektromedik org 0h call init_LCD start: mov R1,#80h call write_inst mov R1,#'A' call write_data stop: sjmp stop Init_lcd: mov r1,#00000001b; Disp clear call write_inst mov r1,#00111000b; Function Set call write_inst mov r1,#00001100b; Disp.on call write_inst mov r1,#00000110b ;Entry mode call write_inst ret Write_inst: clr P3.6 ; RS =0 mov P0,R1 setb P3.7 ; EN=1 call delay clr P3.7 ; EN =0 ret Write_data: setb P3.6 mov P0,R1 setb P3.7 call delay clr p3.7 ret ; delay: mov R0,#0 delay1: mov R7,#0fh djnz R7,$ djnz R0,delay1 ret end
  • 56. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 4.2. Rencanakan program untuk mencetak kalimat “Selamat Datang “ pada baris 1 org 0h call init_LCD Start: call write_char Stop: sjmp stop ; write_char: mov dptr,#word1 mov r3,#16 mov r1,#80h call write_inst ; write1: clr a movc a, @a+dptr mov r1,A inc dptr call write_data; djnz r3,write1 ret Write_inst: …( lihat percb. Sebelumnya) ret ; Write_data: …( lihat percb. Sebelumnya) ret ; Init_LCD: …( lihat percb. Sebelumnya) ret ; Delay: …( lihat percb. Sebelumnya) ret word1: DB ' Selamat Datang'; end
  • 57. Triwiyanto - Jurusan Teknik Elektromedik 5. Analog to Digital Converter 0804 VCC D1 3V G 74LS244 P3.2 10k P3.3 P3.4 VCC 10 10k VCC VCC 150p 13 2 13 2 10k 8 R6 220 ADC0804 6 7 9 11 12 13 14 15 16 17 18 19 4 5 1 2 3 +IN -IN VREF/2 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 CLKR CLKIN INTR CS RD WR 20P1.7..P1.0 PROG RUN/ EN ADC 6 5 4 3 2 1 maksVV INREF 2 1  255 MAKSV V IN RESOLUSI  Pin ADC 0804 Fungsi /INTR End of conversion, active low /WR Start conversion, pulse transition /RD Read data D0 s/d D7 Data /CS Chip Select, active low CLK IN/ CLK R Clock Oscilator Vref Tegangan referensi Vin Tegangan input
  • 58. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 5.1. Rencanakan program untuk menampilkan data ADC0804 ke LCD karakter 2x16, seperti yang ditunjukkan pada gambar. ratusan equ 30h puluhan equ 31h satuan equ 32h org 0h call init_LCD call write_char start: call ADC call Bin2Dec call Write2LCD sjmp start ; ADC: clr P3.3 nop setb P3.3 eoc: jb P3.2,eoc clr P3.4 mov A,P1 setb P3.4 ret Write2LCD: mov r1,#089h call write_inst mov a,ratusan add a,#30h mov r1,a call write_data ; mov r1,#08ah call write_inst mov a,puluhan add a,#30h mov r1,a call write_data ; mov r1,#08bh call write_inst mov a,satuan add a,#30h mov r1,a call write_data ret Bin2Dec: mov b,#100d div ab mov ratusan,a mov a,b mov b,#10d div ab mov puluhan,a mov satuan,b ret ; write_char: mov dptr,#word1 mov r3,#16 mov r1,#80h acall write_inst ; write1:clr a movc a,@a+dptr mov r1,A inc dptr acall write_data djnz r3,write1 ret Init_lcd: … ret ; Write_data: … ret ; Write_inst: …. ret ; Delay: .... ret word1: DB ‘Data : ' end
  • 59. Triwiyanto - Jurusan Teknik Elektromedik
  • 60. Triwiyanto - Jurusan Teknik Elektromedik Watch out !, you may miss my overflow every 10s. If you get sleep COUNTER UP/DOWN UP 4 BIT Co 74193 D3 D2 D1 D0 What a number to be loaded to my register, so I can get pulse out every 10 s on Co My heart beat periode is 1 Hz now Think smart, you must load data : 16-10 = 6 or 0110 b on me COUNTER UP Clock 16 BIT TF1 TH1(D15..D8) TL1(D7..D0) I just finished My work out. So, my heart Beat is 1 MHz, Now If you loaded, TL1 =00 TH1 =00, then you, need 65536 pulse. To Get overflow on my TF1 If my periode input clock is 1 u Then I wil interupt you, after 1 uS x 65536 = 0.065536 s Load
  • 61. Triwiyanto - Jurusan Teknik Elektromedik COUNTER UP Clock 16 BIT TF1 TH1(D15..D8) TL1(D7..D0) Clock = 1 Mhz 0E0h0B1h Over flow, after 20000 us = 0.02 s To get over flow after 20000 uS or 0.02 s : 65536 – 20000 = 45536 or 0B1E0 h To get over flow after 10000 uS or 0.01 s : 65536 – 10000 = 55536 or 0D8F0 h Data to be loaded to TL1 and TH1 Register 9. Basic Timer/ Counter
  • 62. Triwiyanto - Jurusan Teknik Elektromedik MODE COUNTER OR TIMER XTALL/ 12 G C/T M1 M0 G C/T M1 M0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TL1 TH1 TMOD TCON 0 = S1 keatas 1 = S1 kebawah S1 0 = S2 buka 1 = S2 tutup S2 Limpahan Timer/ Counter T1/ P3.5 INT1/ P3.3 89C51 Timer1 Timer 0 Pemilihan Mode: Counter or Timer Mulai mencacah Overflow on TFx
  • 63. Triwiyanto - Jurusan Teknik Elektromedik M1 M0 OPERATING 0 0 Mode 0: 13 bit Timer/ Counter 0 1 Mode 1: 16 bit Timer/ Counter 1 0 Mode 2: 8 bit auto reload Timer/ Counter. THx menerima data yang akan direload ke TLx setiap kali TLx overflow 1 1 Mode 3: 8 bit Timer/ Counter by TL0. TH0 merupakan 8 bit Timer yang dikontrol dari Timer 1 Gate C/T M1 M0 Gate C/T M1 M0 TIMER 1 TIMER 0 TMOD REGISTER
  • 64. Triwiyanto - Jurusan Teknik Elektromedik TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON REGISTER ( BIT ADDRESSABLE REGISTER) TIMER 1 TIMER 0 TIMER 1 TIMER 0 BIT SYMBOL FUNCTION TCON.7 TF1 Timer 1 overflow flag. Set by harware on timer/counter overflow. Clear by hardware when processor vectors to interupt routine, or clearing by software TCON.6 TR1 Timer 1 run control bit. Set/cleared by software to turn timer/counter on/off TCON.5 TF0 Idem timer 0 TCON.4 TR0 Idem timer 0 TCON.3 IE1 Interupt 1 Edge flag, set by harware when external interrupt edge detected. Cleared when interupt processed TCON.2 IT1 Interrupt 1 type control bit. Set/ Cleared by software to specify falling edge/ low level triggered external interupt TCON.1 IE0 Idem timer 0 TCON.0 IT0 Idem timer 0
  • 65. Triwiyanto - Jurusan Teknik Elektromedik MODE 1 : TIMER 16 BIT ON TIMER 1 XTALL/ 12 0 0 0 1 0 0 0 0 TF1TR1 TL1 TMOD TCON 0 = S1 keatas 1 = S1 kebawah S1 0 = S2 buka 1 = S2 tutup S2 T1/ P3.5 INT1/ P3.3 89C51 COUNTER 16 BIT TH1 P1.0 OSCILOSCOPE Please load a number to my register ( TL1, TH1) tobe counted, by MOV TH1,#0D8h MOV TL1,#0EFh
  • 66. Triwiyanto - Jurusan Teknik Elektromedik XTALL/ 12 0 0 1 0 0 0 0 0 TF1TR1 TL1( 8 BIT ) TMOD TCON 0 = S1 keatas 1 = S1 kebawah S1 0 = S2 buka 1 = S2 tutup S2 T1/ P3.5 INT1/ P3.3 89C51 COUNTER 16 BIT TH1 (8 BIT) P0.0 OSCILOSCOPE LATCH MODE 2 : 8 BIT AUTO-RELOAD Reload data 8 bit on TH1 RUN as TIMER SETB TR1 to Start RUN
  • 67. Triwiyanto - Jurusan Teknik Elektromedik XTALL/ 12 0 1 1 1 0 0 0 0 TF1 TR1 TL1 TMOD TCON 0 = S1 keatas 1 = S1 kebawah S1 0 = S2 buka 1 = S2 tutup S2 T1/ P3.5 INT1/ P3.3 89C51 COUNTER 8 BIT ‘1’ MODE 3 : COUNTER 8 BIT ON TIMER1
  • 68. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 6.1. Rencanakan program untuk menghitung clock eksternal dengan menggunakan fungsi Counter pada TIMER 0, tampilkan pada display 7 segmen dengan nilai desimal : 000 sd. 255. Hubungkan pin T0/P3.4/ pin 14 pada IC 89s51 ke clock generator
  • 69. Triwiyanto - Jurusan Teknik Elektromedik hundreds equ 30h Tens equ 31h Units equ 32h Org 0h Mov TMOD,#00000100b Setb TR0 Get: Mov A, TL0 Call Bin2Dec Call Display7Segmen Sjmp Get ; Bin2Dec: mov b,#100d div ab mov hundreds,a mov a,b mov b,#10d div ab mov tens,a mov units,b ret Display7Segmen: clr P3.5 clr P3.6 clr P3.7 mov A, Hundreds mov DPTR,#Data7segmen movc A,@A+DPTR mov P0,A call delay ; setb P3.5 clr P3.6 clr P3.7 mov A, Tens mov DPTR,#Data7segmen movc A,@A+DPTR mov P0,A call delay clr P3.5 ; setb P3.6 clr P3.7 mov A, units mov DPTR,#Data7segmen movc A,@A+DPTR mov P0,A call delay ret delay: mov R1,#25 del1: mov R2,#25 del2: djnz R2,del2 djnz R1,del1 ret ; Data7segmen: db 11000000b,11111001b, 10100100b,10110000b, 10011001b db 10010010b,10000010b, 11111000b,10000000b, 10010000b ; end
  • 70. Triwiyanto - Jurusan Teknik Elektromedik 05.00 BANGUN PAGI 06.00 SARAPAN 07.00 KULIAH 15.00 KERJAKAN TGS. 18.00 MAIN 19.00 BELAJAR ? 21.00 TIDUR RUTINITAS dan PRIORITAS KARENA INTERUPSI
  • 71. Triwiyanto - Jurusan Teknik Elektromedik
  • 72. Triwiyanto - Jurusan Teknik Elektromedik TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
  • 73. Triwiyanto - Jurusan Teknik Elektromedik EA X X ES ET1 EX1 ET0 EX0 LSBMSB INTERRUPT ENABLE REGISTER ( IE ) BIT SYMBOL FUNCTION IE.7 EA Disables all interrupts.If EA=0, no interrupt will be acknoledged. If EA=1,each interrupt source is individually enabled/ dis.by software IE.6 - Reserved IE.5 - Reserved IE.4 ES Enables or dis. the serial port interrupt, if ES=0, -> disabled IE.3 ET1 Enables or dis. the timer 1 overflow interrupt, if ET1=0 -> disabled IE.2 EX1 Enables or dis. External interrupt 1.If EX1=0 -> disabled IE.1 ET0 Enables or dis. the timer 0 overflow interrupt, if ET0=0 -> disabled IE.0 EX0 Enables or dis. External interrupt 0.If EX0=0 -> disabled
  • 74. Triwiyanto - Jurusan Teknik Elektromedik X X X PS PT1 PX1 PT0 PX0 LSBMSB INTERRUPT PRIORITY REGISTER ( IP ) BIT SYMBOL FUNCTION IP.7 - Reserved IP.6 - Reserved IP.5 - Reserved IP.4 PS Defines the serial port interrupt. PS=1 programs it to the higher priority IP.3 PT1 Defines the timer 1 IP.2 PX1 Defines the external 1 IP.1 PT0 Defines the timer 0 IP.0 PX0 Defines the external 0
  • 75. Triwiyanto - Jurusan Teknik Elektromedik VEKTOR INTERUPSI Source Vector Address IE0 0003H TF0 000BH IE1 0013H TF1 001BH RI + TI 0023H
  • 76. Triwiyanto - Jurusan Teknik Elektromedik Interupsi Eksternal 0 Org 0h Sjmp Start Org 03h Ljmp AdaInterupsiEkst0 Start: call InitInterupsiEkst0 ; Forever: setb P1.0 `sjmp Forever ; InitInterupsiEks0: Setb P1.0 Setb IT0; hi to low Setb EX0; en ext int 0 Setb EA; en global ret AdaInterupsiEkst0: Clr P1.0 reti end INT0 P1.0 Rencanakan program untuk menanggapi sebuah interupsi pada INT0 transisi hi-lo, sehingga bila ada interupsi maka P1.0 = 0 dan kembali lagi P1.0=1.
  • 77. Triwiyanto - Jurusan Teknik Elektromedik Interupsi TF0 Org 0h Sjmp Start Org 0Bh Ljmp AdaInterupsiTF0 Start: call InitInterupsiTF0 ; Forever: sjmp Forever ; InitInterupsiTF0: Setb P1.0 Setb ET0 Setb EA call LoadData ret LoadData: Mov TMOD,#....... Mov TL0,#.... Mov TH0,#.... Setb TR0 ret AdaInterupsiTF0: Clr P1.0 call Loaddata reti end TF0 P1.0 Rencanakan program untuk menanggapi sebuah interupsi yang dibangkitkan oleh Timer0,Mode 1 melalui bit TF0, sehingga bila tidak ada interupsi P1.0 = 1, dan ada interupsi P1.0 =0. Interupsi akan dibangkitkan setiap 50.000 us.
  • 78. Latihan Triwiyanto - Jurusan Teknik Elektromedik 1. Rencanakan program untuk menanggapi interupsi pada INT0 level, sehingga bila: 1. Ada interupsi: buzer bunyi 2. Tidak ada interupsi : Display A Tentukan: a. subrutin InitIntExt0 b. Subrutine Display A, c. Keseluruhan 2. Rencanakan program untuk menanggapi interupsi pada INT Transisi, sehingga bila: 1. Ada interupsi: buzer bunyi 2. Tidak ada interupsi : Display O Tentukan: a. subrutin InitIntExt1 b. Subrutine Display O, c. Keseluruhan 3. Rencanakan program untuk melayani interupsi dari TIMER 0 mode 2 sebagai TIMER, dan melayani interupsi setiap 250 uS, bila: 1. Tidak ada interupsi : Display L 2. Ada Interupsi : buzer berbunyi Tentukan: a. Init Interupsi Timer b. Subrutine Display L c. Rutin Keseluruhan
  • 79. Triwiyanto - Jurusan Teknik Elektromedik
  • 80. Triwiyanto - Jurusan Teknik Elektromedik The Power of Serial Comm. RS232 SINKRON KOMUNIKASI 1. Dua buah divais diinisialisasi atau disinkronisasi menggunakan clock yang sama dan secara kontinu dapat mengirimkan atau menerima karakter untuk tetap sinkron. 2. Komunikasi sinkron mempunyai kecepatan yang lebih tinggi bila dibandingkan dengan asinkron, karena tidak ada penambahan bit, untuk menandai permulaan dan akhiran byte data. 3. Port Serial pada PC adalah asinkron divais, sehingga hanya support untuk komunikasi serial asinkron D0 D6D5D4D3D2D1 D7DATA CLOCK
  • 81. Triwiyanto - Jurusan Teknik Elektromedik ASINKRON KOMUNIKASI 1. Asinkron berarti tanpa sinkronisasi, sehingga tidak diperlukan pengiriman sinyal clock. 2. Akan tetapi, pada setiap awalan dan akhiran harus ditandai dengan bit start dan bit stop. 3. Start bit menunjukkan, bahwa data akan segera dikirim atau diterima, dan bit stop menyatakan akhiran dari sinyal. 4. Keperluan penambahan pengiriman dua bit ini akan menyebabkan komunikasi asinkron akan lebih lambat bila dibandingkan dengan komunikasi sinkron. 5. Pada jalur asinkron, kondisi idle dinyatakan sebagai nilai ‘1’ ( yang juga disebut sebagai keadaan mark )
  • 82. Triwiyanto - Jurusan Teknik Elektromedik PANJANG KABEL KOM. RS232 1. Standart RS232 menyarankan batasan panjang kabel 50 feet ( 1 m = 3,3 feet ) 2. Sesungguhnya kita dapat mengabaikan standard ini, karena kabel dapat lebih panjang dari 10.000 feet pada baudrate sampai 19200 bps, jika kita menggunakan kabel yang berkualitas dan terlindungi. Baudrate BPS Shielded Cable Length (feet) Unshielded Cable Length (feet) 9600 250 100 4800 500 250 2400 2000 500 1200 3000 500 300 4000 1000 110 5000 1000
  • 83. Triwiyanto - Jurusan Teknik Elektromedik Standart RS232 RS232 LEVEL
  • 84. Triwiyanto - Jurusan Teknik Elektromedik Interfacing Serial Port pada Mikrokontroller Interfacing port serial lebih sulit dibandingkan dengan port parallel. Pada beberapa peralatan telah memiliki port serial untuk berkomunikasi dengan komputer atau peralatan lain. Apa keuntungan menggunakan serial komunikasi ? 1. Kabel serial dapat lebih panjang dibandingkan kabel parallel. Port Serial mentransmisikan logika ‘1’ dengan tegangan ~ -25V dan logika ‘0’ dengan tegangan ~ +25V. Dibandingkan parallel : 0 dan 5 V. Cable Loss bukan menjadi masalah utama pada transmisi data secara serial. 2. Anda tidak memerlukan kabel yang banyak, dibandingkan parallel. Hanya perlu 3 kabel, bandingkan dengan cara parallel, sehingga biaya lebih murah.
  • 85. Triwiyanto - Jurusan Teknik Elektromedik Port Serial pada Mikrokontroller YOU CAN CONTROL YOUR DEVICE FROM REMOTE PLACE, JUST BY THREE CABLE Start Stop P3.0/ RXD P3.1/ TXD T1OUT R1IN GND R1OUT T1IN RS232 89C51 RD(2) TD(3) GND (5) COMM 1,COMM 2 Etc. ( DB 9 ) My job is to convert RS232 level to TTL Logic Level 2400 bps
  • 86. Triwiyanto - Jurusan Teknik Elektromedik Port Serial PC Pin Assignment Description 1 DCD Data carrier detect 2 RXD Receive data 3 TXD Transmit data 4 DTR Data terminal ready 5 GND Signal ground 6 DSR Data set ready 7 RTS Request to send 8 CTS Clear to send 9 RI Ring indicator Base Address: -3F8 h -2F8 h
  • 87. Triwiyanto - Jurusan Teknik Elektromedik KONVERTER RS232 TO TTL/ TTL TO RS232 VCC MAX232 13 8 11 10 1 3 4 5 2 6 12 9 14 7 R1IN R2IN T1IN T2IN C+ C1- C2+ C2- V+ V- R1OUT R2OUT T1OUT T2OUT + 10u P3.1 ( Tx ) + 10u + 10u P3.0 ( Rx ) 15 P1 PC DB9 Male 5 9 4 8 3 7 2 6 1 + 10u 16 VCC
  • 88. Triwiyanto - Jurusan Teknik Elektromedik SERIAL PORT DAPAT DIOPERSIKAN DALAM 4 MODE 1. Mode O : Mode Sinkron, data dikirim dan diterima melalui P3.0, dan menyalurkan clock melalui P3.1 2. Mode 1 :10 bit are transmitted ( through TxD ) or receive (through RxD), a start bit (0), a 8 bit data ( LSB first ), and a stop bit (1). On receive, the stop bit goes into RB8 in SFR SCON. The baud rate is variable. 3. Mode 2 : 11 bit are transmitted ( through TxD ) or receive ( through RxD ), a start bit (0), a 8 bit data ( LSB first ), 9th bit and a stop bit (1). 4. Mode 3 : idem mode 2, baudrate dapat diatur SBUF merupakan SFR (Special Function Register) yang terletak pada memori-data internal dengan nomor $99. SBUF mempunyai kegunaan ganda, data yang disimpan pada SBUF akan dikirim keluar MCS51 lewat port seri, sedangkan data dari luar MCS51 yang diterima port seri diambil dari SBUF pula D7 D6 D5 D4 D3 D2 D1 D0 SBUF - SERIAL BUFFER REGISTER
  • 89. Triwiyanto - Jurusan Teknik Elektromedik SM2 Enables the multiprocessor communication feature in Modes 2 and 3. In Mode 2 or 3, if SM2 is set to 1, then Rl will not be activated if the received 9th data bit (RB8) is 0. In Mode 1, if SM2=1 then RI will not be activated if a valid stop bit was not received. In Mode 0, SM2 should be 0. REN Enables serial reception. Set by software to enable reception. Clear by software to disable reception. TB8 The 9th data bit that will be transmitted in Modes 2 and 3. Set or clear by software as desired. RB8 In Modes 2 and 3, is the 9th data bit that was received. In Mode 1, it SM2=0, RB8 is the stop bit that was received. In Mode 0,RB8 is not used TI Transmit interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or at the beginning of the stop bit in the other modes, in any serial transmission. Must be cleared by software. RI Receive interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or halfway through the stop bit time in the other modes, in any serial reception (except see SM2). Must be cleared by software. SM0 SM1 SM2 REN TB8 RB8 TI RI SCON - SERIAL PORT CONTROL REGISTER SM0 SM1 MODE Keterangan Baudrate 0 0 0 0 0 1 1 1 1 1 2 3 Sinkron UART 8 BIT UART 9 BIT UART 9 BIT TETAP (fosc/12) VARIABEL TETAP (fosc/32 dan fosc/64) VARIABEL
  • 90. Triwiyanto - Jurusan Teknik Elektromedik Menggunakan Timer 1 untuk membangkitkan Baud Rate Ketika timer 1 digunakan untuk membangkitkan clock baud rate, baud rate pada mode 1 dan 3 adalah ditentukan oleh laju overflow timer 1 dan nilai dari SMOD. Penentuan baud rate untuk mode 1 dan 3 adalah sebagai berikut: Interupsi timer 1 harus disable pada aplikasi ini. Pada kebanyakan aplikasi, timer ini dioperasikan sebagai timer, dengan mode auto reload mode 2. Pada kasus ini baud rate diberikan dengan rumus sebagai berikut:
  • 91. Triwiyanto - Jurusan Teknik Elektromedik Baudrate untuk Timer1 sebagai generator Baudrate Baud Rate Frekuensi Kristal SMOD Nilai Isi Ulang TH1 Baud rate Aktual 9600 12 MHz 1 F9h 8923 2400 12 MHz 0 F3h 2400 1200 12 MHz 0 F6h 1202 -SMOD -- GF1 GF0 PD IDL PCON - POWER CONTROL REGISTER NOTE: Baudrate untuk mode 2 bergantung pada nilai bit SMOD pada register PCON. Jika SMOD=0, baudratenya 1/64 frekuensi oscilator, jika SMOD=1 maka baudratenya 1/32 frekuensi oscilator
  • 92. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 7.1 Rencanakan program untuk mengendalikan LED melalui port serial communication Bahasa pemrograman: Delphi, Visual Basic, C dll File: *.HEX
  • 93. Triwiyanto - Jurusan Teknik Elektromedik { pemrograman Delphi } procedure TForm1.Button1Click(Sender: TObject); var data:byte; count:integer; begin data:=255-1 count:=1; comport1.write(data,count); end; ; procedure TForm1.Button2Click(Sender: TObject); var data:byte; count:integer; begin data:=255-2 count:=1; comport1.write(data,count); end; ; Program Assembly org 0h nop Gets: call initserial call inchar mov P0,a sjmp gets ; Initserial:mov scon,#50h mov tmod,#20h mov th1,#0F3h setb tr1 ret inchar: detect: jnb ri,detect ; clr ri mov a,sbuf ret End
  • 94. Triwiyanto - Jurusan Teknik Elektromedik Percobaan 7.2. Rencanakan program untuk mengirimkan Data ADC melalui komunikasi serial RS232 ke PC { Pemrograman Delphi } procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var buff:string;y:integer; begin comport1.ReadStr(buff,count); y:=ord(buff[1]); edit1.text:=inttostr(y); end;
  • 95. Triwiyanto - Jurusan Teknik Elektromedik Pemrograman Assembly pada Mikrokontroller: call initserial ; start: call ADC call Sendout sjmp start ; ADC: clr P3.3 nop nop setb P3.3 eoc: jb P3.2,eoc clr P3.4 mov A,P1 setb P3.4 ret Sendout: detect: jnb ti,detect clr ti mov sbuf,a ret ; initserial: mov scon,#52h mov tmod,#20h mov th1,#0F3h; 2400 bps setb tr1 ret end
  • 96. Triwiyanto - Jurusan Teknik Elektromedik 1. Rencanakan program untuk komunikasi serial dengan data yang dikirim 3Bh, dalam mode 1, dengan kecepatan 4800BPS, dan bit SMOD=1, tentukan a)Gambar sinyal dalam format TTL, b) gambar sinyal dalam format RS232, c) Hitung nilai TH1 bila xtall yang dipakai 11,0592 MHz. 2. Idem dengan data yg dikirim 1Fh, kecepatan 9600, tentukan a) idem, b, idem, c) idem dengan xtall 12MHz 3. Rencanakan program untuk mengirimkan karakter 1, 2, dan 3 secara berturutan dari mikro ke PC dengan kecepatan 4800, SMOD=1, xtall 11.0592 MHz, a) Tentukan TH1, b) tentukan program untuk mengirim data2 tersebut 4. Rencanakan program untuk menjumlahkan 3+4 dan hasilnya dikirim via serial ke PC, dengan Baudrate 2400, Xtall: 11.0592 MHz a) Tentukan TH1, b) tentukan program untuk mengirim data ke PC 5. Tentukan program untuk mengambil data dari PC, yaitu karakter 1 dan 2 bila terdapat karakter 1 maka semua LED akan OFF dan bila karakter 2 maka semua LED akan ON ( LED terhubung ke P1 ), baudrate 1200, xtall: 12MHz, a) tentukan TH1, b) tentukan program untuk ambil data tersebut.
  • 97. Triwiyanto - Jurusan Teknik Elektromedik 1. Rencanakan sebuah sistem yang memanfaatkan TIMER, dengan menggunakan mode 2 pada TIMER0, berapakah data yang harus diloadkan ke TH0 bila diinginkan overflow setiap 100uS, a. Bagaimanakah inisialisasi sebagai fungsi TIMER b. bila terjadi overflow maka sebuah LED yang terhubung ke P0.0 akan nyala, selain itu maka akan padam. 2. Rencanakan sebuah sistem yang memanfaatkan COUNTER, dengan menggunakan mode 2, pada TIMER1, data counter dioutputkan pada P0. a. Bagaimanakah inisialisasi sebagai fungsi counter tersebut b. Bagaimana instruksi untuk mendeteksi bila TL1>10 maka LED yang terhubung ke P0 akan padam semua 3. Rencanakan sebuah interupsi yang dibangkitkan oleh timer, pada mode 1 (13 bit), dengan kejadian interupsi setiap 5000 us. a. Bagaimanakah inisialisasi sistem interupsi tersebut b. Buatlah program bila terjadi interupsi maka akan memproses 2+3 dan dikirim ke P0
  • 98. Triwiyanto - Jurusan Teknik Elektromedik 1. Rencanakan program untuk mendeteksi saklar SW1 dan SW2, yang masing2 terhubung ke P2.0 dan P2.1, bila SW1 ditekan maka akan kirim karakter A via serial, bila SW2 ditekan maka akan kirim karakter B via serial, dengan BPS 4800, xtall 11,0592 MHz, SMOD=1, a) tentukan TH1, b) tentukan program untuk deteksi dan kirim data. 2. Rencanakan program idem, bila SW1 (P3.6) ditekan maka akan mengirimkan hasil perkalian 5*7 via serial dan bila SW2(P3.7) ditekan maka akan mengirimkan hasil pembagian 12/4 via serial dengan baudrate 2400, xtall 11,0592 MHZ, SMOD=1, a) tentukan TH1, b) tentukan program untuk deteksi dan kirim data Soal Latihan
  • 99. Triwiyanto - Jurusan Teknik Elektromedik 3. Rencakan program untuk mendeteksi interupsi eksternal transisi, pada INT1, bila terjadi interupsi maka akan mengirim sebuah karakter ‘A’ dan ‘B’ secara berturutan, via komunikasi serial. Dengan keterangan, BPS 1200, xtall 12MHz, SMOD=1, a) tentukan program untuk inisialisasi interupsi external b) tentukan program keseluruhan ( bila sudah diketahui subrutin: sendCHAR, InitSerial) 4. Rencanakan program untuk menangkap interupsi TIMER 0 mode 16 bit, sebagai TIMER, bila terjadi OverFlow setiap 50.000 us maka program akan mengirimkan data karakter ‘A’ via serial dan sebaliknya bila tidak terjadi interupsi maka program terus menerus akan mengirimkan karakter ‘B’ via serial. (BPS: 4800, xtall 12MHz, SMOD=1) a) tentukan program inisialisasi TIMER0 mode 16 bit b) tentukan program keseluruhan ( bila sudah diketahui subrutine: sendCHAR, dan InitSerial.
  • 100. Triwiyanto - Jurusan Teknik Elektromedik 1. Rencanakan rangkaian power On Reset, dan jelaskan cara kerjanya v 2. Rencanakan program untuk mengisi data 05h ke R0 v 3. Rencanakan program untuk mengisi data 50h ke R1 bank 1 v 4. Rencanakan program untuk mengisi data 11d ke alamat 30h v 5. Rencanakan program untuk mengisi data 30h ke alamat R7 bank 2 dan copykan ke R0 bank 2 v 6. Rencanakan program untuk mengisi data 40h ke alamat R3 bank 3 dan copykan ke R2 bank 3 7. Rencanakan program untuk mengisi data 23d ke alamat 30h dan copykan ke alamat 40h 8. Rencanakan program untuk mengisi data 45h ke akumulator, dan copykan ke R0 bank 1
  • 101. Triwiyanto - Jurusan Teknik Elektromedik TERIMAKASIH A K H I R N Y A Email : mytutorialcafe@yahoo.co.id Yahoo messanger : mytutorialcafe@yahoo.co.id Telp : 08155126883, 03177406013