اطلاعیه

Collapse
No announcement yet.

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

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

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

    پیکربندی پروتکل ارتباطی UART

    این پروتکل یک ارتباط سریال قابل برنامه ریزی، در دو حالت نرم افزاری و سخت افزاری میآ‌باشد که بیشتر برای ارتباط میکروکنترلرها با کامپیوتر طراحی شده است. نکته ای که حائز اهمیت است سطح ولتاژ در منطق TTLمیآ‌باشد که بین 0 تا 5 ولت قرار دارد ولی در پروتکل RS-232 بین 15- تا 15+ قرار دارد که این تبدیل سطح ولتاژ توسط تراشهآ‌هایی مانند MAX232 و یا MAX235 انجام میآ‌گیرد.

    پیکربندی UART سخت افزاری
    در این حالت از دو پایه RXD و TXD استفاده میآ‌شود.قبل از پیکربندی این ارتباط باید سرعت و نرخ ارسال دیتا بین سیستمآ‌ها برابر باشد تا دیتاهای صحیح بین آنآ‌ها تبادل شود.این نرخ، باود (BAUD) نام دارد که تعیین کننده سرعت بین دو سیستم است.
    تعیین نرخ باود
    $BAUD=X

    این نرخ باید در ابتدای برنامه تعیین شود که X مقادیر استانداردی مانند 115200، 57600، ...، 1200 میآ‌باشد.
    پیکربندی UART
    Config UART

    Config SERIALOUT=BUFFERED,SIZE= X

    توسط این دستور پروتکل UART برای ارسال دیتا به صورت سخت افزاری پیکربندی شده است.در قسمت SIZE به میزان X بایت از حافظهSRAM اشغال میآ‌شود تا داده های ارسالی از طریق این بافر به خروجی ارسال شود.
    ارسال دیتا به پورت
    Print

    توسط این دستور میآ‌توان داده مورد نظر را اعم از رشته، عدد و یا هردو را به درگاه ارسال کرد.
    Print Var || Print " …." || Print " ….." ; Var

    ارسال دیتا به صورت باینری
    Printbin

    توسط این دستور متغیرVarبه باینری تبدیل شده، سپس به پورت سریال ارسال میآ‌شود.
    Printbin Var

    پیکربندی UART برای دریافت دیتا
    Config UART

    Config SERIALIN=BUFFERED,SIZE= X

    توسط این دستور پروتکل UART برای دریافت دیتا به صورت سخت افزاری پیکربندی شده است.در قسمت SIZE به میزان X بایت از حافظهSRAM اشغال میآ‌شود تا داده های دریافتی از طریق این بافر به خروجی ارسال شود.
    دریافت دیتا از پورت
    Waitkey

    توسط این دستور میآ‌توان داده رشته یا عددی را از پورت دریافت کرد.این دستور تا زمانی که کاراکتری را دریافت نکند، برنامه را در همان خط متوقف میآ‌کند.شکل کلی دستور به صورت زیرمیآ‌باشد:
    Var = Waitkey()

    دریافت داده از پورت
    Inkey

    این دستور برخلاف دستور قبل برنامه را متوقف نمیآ‌کند و با دریافت اولین کاراکتر آن را به کد اسکی تبدیل کرده و در متغیر Varمیآ‌ریزد.اگر داده¬ای برای دریافت وجود نداشته باشد مقدار Var برابر صفر است.
    شکل کلی دستور:
    Var = INKEY()

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

    دیدگاه


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

      سلام بر همه دوستان عزیز
      در راستای اموزش های قرار داده شده، در فایل زیر یک PDF گذاشتم که امیدوارم خوب باشه. البته این نوشته تمام مطالب گفته شده در این تاپیک رو شامل نمیشه ولی می تونه مرجع خوبی برای تازه کارها باشه!!


      http://eca.ir/sharing/uploads/13486712251.rar

      موفق باشید
      چرا ناراحتی پاتریک!
      + امروز ی بچه دیدم سرچهارراه گل میفروخت
      - از دیدنش ناراحت شدی؟
      + نه
      پس چی ناراحتت کرده
      + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
      ------------------------------------------------------------------------------------------------------
      تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
      ------------------------------------------------------------------------------------------------------
      محصولات

      دیدگاه


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

        سلام دوستان
        به امید حق یه سری جدید از اموزش بسکام رو اماده کردم که انشاالله در اوایل هفته آینده براتون قرار میدم.
        بحث هایی که خواهد شد شامل:
        واحد مقایسه کننده آنالوگ
        راه اندازی EEpromهای جانبی سری AT24cxx
        راه اندازی mmc
        راه اندازی کیپد 3*4 و اموزش نوشتن تابع
        اگه بتونم یه سورس هم برای اترنت اماده می کنم(در صورت داشتن وقت کافی)

        از دوستان عزیزم خواهش می کنم به هیچ عنوان در این قسمت سوالات و یا انتقادات خودشون رو مطرح نکن.
        از کسانی که ایرادات موجود در آموزش رو به بنده pm می کنن پیشاپیش ممنونم.
        موفق باشید
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه


          #34
          مقایسه کننده آنالوگ

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


          مقایسه کننده آنالوگ
          یکی دیگر از امکانات جالب موجود در میکروکنترلرهای AVR واحد مقایسه آنالوگ می باشد که با استفاده از آن می توان دو موج آنالوگ را با هم مقایسه کرد. عملکرد این قسمت مشابه عملکرد پ امپ در مد مقایسه کننده می باشد و در صورتی که ولتاژ پایه AIN0 از AIN1 بیشتر باشد، خروجی مقایسه کننده ACO یک می شود.
          سوالی که شاید به ذهن برخی از افراد خطور کنه این است که با وجود مبدل آنالوگ به دیجیتال دیگر چه نیازی به این بخش می باشد؟
          در جواب باید گفت سرعت عملکرد این بخش در مقایسه با مبدل انالوگ به دیجیتال بسیار بیشتر بوده و همین سرعت باعث احساس نیاز به چنین بخشی را فراهم کرده است.
          پیکربندی واحد مقایسه آنالوگ در بسکام
          فرم کلی دستور :
          CONFIG ACI = ON|OFF, COMPARE = ON|OFF, TRIGGER=TOGGLE|RISING|FALLING
          ON|OFF : روشن و خاموش کردن مقایسه کننده آنالوگ.
          COMPARE = ON|OFF : با انتخاب ON در این قسمت، خروجی مقایسه کننده به ورودی مد Capture تایمر کانتر متصل می شود.
          TRIGGER=TOGGLE|RISING|FALLING : با استفاده از این قسمت می توان مشخص کرد در چه حالتی وقفه مقایسه کننده فعال شود.
          ----------------------------------------------------------------------------------------------------------------------------------

          مثال:
          برنامه ای بنویسید که با استفاده از واحد مقایسه کننده آنالوگ دو ولتاژ آنالوگ را با هم مقایسه کرده و در صورت افزایش ولتاژ پایه مثبت، یک LED از پورت A را روشن کند؟
          http://eca.ir/sharing/uploads/13687334601.rar

          تنظیمات اعمال شده روی برد آموزشی:
          جامپر تغذیه را بر روی 5 ولت قرار داده و همچنین جامچر ADC/AIN0 را در حالت AIN0 قرار دهید و در نهایت جامپر AIN1 را جهت اعمال ولتاژ 3.3 ولت به عنوان رفرنس متصل کنید.
          چرا ناراحتی پاتریک!
          + امروز ی بچه دیدم سرچهارراه گل میفروخت
          - از دیدنش ناراحت شدی؟
          + نه
          پس چی ناراحتت کرده
          + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
          ------------------------------------------------------------------------------------------------------
          تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
          ------------------------------------------------------------------------------------------------------
          محصولات

          دیدگاه


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

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

            چرا ناراحتی پاتریک!
            + امروز ی بچه دیدم سرچهارراه گل میفروخت
            - از دیدنش ناراحت شدی؟
            + نه
            پس چی ناراحتت کرده
            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
            ------------------------------------------------------------------------------------------------------
            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
            ------------------------------------------------------------------------------------------------------
            محصولات

            دیدگاه


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

              با تشکر از آقای آراسته عزیز فایل ایشان در تاپیک جمع آوری مقالات قرار داده شد:
              http://www.eca.ir/forum2/index.php?topic=44175.0
              It's nice to be important but it's important to be nice!

              از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

              دیدگاه


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

                سلام خسته نباشید
                من یه ولتاژ صفر تا پنج ولت دیسی که از پ امپ گرفتما میخوام به avr بدم
                میخوام به avr یه برنامه ای بدم زمانی که ولتاژ ورودی کمتر از 20mv شد یکی از پایه ها روشن و زمانی که کمتر شد یکی دیگه از پایه ها روشن بشه
                این برنامش چی میشه با زبان بسکام یا هر زبان دیگه
                ممنون میشم اگه زود تر جوابما بدیدم ممنون

                دیدگاه


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

                  نوشته اصلی توسط r.babazadeh
                  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

                  سلام.مرسی از اموزشتون
                  ولی من کتاب اقای کاهه را خوندم.help خود بسکام هم مطالعه کردم.ولی هنوز درکورد زیربرنامه ها هیچی متوجه نشدم .میشه با مثال برام توضیح بدین.مرسی

                  دیدگاه


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

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

                    دیدگاه


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

                      سلام
                      ممنون بابت آموزشها
                      فایل پست 34 انگار مشکل داره دانلود نمیشه

                      دیدگاه


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

                        نوشته اصلی توسط mehdi2015
                        سلام
                        ممنون بابت آموزشها
                        فایل پست 34 انگار مشکل داره دانلود نمیشه
                        سلام
                        مشکلی نداره
                        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                        معرفی نرم افزار Codewizard PWM
                        با من بیشتر آشنا شوید

                        دیدگاه


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

                          سلام

                          کسی میدونه این ارور چی میخاد بگه ؟ :cry2:

                          http://tanvaravan.persiangig.com/other/ER.jpg

                          کمکم کنید
                          الـــهی , گـــاهـــی , نــگـــــاهی

                          دیدگاه


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

                            نوشته اصلی توسط ilion
                            سلام

                            کسی میدونه این ارور چی میخاد بگه ؟ :cry2:

                            http://tanvaravan.persiangig.com/other/ER.jpg

                            کمکم کنید
                            مهدی جان سلام
                            برنامه رو بگذار
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              #44
                              پاسخ : ارتباط سریال I2C

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

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

                              پیکربندی پایه دیتا
                              config SDA

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

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

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

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

                              ببخشید؛ مثلا در ATmega32، اگر به جز دو پین c.1 و c.0 ، پینهای دیگری از میکرو را به عنوان SDA و SCL پیکره بندی و تعریف کنیم، اشکال خاصی پیش می آید؟ آیا این دو پین که توسط کارخانه اختصاصی سازی شده اند، مزیت ویژه ای ایجاد می کنند(مخصوصا جائی که چند المان جانبی روی باس I2C داریم)؟

                              دیدگاه


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

                                نوشته اصلی توسط مهندس نوآور
                                ببخشید؛ مثلا در ATmega32، اگر به جز دو پین c.1 و c.0 ، پینهای دیگری از میکرو را به عنوان SDA و SCL پیکره بندی و تعریف کنیم، اشکال خاصی پیش می آید؟ آیا این دو پین که توسط کارخانه اختصاصی سازی شده اند، مزیت ویژه ای ایجاد می کنند(مخصوصا جائی که چند المان جانبی روی باس I2C داریم)؟
                                این پین ها پین های سخت افزارین و در مواقعی که می خواین از اینتراپت پروتکل یا یک سری موارد خاص استفاده کنید مجبور به استفاده از اونها خواهید شد. اما پین های نرم افزاری فقط ارسال و دریافت یک سری پالس رو شبیه سازی می کنه و مورد انالیز قرار میده .
                                چرا ناراحتی پاتریک!
                                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                                - از دیدنش ناراحت شدی؟
                                + نه
                                پس چی ناراحتت کرده
                                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                                ------------------------------------------------------------------------------------------------------
                                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                                ------------------------------------------------------------------------------------------------------
                                محصولات

                                دیدگاه

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