اطلاعیه

Collapse
No announcement yet.

برنامهAVR

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

    برنامهAVR

    تشکر بابت آموزش زبان بیسیکAVR

    من توانستم چند برنامه ساده را به زبان بیسیک بنویسم.حالا برنامه ای را منویسم که در آن از میکرو مگا8 و محیط بسکام استفاده می کنم ولی به اشکالاتی برخورد کرده ام که امیدوارم با کمک شما رفع گردد.بدین صورت که یک برنامه یا بهتر بگویم زیر برنامه تحت نام GREEN یا سبز و یک برنامه تحت عنوان RED یا قرمز نوشته ام .مدار شامل یک کلید سه پایه دو حالته الاکلنگی (حالت1وحالت2) میباشد که پایه وسط این کلید به پین شماره 23 مگا8 وصل است وLCD2X16 بعد از روشن شدن ابتدا عبارت NAME OF GOD را مینویسد و پاک میشود سپس کلمه GREEN نوشته می شود و 2 ثانیه بعد پاک می شود و بعد کلمه RED نوشته شده و 2 ثانیه بعد پاک می شود و دوباره کلمه GREEN و بعدRED و دوباره(حالت DO-LOOP).می خواهم با زدن کلید از حالت 1 به2 زمانی که کلمه GREEN روی LCD وجود دارد برنامه GREEN اجرا شود و مدار را که خاموش کردم و دوباره روشن کردم و سیکل تکرار شد و کلمه RED روی LCD نوشته شد با زدن کلید برنامه RED اجرا شود.آیا لازم است برای همه حالات این برنامه میکرو و کریستال را تعریف کنم.لطفا مر راهنمایی کنید. فایل هر دو زیر برنامه را در این متن نیز فرار میدهم.با تشکر
    RED:

    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Timer1 = Timer , Prescale = 1
    Stop Timer1
    Config Portb = Output
    Config Portd = Output
    Portb.1 = 0
    Portd.6 = 0
    Portd.7 = 0
    Dim A As Word

    Startline1:
    Start Timer1
    A = 0
    Portb.1 = 1
    Do
    A = A + 1
    Loop Until A = 100
    Portb.1 = 0
    A = 0
    Do
    A = A + 1
    Loop Until A = 45
    A = 0
    Portd.6 = 1
    Do
    A = A + 1
    Loop Until A = 45
    A = 0
    Portd.6 = 0
    Do
    A = A + 1
    Loop Until A =300
    A = 0
    Portd.7 = 1
    Do
    A = A + 1
    Loop Until A = 45
    A = 0
    Portd.7 = 0
    Do
    A = A + 1
    Loop Until A = 465
    Stop Timer1
    Goto Startline1



    GREEN:


    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Timer1 = Timer , Prescale = 1
    Stop Timer1
    Config Portb = Output
    Config Portd = Output
    Portb.1 = 0
    Portd.6 = 0
    Portd.7 = 0
    Dim A As Word

    Startline1:
    Start Timer1
    A = 0
    Portb.1 = 1
    Do
    A = A + 1
    Loop Until A = 27
    Portb.1 = 0
    A = 0
    Do
    A = A + 1
    Loop Until A = 4
    A = 0
    Portd.6 = 1
    Do
    A = A + 1
    Loop Until A = 12
    A = 0
    Portd.6 = 0
    Do
    A = A + 1
    Loop Until A = 53
    A = 0
    Portd.7 = 1
    Do
    A = A + 1
    Loop Until A = 12
    A = 0
    Portd.7 = 0
    Do
    A = A + 1
    Loop Until A = 158
    Stop Timer1
    Goto Startline1

    #2
    پاسخ : برنامهAVR

    سلام.

    بهتر بود که سوال را در قسمت AVR مطرح میکردی!

    زیر برنامه و/یا توابع جزئی از برنامه هستند. اگر میخواهید که سبز و قرمز دو زیر برنامه در برنامه شما باشند، نباید کریستال و میکرو و تمامی تنظیمات را در هر قسمت تعریف کنی. فقط یه بار اون هم بالای برنامه.

    یا از sub استفاده کن (برای ایجاد سابروتین) یا اینکه میتونی از دستور Gosub/Return استفاده کنی. اگه از زیر برنامه ای استفاده نمیکنی، هیچ نام برچسبی (Lable) نباید تکراری باشه! (همون Startline1 در برنامه شما)

    موفق باشید
    http://ceworld.ir/images/ads/dornablogcom_ads.gif

    دیدگاه


      #3
      پاسخ : برنامهAVR

      با تشکر از شما

      در این برنامه کلید به پایه 24 (PC1) مگا 8 وصل است و LCD 2.16 نیز به port d میکرو متصل است.گر مقدور است برنامه آن را برایم بنویسید.مننون میشوم.

      دیدگاه


        #4
        پاسخ : برنامهAVR

        نوشته اصلی توسط mahmud4532
        با تشکر از شما

        در این برنامه کلید به پایه 24 (PC1) مگا 8 وصل است و LCD 2.16 نیز به port d میکرو متصل است.گر مقدور است برنامه آن را برایم بنویسید.مننون میشوم.

        برنامه چی رو بنویسم؟؟؟ :surprised:

        شما شروع به نوشتن برنامه کنید و هرجا که گیر کردین من و دوستان در خدمت هستیم....
        http://ceworld.ir/images/ads/dornablogcom_ads.gif

        دیدگاه


          #5
          پاسخ : برنامهAVR

          با سلام به آقا بهنام و سایر دوستان

          »ن برنامه را اینجا قرار می دهم تا با کمک دوستان به ایرادهای برنامه ام پی ببرم.
          $regfile=M8def.dat$
          crystal=8000000$
          configLCD=16x2
          configLCD pin=pin,Db4=PORTD.3,Db5=PORTD.2,Db6=PORTD.1,Db7=PO RTD.0,RS=PORTD.5,E=POD.4
          DO
          CLS
          LOCATE 1,1
          "LCD"IN THE NAME OF GOD
          LOCATE 2,1
          "LCD"WELCOME
          CLS
          DO
          LOCATE1,1
          "LCD"RED
          WAITMS500
          Config pinB.1=input
          Config portc1(کلید)=output
          DO
          DEBOUNCE pinc1=1,RED
          RED:

          Config Timer1 = Timer , Prescale = 1
          Stop Timer1
          Config Portb = Output
          Config Portd = Output
          Portb.1 = 0
          Portd.6 = 0
          Portd.7 = 0
          Dim A As Word

          Startline1:
          Start Timer1
          A = 0
          Portb.1 = 1
          Do
          A = A + 1
          Loop Until A = 100
          Portb.1 = 0
          A = 0
          Do
          A = A + 1
          Loop Until A = 45
          A = 0
          Portd.6 = 1
          Do
          A = A + 1
          Loop Until A = 45
          A = 0
          Portd.6 = 0
          Do
          A = A + 1
          Loop Until A =300
          A = 0
          Portd.7 = 1
          Do
          A = A + 1
          Loop Until A = 45
          A = 0
          Portd.7 = 0
          Do
          A = A + 1
          Loop Until A = 465
          Stop Timer1
          Goto Startline1
          loop
          END
          locate1,1
          "lcd"GREEN
          waitms500
          config pinB1=input
          configpinc1(کلید)=output
          Do
          DEBOUNCEpinB1=1 GREEN
          GREEN:

          Config Timer1 = Timer , Prescale = 1
          Stop Timer1
          Config Portb = Output
          Config Portd = Output
          Portb.1 = 0
          Portd.6 = 0
          Portd.7 = 0
          Dim A As Word

          Startline1:
          Start Timer1
          A = 0
          Portb.1 = 1
          Do
          A = A + 1
          Loop Until A = 27
          Portb.1 = 0
          A = 0
          Do
          A = A + 1
          Loop Until A = 4
          A = 0
          Portd.6 = 1
          Do
          A = A + 1
          Loop Until A = 12
          A = 0
          Portd.6 = 0
          Do
          A = A + 1
          Loop Until A = 53
          A = 0
          Portd.7 = 1
          Do
          A = A + 1
          Loop Until A = 12
          A = 0
          Portd.7 = 0
          Do
          A = A + 1
          Loop Until A = 158
          Stop Timer1
          Goto Startline1
          loop
          END

          دیدگاه

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