Vous êtes sur la page 1sur 10

LAMPIRAN

List Program
unsigned char nilai[30],milisecond;
unsigned char buffertime[30],indeks=0,ubah=0;
unsigned int k=0,l=0,m=0;
char hitung[30], sw[100],irms[30];
char vrms[30],sp[100];
char setpoint,array[30],data[100];
char pixelx[16],pixeleeprom[16];
char loc[40],alfa,beta,gama;
float indikator0,indikator1,ubah_adc;
float ubah_adc3,ubah_adc0,ubah_adc1;
float ubah_adc2,tegangan_out,arus_in,pi,x1;
int tegangan,data_adc,Lx,Ly,x,y,xm=0;
int ym=0,cb=0,i=0,t,f,g,h,tim,j,cur,a=0;
int b=0,state,temp,p,q,r,s;
eeprom unsigned char ram_time[256];
eeprom unsigned char eeprom_atmega32[256];
unsigned char ram_pixel[5],pixelx[16];
unsigned char pixely[16],temp0[16];
unsigned char temp1[16],temp2[16],temp3[16];
char pixelx0,pixelx1,pixelx2,pixelx3;
char pixelx4,pixely0,pixely1,pixely2;
char pixely3,pixely4;
int grid=0,ib=0,tx,ty,v;
int count=0,second=0,minute=0,hour=0;
int ambil,c=0,d=0,e=0,s,t,u,v;
float hasil;
#include <mega32.h>
#include <stdio.h>
#include <math.h>
77

#include <stdlib.h>
#include <delay.h>
// Graphic Display functions
#include <glcd.h>
#include <Settings.c>
#define tombol1 PIND.2
#define tombol2 PIND.5
#define tombol3 PIND.6
#define tombol4 PIND.7
#define tombol5 PINA.0
#define tombol6 PINA.1
#define tombol7 PINA.2
#define tombol8 PINA.3
#define tombol9 PINA.4
#define tombol10 PINA.5
#define kondisi PORTC;
#include <font5x7.h>
GLCDINIT_t glcd_init_data;
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input
voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
78

return ADCW;
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
count++;
if(count>1000)
{
count=0;second++;
if(second==60)
{
second=0;minute++;lcd_clear();
}
if(minute==60)
{
minute=0;hour++;lcd_clear();
}
if(hour==24)
{
hour=0;lcd_clear();
}
}
TCNT0=0x06;
data_adc=read_adc(7);
//DATA ADC
arus_in=(0.024*data_adc)+0.180;//KALIBRASI ARUS
ubah_adc=data_adc;
ubah_adc2=ubah_adc/1023;
ubah_adc2=ubah_adc2*5.04;
ubah_adc=ubah_adc/256;

79

