این پروژه یه ماشین حسابه کهچند تا فرمول فبزبک را توخودش داره. :cry:
:smile: :surprised: :biggrin: :sad: :mrgreen: :redface: :rolleyes: :icon_razz:
:eek: :twisted:
:evil:
:agree:
:job: :bye :whistling
:smile: :surprised: :biggrin: :sad: :mrgreen: :redface: :rolleyes: :icon_razz:
:eek: :twisted:
:evil:
:agree:
:job: :bye :whistling
کد:
#include <mega32.h>
#include <stdio.h>
#include <alcd.h>
#include <delay.h>
#include <sdcard.h>
int a,s,hi,ij,jk,kl;
int m,n,o,p,q,r,z,t,u,v,w,x,y,b,g,al,sepehr,ab,bc,cd,de,ef,fg,gh;
char ali[32],lm;
int number(char e);
void formu(void);
void formk(void);
void formq(void);
void formq1(void);
void formq2(void);
void formr(void);
void formi(void);
void formv(void);
void main(void){
char c=1,d=0,light=0;
DDRA=0xFF;
PORTA=0x00;
DDRB=0x00;
PORTB=0xFF;
DDRC=0xFF;
PORTC=0x00;
DDRD=0x00;
PORTD=0xFF;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADCSRA=0x00;
SPCR=0x00;
TWCR=0x00;
lcd_init(16);
while (1){
first:
lcd_clear();
light=0;
lcd_puts("welcome");
delay_ms(3000);
lcd_clear();
lcd_puts("back light?");
lcd_gotoxy(0,1);
lcd_puts("1_on 2_off");
while(light==0){
if(PINB.1==0){
PORTC.3=1;
light=1;
}
else if(PINB.2==0){
PORTC.3=0;
light=1;
}
}
lcd_clear();
lcd_puts("first chose");
delay_ms(3000);
while(1){
while(d==0){
if(PINB.0==0){
goto first;
}
if(PIND.6==0){
c=c+1;
}
else if(PIND.5==0){
c=c-1;
}
switch(c){
case 1:lcd_clear();lcd_puts("U=m.g.h");
delay_ms(200);
break;
case 2:lcd_clear();lcd_puts("K=1/2.m.v^2");
delay_ms(200);
break;
case 3:lcd_clear();lcd_puts("Q=m.c.dT");
delay_ms(200);
break;
case 4:lcd_clear();lcd_puts("Q=K'.A.t.dT/L");
delay_ms(200);
break;
case 5:lcd_clear();lcd_puts("Q=K.A.t.dT");
delay_ms(200);
break;
case 6:lcd_clear();lcd_puts("R=V/I");
delay_ms(200);
break;
case 7:lcd_clear();lcd_puts("I=V/R");
delay_ms(200);
break;
case 8:lcd_clear();lcd_puts("V=R*I");
delay_ms(200);
break;
default:if(c>8){c=8;}else if(c<1){c=1;}
break;
}
if(PIND.7==0){
d=d+1;
}
}
if(c==1){
lcd_clear();
formu();
d=0;
}
else if(c==2){
lcd_clear();
formk();
d=0;
}
else if(c==3){
lcd_clear();
formq();
d=0;
}
else if(c==4){
lcd_clear();
formq1();
d=0;
}
else if(c==5){
lcd_clear();
formq2();
d=0;
}
else if(c==6){
lcd_clear();
formr();
d=0;
}
else if(c==7){
lcd_clear();
formi();
d=0;
}
else if(c==8){
lcd_clear();
formv();
d=0;
}
}
}
}
int number(char e){
if (e==1){s=0;}
while (PIND.7==1){
if (PIND.6==0){
b=0;
s=0;
a=0;}
if (PINB.0==0){
delay_ms(200);
a=0;}
else if(PINB.1==0){
delay_ms(200);
a=1;}
else if(PINB.2==0){
delay_ms(200);
a=2;}
else if(PINB.3==0){
delay_ms(200);
a=3;}
else if(PINB.4==0){
delay_ms(200);
a=4;}
else if(PIND.0==0){
delay_ms(200);
a=5;}
else if(PIND.1==0){
delay_ms(200);
a=6;}
else if(PIND.2==0){
delay_ms(200);
a=7;}
else if(PIND.3==0){
delay_ms(200);
a=8;}
else if(PIND.4==0){
delay_ms(200);
a=9;}
else{
lm=10;}
if (lm<10){
b=(s*10) + a;
s=b;
}
sprintf(ali,"%32d",b);
lcd_clear();
lcd_puts(ali);
}
delay_ms(500);
return b;
}
void formu(void){
int j,k,f,l;
char salam=1;
lcd_clear();
lcd_puts("m=");
delay_ms(1000);
f=number (salam);
sprintf(ali,"%32d",f);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("g=");
delay_ms(1000);
j=number (salam);
sprintf(ali,"%32d",j);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("h=");
delay_ms(1000);
k=number (salam);
sprintf(ali,"%32d",k);
lcd_clear();
lcd_puts(ali);
l=f*j*k;
lcd_clear();
lcd_puts("U=");
delay_ms(1000);
sprintf(ali,"%32d",l);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("j");
delay_ms(5000);
lcd_clear();
}
void formk(void){
char salam=1;
lcd_clear();
lcd_puts("m=");
delay_ms(1000);
m=number (salam);
sprintf(ali,"%32d",m);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("v=");
delay_ms(1000);
n=number (salam);
sprintf(ali,"%32d",n);
lcd_clear();
lcd_puts(ali);
o=(m*n*n)/2;
lcd_clear();
lcd_puts("k=");
delay_ms(1000);
sprintf(ali,"%32d",o);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("j");
delay_ms(5000);
lcd_clear();
}
void formq(void){
char salam=1;
lcd_clear();
lcd_puts("m=");
delay_ms(1000);
p=number (salam);
sprintf(ali,"%32d",p);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("c=");
delay_ms(1000);
q=number (salam);
sprintf(ali,"%32d",q);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("dT=");
delay_ms(1000);
r=number (salam);
sprintf(ali,"%32d",r);
lcd_clear();
lcd_puts(ali);
z=p*q*r;
lcd_clear();
lcd_puts("Q=");
delay_ms(1000);
sprintf(ali,"%32d",z);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("j");
delay_ms(5000);
lcd_clear();
}
void formq1(void){
char salam=1;
lcd_clear();
lcd_puts("K'=");
delay_ms(1000);
t=number (salam);
sprintf(ali,"%32d",t);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("A=");
delay_ms(1000);
u=number (salam);
sprintf(ali,"%32d",u);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("t=");
delay_ms(1000);
v=number (salam);
sprintf(ali,"%32d",v);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("dT=");
delay_ms(1000);
w=number (salam);
sprintf(ali,"%32d",w);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("L=");
delay_ms(1000);
x=number (salam);
sprintf(ali,"%32d",x);
lcd_clear();
lcd_puts(ali);
y=(t*u*v*w)/x;
lcd_clear();
lcd_puts("Q=");
delay_ms(1000);
sprintf(ali,"%32d",y);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("j");
delay_ms(5000);
lcd_clear();
}
void formq2(void){
char salam=1;
lcd_clear();
lcd_puts("K=");
delay_ms(1000);
g=number (salam);
sprintf(ali,"%32d",g);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("A=");
delay_ms(1000);
al=number (salam);
sprintf(ali,"%32d",al);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("t=");
delay_ms(1000);
sepehr=number (salam);
sprintf(ali,"%32d",sepehr);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("dT=");
delay_ms(1000);
ab=number (salam);
sprintf(ali,"%32d",ab);
lcd_clear();
lcd_puts(ali);
bc=al*sepehr*ab*g;
lcd_clear();
lcd_puts("Q=");
delay_ms(1000);
sprintf(ali,"%32d",bc);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("j");
delay_ms(5000);
lcd_clear();
}
void formr(void){
char salam=1;
lcd_clear();
lcd_puts("V=");
delay_ms(1000);
cd=number (salam);
sprintf(ali,"%32d",cd);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("I=");
delay_ms(1000);
de=number (salam);
sprintf(ali,"%32d",de);
lcd_clear();
lcd_puts(ali);
ef=cd/de;
lcd_clear();
lcd_puts("R=");
delay_ms(1000);
sprintf(ali,"%32d",ef);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("ohm");
delay_ms(5000);
lcd_clear();
}
void formi(void){
char salam=1;
lcd_clear();
lcd_puts("V=");
delay_ms(1000);
fg=number (salam);
sprintf(ali,"%32d",fg);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("R=");
delay_ms(1000);
gh=number (salam);
sprintf(ali,"%32d",gh);
lcd_clear();
lcd_puts(ali);
hi=fg/gh;
lcd_clear();
lcd_puts("I=");
delay_ms(1000);
sprintf(ali,"%32d",hi);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("A");
delay_ms(5000);
lcd_clear();
}
void formv(void){
char salam=1;
lcd_clear();
lcd_puts("I=");
delay_ms(1000);
ij=number (salam);
sprintf(ali,"%32d",ij);
lcd_clear();
lcd_puts(ali);
lcd_clear();
lcd_puts("R=");
delay_ms(1000);
jk=number (salam);
sprintf(ali,"%32d",jk);
lcd_clear();
lcd_puts(ali);
kl=ij*jk;
lcd_clear();
lcd_puts("V=");
delay_ms(1000);
sprintf(ali,"%32d",kl);
lcd_clear();
lcd_puts(ali);
lcd_gotoxy(0,0);
lcd_puts("V");
delay_ms(5000);
lcd_clear();
}

