این پروژه یه ماشین حسابه کهچند تا فرمول فبزبک را توخودش داره. :cry:
: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(); }