اطلاعیه

Collapse
No announcement yet.

ماشین حساب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ماشین حساب

    شبیه سازی ماشین حساب با چهار عمل اصلی با کدویژن
    ممنون

    #2
    پاسخ : ماشین حساب

    سلام
    من این برنامه رو نوشتم
    مشکلی هم برای ارسال برای شما رو ندارم
    اما فکر میکنم اگر شما کارو شروع کنید و کم کم جلو بریم نتیجه بهتری داشته باشه
    اگه با نظر من مخالف بودید به من pm بزنید تا برنامه رو براتون بفرستم

    بحث هم خودم شروع میکنم
    اولین قدم نوشتن یه برنامه هست که یه کیبورد چهار در چهار رو بخونه
    این پروژه که بگردید تو سایت حتما پیدا می کنید البته راههای جدید تر هم هست که به اون نمی پردازیم
    برای این کار از یه پورت میکرو استفاده می کنیم .چهار پایه خروجی و چهار پایه ورودی . چهار پایه خروجی رو به ستون ها وصل کرده و چهار پایه ورودی را به سطر ها اینطوری یه ماتریس چهار در چهار داریم که اگه یه میکرو سوییچ را فشار دهیم انوقت اون ارایه 1 میشود و بقیه را صفر در نظر میگیریم
    این برنامه رو با یه سری switch , case می تونید به راحتی تو کد ویژن بنویسید .
    من در خدمتم
    در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
    در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
    که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
    آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

    دیدگاه


      #3
      پاسخ : ماشین حساب

      سلام، میخواستم ازتون بخوام که برنامه ماشین حساب با کد ویژن رو برای من تا شنبه ارسال کنید. آخه استاد ما این پروژه رو به من و دوستم داد، که متاسفانه من درگیر مراسم فوت مادربزرگم شودم و دوستم هم کاری انجام نداده. :sad:
      ازتون خواهش میکنم بهمون کمک کنید چون نصف نمره این درسمون به این برنامه مربوطه. PLEASE.

      دیدگاه


        #4
        پاسخ : ماشین حساب

        نوشته اصلی توسط SHIMA-SH
        سلام، میخواستم ازتون بخوام که برنامه ماشین حساب با کد ویژن رو برای من تا شنبه ارسال کنید. آخه استاد ما این پروژه رو به من و دوستم داد، که متاسفانه من درگیر مراسم فوت مادربزرگم شودم و دوستم هم کاری انجام نداده. :sad:
        سلام
        با عرض تسلیت به شما دوست عزیز .
        به جمع ما خوش امدید .
        من یه برنامه خیلی قدیمی دارم که حرفه ای نیست و الان هم فرصت تغییر اونو ندارم .زحمت جمع و جور کردنشو خودتون بکشید .
        هم برنامه هم شبیه سازی رو براتون گذاشتم .
        توضیح هر قسمت هم بخواین در خدمتم . امیدوارم به کارتون بیاد .

        http://www.fileden.com/getfile.php?file_path=http://www.fileden.com/files/2008/10/4/2128514/string%20calculetor.rar


        در میان مردم پی دستی هستم پی گرمای نگاهی حتی در پس این همه چشم سردی غربت انسان پیداست
        در پس، این همه نور این همه رنگ چه کسی میبیند اشک آن کودک را چشم آن مردی را
        که شبانگاه، سر افکنده ز شرم و به یاد طفل اش بی صدا میگرید، می شکند
        آری این شهر من است این همان شهر شما است در پی چشمی باش که نگاه اش آبی است و پر از نم نم باران بهار

        دیدگاه


          #5
          پاسخ : ماشین حساب

          با عرض سلام و تسلیت خدمت دوست گرامی
          من یک برنامه با codevision و یک مدار ماشین حساب با proteus طراحی کردم که کاملا جواب داده(برای اعداد چند رقمی)
          این برنامه برای ATmega16 نوشته شده. فایل ها را میتونم براتون بفرستم اگر Email شما را داشته باشم.

          دیدگاه


            #6
            پاسخ : ماشین حساب

            کد برنامه رو اینجا میذارم و در صورت نیاز به فایلها و اطلاعات بیشتر اعلام کنید. فقط در صورتی که مقادیر بزرگ خواستید استفاده کنید نوع متغیر ها را تغییر دهید(همین کافیه)
            /************************************************** ***
            This program was produced by the
            CodeWizardAVR V1.24.6 Standard
            Automatic Program Generator
            © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
            http://www.hpinfotech.com
            e-mailffice@hpinfotech.com

            Proect :
            Version :
            Date : 16/04/2009
            Author : hp
            Company : hp
            Comments:


            Chip type : ATmega16
            Program type : Application
            Clock frequency : 1.000000 MHz
            Memory model : Small
            External SRAM size : 0
            Data Stack size : 256
            ************************************************** ***/

            #include <mega16.h>
            #include <stdio.h>
            #include <math.h>
            // Alphanumeric LCD Module functions
            #asm
            .equ __lcd_port=0x1B ;PORTA
            #endasm
            #include <lcd.h>

            // Declare your global variables here
            long int a,b,s;
            unsigned char i;
            char c,buffer[16];

            void main(void)
            {
            // Declare your local variables here

            // Input/Output Ports initialization
            // Port A initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
            PORTA=0x00;
            DDRA=0x00;

            // Port B initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
            PORTB=0x00;
            DDRB=0x00;

            // Port C initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
            // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
            PORTC=0x00;
            DDRC=0x00;

            // Port D initialization
            // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
            // State7=P State6=P State5=P State4=P State3=1 State2=1 State1=1 State0=1
            PORTD=0xFF;
            DDRD=0x0F;

            // Timer/Counter 0 initialization
            // Clock source: System Clock
            // Clock value: Timer 0 Stopped
            // Mode: Normal top=FFh
            // OC0 output: Disconnected
            TCCR0=0x00;
            TCNT0=0x00;
            OCR0=0x00;

            // Timer/Counter 1 initialization
            // Clock source: System Clock
            // Clock value: Timer 1 Stopped
            // Mode: Normal top=FFFFh
            // OC1A output: Discon.
            // OC1B output: Discon.
            // Noise Canceler: Off
            // Input Capture on Falling Edge
            // Timer 1 Overflow Interrupt: Off
            // Input Capture Interrupt: Off
            // Compare A Match Interrupt: Off
            // Compare B Match Interrupt: Off
            TCCR1A=0x00;
            TCCR1B=0x00;
            TCNT1H=0x00;
            TCNT1L=0x00;
            ICR1H=0x00;
            ICR1L=0x00;
            OCR1AH=0x00;
            OCR1AL=0x00;
            OCR1BH=0x00;
            OCR1BL=0x00;

            // Timer/Counter 2 initialization
            // Clock source: System Clock
            // Clock value: Timer 2 Stopped
            // Mode: Normal top=FFh
            // OC2 output: Disconnected
            ASSR=0x00;
            TCCR2=0x00;
            TCNT2=0x00;
            OCR2=0x00;

            // External Interrupt(s) initialization
            // INT0: Off
            // INT1: Off
            // INT2: Off
            MCUCR=0x00;
            MCUCSR=0x00;

            // Timer(s)/Counter(s) Interrupt(s) initialization
            TIMSK=0x00;

            // Analog Comparator initialization
            // Analog Comparator: Off
            // Analog Comparator Input Capture by Timer/Counter 1: Off
            ACSR=0x80;
            SFIOR=0x00;

            // LCD module initialization
            lcd_init(16);
            label1:
            lcd_clear();

            a=0,b=0,i=0;
            c='',s=0;

            while (1)
            {
            //PORTD.0

            PORTD.0=0;
            if(PIND.4==0){
            lcd_putsf("7"
            if(i==0){
            a=7+a*10;

            }
            else if(i==1){
            b=7+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.4==0);
            }

            if(PIND.5==0){
            lcd_putsf("8"
            if(i==0){
            a=8+a*10;

            }
            else if(i==1){
            b=8+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.5==0);
            }

            if(PIND.6==0){
            lcd_putsf("9"
            if(i==0){
            a=9+a*10;

            }
            else if(i==1){
            b=9+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.6==0);
            }

            if(PIND.7==0){
            lcd_putsf("/"
            if(i==0){
            c='/';
            i++;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.7==0);
            }
            PORTD.0=1;



            //PORTD.1

            PORTD.1=0;
            if(PIND.4==0){
            lcd_putsf("4"
            if(i==0){
            a=4+a*10;

            }
            else if(i==1){
            b=4+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.4==0);
            }

            if(PIND.5==0){
            lcd_putsf("5"
            if(i==0){
            a=5+a*10;

            }
            else if(i==1){
            b=5+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.5==0);
            }

            if(PIND.6==0){
            lcd_putsf("6"
            if(i==0){
            a=6+a*10;

            }
            else if(i==1){
            b=6+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.6==0);
            }

            if(PIND.7==0){
            lcd_putsf("*"
            if(i==0){
            c='*';
            i++;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.7==0);
            }
            PORTD.1=1;




            //PORTD.2

            PORTD.2=0;
            if(PIND.4==0){
            lcd_putsf("1"
            if(i==0){
            a=1+a*10;

            }
            else if(i==1){
            b=1+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.4==0);
            }

            if(PIND.5==0){
            lcd_putsf("2"
            if(i==0){
            a=2+a*10;

            }
            else if(i==1){
            b=2+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.5==0);
            }

            if(PIND.6==0){
            lcd_putsf("3"
            if(i==0){
            a=3+a*10;

            }
            else if(i==1){
            b=3+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.6==0);
            }

            if(PIND.7==0){
            lcd_putsf("-"
            if(i==0){
            c='-';
            i++;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.7==0);
            }
            PORTD.2=1;





            //PORTD.3

            PORTD.3=0;
            if(PIND.4==0){
            lcd_clear();
            a=0;
            b=0;
            c='';
            i=0;

            while(PIND.4==0);
            }

            if(PIND.5==0){
            lcd_putsf("0"
            if(i==0){
            a=0+a*10;

            }
            else if(i==1){
            b=0+b*10;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.5==0);
            }

            if(PIND.6==0){
            lcd_putsf("="
            if(i==1||i==0)
            break;
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.6==0);
            }

            if(PIND.7==0){
            lcd_putsf("+"
            if(i==0){
            c='+';
            i++;

            }
            else{
            lcd_clear();
            lcd_putsf("Incorrect input!"
            }
            while(PIND.7==0);
            }
            PORTD.3=1;

            };
            switch(c){
            case '+':
            s=a+b;
            sprintf(buffer,"%d",s);
            lcd_puts(buffer);
            break;

            case '-':
            if(b>a){
            s=b-a;
            sprintf(buffer,"-%d",s);
            }
            else{
            s=a-b;
            sprintf(buffer,"%d",s);
            }
            lcd_puts(buffer);
            break;

            case '*':
            s=a*b;
            sprintf(buffer,"%d",s);
            lcd_puts(buffer);
            break;

            case '/':
            if(b==0){
            lcd_clear();
            lcd_putsf("Divide by zero!"
            }
            else
            s=a/b;
            sprintf(buffer,"%d",s);
            lcd_puts(buffer);
            break;
            default:
            sprintf(buffer,"%d",a);
            lcd_puts(buffer);
            break;
            }
            PORTD.3=0;
            while(PIND.4);
            PORTD.3=1;
            goto label1;
            }

            دیدگاه


              #7
              پاسخ : ماشین حساب

              salam
              ruzetun khosh
              vallah sharmandeh shodam begam man prozeh daram ke bayad ta akhare hafte tahvil bedam
              ama
              gir kardam
              na barnamam kamele na mitunam ic khodamo be madar vasl konam
              lotfan ye komaki bo****d mamnun misham :cry:
              :cry2:
              :redface:

              دیدگاه


                #8
                پاسخ : ماشین حساب

                نوشته اصلی توسط ictfac
                با عرض سلام و تسلیت خدمت دوست گرامی
                من یک برنامه با codevision و یک مدار ماشین حساب با proteus طراحی کردم که کاملا جواب داده(برای اعداد چند رقمی)
                این برنامه برای ATmega16 نوشته شده. فایل ها را میتونم براتون بفرستم اگر Email شما را داشته باشم.
                saeid_monster@yahoo.com
                سلام امیدوارام روزگار بر وفق مراد باشه
                ماله من که اصلا نیست
                ازت خواهش میکنم این پروژهتو لطفا برام ایمیل بکنی یه دنیا ممنونت میشم

                دیدگاه


                  #9
                  پاسخ : ماشین حساب

                  با سلام و تشکر از ictfac
                  برنامه تون خیلی عالیه ولی چرا جواب نهایی رو نشون نمیده؟

                  دیدگاه


                    #10
                    پاسخ : ماشین حساب

                    واقعا مفید بود ممنون

                    دیدگاه

                    لطفا صبر کنید...
                    X