NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5512 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: پروژه های avr به زبان بیسیک + نقشه و توضیحات کامل

  1. #1
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض پروژه های avr به زبان بیسیک + نقشه و توضیحات کامل

    در این قسمت پروژه های avr به ربان بیسک و تو ضیحات قرار داه میشود

    پروژه شمار 1:
    شماره نده دو رقمی با 7سگمنت :
    در این پروژه با استفاده ایسی 7447 ، میکرو مگا 8 ، 7سگمنت و... یک شمارنده دو رقمی ساخته شده است .
    با اعمال شدن پالس کلید به میکرو یک واحد به رقم 7 سگمنت اضافه میشود .
    شرح کاری ایسی 7447 :
    ایا ای سی کد bcd موجود بر روی پایه های a,b,c,d, خود را به کد 7سگمنت تبدیل میکند ، برای راه اندازی این ایسی فقط نیاز به تغذه میباشد
    برنامه و شرح ان :
    کد:
    $regfile = "M8DEF.DAT" : $crystal = 8000000
    Config Portd.0 = Output : Config Portd.1 = Output : Config Portd.2 = Output
    Config Portd.3 = Output : Config Portd.5 = Output : Config Portd.6 = Output
    Dim B As Byte
    Config Timer0 = Counter , Edge = Falling
    Do
    Reset Portd.6 : Set Portd.5
    Portd = Counter0
    If Counter0 > 9 Then : Counter0 = Counter0 / 10 : Incr B : End If
    Reset Portd.5 : Set Portd.6
    Portd = B
    Loop
    End
    $regfile = "M8DEF.DAT" : $crystal = 8000000
    در این خط میکرو و مقدار کریستال مرفی شده است ، میکرو ایسی atmega8 و مقدار کریستال 8 مگا هرتز است .
    Config Portd.0 = Output : Config Portd.1 = Output : Config Portd.2 = Output
    Config Portd.3 = Output : Config Portd.5 = Output : Config Portd.6 = Output

    در این دو خط پایه های که برای کنترل 7 سگمنت و همچنین اعمال داده به 7447 به کار میروند به عنوان خروجی تعریف شده اند .
    Dim B As Byte
    در این خط یک متغیر از جنس بایت تعریف شده است ، متغیر ها مکان های از حافظه ی rom هستند که میتوانند در خود یک عدد به فرم دسیمال ، بانری و... را ذخیره کنند . برای جلو گیری از اشغال حافظه ، انواع متنوعی متغیر وجود دارد.
    Config Timer0 = Counter , Edge = Falling
    در این خط تایمر /کانتر صفر به عنوان کانتر پیکر بندی شده است ، با دستور Edge = Falling کانتر نصب به پالس های پایین روند (سطح یک به صفر ) حساس خواهد بود .
    Do
    شروع حلقه do -loop با دستور do اغاز میشود .هنگامی که از این حلقه استفاده شود ، cpu فقط دستورات بین do و loop را اجرا میکند .
    Reset Portd.6 : Set Portd.5
    در این خط پایه کنترل 7 سگمنت اول یک ( روشن ) و پایه کنترل 7 سگمنت دوم صفر(خاموش )میشود .
    Portd = Counter0
    با این دستور مقدار شمرده شده توسط کانتر در پورت d ریخته میشود . این مقدار توسط ایسی 7447 به کد 7سگمنت تبدیل میشود ، چون اولین 7 شگمنت روشن است ، پس مقدار روی اولین سگمنت نشان داده میشود .
    If Counter0 > 9 Then : Counter0 = Counter0 / 10 : Incr B : End If
    در این خط اگر مقدار شمرده شده از 9 بیشتر شود مقدار کانتر به 10 تقسیم میشود . چون کانتر نمیتواند مقدار اعشاری را در خود ذخیره کند ، بنابراین مقدار ان صفر میشود . در این حالت یک واحد به متغیر b افزوده میشود .
    Reset Portd.5 : Set Portd.6
    Portd = B

    در این دوخط ، 7سگمنت اول خاموس و 7 سگمنت دوم روشن میشود ، و مقدار b به 7447 ارسال شده و بعد از تبدیل بر روی 7 سگمنت نمایش داده میشود .
    Loop
    End

    دستور loop ، پایان حلقه ی do-loop میباشد ، هنگامی که cpu بع این خط میرسد ، به دستور do پرش میکند . دستور end پایان برنامه است .
    دانلود برنامه و فایل شبیه سازی شده در پروتوس :
    [attachment=142]

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض RE: پروژه های avr به زبان بیسیک + نقشه و توضیحات کامل

    پروژه توپ سه بعدی
    در این پروژه با استفاده از تعدادی led یک توپ ساخته شده است ، led ها در این پروژه به شکل زیبایی چشمک میزنند . در این پروژه تعداد 140 عدد led از طریق 14 پایه میکرو راه اندازی شده است .
    هدف از این پروژه اشنایی با نحوه کار ایسی دیکودر 74145 است .
    ایسی 74145 یک دیکودر bcd به دسیمال است ، این ایسی 4 خط داده bcd ورودی را به 10 خط داده دسیمال در خروجی تبدیل میکند ، اطلاعات بیشتر را میتوانید در دیتا شیت ایسی بیابید
    دیتا شیت این ایسی رو میتونید از زیر دانلود کنید :
    http://www.datasheet4u.com/html/S/N/7/SN74145N_TexasInstruments.pdf.html
    برنامه :

    کد:
    $crystal = 10000000
    Dim Temp As Byte
    Dim Speed As Byte
    Dim S As Byte
    Dim Noise As Byte
    Dim N As Byte
    Dim R As Byte
    Config Portb = Output
    Config Portd = Output
    Temp = 2
    Speed = 5
    '------------------------------
    Do
    For S = 1 To Speed
    Gosub Effect1
    Next S
    For S = 1 To Speed
    Gosub Effect2
    Next S
    For S = 1 To Speed
    Gosub Effect3
    Next S
    For S = 1 To Speed
    Gosub Effect4
    Next S
    For S = 1 To Speed
    Gosub Effect5
    Next S
    Temp = Rnd(3)
    Temp = Temp + 1
    Speed = Rnd(5)
    Speed = Speed + 1
    Loop
    '------------------------------
    Effect1:                                          
    Portd.0 = 0
    Portb.3 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.3 = 0
    Portb.2 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 0
    Portb.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 0
    Portb.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 0
    Portd.6 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 0
    Portd.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 0
    Portd.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 1
    Portd.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 1
    Portd.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 1
    Portd.6 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 1
    Portb.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 1
    Portb.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 0
    Return
    '------------------------------
    Effect2:                                         
    Portd.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.3 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.3 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Return
    '------------------------------
    Effect3:                                         
    Portb.3 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.0 = 1
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    
    Portb.3 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.2 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portb.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.6 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Portd.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Return
    '------------------------------
    Effect4:
    Gosub Ledon
    Portb.3 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.2 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portd.6 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portd.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portd.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portd.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Gosub Ledon
    Portd.6 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.0 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.1 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Gosub Ledon
    Portb.2 = 0
    Gosub Perebor
    Gosub Perebor
    Gosub Perebor
    Return
    '------------------------------
    Effect5:
    For Noise = 1 To 50
    Gosub Randlamp
    Gosub Perebor
    Next
    Return
    '------------------------------
    Ledon:
    Portb.3 = 1
    Portb.2 = 1
    Portb.1 = 1
    Portb.0 = 1
    Portd.6 = 1
    Portd.1 = 1
    Portd.0 = 1
    Return
    '------------------------------
    Perebor:
    '1
    Portd.2 = 0
    Portd.3 = 0
    Portd.4 = 0
    Portd.5 = 0
    Portb.6 = 0
    Portb.5 = 0
    Portb.7 = 0
    Portb.4 = 0
    Waitms Temp
    '2
    Portd.2 = 0
    Portd.3 = 0
    Portd.4 = 0
    Portd.5 = 1
    Portb.6 = 0
    Portb.5 = 0
    Portb.7 = 0
    Portb.4 = 1
    Waitms Temp
    '3
    Portd.2 = 0
    Portd.3 = 0
    Portd.4 = 1
    Portd.5 = 0
    Portb.6 = 0
    Portb.5 = 0
    Portb.7 = 1
    Portb.4 = 0
    Waitms Temp
    '4
    Portd.2 = 0
    Portd.3 = 0
    Portd.4 = 1
    Portd.5 = 1
    Portb.6 = 0
    Portb.5 = 0
    Portb.7 = 1
    Portb.4 = 1
    Waitms Temp
    '5
    Portd.2 = 0
    Portd.3 = 1
    Portd.4 = 0
    Portd.5 = 0
    Portb.6 = 0
    Portb.5 = 1
    Portb.7 = 0
    Portb.4 = 0
    Waitms Temp
    '6
    Portd.2 = 0
    Portd.3 = 1
    Portd.4 = 0
    Portd.5 = 1
    Portb.6 = 0
    Portb.5 = 1
    Portb.7 = 0
    Portb.4 = 1
    Waitms Temp
    '7
    Portd.2 = 0
    Portd.3 = 1
    Portd.4 = 1
    Portd.5 = 0
    Portb.6 = 0
    Portb.5 = 1
    Portb.7 = 1
    Portb.4 = 0
    Waitms Temp
    '8
    Portd.2 = 0
    Portd.3 = 1
    Portd.4 = 1
    Portd.5 = 1
    Portb.6 = 0
    Portb.5 = 1
    Portb.7 = 1
    Portb.4 = 1
    Waitms Temp
    '9
    Portd.2 = 1
    Portd.3 = 0
    Portd.4 = 0
    Portd.5 = 0
    Portb.6 = 1
    Portb.5 = 0
    Portb.7 = 0
    Portb.4 = 0
    Waitms Temp
    '10
    Portd.2 = 1
    Portd.3 = 0
    Portd.4 = 0
    Portd.5 = 1
    Portb.6 = 1
    Portb.5 = 0
    Portb.7 = 0
    Portb.4 = 1
    Waitms Temp
    Return
    '------------------------------
    Randlamp:
    Portb.3 = 0
    Portb.2 = 0
    Portb.1 = 0
    Portb.0 = 0
    Portd.6 = 0
    Portd.1 = 0
    Portd.0 = 0
    R = Rnd(70)
    R = R + 1
    If R <= 10 Then
    Portb.3 = 1
    End If
    If R <= 20 And R > 10 Then
    Portb.2 = 1
    End If
    If R <= 30 And R > 20 Then
    Portb.1 = 1
    End If
    If R <= 40 And R > 30 Then
    Portb.0 = 1
    End If
    If R <= 50 And R > 40 Then
    Portd.6 = 1
    End If
    If R <= 60 And R > 50 Then
    Portd.1 = 1
    End If
    If R <= 70 And R > 60 Then
    Portd.0 = 1
    End If
    Return
    در صورتی که به دیتا شیت ایسی بروید ، در صفحه اول جدولی مربوط به کد های ورودی و کد های خروجی اورده شده است . در این پروژه در ان واحد فقط یک led روشن است ، اما به دلیل سرعت زیاد شما روشن و خاموش شدن led ها را نمیبینید و فکر میکنید انها پیوسته هستند .

  5. تشکرها از این نوشته :


موضوعات مشابه

  1. شبکه های حسگر بیسیم هوشمند
    توسط cpld در انجمن AVR
    پاسخ: 4
    آخرين نوشته: 27-10-2013, 01:37
  2. زبان بیسیک
    توسط eiliya در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 4
    آخرين نوشته: 29-03-2013, 01:01
  3. پاسخ: 2
    آخرين نوشته: 14-12-2012, 21:01
  4. کمک فوری در تبدیل برنامه به بیسیک
    توسط sarfraz3 در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 07-12-2012, 23:55
  5. مفسر بیسیک برای arm
    توسط agape در انجمن LPC series (NXP)
    پاسخ: 14
    آخرين نوشته: 29-06-2012, 12:37

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •