Anda di halaman 1dari 5

ROTASI LED DENGAN PEMROGRAMAN C

Menggunakan Microprocessor Board (68HC11)



Membuat program dengan bahasa pemrograman C untuk menampilkan rotasi
data pada peraga LED.
Pada software microprocessor board 68HC !E" Micro# terdapat C compiler
$ang berfungsi untuk menter%emahkan &'ource Code( dengan program C ke dalam
kode mesin !He)adesimal#. Dengan fasilitas C compiler ini bisa dibuat beberapa
program aplikasi diantaran$a adalah untuk men$alakan LED.
Pemakaian C pada percobaan kali ini digunakan untuk merotasi data $ang akan
ditampilkan pada peraga LED. Dimana alamat memori untuk men$alakan LED adalah
*++,,. Dalam teknik pemrograman agar data $ang dirotasi dapat ditampilkan dan dapat
diamati pada media peraga LED- salah satu caran$a adalah dengan memberikan waktu
tunda.dela$.
Sub Routine Delay
Contoh penulisan program subroutine dela$ adalah sebagai berikut/
void LCD_DELAY(void)
{
int m;
m=0;
while(m<1000){
m++;
}
}
6
Pada contoh subroutine dela$ didalam program C diatas 0ariabel dela$
mempun$ai %enis data integer dan mempun$ai nilai kurang dari ,,,- nilai ini bisa
diubah1ubah tergantung kebutuhan berdasarkan pengamatan terhadap n$ala LED $ang
tampil bisa diamati dengan %elas atau tidak. Penulisan fungsi delay() langsung dimulai
dengan kepala fungsi dan diteruskan dengan statement1statement $ang membangun
definisin$a.
2enis.t$pe data $ang digunakan pada subroutine dela$ $aitu 3nteger !int#- $ang
mempun$ai pan%ang data 4 b$te dengan %angkauan mulai dari 154668 sampai dengan
54668. 7erikut ini contoh lain cara memberi waktu tunda dalam pemrograman C
dengan menggunakan penambahan nilai sebuah 0ariabel satu demi satu hingga
mencapai nilai batas $ang ditentukan.
for(=0;<!0000;++);
Blok diagram
ambar 8!1" 7lok diagram s$stem CP8 68HC beserta program C dengan LED
!3.9# pada E"1M3C:9 ;8;9:
;M
board.
1 Microprocessor 7oard 68HC
1 PC beserta software E"1M3C:9
1 <C <daptor = 0olt
1 >abel 'erial
1" Hard#are
64
68HC11 $
C program
E"1M3C:9 ;8;9:
;M
board
%&D
D1!D'
1 Hubungkan C9M atau C9M4 pada PC dengan kabel serial ke board
mikroprosesor 68HC
1 Hubungkan catu data = ?olt <C adaptor pada board mikroprosesor 68HC
1 Diteriman$a tegangan ditandai dengan LED D= men$ala dan pada LCD tertera
tulisan &E" Micro ;utor @:9M <M'(.
(" So)t#are
1 <ktifkan E"1M3C:9 ;8;9: Manager 4.,
1 >lik File pada baris menu- pilih Create Source kemudian tulislah nama file baru
dengan e)tension [namafile].C kedalam direktori !folder# ezmicro dan pilih open.
1 ;ulislah program percobaan pada editor Aotepad dari Create Source tersebut.
1 Program . file baru tersebut- simpan kembali dalam direktori !folder# eBmicro.
1 Compile file baru dengan klik menu File kemudian C Compile File- pilih nama file
$ang baru dibuat dengan e)tension "C.
1 Maka akan terbentuk file he)adecimal !file *.s19#- dan file *.lst disamping itu %uga
muncul pesan- bahwa file $ang telah dicompile tersebut terdapat kesalahan atau
tidak- untuk melihat letak kesalahan buka file *.lst.
1 8ntuk memperbaiki kesalahan !error#- klik menu File kemudian Edit Source baik
untuk bahasa assembler !file C.asm# maupun untuk bahasa C !file C.C#. 2angan lupa
disimpan kemudian dicompile kembali.
*" Do#nload program
1 8ntuk mendownload program $ang telah sukses dicompile- maka gunakan menu
File kemudian Load S-Record pilih [nama file].s19.
1 'etelah proses download selesai- akan muncul dialog bo) $ang menan$akan alamat
awal dari program.
'" Run program
1 8ntuk men%alankan program klik menu Run kemudian Go lalu muncul dialog bo)
untuk memasukkan alamat awal dari program.
1 'etelah program sudah di%alankan- amati keluaran $ang ditampilkan pada LED !D
sampai D+#.
65
- Program Menuliskan data pada LED menggunakan Pointer
A. Rotasi Kiri
#define LEDS 0x4400
main()
{
char val;
int i,a;
for(;;)
{
val=0x07;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x0$;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x0D;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x0E;
out(val,LEDS);
for(a=0;a!"0000;a##);
%
%
B. Rotasi kanan
#define LEDS 0x4400
main()
{ char val;
int i,a;
for(;;)
{ val=0x0E;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x0D;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x0$;
out(val,LEDS);
for(a=0;a!"0000;a##);
val=0x07;
out(val,LEDS);
for(a=0;a!"0000;a##);
%
%
C. Lompat 2 data (LED)
#define LEDS 0x4400
main()
{
char val;
int &;
6+
for(;;)
{
val=0x0E;
out(val,LEDS);
for(&=0;&!'"000;&##);
val=0x0$;
out(val,LEDS);
for(&=0;&!'"000;&##);
%
%
D. Penumla!an 2 data
#define LED()**SE+ 0x0400
char ext,a-e
void main()
{
char val,val.,val";
char /.;
int i;
.=0ext,a-e;
1hile(.)
{
val.=0x0.;
val"=0x0";
val=val. # val";
for(i=0; i!=22; i=i#.);
/(.#LED()**SE+)=val;
%
%
. 7uat program dalam bahasa C untuk men$alakan LED putar kiri dan kanan-
dalam satu listing program dan t$pe datan$a adalah integer (int)- gunakan
perintah for dan perintah outp untuk men$alakan dan rotasi LED.
4. Dua data dengan t$pe integer masing1masing disimpan pada 0ariable a dan b-
dari kedua data tersebut buatlah program pen%umlahan- dan pengurangan
menggunakan bahasa C dan hasiln$a ditampilkan pada LED D sampai dengan
D+.
6D

Anda mungkin juga menyukai