1. RANGKAIAN LAMPU LED
Rangkaian minimum untuk menghidupkan 8
LED melalui Port 0 ditunjukan pada Gambar 1. yang perlu diperhatikan adalah
konfigurasi rangkaian LED yaitu Common
Anode (CA) artinya untuk menghidupkan LED pada Port 3, port 3 harus dikirim
atau diberi logika ‘0’. Jika LED terhubung secara Common Katode, maka untuk
menyalakan LED harus dikirim atau diberi logika ‘1’, menyebabkan Port 0 menjadi
masukan berimpedansi, sehingga tidak dapat menyalakan LED karena ordenya μA.
2. PEMROGRAMAN MENYALAKAN LED
Setelah rangkaian LED dibuat dan
dihubungkan dengan port pararel mikrokontroller, maka sekarang saatnya Anda
membuat program yang digunakan untuk menghidupkan LED tersebut.
Program sebagai berikut ini
//Program LED 1. LED Menyala
/* deklarasi register AT89c51 */
#include <at89x51.h> //jika menggunakan
AT89C51
/* Program utama */
void main()
{
char a; a=0x000;
while(1)
{
P0 = a; //menyalakan Led semuanya
}
}
|
3. PEMROGRAMAN LED BERKEDIP
Setelah membuat dan menjalankan
program menyalakan lampu LED, maka sekarang saatnya Anda membuat program kedua yang
digunakan untuk menghidupkan LED berkedip.
Program sebagai berikut ini
//Program LED 2. LED Berkedip
/*------deklarasi register AT89c51---------*/
#include <at89x51.h> //jika menggunakan AT89C51
/*---fungsi tunda 1 milidetik (kira-kira)--*/
void tunda1ms()
{
int i;
for(i=0;i<150;i++);
}
/*--------fungsi tunda n milidetik--------*/
void tunda(int n)
{
int i;
for (i=0;
i<n;i++)
tunda1ms();
}
/*-------------Program utama-------------*/
void main()
{
char a; char b;
a=0x000; b=0x0FF;
while(1)
{
P0= a; //menyalakan Led semuanya
tunda(500); //memanggil
fungsi tunda
P0= b; //mematikan semua Led
tunda(500); //memanggil fungsi tunda
}
}
|
4. PEMROGRAMAN LED FLIP FLOP 1
Setelah membuat dan menjalankan
program menyalakan lampu LED berkedip, maka sekarang saatnya Anda membuat
program ketiga yang digunakan untuk menghidupkan LED flip-flop 1.
Program sebagai berikut ini
//Program LED 3 LED Flip-Flop
/*----------deklarasi register AT89c51---------*/
#include <at89x51.h>
/*----fungsi tunda 1 milidetik (kira-kira)----*/
void tunda()
{
_asm
mov r0, #0x0f5
01$: mov r1, #0x0ff
02$: mov r2, #0
djnz r1, 02$
djnz r0, 01$
_endasm;
}
/*--------------Program utama-----------------*/
void main()
{
char a;
char b;
a=0x00f;
b=0x0f0;
while(1)
{
P0= a; //menyalakan Led port0 - port3 yang
tunda(); //memanggil
fungsi tunda
P0= b; //menyalakan Led port4 - port7 yang
tunda(); //memanggil
fungsi tunda
}
}
|
5. PEMROGRAMAN LED FLIP FLOP 2
Setelah membuat dan menjalankan
program menyalakan lampu LED flip-flop pada pemrograman flip-flop 1, maka
sekarang saatnya Anda membuat program keempat yang digunakan untuk menghidupkan
LED flip-flop 2. Program LED flip-flop 2 ini berbeda dengan LED flip-flop 1.
Program ini akan menyalakan LED flip-flop genap dan ganjil pada port 0
Program sebagai berikut ini
//Program LED 4 Flip-Flop genap dan ganjil
/* deklarasi register AT89c51 */
#include <at89x51.h>
/*-----------------fungsi tunda-----------------*/
void tunda()
{
_asm
mov r0, #0x0f5
01$: mov r1, #0x0ff
02$: mov r2, #0
djnz r1, 02$
djnz r0, 01$
_endasm;
}
/*--------------Program utama-------------------*/
void main()
{
char a;
char b;
a=0x55;
b=0xAA;
while(1)
{
P0= a; //menyalakan Led port genap yang lain
mati
tunda(); //memanggil fungsi
tunda
P0= b; //menyalakan Led port ganjil yang lain
mati
tunda(); //memanggil fungsi
tunda
}
}
|
6. PEMROGRAMAN LED BERJALAN KEKANAN
Setelah membuat dan menjalankan
program menyalakan lampu LED flip-flop, maka sekarang saatnya Anda membuat
program yang digunakan untuk menghidupkan LED berjalan kanan. Program LED
berjalan kekanan ini dijalankan pada hardware nyala led berlogika tinggi atau
logika 1. jika menggunakan logika rendah maka LED bukan menyala tetapi akan
mati. Program LED berjalan kekanan menggunakan operasi geser kanan. Operasi
geser kiri akan menggeser bit-bit kekanan sehingga bit 0 akan berpindah ke bit
1 dan bit 1 akan berpindah ke bit 2 dan seterusnya.
Program sebagai
berikut ini
//Program LED 6 LED berjalan Kekanan
/* deklarasi register AT89c51 */
#include <at89x51.h>
/* fungsi tunda
1 */
/*------------------------------------------*/
/* fungsi tunda
1 milidetik (kira-kira) */
/*------------------------------------------*/
void tunda1ms()
{
int i;
for(i=0;i<150;i++);
}
/*--------------------------------------------*/
/* fungsi
tunda n milidetik */
/*--------------------------------------------*/
void tunda(int n)
{
int i;
for (i=0;
i<n;i++)
tunda1ms();
}
/*
Program utama
*/
void main()
{
volatile
unsigned char a=0x01;
while(1)
{
a=((a>>7) | (a<<1)); //putar
ke kanan 1 bit, bit
ke 0 akan
tunda(1000); //sehingga efeknya seperti LED
berjalan
P0=a; // mengisi bit ke 7 dst
}
}
|
7. PEMROGRAMAN LED BERJALAN KEKIRI
Setelah membuat dan menjalankan
program menyalakan lampu LEDberjalan kekanan, maka sekarang saatnya Anda
membuat program yang digunakan untuk menghidupkan LED berjalan kekiri. Program
LED berjalan kekanan menggunakan operasi geser kiri. Operasi geser kiri akan
menggeser bit-bit kekanan sehingga bit 7 akan berpindah ke bit 6 dan bit 6 akan
berpindah ke bit 5 dan seterusnya.
Program sebagai berikut ini
//Program LED 6 LED Berputar kekiri
/* deklarasi register AT89c51 */
#include <at89x51.h>
/* fungsi tunda
1 */
/*------------------------------------------*/
/* fungsi tunda
1 milidetik (kira-kira) */
/*------------------------------------------*/
void tunda1ms()
{
int i;
for(i=0;i<150;i++);
}
/*--------------------------------------------*/
/* fungsi
tunda n milidetik */
/*--------------------------------------------*/
void tunda(int n)
{
int i;
for (i=0;
i<n;i++)
tunda1ms();
}
/*
Program utama
*/
void main()
{
volatile unsigned
char a=0x01;
while(1)
{
a=((a<<7) | (a>>1)); //putar ke kanan 1 bit, bit ke 0
akan
tunda(1000); //sehingga
efeknya seperti LED
berjalan
P0=a; // mengisi bit ke 7 dst
}
}
|
8. PEMROGRAMAN MENGHIDUPKAN
LED KE KIRI
Setelah membuat dan menjalankan
program menyalakan LED ke kiri, maka sekarang saatnya Anda membuat program yang
digunakan untuk menghidupkan LED ke kiri. Program menghidupkan LED dari kiri ke
kanan menggunakan operasi pernyataan geser kanan.
Program sebagai berikut ini
//Program LED 7 menyalakan LED ke kiri
/* deklarasi register AT89c51 */
#include <at89x51.h>
/*--------------------------------------------*/
/* fungsi
tunda 1 milidetik (kira-kira)*/
/*--------------------------------------------*/
void tunda(int n)
{
_asm
mov r0, #0x0f5
01$: mov r1, #0x0ff
02$: mov r2, #0
djnz r1, 02$
djnz r0, 01$
_endasm;
}
/*----------------------------------------------*/
/*
Program utama
*/
/*----------------------------------------------*/
void main()
{
char a;
char k;
while(1)
{
a=0x07F;
for
(k=0;k<9;k++)
{
P0=a; //mengeluarkan
data LED satu
persatu
tunda(); //sehingga efeknya
seperti
LED berjalan
a=a>>1;
}
}
}
|
9. PEMROGRAMAN MENGHIDUPKAN
LED KE KANAN
Setelah membuat dan menjalankan
program menyalakan LED ke kiri, maka sekarang saatnya Anda membuat program yang
digunakan untuk menghidupkan LED ke kanan Program menghidupkan LED ke kanan
menggunakan operasi pernyataan geser kiri.
Program sebagai berikut ini
// Program LED 8
LED Berjalan kiri ke kanan
/* deklarasi register AT89c51 */
#include <at89x51.h>
/* fungsi tunda
1 milidetik (kira-kira) */
/*------------------------------------------*/
void tunda1ms()
{
int i;
for(i=0;i<150;i++);
}
/* fungsi
tunda n milidetik */
/*--------------------------------------------*/
void tunda(int n)
{
int i;
for (i=0;
i<n;i++)
tunda1ms();
}
/*----------------------------------------------*/
/*
Program utama
*/
/*----------------------------------------------*/
void main()
{
char a; char k;
while(1)
{
a=0x0FE;
for
(k=0;k<9;k++)
{
P0=a; //mengeluarkan
data LED satu
persatu
tunda(100); //sehingga efeknya seperti
LED berjalan
a=a<<1;
}
}
}
|
10. PEMROGRAMAN LED BERJALAN BOLAK-BALIK
Setelah membuat dan menjalankan
program menyalakan lampu LED berjalan menyala kekiri, maka sekarang saatnya
Anda membuat program ketuga yang digunakan untuk menghidupkan LED bolak balik. Program
LED bolak balik menggunakan operasi pernyataan geser kanan dan geser kiri.
Program sebagai berikut ini
//Program LED 10 LED ping-pong
/* deklarasi register AT89c51 */
#include<at89x51.h>
void tunda()
{
_asm
mov r0, #0x0f5
01$: mov r1, #0x0ff
02$: mov r2, #0
djnz r1, 02$
djnz r0, 01$
_endasm;
}
void jalankiri(unsigned int n)
{
unsigned char
i=0, a=0x01;
P1 = 0;
while(n)
{
for(i=0;i<7;i++) {
a=((a>>7) | (a<<1));
tunda();
P0=a;
}
n--;
}
}
void jalankanan(unsigned int n)
{
unsigned char
i=0, a=0x80;
P1 = 0;
while(n)
{
for(i=0;i<7;i++)
{
a=((a<<7) | (a>>1));
tunda();
P0=a;
}
n--;
}
}
/*
Program utama
*/
void main()
{
iswanto:
jalankiri(1);
jalankanan(1);
goto iswanto;
}
|
I recently realized your website the other day and that i happen to be following it’s routinely. You’ve got great deal of tips proper here so i delight in your lifestyle of online site likewise. Preserve acknowledge that there are succeed! kampus terbaik di medan
BalasHapus