ubah_adc3=ubah_adc*5.04;//DATA TEGANGAN
ADC
ubah_adc0=ubah_adc*19;//PLOT DATA GRAFIK
INPUT DIBANDING DAERAH PIXEL(42:1023)
ubah_adc0=(int)ubah_adc0;//AMBIL NILAI INTEGER
ubah_adc1=ubah_adc*40;//PLOT DATA GRAFIK
INPUT DIBANDING DAERAH PIXEL(40:1023)
ubah_adc1=(int)ubah_adc1;
//sprintf(nilai,"%u",ubah_adc);
//ubah_adc=(int)f;
indikator0=(count/1000);
indikator0=indikator0*30;
indikator0=(int)indikator0 ;
indikator1=(count/1000);
indikator1=indikator1*70;
indikator1= (int)indikator1 ;
}
void main(void)
{
int x1=0,x2=0,ofsx=3,ofsy=60,skalax=1,skalay=1;
float y1,y2;
DDRA=0x00;
PORTA=0x00;
DDRB=0xFF;
PORTB=0x00;
DDRC=0xFF;
PORTC=0x00;
DDRD=0x1B;
PORTD=0x00;
TCCR0=0x03;
80

TCNT0=0x06;
OCR0=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (1<<ADATE) |
(0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (0<<ADPS1) |
(0<<ADPS0);
SFIOR=(1<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
while (1)
{
switch(state)
{
//MENU AWAL
case 0:
if(tombol4==0){b++;glcd_clear();}
if(b>3){b=0;}
if(tombol5==0){b--;glcd_clear();}
if(b<0){b=3;}
glcd_rectangle(0,0,127,63);
glcd_rectangle(80,17,90,60);
glcd_line(15,15,112,15);
glcd_line(2,2,15,15);
glcd_line(125,2,112,15);
lcd_gotoxy(2,0);
lcd_putsf("MCB ANALYZER");
glcd_outtextxy(5,20,"Measurement\b");
glcd_outtextxy(5,30,"Graph");
glcd_outtextxy(5,40,"Switch State");
glcd_outtextxy(5,50,"Setting");
for(i=b;i<=b;i++)
{
glcd_bar(82,19+(i*10),88,28+(i*10));
81

glcd_rectangle(2,19+(i*10),78,28+(i*10));
}
if(tombol7==0)
{
if(b==0){glcd_clear();state=2;}
if(b==1){glcd_clear();state=3;}
if(b==2){glcd_clear();state=4;}
if(b==3){glcd_clear();state=5;}
}break;
//MEASUREMENT
case 2: glcd_rectangle(0,0,127,63);
glcd_bar(0,0,61,10);
glcd_setcolor(0);
glcd_setbkcolor(255);
glcd_outtextxy(3,2,"Cek Input");
glcd_setbkcolor(0)
glcd_setcolor(255);
glcd_outtextxy(3,13,"ADC");
glcd_outtextxy(3,26,"Vo");
glcd_outtextxy(3,39,"Irms");
glcd_outtextxy(5,52,"<< >>");
glcd_line(27,10,27,49);
for(p=0;p<=3;p++)
{
glcd_rectangle(1,10+(p*13),61,23+(p*13));
}
while(TIMSK==0x00 || TIMSK==0x01)
{
sprintf(temp0,"%4i",data_adc);
glcd_outtextxy(30,13,temp0);
ftoa(ubah_adc2,3,temp1);
glcd_outtextxy(30,26,temp1);
82

ftoa(arus_in,3,temp2);
glcd_outtextxy(30,39,temp2);
}
break;
case 3: glcd_line(75,0,75,63);
glcd_rectangle(3,20,73,60);
glcd_rectangle(0,0,127,63);
glcd_bar(1,1,74,10);
glcd_line(75,24,82,24);
glcd_circle(116,53,9);
glcd_setpixel(116,53);
glcd_rectangle(0,0,127,63);
for(a=0;a<=1;a++)
{
glcd_rectangle(82(a*7),10+(a*24),127,28+(a*35));
}
for(c=0;c<=1;c++)
{
glcd_bar(82-(c*7),1+(c*23),127,10+(c*23));
}
glcd_setbkcolor(255);
glcd_setcolor(0);
glcd_outtextxy(2,2,"X:Sec Y:Amp");
glcd_outtextxy(94,2,"IRMS");
glcd_outtextxy(94,26,"TIME");
//glcd_pieslice(100, 50, 30,20, 5);
//glcd_setpixel(100,54);
glcd_line(100,54,102,51);
glcd_setbkcolor(0);
glcd_setcolor(255);
//SUMBU KOORDINAT
83

for(d=0;d<=4;d++)
{
for(e=0;e<=7;e++)
{
glcd_setpixel(3+(e*10),61);
glcd_setpixel(3+(e*10),59);
glcd_setpixel(2,60-(d*10));
glcd_setpixel(4,60-(d*10));
glcd_setpixel(3+(e*10),60-(d*10));
}
}
glcd_outtextxy(5,12,"<Graph Rec>");
glcd_outtextxy(77,50,"<< >>");
//PLOT GRAPH
while(state==3)
{
ftoa(arus_in,3,irms);
glcd_outtextxy(90,14,irms);
sprintf(buffertime,"%2i:%4i",second,count);
glcd_outtextxy(84,36,buffertime);
sprintf(nilai,"%2i",minute);
glcd_outtextxy(61,22,nilai);
sprintf(loc,"%i",l);
glcd_outtextxy(89,50,loc);
if(tombol6==0)
{
state=0;
glcd_clear();
}
if(tombol4==0){if(++l==4){l=0;}}
if(tombol7==0)
{
84

TIMSK=0x01;
}
if(tombol7==0)
{
delay_ms(100);
if(l==0){PORTC=0xAD;}
if(l==1){PORTC=0x07;}
if(l==2){PORTC=0xC7;}
if(l==3){PORTC=0xFF;}
}
if(data_adc==0)
{
TIMSK=0x00;
}
if(tombol1==0)
{TIMSK=0x00;PORTC=0x00;}
if(tombol2==0)
{TIMSK=0x00;count=0;second=0;minute=0;hour=0;}
glcd_bar(77,21,80,21-ubah_adc0);
if(x2<=70)
{
y2=ubah_adc1;
glcd_line(ofsx+(x1*skalax),ofsy(y1*skalay),ofsx+(x2*skalax),ofsy-(y2*skalay));
x1=x2;
y1=y2;
if(x2==70)
{
x2=0;
x1=0;
glcd_cleargraphics();
break;
85

}
}
if(TIMSK==0x01)
{
x2=x2+5;
}
}break;
}
}
}

86

Vous aimerez peut-être aussi