Anda di halaman 1dari 20

ATMega 8535 Input / Output

By : Chaeriah B.A Wael

Fasilitas Input/Output ATMega 8535

Register I/O :

DDRx : digunakan untuk memilih arah pin. Jika DDRx =


1 maka Pxn sebagai pin output dan DDRx = 0 maka Pxn
sebagai input.

PORTx : digunakan untuk jalur output atau untuk


mengaktifkan resistor pullup.

PINx : digunakan sebagai register input.

DDRxn

PORTxn

I/O
Input

Pull up
No

Mode Tegangan Referensi


Pin Pxn sebagai output tanpa
resistor pull up

Input

Yes

Pin Pxn sebagai pin input


dengan resistor pull up

Output No

Output Low

Output No

Output High

Pemrograman MCS-51
Contoh kasus (1) :
Bagian iklan suatu Production House ingin membuat lampu
berjalan dengan pola sebagai berikut :

Bantulah bagian iklan membuat programnya !

Pemrograman MCS-51
Jawab :
Perancangan hardware :
-

Menggunakan AT89C51

LED active High


(menyala saat diberi bit
1). Output LED pada
Port 1.

Pemrograman MCS-51
Perancangan software :
P1 = 81H
P1 = 42H
P1 = 24H
P1 = 18H
P1 = 24H
P1 = 42H
P1 = 81H

Pemrograman MCS-51
Perancangan software :
FLOWCHART

Mulai
P1 = 81H
selama delay

P1 = 24H
selama delay

P1 = 42H
selama delay

P1 = 42H
selama delay

P1 = 24H
selama delay
P1 = 18H
selama delay

Ya

Ulangi ?
Tidak

Selesa
i

7-Segment

7-Segment
Pola input 7-segment

7-Segment
Pola input 7-segment Common Anoda (CA)
Display
Numerik

Pola Input
Dalam

dp

C0

F9

A4

B0

99

92

82

F8

80

98

Hex

Keypad

Contoh :
Menampilkan angka 1-9 dari keypad pada 7segment
a
b
c
d
e
f
g
dp

PC.0
PC.1
PC.2
PC.3
PC.4
PC.5
PC.6
PC.7

PA.0
PA.1
PA.2
PA.3
PA.4
PA.5
PA.6
PA.7

Row1
Row2
Row3
Row4
Col1
Col2
Col3
Col4

Keypad

Keypad merupakan push button yang disusun secara


matriks.

Contoh : keypad 4x4 merupakan susunan push button


yang terdiri atas 4 baris dan 4 kolom.

Cara mengakses tombol keypad dilakukan dengan cara


scaning, yaitu memberi logika 0 pada salah satu pin (baik
baris atau kolom) kemudian membaca titik yang lain.

Keypad
Col1 Col2 Col3 Col4

Row1

Row2

Row3

Row4

Keypad

Contoh :
Menampilkan angka 1-9 dari keypad pada 7segment
a
b
c
d
e
f
g
dp

PC.0
PC.1
PC.2
PC.3
PC.4
PC.5
PC.6
PC.7

PA.0
PA.1
PA.2
PA.3
PA.4
PA.5
PA.6
PA.7

Row1
Row2
Row3
Row4
Col1
Col2
Col3
Col4

LCD

Konfigurasi pin :

LCD

Konfigurasi pin :
Pin
1

Fungsi
Vss

Deskripsi

Vcc

+5V

VLC

LCD Contrast Voltage

RS

Register Select ; High : Data Input ; Low : Instruction Input

RD

High : Read

EN

Enable Signal

D0

Data Bus 0

D1

Data Bus 1

D2

Data Bus 2

10

D3

Data Bus 3

11

D4

Data Bus 4

12

D5

Data Bus 5

13

D6

Data Bus 6

14

D7

Data Bus 7

15

V+ BL

Positive Backlight Voltage

16

V- BL

Negative Backlight Voltage

0V (GND)

Low : Write

LCD
Memori LCD :
DDRAM (Display Data Random Access Memory) :
merupakan memori tempat karakter yang ditampilkan
berada
CGROM (Character Generator Read Only Memory) :
merupakan memori untuk menggambarkan pola sebuah
karakter di mana pola tersebut sudah ditentukan secara
permanen dari HD44780 sehingga pengguna tidak dapat
mengubah lagi.
CGRAM (Character Generator Random Access Memory) :
merupakan memori untuk menggambarkan pola sebuah
karakter yang dapat diubah-ubah sesuai keinginan.
Namun memori ini akan hilang saat power supply tidak
aktif, sehingga pola karakter akan hilang.

LCD
Instruksi-instruksi pada library lcd.h :
unsigned char lcd_init(unsigned char lcd_columns);
lcd_init(n); // Menginisialisasi LCD dengan n adalah jumlah
baris yang tersedia di LCD.
lcd_clear(); // Membersihkan layar LCD dan memposisikan
kursor pada baris pertama awal (0,0).
lcd_gotoxy(m,n); // Memposisikan kursor pada koordinat x = m
dan y = n , titik awal koordinat adalah (0,0).
lcd_putchar(n); // Menampilkan karakter ASCII yang dengan
kode n.
lcd_putsf(string); // Menampilkan seluruh karakter yang
berada di antara dua tanda kutip.
lcd_puts(var_string); // Menampilkan isi dari var_string,
variabel bertipe char dengan isi berupa kode ASCII.

LCD : Project 1

LCD : Project 1
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0x15 ; // PORTC sebagai
output LCD
#endasm
#include <lcd.h>
void main(void)
{
lcd_init(16);
while (1)
{
lcd_gotoxy(4,0);
lcd_putsf("Praktikum");
delay_ms(400);
lcd_gotoxy(2,1);
lcd_putsf("Mikroprosesor");
delay_ms(400);
}
}

Anda mungkin juga menyukai