Aplikasi Bahasa C Pada Mikrokontroler dan Robotika (Part 1)
1.Pendahuluan
Bahasa C++ dapat kita terapkan pada berbagai alat elektronika, contohnya dapat kita terapkan di robotik dan mikrokontroler. saya tidak akan membahas lebih detail tentang skematik mikrokontroler(karena yang membuat nya bukan saya, mikrokontroler yang digunakan buatan kakak kelas saya, kang manda), namun garis besar nya adalah :
Mikrokontroler merupakan sebuah chip yang telah terintegrasi yang didalamnya terdapat sistem input/output(I/O) dan Memori dengan kapasitas kecil yang dapat digunakan untuk mengendalikan alat lainya. misalnya pada percobaan kali ini kita mengendalikan nyala atau matinya beberapa buah LED dengan menggunakan switch.gambar di atas merupakan mikrokontroler yang saya gunakan dalam percobaan ini yaitu mikrokontroler 8535. Untuk memprogram Micro, maka digunakan software khusus dengan dasar bahasa C, yaitu Code Vision AVR yang dapat di unduh disini
Berikut konfigurasi Port nya :
PORT A = Tidak Digunakan
PORT B = Tidak Digunakan
PORT C = LED
PORT D = Switch
Berikut program untuk menyalakan LED (kedap-kedip) :
#include <mega8535.h>
#include <delay.h>
void main(void){
DDRC=0xFF; //Port C di set sebagai output
PORTC=0xFF; // karena agar led menyala harus diberi logika 1(5Volt) sesuai dengan rangkaian
while(1)
{
PORTC=0b00000000; // Port C diberi logika 0= nyala
delay_ms(500); // Tunda selama 0,5 Detik
PORTC=0b11111111; //port C diberi logika 1 = Mati
delay_ms(500); // Tunda Selama 0,5 Detik
}
}
Berikut program untuk menyalakan LED dengan Switch :
#include <mega8535.h>
#include <delay.h>
void main(void){
DDRC=0xFF; //Port C di set sebagai output
PORTC=0xFF; // karena agar led menyala harus diberi logika 1(5Volt) sesuai dengan rangkaian
DDRD=0x00;
PORTD=0xFF;
while(1)
{
if(PIND.0==0){
PORTC=0b00000000; // Port C diberi logika 0= nyala
delay_ms(500); // Tunda selama 0,5 Detik
PORTC=0b11111111; //port C diberi logika 1 = Mati
delay_ms(500); // Tunda Selama 0,5 Detik
}
if(PIND.1==0){
PORTC=0b10101010; // Port C diberi logika 0= nyala
delay_ms(500); // Tunda selama 0,5 Detik
PORTC=0b01010101; //port C diberi logika 1 = Mati
delay_ms(500); // Tunda Selama 0,5 Detik
}
}
}
PROGRAM LANJUTAN
#include <mega8535.h>
#include <delay.h>
#define sw1 PIND.0
#define sw2 PIND.1
#define sw3 PIND.2
#define sw4 PIND.3
#define led PORTC
void main(void){
int i;
DDRC=0xFF;
PORTC=0xFF;
DDRD=0x00;
PORTD=0xFF;
while(1){
if(sw1==0){
for(i=0;i<5;i++){
led=0x00;
delay_ms(1000);
led=0xff;
delay_ms(1000);
}
}
if(sw2==0){
led=0b00000000;
delay_ms(1000);
led=0b00011000;
delay_ms(1000);
led=0b00111100;
delay_ms(1000);
led=0b01111110;
delay_ms(1000);
led=0b11111111;
delay_ms(1000);
}
if(sw3==0){
for(i=0;i<5;i++){
led=0b01010101;
delay_ms(1000);
led=0b10101010;
delay_ms(1000);
}
led=0b11111111;
delay_ms(1000);
}
if(sw4==0){
for(i=0;i<5;i++){
led=0b11111110;
delay_ms(500);
led=0b11111101;
delay_ms(500);
led=0b11111011;
delay_ms(500);
led=0b11110111;
delay_ms(500);
led=0b11101111;
delay_ms(500);
led=0b11011111;
delay_ms(500);
led=0b10111111;
delay_ms(500);
led=0b01111111;
delay_ms(500);
led=0b01111111;
delay_ms(500);
led=0b10111111;
delay_ms(500);
led=0b11011111;
delay_ms(500);
led=0b11101111;
delay_ms(500);
led=0b11110111;
delay_ms(500);
led=0b11111011;
delay_ms(500);
led=0b11111101;
delay_ms(500);
led=0b11111110;
delay_ms(500);
led=0b11111111;
}
}
};
}
#include <delay.h>
#define sw1 PIND.0
#define sw2 PIND.1
#define sw3 PIND.2
#define sw4 PIND.3
#define led PORTC
int i;
DDRC=0xFF;
PORTC=0xFF;
PORTD=0xFF;
if(sw1==0){
for(i=0;i<5;i++){
led=0x00;
delay_ms(1000);
delay_ms(1000);
}
}
led=0b00000000;
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
}
for(i=0;i<5;i++){
led=0b01010101;
delay_ms(1000);
delay_ms(1000);
}
led=0b11111111;
delay_ms(1000);
}
for(i=0;i<5;i++){
led=0b11111110;
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
delay_ms(500);
}
}
};
}
0 KOMENTAR