اطلاعیه

Collapse
No announcement yet.

آموزش جامع AVR با نرم افزار Bascom

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

    #16
    پیکربندی تایمر کانتر 1 به عنوان مولد موج PWM

    پیکربندی تایمر کانتر 1 به عنوان مولد موج PWM

    PWM یا همان مدولاسیون عرض پالس یکی دیگر از امکانات تایمر کانتر 1 میآ‌باشد که کاربرد وسیعی در کنترل دور موتورهای DC دارد.
    پیکربندی PWM
    Config PWM

    شکل کلی دستور:
    ConfigTIMER=PWM,PWM=8|9|10,Prescale=1|8,….,
    COMPARE A|B=CLEAR UP|CLEAR DOWN_|DISCONNECT


    تایمر کانتر 1 دارای دو خروجی PWMبا نام هایOC1A و OC1Bمی باشد.دو رجیستر برای قرارگیری مقادیر PWM خروجی با نامآ‌هایPWM1A و PWM1B وجود دارد که میآ‌توان در آنآ‌ها نوشت و یا آنآ‌ها را خواند.
    PWM=8|9|10:برای پیکربندی PWM به صورت مد 8، 9 و 10 بیت میآ‌باشد.
    Prescale: همانند دو مد تایمر و کانتر برای تنظیم فرکانس موج استفاده میآ‌شود.برای تنظیم فرکانس موج در مدهای مختلف از فرمولات زیر استفاده میآ‌کنیم:
    PWM=8bit Fpwm= فرکانس کار میکرو / (256*PRESCALE)
    PWM=9bit Fpwm= فرکانس کار میکرو / (512*PRESCALE)
    PWM=10bit Fpwm= فرکانس کار میکرو / (1024*PRESCALE)

    COMPARE A|B PWM:این گزینهآ‌ها نوع تغییرات سیگنال PWM را مشخص میآ‌کنند که این تغییرات به شرح زیر است:
    CLEAR UP: موج PWM از سطح یک شروع میآ‌شود.
    CLEAR DOWN: موج PWM از سطح صفر شروع میآ‌شود.
    DISCONNECT: در این حالت خروجی PWM قطع میآ‌شود.

    نکته: در حالت کلی اگر از CLEAR UP استفاده کنید هرچه مقدار عدد داده شده به رجیستر کمتر باشد سرعت بیشتر است و در حالت CLEAR DOWN برعکس.
    فعال سازی PWM
    START

    توسط دستورات زیر PWM آماده تولید پالس میآ‌شود:
    Enable TIMER1
    Start TIMER1

    خواندن و نوشتن رجیسترهای PWM
    Var=PWM1A

    توسط دستورات زیر میآ‌توان مقادیر PWM را خواند و یا در آن نوشت.در حالت PWM=8 جنس Varمیآ‌تواند از جنس Byte باشد اما در حالتآ‌هایPWM=9|10 جنس متغیر باید Word باشد.

    PWM1A|B = Var
    Var = PWM1A|B

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    مثال اول : راه اندازی موتور DC با حداکثر سرعت
    http://vip.eca.ir/sharing/uploads/13440055421.rar
    مثال دوم : کنترل دور موتور توسط کلید
    http://vip.eca.ir/sharing/uploads/13440055861.rar
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #17
      راه اندازی LCDهای گرافیکی سری SED

      راه اندازی LCDهای گرافیکی سری SED

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


      شرح پایه های یک نمونه موجود در بازار:


      نحوه اتصال پایهآ‌ها برای تنظیم کنتراست:


      در پیکربندی LCDهای گرافیکی باید به چهار نکته دقت کرد:
      • معرفی فونت و کتابخانه لازم جهت کار با LCD
      • تعیین سایز LCD
      • Dataport:تعیین پورتی از میکروکنترلر برای اتصال به پایه¬های Db0 الی Db7
      • Controlport: تعیین پورتی از میکروکنترلر برای اتصال به پایه¬های کنترلی میکروکنترلر شامل:CS1,CS2,E, RST, RS, R/W.


      دستورات مربوط به پیکربندی و کار با LCD های گرافیکی
      فراخوانی کتابخانه
      $LIB

      توسط این دستور کتابخانه مورد نیاز با توجه به LCD فراخوانی میآ‌شود.مثلا در اینجا LCD مورد استفاده ما سری SED با چیپ Ks108میآ‌باشد.$lib "glcdKS108.LBX"
      فراخوانی فونت
      $Include

      فراخوانی فونت مورد استفاده:
      $include "font8x8.font"

      نکته:بایستی فونت مورد نظر را از مسیر نصب برنامه بسکام (C:\Program Files\MCS Electronics\BASCOM-AVR\Samples) پیدا کرده و در مسیر ذخیره فایل برنامه خودکپی کنید و سپس آن را در برنامه فراخوانی کنید در غیر این صورت در هنگام کامپایل برنامه خطایی مبتنی بر ناشناس بودن قسمت فونت ظاهر میآ‌شود.
      پیکربندی پایه های LCD
      Config GRAPHLCD

      شکل کلی دستور:
      Config Graphlcd = 128 * 64sed , Dataport = PortX , Controlport = PortX , Ce = 0 , Ce2 = 1 , Cd = 2 , Rd = 3 , Enable = 4,Reset = 5

      تعیین سایز LCD، تعیین Dataport، تعیین Controlport و نحوه اتصال پایهآ‌ها.
      Ce:همان پایه CS1 است.
      Ce2:همان پایه CS2 است.
      Cd:همان پایه RS است.
      Rd:همان پایه RW است.

      نکته:قبل از نمایش متن مورد نظر بایستی فونت مربوطه را Set کنید:Setfont Font8x8
      پاک کردن صفحه نمایش
      CLS

      این دستور برای پاک کردن صفحه مورد استفاده قرار میآ‌گیرد که به سه صورت کاربرد دارد:
      • CLS:پاک کردن کل صفحه نمایش.
      • CLS Text:پاک کردن متون روی صفحه نمایش.
      • CLS Graph:پاک کردن اشکال گرافیکی روی صفحه نمایش که همیشه قبل از نمایش لازم است.

      نمایش متغیر و رشته کاراکتر ثابت
      LCDAT

      برای نمایش مقدار یک متغیر یا یک رشته کاراکتر ثابت در مکان دلخواه مورد استفاده قرار میآ‌گیرد که شکل کلی آن به صورت زیر است:
      Lcdat x , y , var , inv

      X = سطر مورد نظر که میآ‌تواند اعداد 1 الی 8 باشد.
      Y = ستون مورد نظر که میآ‌تواند 0 تا 127 باشد.
      Var = متغیری که مقدار آن نمایش داده میآ‌شود.برای نمایش رشته ثابت باید آن را دربین جفت کتیشن قرار داد.
      Inv = اگر مقدار آن صفر باشد متن سیاه و در صورتی که 1 باشد متن سفید نمایش داده میآ‌شود.

      روشن یا خاموش کردن پیکسل
      PSET

      روشن یا خاموش کردن یک پیکسل در مختصات تعیین شده.
      شکل کلی دستور:
      Pset x , y , value

      X,Y = مختصات نقطه مورد نظر.
      Value = وقتی 0 باشد پیکسل مورد نظر خاموش و وقتی 1 باشد پیکسل مورد نظرروشن می شود.

      رسم خط
      LINE

      توسط این دستور میآ‌توان در صفحه نمایش با مختصات تعیین شده خط راست رسم کرد.
      شکل کلی دستور:
      Line ( X0 , Y0 ) – ( X1 , Y1 ) , Color

      (X0 , Y0):مختصات نقطه شروع.
      (X1 , Y ):مختصات نقطه انتها.
      Color: رنگ خط است و اگر 0 باشد خط ساده و اگر 1 باشد خط با رنگ معکوس نسبت به زمینه رسم میآ‌شود.
      رسم دایره
      CIRCLE

      رسم دایره در صفحه نمایش با مشخصات تعیین شده.
      شکل کلی دستور:
      Circle ( X0 , Y0 ) , Radius ,Color

      (X0 , Y0):مختصات مرکز دایره.
      Radius:شعاع دایره.
      Color:رنگ دایره است و اگر 0 باشد دایره ساده و اگر 1 باشد دایره با رنگ معکوس نسبت به زمینه رسم میآ‌شود.

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      مثال اول : چاپ رشته بر روی نمایشگر
      http://vip.eca.ir/sharing/uploads/13441648541.rar
      مثال دوم : چاپ رشته در حالت Invert
      http://vip.eca.ir/sharing/uploads/13441648791.rar
      مثال سوم : رسم دایره های متحدالمرکز
      http://vip.eca.ir/sharing/uploads/13441649531.rar
      چرا ناراحتی پاتریک!
      + امروز ی بچه دیدم سرچهارراه گل میفروخت
      - از دیدنش ناراحت شدی؟
      + نه
      پس چی ناراحتت کرده
      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
      ------------------------------------------------------------------------------------------------------
      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
      ------------------------------------------------------------------------------------------------------
      محصولات

      دیدگاه


        #18
        نمایش تصویر بر روی LCD های گرافیکی

        نمایش تصویر بر روی LCD های گرافیکی

        برای این کار ابتدا باید عکس مورد نظر را به اندازه LCD مورد استفاده در آورده و سپس آن را با پسوند BMP یا DIP ذخیره کنیم.سپس در برنامه بسکام به مسیر زیر رفته و تنظیمات زیر را انجام میآ‌دهیم:


        1- LCD Type:تعیین سایز LCD مورد استفاده.
        2- Font:اندازه فونت که برای LCD هایSED 8*8 انتخاب میآ‌شود.
        3- فعال کردن گزینه Sed Series.

        پس از انجام این تنظیمات تصویر مورد نظر را توسط دکمه Load فراخوانی میآ‌کنیم و سپس با زدن دکمه Save تصویر را در آدرس برنامه خود با پسوند BGF ذخیره میآ‌کنیم.

        دستورات کامپایلر برای نمایش تصویر

        نمایش تصویر
        SHOWPIC

        توسط این دستور تصویر ذخیره شده با پسوند BGF آماده نمایش میآ‌شود.
        شکل کلی دستور:
        Showpic x , y , Lable , inv

        Xو Y:مختصات نقطه شروع رسم.
        Lable:برچسب قسمت فراخوانی تصویر مورد نظر.
        Inv:0 جهت نمایش ساده و 1 جهت نمایش به صورت Invert شده.

        نکات :
        * در صورت استفاده از دستور CLS تصویر مورد نظر به سرعت از روی صفحه نمایش پاک میآ‌شود اما اگر بخواهیم پاک شدن تصویر همراه با افکتآ‌های زیبا باشد میآ‌توان از دستورات Circle و Line همراه با حلقه ForNext افکتآ‌های زیبایی را ایجاد کرد.
        * در موقع کار با LCD ها اگر تصویر شما از وسط دو نیم شده، نمایش داده شود یا 180 درجه اختلاف داشته باشد در این صورت پایه¬های CS1 و CS2 را معکوس متصل کردهآ‌اید.
        * پایهآ‌یRESET در کامپایلر بسکام معرفی میآ‌شود ولی در اکثر موارد مستقیم به Vcc اتصال پیدا میآ‌کند.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------
        مثال اول : نمایش یک تصویر بر روی نمایشگر
        http://vip.eca.ir/sharing/uploads/13442272551.rar
        مثال دوم : نمایش تصویر و پاک کردن آن با افکت
        http://vip.eca.ir/sharing/uploads/13442273141.rar
        مثال سوم : ساخت البوم دیجیتالی
        http://vip.eca.ir/sharing/uploads/13442273341.rar
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه


          #19
          پاسخ : آموزش جامع AVR با نرم افزار Bascom

          با اجازه جناب سوران
          طریقه استفاده از قابلیت OVERLAY در بیسکام
          http://kitboard.com/%D9%85%D8%AB%D8%A7%D9%84-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-overlay-%D8%AF%D8%B1-%D8%A8%DB%8C%D8%B3%DA%A9%D8%A7%D9%85.html
          ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

          وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

          r.babazadeh@yahoo.com

          دیدگاه


            #20
            پاسخ : آموزش جامع AVR با نرم افزار Bascom

            طریقه خواندن شفت انکودر یا روتو پالسر
            http://kitboard.com/%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%D8%B4%D9%81%D8%AA-%D8%A7%D9%86%DA%A9%D9%88%D8%AF%D8%B1-%DB%8C%D8%A7-%D8%B1%D9%88%D8%AA%D9%88-%D9%BE%D8%A7%D9%84%D8%B3%D8%B1.html
            ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

            وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

            r.babazadeh@yahoo.com

            دیدگاه


              #21
              پاسخ : آموزش جامع AVR با نرم افزار Bascom

              [glow=red,2,300]SUB[/glow]

              زیرروال

              زیر روال ها یا سابروتینها به قسمتی از برنامه گفته میشود که یک عمل مشخص را انجام میدهد و میتوان از هر جای برنامه اصلی یا دیگر زیر روالها آنرا صدا کرد
              به طور مثال فکر کنید در یک سیستم کنترل درب برقی تحت شرایط های مختلف از قبیل ورود افراد , خروج افراد , کنترل دستی , کنترل از طریق ریموت و غیره یک فرایند کنترلی در جهت باز و بسته شدن درب انجام شود .
              حال میتوان برای شرایط های ورودی بارها سیستم کنترل درب را بنویسیم که حجم زیادی از میکرو و قت ما را میگیرد و تغییر و دیباگ کردن برنامه را سخت میکند یا اینکه یک بار نوشته و در صورت نیاز از هر جای برنامه میکرو آنرا صدا کنیم


              [(...,Sub name [(var1


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

              Var1 :
              نام یک پارامتر
              میتوان به یک زیر روال متغییر ارسال کرد یا از آن دریافت کرد
              از این متغییر های ارسالی یا دریافتی درون زیر روال برای محاسبات و غیره استفاده میشود

              استفاده از متغییر یا پارامتر در زمان استفاده از زیر روال دلخواه است

              در آخر هر زیرروال باید آنرا با End sub به پایان رساند .
              شما باید هر زیرروال را قبل از استفاده تعریف کنید .

              مثال :

              Dim a As Byte, b1 As Byte, c As Byte
              (Declare Sub Test(a As Byte
              a = 1 : b1 = 2: c = 3

              Print a ; b1 ; c

              (Call Test(b1
              Print a ;b1 ; c
              End


              (Sub Test(a as byte
              Print a ; b1 ; c
              End Sub

              ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

              وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

              r.babazadeh@yahoo.com

              دیدگاه


                #22
                پاسخ : آموزش جامع AVR با نرم افزار Bascom


                Declare sub

                از این دستور برای تعریف یک زیر روال استفاده می شود


                [(Declare sub test[([by val / by ref] var as type

                تعریف یک زیرروال

                test :
                نام زیرروال

                Var :
                نام یک یا چند متغییر

                Single , long , integer , word , byte یا string Type :
                نوع متغییر و حاصل .


                By Ref :
                آدرس متغییر را انتقال می دهد و هر تغییر بر روی آن مستقیما" بروی متغییر اعمال می شود .

                By Val :
                کپی متغییر را انتقال می دهد ، بدین صورت که یک کپی از محتوای متغییر می گیرد و آنرا ارسال می کند .

                وقتی By Ref یا By Val تعیین نشده باشد ، آدرس متغییر به صورت By Reference درنظر گرفته می شود .

                باید هر زیرروال را قبل از نوشتن یا صدا کردن آن تعریف کرد .

                در زیرروال برخلاف تابع مقدار برگشتی نداریم به همین دلیل در آخر آن مانند تایع Type استفاده نمی شود .


                تذکر : اگر بخواهیم یک عدد ثابت یا یک متغییر که نخواهیم تغییر کند را به زیرروال ارسال کنیم باید حتما" از By Val استفاده کنیم .

                بیت ها را نمی توان به یک زیرروال یا تابع فرستاد.

                برای صدا کردن زیرروال حتما" نباید از Call و Go Ssub استفاده کرد .

                برای خروج از یک زیر روال باید انرا با End sub به پایان برسانید .

                میتوان یک زیر روال را بدون ارگومان یا متغییر ارسالی استفاده کرد SUB TEST و یا بهمراه ارگومان ( SUB TEST(A,B


                مثال :




                (Declare sub test (b1 as byte , by val B2 as byt



                در مثال بالا اگر مقدار B2 تغییر پیدا کند مقدار جدید به متغییر منعکس نمی شود ، زیرا این متغییر By val تعریف شده است در این حالت ، یک کپی از محتویات متغییر به زیرروال ارسال می شود. ولی با تغییر B1 محتویات متغییر اصلی که به آن اشاره می کند نیز تغییر می کند .

                مثال 2 :



                Dim a As Byte, b1 As Byte, c As Byte

                (Declare Sub Test(a As Byte

                a = 1 : b1 = 2: c = 3

                Print a ; b1 ; c
                Call Test(b1)
                Print a ;b1 ; c
                End
                Sub Test(a as byte)
                Print a ; b1 ; c
                End Sub

                ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

                وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

                r.babazadeh@yahoo.com

                دیدگاه


                  #23
                  شروع کار با Step Motor

                  شروع کار با Step Motor


                  موتورهای پله ای وسایل الکترومکانیکی هستند که پالسآ‌های دیجیتالی را به یک جابجایی یا چرخش معین تبدیل میآ‌کنند.در کاربردهایی مانند راه اندازی دیسک سخت، چاپگرهای مغناطیسی، رباتیک و کنترل دقیق ماشین ابزارها، از موتورهای پله ای استفاده میآ‌شود.

                  انواع موتورهای پله ای
                  موتورهای پله ای در دو نوع پنج سیمه و شش سیمه وجود دارند که متداولآ‌ترین موتورهای پله¬ای شش سیمه میآ‌باشند.این موتورها به موتورهای پله ای چهار فاز یا چهار قطبی نیز معروف هستند.
                  در این موتورها 4 سیم پیچ استاتور وجد دارد که دو به دو با سیم سر وسط جفت شدهآ‌اند.
                  سر یا سرهای وسط با توجه به برنامه راه اندازی موتور به Vcc یا GND وصل میآ‌شوند.

                  تشخیص پایه های موتور پله ای
                  با استفاده از یک اهم متر میآ‌توان پایه های موتور را تشخیص داد، به این استدلال که پایه¬های مشترک هیچ ارتباطی با هم ندارند و اندازه مقاومت الکتریکی بین هر دو سیم پیچ جفت شده، دو برابر مقاومت هر سیم پیچ نسبت به سر وسط است.


                  زاویه پله موتور
                  زاویه پله یکی از مشخصه های مهم موتورهای پله ای است که نشان میآ‌دهد موتور به ازای هر پله چند درجه میآ‌چرخد. زاویه پله در موتورهای مختلف متفاوت میآ‌باشد.
                  تعداد پله های یک دور کامل در هر موتور پله ای از رابطه زیر محاسبه میآ‌شود:
                  زاویه پله / 360 = تعداد پله در دور


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

                  تحریک پله کامل
                  تحریک پله کامل به دو روش صورت میآ‌گیرد:
                  روش اول: تحریک یک سیم پیچ در هر مرحله
                  دراین روش در هر مرحله و به ترتیب پالسی ر ابرای یکی از سیم پیچ هایD,C,B,A میآ‌فرستیم، تکرار این روند به صورت متوالی باعث چرخش مداوم محور موتور (روتور) خواهدشد. درصورت اجرای فرامین جدول زیر از بالا به پایین، چرخش روتور در جهت عقربه های ساعت و در صورت اجرای فرامین جدول از پایین به بالا، چرخش روتور در جهت خلاف عقربه های ساعت خواهد بود.


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


                  تحریک نیم پله
                  برای دستیابی به پله های ریزتر و در نتیجه داشتن دقت بیشتر میآ‌توان با جریان دهی مناسب به موتور، آن را در زوایای کوچکآ‌تری نسبت به پله عادی خود موتور، بچرخانیم. بنابراین با ترکیب دو روش قبلی میآ‌توانیم موتور را در حالت نیم پله تحریک کنیم. به عنوان مثال موتوری که دارای زاویه پله 2 میآ‌باشد در تحریک پله کامل با طی 180 پله یک دور کامل میآ‌زند. اما با تحریک نیم پله با طی 360 پله یک دور کامل خواهد زد. فرامین لازم برای تحریک نیم پله در جدول زیرآمده است.


                  نکته: موتورهای پله ای وسایل پر مصرفی (پرتوان) هستند و میکروکنترلرها مستقیما توانل ازم جهت راه اندازی آنآ‌ها را ندارند. بنابراین باید با استفاده از بافرهای جریان توان لازم جهت راه اندازی موتور پله ای را ایجاد کنیم که بافر جریان میآ‌تواند ترانزیستورهای دارلینگتونTIP 122 یا IC های راه اندازی مانند ULN2803 و L298 باشد.
                  چرا ناراحتی پاتریک!
                  + امروز ی بچه دیدم سرچهارراه گل میفروخت
                  - از دیدنش ناراحت شدی؟
                  + نه
                  پس چی ناراحتت کرده
                  + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                  ------------------------------------------------------------------------------------------------------
                  تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                  ------------------------------------------------------------------------------------------------------
                  محصولات

                  دیدگاه


                    #24
                    شروع کار با Step Motor

                    راه اندازی موتور پله ای با L298
                    IC،L298 در دو مدل تولید میآ‌شود که در اینجا از مدل Moltiwatt استفاده میآ‌شود.این قطعه توانایی جریان دهی تا 4 آمپر و ولتاژ 46 ولت را دارد.تنها عیب این قطعه نبود دیودهای هرزگرد داخل آن است که باید از بیرون به IC متصل شود.

                    نحوه اتصال پایه های 298L:


                    نکته: زمان تاخیری که بین پالسآ‌ها است، نباید خیلی کم باشد چون در غیر این صورت موتور نمیآ‌تواندپالسآ‌ها را دنبال کند و فقط در جای خود میآ‌لرزد.
                    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                    مثال اول: راه اندازی موتور پله ای به روش پله کامل تک فاز
                    http://vip.eca.ir/sharing/uploads/13460515601.rar
                    مثال دوم: راه اندازی موتور پله ای به روش نیم پله
                    http://vip.eca.ir/sharing/uploads/13460516031.rar
                    چرا ناراحتی پاتریک!
                    + امروز ی بچه دیدم سرچهارراه گل میفروخت
                    - از دیدنش ناراحت شدی؟
                    + نه
                    پس چی ناراحتت کرده
                    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                    ------------------------------------------------------------------------------------------------------
                    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                    ------------------------------------------------------------------------------------------------------
                    محصولات

                    دیدگاه


                      #25
                      ارتباط سریال SPI

                      ارتباط سریال SPI

                      ارتباط سریال SPIیک پروتکل ارتباطی سنکرون با سرعت بالا است که میآ‌تواند برای ارتباط میکروکنترولرهای AVR با یکدیگر و یا ارتباط میکروکنترولرAVR با وسیله های دیگری که قابلیت این نوع ارتباط را دارا هستند،به کار برده شود.رجیسترهای مربوط به این نوع ارتباط درتمام AVRها یکسان است.
                      خصوصیات ارتباط سریال SPI
                      • ارسال و دریافت داده همزمان
                      • استفاده از چهار سیم برای انتقال اطلاعات
                      • بیتآ‌های قابل برنامه ریزی برای تنظیم سرعت انتقال دیتا
                      • دارای پرچم وقفه اتمام ارسال
                      • ارتباط به صورتآ‌هایMASTER / SLAVE
                      • بیدار شدن از حالت بیکاری (IDLE)


                      شرح عملکرد ارتباط سریال SPI
                      در ارتباط سریال SPI از چهار پایه SCK،MISO، MOSI، SS استفاده میآ‌شود.پایه SCK در مد Master به عنوان خروجی کلاک ودر مد Slave به عنوان ورودی کلاک مورد استفاده قرار میآ‌گیرد.با نوشتن رجیستر داده SPI در Master، پردازنده شروع به تولید کلاک SPI کرده و دادهآ‌ها از پایه MOSI خارج شده و به پایه MOSI در Slave وارد میآ‌شوند.بعد از انتقال کامل داده توسط Master، کلاک SPI قطع شده و پرچم وقفه پایان ارسال داده (SPIF) یک میآ‌شود و برنامه وقفه اجرا میآ‌شود.دو شیفت رجیستر 8 بیتی درMaster و Slave را میآ‌توان به عنوان یک شیفت رجیستر 16 بیتی در نظر گرفت.به عبارت دیگر زمانی که داده ای از Masterبه Slave ارسال میآ‌شود،میآ‌توان در همان حال در جهت مخالف، داده ای از Slaveبه Master ارسال کرد.بنابراین در طول 8 کلاک SPI، داده های Masterو Slave با هم عوض میآ‌شوند.
                      جهت پایهSS
                      جهت پایهآ‌یSS (خروجی یا ورودی بودن) درمد Master توسط کاربر تعیین میآ‌شود:
                      - اگر پایهSS به صورت ورودی به خروجی تعیین شود از آن به عنوان خروجی عادی استفاده می-شودبه این صورت که هیچ تاثیری در ارتباطSPI ندارد.
                      - اگر پایه SS به صورت ورودی تعیین شود بایستیHighیا 1 باشد تا عملیاتMaster با اطمینان انجام شود.
                      جهت پایهSS (خروجی یا ورودی بودن) درمد Slave توسط کاربر تعیین نمیآ‌شود:
                      در این حالت پایهSS همیشه به عنوان ورودی میآ‌باشد:
                      - زمانیکهLowباشد SPI فعال میآ‌شود (در این حالت پایهMISO خروجی وبقیه پایهآ‌ها ورودی هستند)
                      - زمانی کهHigh باشدSPI بیکار بوده و تمام پایهآ‌ها به صورت ورودی میآ‌باشند.

                      پیکربندی SPI
                      پیکربندی SPIبه دو صورت سخت افزاری ونرم افزاری امکان پذیراست.
                      پیکربندی سخت افزاری
                      دراین نوع پیکربندی، پایه های پیشفرض یعنیSS , SCK , MISO، MOSIبکار برده میآ‌شوند و قابل تغییر نیستند.
                      پیکربندی SPI
                      CONFIG SPI

                      شکل کلی دستور:
                      CONFIG SPI = HARD , INTERRUPT = ON|OFF , DATA ORDER = LSB|MSB , MASTER = YES|NO ,
                      POLARITY = HIGH|LOW , PHASE = 0|1 , CLOCKRATE = 4|16|64|128 , NOSS = 1|0

                      Hard:تعیین نوع پیکربندی سخت افزاری.
                      INTERRUPT = ON|OFF:استفاده یا عدم استفاده از وقفه در SPI.(ON:استفاده از وقفه که در این حالت میکروکنترلر در زمان انتقال داده کارمی کند)
                      DATA ORDER = LSB|MSB:درصورت انتخاب LSB، ابتداLSBداده و سپس MSB آن ارسال میآ‌شود و بالعکس.
                      MASTER = YES|NO:تعیین میکروکنترلر جاری به عنوانMaster یا Slave.
                      POLARITY = HIGH|LOW:Low یا Highکردن پایه کلاک(SCK) درحالت بیکاری میکروکنترلر.
                      PHASE = 0|1:صفردرنظرگرفته میآ‌شود.
                      CLOCKRATE = 4|16|64|128:مشخص کننده فرکانس کلاک ارتباطSPI است.
                      NOSS = 1| 0:زمانی که در حالت Master نخواهیم سیگنال SS ایجاد شود،این پارامتر را 1 میآ‌کنیم.دراین حالت بایستی در برنامه پایه Slave مورد نظر را صفر کنیم.
                      پیکربندی سخت افزاری به شکل ساده تری نیز انجام میآ‌گیرد:
                      Config SPI = Hard, INTERRUPT = OFF , DATA ORDER = MSB , MASTER = YES , POLARITY = HIGH , PHASE = 0 , CLOCKRATE = 4

                      پیکربندی نرم افزاری
                      دراین نوع پیکربندی میآ‌توان هرکدام از پایه¬های میکروکنترلر را به جای پایه های پیشفرض،بکاربرد.
                      CONFIG SPI = SOFT , DIN = PIN , DOUT = PIN , SS = PIN|NONE , CLOCK = PIN
                      SOFT:تعیین نوع پیکربندی نرم افزاری.
                      DIN:نشانگرپایهMISO بوده و PIN نام پایه دلخواهی از میکروکنترلراست.
                      DOUT:نشانگر پایهMOSI بوده و PIN نام پایه دلخواهی ازمیکروکنترلراست.
                      SS:نشانگر پایهSS بوده و PIN نام پایه دلخواهی از میکروکنترلر است.(درصورت تمایل به نداشتن سیگنالSS از حالت NONE استفاده میآ‌شود)
                      CLOCK:نشانگرپایهSCK بوده وPINنام پایه دلخواهی از میکروکنترلراست.
                      چرا ناراحتی پاتریک!
                      + امروز ی بچه دیدم سرچهارراه گل میفروخت
                      - از دیدنش ناراحت شدی؟
                      + نه
                      پس چی ناراحتت کرده
                      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                      ------------------------------------------------------------------------------------------------------
                      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                      ------------------------------------------------------------------------------------------------------
                      محصولات

                      دیدگاه


                        #26
                        شروع کار با درگاه SPI

                        شروع کار با درگاه SPI

                        مقداردهی اولیه پایه هایSPI
                        Spiinit

                        بعد از پیکربندی ارتباط سریال، توسط این دستور پایه های ارتباط سریال برای ارتباط SPIفعال شده و دیگر نمیآ‌توان از آن ها به عنوان I/O استفاده کرد.
                        ارسال داده به درگاه SPI
                        SPIOUT

                        شکل کلی دستور:
                        Spiout Var , Byte

                        توسط این دستور به تعداد Byte، داده Varبه درگاه SPIاطلاعات ارسال میآ‌شود.
                        تعداد Byte به نوع متغیر Var بستگی دارد.مثلا اگر Var از جنس Word باشد آنگاه Byte=2 میآ‌شود.
                        دریافت داده از درگاه SPI
                        SPIIN

                        شکل کلی دستور:
                        Spiin Var , Byte

                        توسط این دستور به تعداد Byte، داده Varاز درگاه SPI اطلاعات دریافت میآ‌شود.
                        تعداد Byte به نوع متغیر Var بستگی دارد.مثلا اگر Var از جنس Word باشد، آنگاه Byte=2 میآ‌شود.

                        ارسال و دریافت همزمان داده
                        SPIMOVE

                        شکل کلی دستور:
                        Var = Spimove (Byte)

                        توسط این دستور متغیرByte به درگاه SPIارسال شده و همزمان داده دریافت شده از درگاه SPI درمتغیرVar قرار میآ‌گیرد.
                        نکته :در این پروتکل فرکانس هر دو میکرو باید عینا برابر باشد در غیر این صورت اطلاعات به درستی تبادل نخواهد شد.
                        -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                        مثال اول: http://vip.eca.ir/sharing/uploads/13466505481.rar
                        مثال دوم: اتصال کیپد به master و نمایش اعداد در slave
                        http://vip.eca.ir/sharing/uploads/13466506551.rar
                        چرا ناراحتی پاتریک!
                        + امروز ی بچه دیدم سرچهارراه گل میفروخت
                        - از دیدنش ناراحت شدی؟
                        + نه
                        پس چی ناراحتت کرده
                        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                        ------------------------------------------------------------------------------------------------------
                        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                        ------------------------------------------------------------------------------------------------------
                        محصولات

                        دیدگاه


                          #27
                          ارتباط سریال I2C

                          ارتباط سریال I2C

                          پروتکل ارتباطی I2C پروتکل ساخته شده توسط شرکت فیلیپس میآ‌باشد که توسط آن و از طریق دو سیم میآ‌توان میان میکروکنترلر و هر وسیله¬ای که دارای چنین قابلیتی باشد ارتباط برقرار کرد.
                          ویژگیآ‌های پروتکل I2C
                          • در این ارتباط از دو سیم برای انتقال دیتا استفاده میآ‌شود.
                          • بالاترین فرکانس کلاک سیستم 400 کیلوهرتز است.
                          • کلاک ارتباط I2C به شدت به کلاک سیستم (فرکانس کریستال اصلی) وابسته است.
                          • حداکثر طول کابل ارتباطی با سیم شیلددار و تقویت کننده ترانزیستوری حداکثر 80 سانتی متر است.

                          در این ارتباط از دو پایه SDA و SCl که یکی به عنوان خط دیتا و دیگری به عنوان کلاک مورد استفاده قرار میآ‌گیرد، استفاده میآ‌شود.همچنین در مسیر ارتباط باید توسط مقاومت دو خط را Pull Up کنید.
                          دستورات مربوط به پیکربندی و کار با ارتباط I2C
                          پیکربندی پایه دیتا
                          config SDA

                          شکل کلی دستور:
                          Config SCL= PinX.Y

                          توسط این دستور پایه SDA میکروکنترلر (در Atmega 32 پین c.1) به عنوان پایه دیتا انتخاب میآ‌شود.
                          پیکربندی پایه کلاک
                          config SCL

                          شکل کلی دستور:
                          Config SDA= PinX.Y

                          توسط این دستور پایه SCL میکروکنترلر (در Atmega 32 پین c.0) به عنوان پایه کلاک انتخاب میآ‌شود.
                          تعیین فرکانس کلاک
                          I2cDelay

                          شکل کلی دستور:
                          Config I2CDELAY = X

                          در این دستور مقدار X که میآ‌تواند بین 1 تا 40 باشد در 10K ضرب شده و به عنوان فرکانس کلاک ارتباط انتخاب میآ‌شود.
                          شروع به کار پروتکل Start
                          توسط این دستور که شکل کلی آن به صورت روبه رو است پروتکل آماده دریافت و یا ارسال داده میآ‌شود.
                          I2cStart

                          همچنین توسط دستور I2cStop میآ‌توان ارتباط پروتکل را قطع کرد.

                          ارسال داده به پروتکل
                          I2cSEND

                          شکل کلی دستور:
                          I2CSEND Slave, var,byte

                          Slave:آدرس گیرنده اطلاعات است که میآ‌تواند یک عدد ثابت یا مقدار یک متغیر باشد.
                          VAR:عدد یا مقدار متغیری که به پروتکل ارسال میآ‌شود.
                          BYTE:تعداد بایت ارسالی مشخص میآ‌شود.(استفاده از این قسمت اختیاری است)

                          این دستور یک فرم خلاصه شده به شکل I2CWBYEVAR را هم دارا میآ‌باشد.

                          دریافت داده از پروتکل
                          I2cReceive

                          شکل کلی دستور:
                          I2CRECEIVESlave, var,b2W,b2R

                          Slave:آدرس فرستنده اطلاعات است که میآ‌تواند یک عدد ثابت یا مقدار یک متغیر باشد.
                          VAR:عدد یا مقدار متغیری که از پروتکل دریافت میآ‌شود.
                          B2W:تعداد بایت نوشته شده.
                          B2R:تعداد بایت دریافتی.

                          این دستور یک فرم خلاصه شده به شکل زیر را هم دارا میآ‌باشد:
                          I2CRBYTE var, ack/nack

                          ACk و NACK:زمانی که بخواهیم بیشتر از یک بایت را از باس بخوانیم از ack و زمانی که بخواهیم آخرین بایت را از باس بخوانیم از nack استفاده میآ‌کنیم.
                          --------------------------------------------------------------------------------------------------------------------------------------------------------------
                          مثال: راه اندازی تراشه ds1307 و ساخت ساعت با آن
                          http://vip.eca.ir/sharing/uploads/13468280391.rar
                          چرا ناراحتی پاتریک!
                          + امروز ی بچه دیدم سرچهارراه گل میفروخت
                          - از دیدنش ناراحت شدی؟
                          + نه
                          پس چی ناراحتت کرده
                          + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                          ------------------------------------------------------------------------------------------------------
                          تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                          ------------------------------------------------------------------------------------------------------
                          محصولات

                          دیدگاه


                            #28
                            پاسخ : آموزش جامع AVR با نرم افزار Bascom

                            نوشته اصلی توسط سوران آراسته
                            ارتباط سریال I2C

                            پروتکل ارتباطی I2C پروتکل ساخته شده توسط شرکت فیلیپس میآ‌باشد که توسط آن و از طریق دو سیم میآ‌توان میان میکروکنترلر و هر وسیله¬ای که دارای چنین قابلیتی باشد ارتباط برقرار کرد.
                            ویژگیآ‌های پروتکل I2C
                            • در این ارتباط از دو سیم برای انتقال دیتا استفاده میآ‌شود.
                            • بالاترین فرکانس کلاک سیستم 400 کیلوهرتز است.
                            • کلاک ارتباط I2C به شدت به کلاک سیستم (فرکانس کریستال اصلی) وابسته است.
                            • حداکثر طول کابل ارتباطی با سیم شیلددار و تقویت کننده ترانزیستوری حداکثر 80 سانتی متر است.

                            در این ارتباط از دو پایه SDA و SCl که یکی به عنوان خط دیتا و دیگری به عنوان کلاک مورد استفاده قرار میآ‌گیرد، استفاده میآ‌شود.همچنین در مسیر ارتباط باید توسط مقاومت دو خط را Pull Up کنید.
                            دستورات مربوط به پیکربندی و کار با ارتباط I2C
                            پیکربندی پایه دیتا
                            config SDA

                            شکل کلی دستور:
                            Config SCL= PinX.Y

                            توسط این دستور پایه SDA میکروکنترلر (در Atmega 32 پین c.1) به عنوان پایه دیتا انتخاب میآ‌شود.
                            پیکربندی پایه کلاک
                            config SCL

                            شکل کلی دستور:
                            Config SDA= PinX.Y

                            توسط این دستور پایه SCL میکروکنترلر (در Atmega 32 پین c.0) به عنوان پایه کلاک انتخاب میآ‌شود.
                            تعیین فرکانس کلاک
                            I2cDelay

                            شکل کلی دستور:
                            Config I2CDELAY = X

                            در این دستور مقدار X که میآ‌تواند بین 1 تا 40 باشد در 10K ضرب شده و به عنوان فرکانس کلاک ارتباط انتخاب میآ‌شود.
                            شروع به کار پروتکل Start
                            توسط این دستور که شکل کلی آن به صورت روبه رو است پروتکل آماده دریافت و یا ارسال داده میآ‌شود.
                            I2cStart

                            همچنین توسط دستور I2cStop میآ‌توان ارتباط پروتکل را قطع کرد.

                            ارسال داده به پروتکل
                            I2cSEND

                            شکل کلی دستور:
                            I2CSEND Slave, var,byte

                            Slave:آدرس گیرنده اطلاعات است که میآ‌تواند یک عدد ثابت یا مقدار یک متغیر باشد.
                            VAR:عدد یا مقدار متغیری که به پروتکل ارسال میآ‌شود.
                            BYTE:تعداد بایت ارسالی مشخص میآ‌شود.(استفاده از این قسمت اختیاری است)

                            این دستور یک فرم خلاصه شده به شکل I2CWBYEVAR را هم دارا میآ‌باشد.

                            دریافت داده از پروتکل
                            I2cReceive

                            شکل کلی دستور:
                            I2CRECEIVESlave, var,b2W,b2R

                            Slave:آدرس فرستنده اطلاعات است که میآ‌تواند یک عدد ثابت یا مقدار یک متغیر باشد.
                            VAR:عدد یا مقدار متغیری که از پروتکل دریافت میآ‌شود.
                            B2W:تعداد بایت نوشته شده.
                            B2R:تعداد بایت دریافتی.

                            این دستور یک فرم خلاصه شده به شکل زیر را هم دارا میآ‌باشد:
                            I2CRBYTE var, ack/nack

                            ACk و NACK:زمانی که بخواهیم بیشتر از یک بایت را از باس بخوانیم از ack و زمانی که بخواهیم آخرین بایت را از باس بخوانیم از nack استفاده میآ‌کنیم.
                            --------------------------------------------------------------------------------------------------------------------------------------------------------------
                            مثال: راه اندازی تراشه ds1307 و ساخت ساعت با آن
                            http://vip.eca.ir/sharing/uploads/13468280391.rar
                            سلام سوران جان ، داداشم این فایل فقط بسکام داره ، اگه شبیه ساز پروتدوس هم داشته باشه ممنونت میشم ، من خیلی با این I2C برای ارتباط 2 میکرو و نیز ساخت ساعت با DS1307 تو شبیه ساز و هم رو برد برد بستم اما جواب نمیگیرم /.
                            با سپاس
                            وقتي گريبان عدم با دست خلقت مي دريد/وقتي ابد چشم تو را پيش از ازل مي آفريد/وقتي زمين ناز تو را در آسمانها مي کشيد/وقتي عطش طعم تو را با اشکهايم مي چشيد/من عاشق چشمت شدم ، نه عقل بود و نه دلي/چيزي نمي دانم از اين ديوانگي و عاقلي/يک آن شد اين عاشق شدن ، دنيا همان يک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتي که من عاشق شدم شيطان به نامم سجده کرد/آدم زميني تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشي و نه گلي/چيزي نمي دانم از اين ديوانگي و عاقلي/.

                            دیدگاه


                              #29
                              پاسخ : آموزش جامع AVR با نرم افزار Bascom

                              سلام
                              این هم از شماتیک این قسمت:
                              http://vip.eca.ir/sharing/uploads/13468731061.rar
                              به این لینک مراجعه کنید مطمئنا می تونه کمکتون کنه:
                              http://www.eca.ir/forum2/index.php?topic=38492.0
                              انشالا به زودی تاپیکی ایجاد میشه تا دوستان سوالات خود را در ارتباط با کامپایلر بسکام اونجا مطرح کنن.
                              پیروز و موفق باشید
                              چرا ناراحتی پاتریک!
                              + امروز ی بچه دیدم سرچهارراه گل میفروخت
                              - از دیدنش ناراحت شدی؟
                              + نه
                              پس چی ناراحتت کرده
                              + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                              ------------------------------------------------------------------------------------------------------
                              تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                              ------------------------------------------------------------------------------------------------------
                              محصولات

                              دیدگاه


                                #30
                                اتصال کیبرد کامپیوتر به میکروکنترلر

                                اتصال کیبرد کامپیوتر به میکروکنترلر

                                یکی دیگر از امکانات جالب میکروکنترلرهای AVR پشتیبانی از PS2میآ‌باشد که توسط آن میآ‌توان کیبرد کامپیوتر را به میکرو متصل کرده و از آن در پروژه های خود بهره برد.
                                بر روی برد آموزشی هم یک سوکت PS2، 6 پین مادگی برای اتصال راحت کیبرد قرار داده شده است.

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

                                شکل کلی دستور:
                                CONFIG KEYBOARD = PINX.y , DATA = PINX.y , KEYDATA = table

                                توسط دستور بالا پایه های کلاک و دیتا بین میکرو و کیبرد مشخص میآ‌شود و در قسمت table نام جدول کدهای اسکی قرار داده میآ‌شود.
                                خواندن کیبرد
                                GetatKBD

                                توسط دستور زیر عدد تولید شده توسط کیبرد در متغیر VAR قرار میآ‌گیرد.
                                var = GETATKBD()

                                VAR:نام متغیر که میآ‌تواند بایت و یا رشته باشد.
                                نکته:دستور GETATKBD برنامه را تا زمانی که کلیدی فشار داده نشود در همان خط متوقف میآ‌کند.برای حل این مسئله بهتر است از وقفه¬های خارجی در برنامه نویسی استفاده کنید.
                                --------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                مثال: http://vip.eca.ir/sharing/uploads/13471741321.rar
                                چرا ناراحتی پاتریک!
                                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                                - از دیدنش ناراحت شدی؟
                                + نه
                                پس چی ناراحتت کرده
                                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                                ------------------------------------------------------------------------------------------------------
                                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                                ------------------------------------------------------------------------------------------------------
                                محصولات

                                دیدگاه

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