PERCOBAAN I
PEMROGRAMAN BAHASA C UNTUK MIKROKONTROLER
1
TUJUAN
1.
Mengingat
kembali statemen program dalam bahasa C.
2.
Mengelompokkan
program berdasarkan bagian-bagian dalam bahasa C. .
2.
DASAR TEORI
Bahasa
C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk
mikrokontroler. Bahasa ini sudah merupakan high level language, dimana
memudahkan programmer menuangkan algoritmanya. Struktur penulisan bahasa C
secara umum terdiri atas empat blok, yaitu header, deklarasi konstanta global
dan atau variable, fungsi dan atau prosedur (dapat di bawah program utama), dan
program utama.
|
STRUKTUR PENULISAN
|
CONTOH
|
|
/*
HEADER untuk memanggil library yang akan digunakan */
#include
< [library1.h] > // Opsional
#include
< [library2.h] > // Opsional
#define
[nama1] [nilai] ; // Opsional
#define
[nama2] [nilai] ; // Opsional
/*
Deklarasi konstanta dan atau variabel global */
[global
variables] // Opsional
/*
Deklarasi fungsi dan atau prosedur */
[functions]
// Opsional
/*
Program utama */
void
main(void)
{
/*
Deklarasi konstanta dan atau variabel lokal */
[Isi
Program Utama]
}
|
#include
<mega8535.h>
#include
<stdio.h>
unsigned
char dt, xx;
char
buf[33];
unsigned
char lampu (unsigned char bitn)
{
PORTA=bitn
& 0x3C;
}
void
main (void);
{
char
data;
PORTA=0x00;
DDRA=0xF0;
While
(1)
{
…
};
}
|
3.
ALAT DAN BAHAN
YANG DIGUNAKAN
- 1 set
Personal Computer/Laptop
- Program
CodeVision AVR
4.
PROSEDUR
- Perhatikan program
berikut. Tunjukkan empat blok bagian program tersebut.
Program 1
#include <mega8535.h>
#include
<delay.h>
// Declare your
global variables here
void main(void)
{
// Declare your local
variables here
// Input/Output Ports
initialization
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
while (1)
{
// Place your code here
PORTA=0x0f;
delay_ms(10000);
PORTA=0xf0;
delay_ms(10000);
}
}
Program 2
#include
<mega8535.h>
// Declare your
global variables here
void main(void)
{
// Declare your local
variables here
unsigned char datain;
// Input/Output Ports
initialization
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xFF;
DDRB=0x00;
while (1)
{
// Place your code here
datain=PINB;
PORTA=datain;
}
}
Program 3
#include
<mega8535.h>
#include <delay.h>
// Declare your
global variables here
unsigned char bil[10]
= {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void main(void)
{
// Declare your local
variables here
int kiri, kanan, i;
// Input/Output Ports
initialization
// Port A initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xF0;
DDRB=0xF0;
while (1)
{
// Place your code here
kiri=0;
kanan=0;
for (kiri=0;kiri<10;kiri++)
{
for (kanan=0;kanan<10;kanan++)
{
for(i=0;i<100;i++)
{
PORTB.7=0;
PORTB.6=1;
PORTA=bil[kiri];
delay_ms(5);
PORTB.7=1;
PORTB.6=0;
PORTA=bil[kanan];
delay_ms(5);
}
}
}
}
}
- Ketiklah
program berikut dan betulkan program jika keluar pesan Error. Tuliskan
baris program yang salah dan tuliskan kembali baris program yang sudah
dibetulkan.
Program 4
#include
<mega8535.h>
#include
<delay.h>
// Declare your
global variables here
void main(void)
{
// Declare your local
variables here
// Input/Output Ports
initialization
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
while (1)
{
// Place your code here
PORTA=ob00001111;
delay_ms(1000);
PORTA=0b1111000o;
delay_ms(1000);
}
}
Program 5
#include
<mega8535.h>
// Declare your
global variables here
void main(void)
{
// Input/Output Ports
initialization
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTC=0xFF;
DDRC=0x00;
while (1)
{
// Place your code here
datain=PINC;
PORTA=datain;
}
}
Program 6
#include
<mega8535.h>
// Declare your
global variables here
unsigned char bil[10]
= {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void main(void)
{
// Declare your local
variables here
int kiri, kanan, i;
// Input/Output Ports
initialization
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xF0;
DDRB=0xF0;
while (1)
{
// Place your code here
PORTB.7=1;
PORTB.6=0; //AKTIFKAN SEVEN SEGMEN KANAN
PORTA=0x6d; //
DATA ANGKA 5
delay_ms(100);
PORTB.7=0; // AKTIFKAN SEVEN SEGMEN KIRI
PORTB.6=1;
PORTA=0x5b // DATA ANGKA 2
delay_ms(100)
}
}
5. DATA HASIL PERCOBAAN
- KESIMPULAN
Tidak ada komentar:
Posting Komentar