Hardware:
• Pemrograman dan Interfacing mikrokontroler dan PLC
• Memahami dan familiar dengan rangkaian
Bidang Elektronika Saat ini
Mengapa Mikrokontroler ?
Chip teknologi terkini yang mampu melaksanakan tugas-tugas
kontrol sistem, karena di dalamnya umumnya sudah mencakup:
• CPU
• RAM
• ROM
• EEPROM (Tidak semua)
• I/O (Serial /paralel, I2C)
• Timer
4 KByte No
AT89C51/ AT89S51 8 X 128 Byte
8 KByte No
AT89C52/ AT89S52 8 X 256 Byte
20 KByte No
AT89C55 8 X 256 Byte
12 KByte No
AT89S53 8 X 256 Byte
8 KByte 2 KByte
AT89S8252 8 X 256 Byte
8KByte 512B
Atmega 8535 512
SISTEM MINIMUM MIKROKONTROLER
U1
1
PB0 (XCK/T0) PA0 (ADC0)
40 Kelip.bas
2 39
PB1 (T1) PA1 (ADC1)
3
PB2 (AIN0/INT2) PA2 (ADC2)
38 ‘Konfigurasi port B sebagai output
4 37
5
PB3 (AIN1/OC0) PA3 (ADC3)
36 Config portb=output
PB4 (SS) PA4 (ADC4)
6 35
PB5 (MOSI) PA5 (ADC5)
LED 7 34
8
PB6 (MISO) PA6 (ADC6)
33
Do ’pengulangan
PB7 (SCK) PA7 (ADC7) Portb=255 ‘hidup semua
14 22 Waitms 100 ’delay 100ms
PD0 (RXD) PC0 (SCL)
15 23
16
PD1 (TXD) PC1 (SDA)
24 Portb=0 ’mati semua
PD2 (INT0) PC2
17
PD3 (INT1) PC3
25 Waitms 100 ’delay 100ms
18 26
19
PD4 (OC1B) PC4
27
Loop
PD5 (OC1A) PC5
20 28
PD6 (ICP) PC6 (TOSC1)
21 29
PD7 (OC2) PC7 (TOSC2)
VCC
9 10
C1
RESET VCC
30 Terdapat 4 PORT sebagai
AVCC
12
XTAL2 AREF
32 I/O yaitu PA, PB, PC dan
13
Cap XTAL1
31 PD
2
18pF GND
11
GND
C2
1
ATmega8535
Cap 11.0592MHz
18pF
Pengubah Analog ke Digital
VCC
VCC
U1
Q1
R3 1 40 R1 R? ADC.bas
PB0 (XCK/T0) PA0 (ADC0)
2N3904
390 2
3
PB1 (T1) PA1 (ADC1)
39
38
1K
10K
Start Adc
PB2 (AIN0/INT2) PA2 (ADC2)
8 X LED
4
5
PB3 (AIN1/OC0) PA3 (ADC3)
37
36
Dim W As Word
PB4 (SS) PA4 (ADC4)
R4 6
PB5 (MOSI) PA5 (ADC5)
35 Channel = 0
390 7 34
8
PB6 (MISO)
PB7 (SCK)
PA6 (ADC6)
PA7 (ADC7)
33 ‘Baca data di channel
14
PD0 (RXD) PC0 (SCL)
22 Do
15 23
16
PD1 (TXD) PC1 (SDA)
24 W = Getadc(channel)
PD2 (INT0) PC2
17
18
PD3 (INT1) PC3
25
26
‘kirim ke port serial
PD4 (OC1B) PC4
19
PD5 (OC1A) PC5
27 Print "Channel " ; Channel ; " value " ;
20 28
21
PD6 (ICP)
PD7 (OC2)
PC6 (TOSC1)
PC7 (TOSC2)
29 W
VCC
9
RESET VCC
10 Portb=w ‘keluarkan ke port B
30
C1
12
AVCC
32 Loop
XTAL2 AREF
Cap
13
XTAL1
31
End
2
18pF GND
11
GND
C2
1
ATmega8535
Cap 11.0592MHz
18pF
SINGLE CHIP SOLUTION FOR ROBOT
2.4 GHz RF
Serial Com
CMUCam
Speed Encoder
Other I/O
Line Detector
32kB Flash, 2kB SRAM,
1 KB EEPROM,
2 cycle hardware multipler
Bascom AVR (WWW.MCSELEC.COM)
• Bahasa basic
• Paling mudah
• Mendukung pengisian mikro melalui port
Paralel dan serial
Program Kelap Kelip
Kelip.bas:
Config portb=output ‘konfigurasi port B sebagai output
Do
Portb=255 ‘aktifkan semua karena 8 bit
MSB D7 D6 D5 D4 D3 D2 D1 D0 LSB
1 1 1 1 1 1 1 1
Config portB=output
Config pinD.6 =input
Dim w as byte
Do
W=pinD.6 ‘Input di Pin D.6 (1/0)
Portb=w
loop
Set pin
Setpin.bas
Portb.1=1 ‘high
Portb.3=1
Portb.5=1
Portb.6=0 ‘low
Rotate
Rotate all bits one place to the left or right.
Dim A As Byte
Config portb =output
Portb=1
Do
Portb = 1
For A = 1 To 8 ‘looping
Rotate Portb , Left 'rotate bits left
Wait 1 ‘delay 1 detik
Next
Shift
Shift all bits one place to the left or right.
Dim a as Byte
a = 128
Shift A , Left , 2
Print a '0
End
Dasar Kendali
kendali.bas:
Config Portc= Input
Config Porta= Output
Dim A As Byte
Do ‘lakukan operasi DO..LOOP
A = Pinc.0 ‘pinD.7 -> A
If A = 1 Then ‘ Jika saklar di PinD.7 aktif
Portb = 0 ‘portb = Low
End If ‘akhiran If
If A = 0 Then
Portb=255
End If ‘
Loop
SELECT ..CASE (Penentuan Kondisi)
Dim X As Byte
Do
Input "X ? " , X ‘terima input tampung di X
Select Case X
Case 1 To 3 : Print "1 , 2 or 3 will be ok"
Case 4 : Print "4"
Case Is > 10 : Print ">10"
Case Else : Print "no"
End Select
Loop
End
Aritmatika
Dim X As Single , Y As Single , Result As Single
Dim Z As String * 10
Z = "1234.567"
Result = Val(z) : Print Result
Z = Str(result) : Print Result
'X = 1000.1234
'Y = 5.75
Print "X+Y=" ; : Result = X + Y : Print Result 'calculate
Print "X-Y=" ; : Result = X - Y : Print Result
Print "X/Y=" ; : Result = X / Y : Print Result
If X > Y Then
Print ">"
End If
LCD (Liquid Crystal Display)
Nama Pin Deskripsi Port
NO
1 VCC + 5V VCC
2 GND 0V GND
3 VEE Tegangan Kontras LCD
4 RS Register Select, 0=Input Instruksi, 1=Input Data PD7
Dim A As Byte
Config Portb = Output 'PORTB all output pins
Portb = 0 'all pins 0
Do
For A = 0 To 7
Pulseout Portb , A , 60000 'generate pulse 60000x1us at 4MHz
Waitms 250 'wait a bit
Next
Loop 'loop for ever
Blok Mobile Robot Sederhaha
Blok Robot Kompleks
Rangkaian Mikro Sederhana
Prinsip Robot Sederhana
Robot Sederhana
Actuator for Robot
FOR COUNTER =1 TO 24
‘turn left ¼ circle
PULSOUT 13, 650
• Servo Cont & Standard PULSOUT 12, 650
PAUSE 20
NEXT
Pada Motor 2
S3 Run 2 Stop berlogika 1, Run berlogika 0
S4 Dir 2 CW berloika 1, CCW berlogika 0
Penerapan Pada Robot
Robot.bas
Config Portb = Output
Dim W As Word
Start ADC
Do
W = Getadc(0) ‘baca sensor jarak
If W < 200 Then ‘jika tdk ada halangan
Portb = 8 ‘maju
UVtron Flame
detector Photoreflector Lynxmotion Sharp GP2D12 Infrared distance sensor
P5887 director
Contoh pembacaan sensor jarak Ultrasonic SRF04 (3cm -3m)
Ultrasonic.bas :
Initialize-Ultrasonic
…
Distance=US_Front()
If Distance <200 then
InfraredDistance.bas: Portb=8 ‘ Move forward
End Sub
If Jarakdepan > 40 Then
Portb = 10 'maju
Wait 1
Else
Portb = 0
Waitms 500 'mundur
Portb = 4
Wait 1
End If 'BELOK KANAN
Loop
End
Pemadam Api
Serial