Register I/O :
DDRxn
PORTxn
I/O
Input
Pull up
No
Input
Yes
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 :
Pemrograman MCS-51
Jawab :
Perancangan hardware :
-
Menggunakan AT89C51
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
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
RS
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
16
V- BL
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);
}
}