Jumat, 12 April 2013

Sistem Operasi Motor Melalui Mikrokontroller secara Sederhana


Membuat suatu sistem operasi dengan tampilan LCD
Dengan kondisi :
Jika push button Start ditekan maka L1=On L2=Off
Jika push button Pb.1 ditekan maka M1=On M2=Off
Jika push button Pb.2 ditekan maka M1=Off M2=On
Jika push button Stop ditekan maka L1=Off L2=On 

OUTPUT PROGRAM :
Sebelum pengoperasian mesin berjalan

Start button ditekan maka Led 1 = On

Push button 1 ditekan maka Motor 1 dan Led 1 = On sedangkan Motor 2 = Off

Push button 2 ditekan maka Motor 1 = Off sedangkan Motor 2  dan Led 1 = On

Stop button ditekan maka Led 2 = On sedangkan Motor 1,  Motor 2, serta LED 1 = Off



PROGRAM :
/*************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 20/11/2012
Author  :
Company :
Comments:

Chip type           : ATmega128
Program type        : Application
Clock frequency     : 8,000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 1024
**************************************/
#include <mega128.h>
#define on 1
#define off 0 
#define start PINF.0
#define pb1 PINF.1
#define pb2 PINF.2
#define stop PINF.3
#define led1 PORTB.0
#define motor1 PORTB.1
#define motor2 PORTB.2
#define led2 PORTB.3

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
// Declare your global variables here
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
PORTD=0x00;
DDRD=0x00;
PORTF=0x00;
DDRF=0x00;

// LCD module initialization
lcd_init(20);
lcd_gotoxy(1,0);
lcd_putsf("Sistem Operasi Mati");
lcd_gotoxy(2,1);
lcd_putsf("START untuk mulai");
while (1)
      {
      if(start==on)
      {
      lcd_init(20);
      lcd_gotoxy(4,0);
      lcd_putsf("LED START ON");
      lcd_gotoxy(0,1);
      lcd_putsf("Tekan Pb1 utk motor1");
      led1=on;
      led2=motor1=motor2=off;
      }
      if(pb1==on)
      {
      lcd_init(20);
      lcd_gotoxy(6,0);
      lcd_putsf("MOTOR 1 ON");
      lcd_gotoxy(0,1);
      lcd_putsf("Tekan Pb2 utk motor2");
      led1=on;motor1=on;
      led2=motor2=off;
      }
      if(pb2==on)
      {
      lcd_init(20);
      lcd_gotoxy(6,0);
      lcd_putsf("MOTOR 2 ON");
      lcd_gotoxy(1,1);
      lcd_putsf("STOP untuk berhenti");
      led1=motor2=on;
      led2=motor1=off;
      }
      if(stop==on)
      {
      lcd_init(20);
      lcd_gotoxy(5,0);
      lcd_putsf("LED STOP ON");
      lcd_gotoxy(2,1);
      lcd_putsf("Sistem berhenti");
      led2=on;
      led1=motor1=motor2=off;
      }
      } ;
}