کاربر مهمان، خوش آمديد!  ( ورود - عضويت )   امروز 1 آذر ماه ، 1387
 
منوی اصلی
  • صفحه اول
  • مدارات و پروژه ها
  • مدارات و پروژهای سایت قدیمی
  • انجمن سایت ( تالار گفتمان)
  • دانلود
  • جستجو
  • لینکهای مفید
  • نقشه سایت
  • نمایش ساده
  • تماس با ما

  • جستجو



    مطالب تصادفی

    مدارات ميكروكنترولر
    [ مدارات ميكروكنترولر ]

    ·شماره گير تلفن جادويي

    برترين دانلودها
    · 1: برنامه و نقشه تابلوروان5در7
    · 2: شماره گير جادويي تلفن
    · 3: كنترلر دما توسط كامپيوتر
    · 4: انیمیشن در تابلو روان
    · 5: برنامه و نقشه تابلوروان 5 در 7 با جاروب ستوني
    · 6: توليد كننده سورس بسكام برنامه تابلو روان
    · 7: نرم افزار طراحی فونت مورد نياز تابلو روان
    · 8: نرم افزار تبديل متن به كدهاي گلایف جهت تابلوروان

    نسخه قديمي سايت

    با توجه به استقبال فراوان شما دوستان قديمي سايت از مطالب و موضوعات گذشته، لينك صفحه ليست مدارات و پروژه هاي الكترونيك در اين بخش قرار داده شده است. البته اين مطالب به مرور در نسخه جديد هم قرار ميگيرد ولي بروز رساني مقالات فقط در نسخه جديد انجام ميشود.


    SMS خبرنامه

    SMS

    جهت دريافت رايگان تازه هاي سايت شماره مويايل خود را به همراه نام و نام خانوادگي به شماره 09123812060  ارسال كنيد.


    تبليغات



    تابلوروان: برنامه نویسی اولین تابلوروان
    تابلوروان - تابلو روان

    حال نوبت به توضیح برنامه هست. من برنامه این میکرو را به زبان بیسیک نوشتم و از نرم افزار BASCOM-AVR استفاده کردم.

     $regfile = "m8def.dat"
    $crystal = 8000000

    همانطور که میدانید، دستوراتی که با علامت "$" در BASCOM آغاز میشوند، جزو دستورات کمپایلر به حساب می‌آیند. و در زمان کمپایل کدی را تولید نمیکنند. دو دستور فوق نیز همینگونه هستند. در دستور اول نوع میکرو برای کمپایلر تعریف میشود که در اینجا ATmega8 میباشد و در دستور بعدی فرکانس کریستال بر حسب هرتز مشخص میشود.در این برنامه مقدار فرکانس تعریفی هشت مگاهرتز است. توجه داشته باشید که من در مدار تابلو روان خود، از کریستال خارجی استفاده نکردم. لذا این دستور تعیین کننده فرکانس اسیلاتور داخلی میکروکنترلر میباشد.



    Config Portb = Output
    Config Portd = Output

    در دو دستور فوق پورت های B,D بعنوان خروجی پیکربندی گشته‌اند. من در این مدار تابلو روان از پورت B برای راه اندازی و کنترل سطرها و از پورت D جهت راه‌اندازی ستون‌ها استفاده کرده‌ام.

     

    Dim Row As Byte
    Dim Scan As Byte

    در این دو دستور من دو متغییر از نوع بایت تعریف کردم. متغییر  Row  جهت شمارش سطرها و متغییر Scan  جهت تهیه سیگنال جاروب در سطرها استفاده میشود.

     

    بعد از موارد فوق  در برنامه، به حلقه اصلی برنامه میرسیم. جهت ساخت این حلقه از دستور Do-Loop استفاده شده و بدلیل عدم ذکر هیچگونه شرطی در این دستور، دستورات موجود در بدنه این حلقه به تعداد بینهایت بار اجرا میگردند.

     

    Scan = &B11111110

    در ابتدای حلقه  Do-Loop متغییر Scan، مقدار دهی اولیه میشود تا سیگنال مورد نیاز جهت فعال نمودن سطر نخست تولید گردد. با توجه به ساختار ماتریس LED مورد استفاده در این تابلو روان ( اتصال کاتد LED های موجود در یک سطر به یکدیگر ) جهت فعال سازی یک سطر باید پین مربوط به آن سطر در میکرو صفر شود و سایر پین های مربوط به دیگر سطرها، یک شوند. همانطور نیز که مشاهده کردید در دستور فوق نیز بیت نخست متغییر Scan نیز صفر شده که مربوط به سطر اول ماتریس است و سایر بیت‌ها نیز یک شده‌اند. در نتیجه فقط سطر اول فعال خواهد شد و سایر سطرها غیر فعال هستند.

     

    در ادامه برنامه به حلقه For-Next میرسیم. متغییر  Row در این حلقه با  صفر مقدار دهی اولیه میشود و اجرای دستورات حلقه تا رسیدن  این متغییر به عدد 6 تعریف شده. لذا تعداد دفعات اجرای دستورات درون حلقه 7 بار خواهد بود. درواقع ما در درون این حلقه یک بار کامل کل سطرهای ماتریس را که هفت عدد میباشد جاروب میکنیم.

     

        For Row = 0 To 6
            Portb = Scan
            Rotate Scan , Left
            Portd = Lookup(row , Gelayof)
            Waitus 20
            Portd = 0
        Next Row

    در اولین دستور در حلقه For-Next  مقدار متغییر Scan در پورت B میکروکنترلر قرار میگیرد. تا سطر مورد نظر در ماتریس فعال شود. در دستور بعدی متغییر  Scan به اندازه یک بیت به سمت چپ شیفت چرخشی داده میشود. با این شیفت صفر موجود در این متغییر به سمت چپ منتقل شده و جای آنرا یک بیت یک پر میکند. بعنوان مثال در نخستین بار اجرای این دستور متغییر Scan از مقدار 11111110 به مقدار 11111101 تغییر میکند و در شیفت بعدی به 11111011 تا اینکه بعد از هفتمین شیفت بصورت 10111111 در می‌آید. که در هفتمین مرحله در واقع بیت هفتم، صفر شده است که باعث فعال گشتن سطر هفتم ماتریس خواهد شد.

    در این برنامه من قصد نمایش حرف A را داشتم، لذا جدولی با نام Gelayof در برنامه تعریف کردم .همانطور نیز که در زیر مشاهده میکنید، جهت ذخیره اطلاعات مربوط به حرف A من از هفت بایت استفاده نمودم و اطلاعات مربوط به هر سطر را در یک بایت قرار داده‌ام. از طرفی چون در این مدار پهنای ماتریس LED، پنج است فقط از پنج بیت اول هر بایت استفاده شده و سه بیت با ارزش آن صفر شده‌اند. شما بنابر نیاز خود میتوانید با تغییر دادن وضعیت بیتها به نمایش هر شکل و یا کاراکتری بپردازید.

    Gelayof:
    Data &B00000100
    Data &B00001010
    Data &B00010001
    Data &B00010001
    Data &B00011111
    Data &B00010001
    Data &B00010001

     

    حال اطلاعات این جدول مرحله به مرحله و سطر به سطر خوانده شده و در پورت D قرار میگیرد.این عمل توسط دستور Lookup در برنامه صورت میگیرد. در این دستور بایت مورد نظر ( اطلاعات سطر مورد نظر ) توسط متغییر Row  تعیین میشود. بعد از قرار دادن اطلاعات مربوط هر سطر در پورت D به اندازه 20 میکرو ثانیه این اطلاعات در پورت نگاه داشته  میشود تا LED های موجود در آن سطر روشن بمانند و اثر آن در چشم بیننده باقی بماند. سپس پورت D صفر میشود و اعمال فوق مجددا جهت سطر بعدی تکرار میگردد.

    بعد از هر بار جاروب کامل تمامی سطرها، کنترل برنامه از حلقه For-Next خارج شده و مجددا متغییر Scan مقدار دهی اولیه شده تا برای جاروب مجدد آماده گردد. بله به همین سادگی شما یک نمونه ساده از تابلو روان را ساختید!

     

    متن کامل برنامه را بصورت یکجا در زیر آورده شده است.


    '*********************************************
    '* This Program Writing By : Hossein Lachini                    *
    '* This, Displyed "A" on the Signe Board                          *
    '* For to get more details visit :                                       *
    '*                
    www.HLachini.com                          *
    '* Contact to me by :
    eLachini@Gmail.com      *
    '*********************************************

    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Portb = Output
    Config Portd = Output

    Dim Row As Byte
    Dim Scan As Byte


    Do
        Scan = &B11111110
        For Row = 0 To 6
            Portb = Scan
            Rotate Scan , Left
            Portd = Lookup(row , Gelayof)
            Waitus 20
            Portd = 0
        Next Row
    Loop
    End 'end program

    Gelayof:
    Data &B00000100
    Data &B00001010
    Data &B00010001
    Data &B00010001
    Data &B00011111
    Data &B00010001
    Data &B00010001

    جهت دانلود برنامه و نقشه تابلوروان اینجا کلیک کنید. 

    ارسال شده در مورخه : يكشنبه، 3 شهريور ماه ، 1387 توسط admin  چاپ مطلب

     
    نام: [ کاربر جدید ]

    موضوع:
     
    نظر:


    :) ;) |) :- :( :0 :# *) ^) +)) :} |(( @: (:) :? :**

    کد امنيتي : zex34jor
    تايپ کد امنيتي :


    [ بازگشت ]
    لینکهای مرتبط
    · مطالب بیشتر در مورد تابلوروان - تابلو روان
    · سایر مطالب نوشته شده توسط admin


    پربازدیدترین مطلب در زمینه تابلوروان - تابلو روان:
    برنامه نویسی اولین تابلوروان


    امتیاز دهی به مطلب
    امتیاز متوسط : 5
    تعداد آراء: 1


    لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

    عالی
    خیلی خوب
    خوب
    متوسط
    بد


    انتخاب ها

     گرفتن پرينت از اين مطلب گرفتن پرينت از اين مطلب



    صفحه اصلي |  جستجو |  دريافت فايل |  آرشيو اخبار |  تماس با ما

    هرگونه كپي برداري از مطالب سايت با درج منبع آزاد است




    Powered By PHP-Nuke & Farsi Project By [MashhadTeam] PHPNuke.ir

    www.mashhadteam.ir