اطلاعیه

Collapse
No announcement yet.

کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH یک واحد به مقدار خروجی اضافه کند

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

    کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH یک واحد به مقدار خروجی اضافه کند

    سلام دوستان عزیز
    فردا باید این برنامه رو تحویل بدم. چیز سختی نیست . ولی ازونجایی که ترم آحرم زیاد وقت نزاشتم روش و متوجه نمیشم .
    ممنون میشم کمکم کنین .
    صورت سوال اینه :
    برنامه ای بنویسید گه با تغییر هر dip switch یک واحد به مقدار خروجی اضافه کند.
    واسه درس آزمایشگاه ریزپردازنده هست.
    باید تو مجیط AVR CODEVISION برنامش رو بنویسیم
    بعد توی برنامه PROTEUS مدارشو رسم کنیم. تا هرجاشم بتونین کمکم کنین خیلی ممنون میشم

    #2
    پاسخ : کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH یک واحد به مقدار خروجی اضافه کند

    فکر کنم دیگه زمان تحویلش تموم شده . ولی مشخص نکردید که خروجی رو چجوری نمایش بده و این دیپ سوئیچ چندتایی باشه و به یک پورت وصل بشه یا چندتا پورت
    چشم ها را باید شست ، جور دیگر باید دید . . .

    دیدگاه


      #3
      پاسخ : کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH یک واحد به مقدار خروجی اضافه کند

      والا ساعت 5 امروز باید تحویل بدیم . ولی میتونم فکر کنم بازم وقت بگیرم از استاد .راجع به سوالاتی که فرمودین هم اطلاعی ندارم دقیق. استاد فقط صورت سوال رو داد که براتون نوشتم . از صورت سوال مشخصه که چند دیپ سوییج داریم . تعدادش مهم نیست . ولی بیشتر از یکیه حتما.
      ممنون میشم اگر تو این زمینه اطلاعاتی دارین و یا تجربه ای دارین کمکم کنین . لطفا

      دیدگاه


        #4
        پاسخ : کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH یک واحد به مقدار خروجی اضافه کند

        سلام
        استادتون که زیاد جزئیات رو نگفته پس به نفع شما . چون قراره با زدن هر دیپ سوئیچ یکی به خروجی اضافه بشه این برنامه رو براش ببر
        [code=c]#include<mega8.h>
        #include<delay.h>
        int a=0;
        int i=0;
        void main(void){
        DDRB=0x00;
        DDRC=0xFF ;
        while(1){
        PORTC=a;
        if(PINB.0==1 && i==0){
        i++;
        a++;
        PORTC=a;
        }else if(PINB.1==1 && i==1){
        i++;
        a++;
        PORTC=a;
        }else if(PINB.2==1 && i==2){
        i++;
        a++;
        PORTC=a;
        }else if(PINB.3==1 && i==3){
        i++;
        a++;
        PORTC=a;
        }
        }
        }
        [/code]
        اینم مدار پروتئوسش



        البته منم زیاد وارد جزئیات نشدم به ترتیب از بالا به پائین که بزنی یکی به خروجی اضافه میشه
        چشم ها را باید شست ، جور دیگر باید دید . . .

        دیدگاه


          #5
          پاسخ : کمک-برنامه ای بنویسید که با تغییر هر DIP SWITCH &#

          منظور استادت اینه :

          شما باید مقدار پورت رو در یک متغییر ذخیره کنی و با یک متغییر دیگه هم به طور مداوم مقدار پورت رو داشته باشی و هر وقت که مقدار جاری با مقدار ذخیره شده فرق داشت یه واحد به مقدار یک پورت اضافه بشه!
          من با کدویژن زیاد کار نمی کنم ولی به بیسیک برات مینویسم خودت تبدیل کن!
          کد:
          $regfile = "m8def.dat"
          $crystal = 8000000
          config pinb = input
          config portd = output
          dim a as byte
          dim b as byte
          dim c as byte
          main:
          b = pinb
          do
          a = pinb
          if a <> b then
          incr c
          portd = c
          goto main
          end if
          loop

          الآن پورت b هر تغییری بکنه یه واحد به مقدار پورت d اضافه میشه

          برای پروتئوس هم همون شماتیک برادر (حسن ترابی) خوبه!

          دیدگاه

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