دستور EQU. (برابر گرفتن - equate) :
این دستورالعمل برای تعریف یک مقدار ثابت یا یک آدرس معین بکار میرود. دستورالعمل EQU. برای هر واحد داده، فضایی را تخصیص نمیدهد ، ولی عدد ثابتی را به یک داده یا آدرس برچسب پیوند میدهد و در جاهایی که از آن برچسب در برنامه استفاده شده این مقدار ثابت جایگزین برچسب خود میشود. در برنامه زیر از دستورالعمل EQU. برای تعریف یک مقدار ثابت شمارنده استفاده شده ، و سپس این مقدار ثابت بر روی R21 کپی میشود
.EQU COUNT = 0x25
LDI R21, COUNT ;R21 = 0x25
وقتی دستور بالا اجرا شود مقدار R21 برابر 25H میشود مزیت استفاده از EQU. در این است که فرض کنید برنامه نویسی میخواهد یک مقدار را در کل برنامه تغییر دهد برای این کار دو راه وجود دارد یکی اینکه تمام مقادیر را با جستجو در برنامه تک تک تغییر دهد یا اینکه با استفاده از EQU. یک بار فقط عوض کند
#میکروکنترلر #AVR
🆔@computeronic
این دستورالعمل برای تعریف یک مقدار ثابت یا یک آدرس معین بکار میرود. دستورالعمل EQU. برای هر واحد داده، فضایی را تخصیص نمیدهد ، ولی عدد ثابتی را به یک داده یا آدرس برچسب پیوند میدهد و در جاهایی که از آن برچسب در برنامه استفاده شده این مقدار ثابت جایگزین برچسب خود میشود. در برنامه زیر از دستورالعمل EQU. برای تعریف یک مقدار ثابت شمارنده استفاده شده ، و سپس این مقدار ثابت بر روی R21 کپی میشود
.EQU COUNT = 0x25
LDI R21, COUNT ;R21 = 0x25
وقتی دستور بالا اجرا شود مقدار R21 برابر 25H میشود مزیت استفاده از EQU. در این است که فرض کنید برنامه نویسی میخواهد یک مقدار را در کل برنامه تغییر دهد برای این کار دو راه وجود دارد یکی اینکه تمام مقادیر را با جستجو در برنامه تک تک تغییر دهد یا اینکه با استفاده از EQU. یک بار فقط عوض کند
#میکروکنترلر #AVR
🆔@computeronic
دستورالعمل SET.
این دستورالعمل برای تعریف یک مقدار ثابت یا یک آدرس معین بکار میرود. در این حالت دستورالعملهای EQU. و SET. یکسان عمل میکنند . تنها تفاوت موجود این است که مقدار نسبت داده شده توسط دستورالعمل SET. امکان دارد بعدها دوباره مقدار دهی شود.
#میکروکنترلر #AVR
🆔@computeronic
این دستورالعمل برای تعریف یک مقدار ثابت یا یک آدرس معین بکار میرود. در این حالت دستورالعملهای EQU. و SET. یکسان عمل میکنند . تنها تفاوت موجود این است که مقدار نسبت داده شده توسط دستورالعمل SET. امکان دارد بعدها دوباره مقدار دهی شود.
#میکروکنترلر #AVR
🆔@computeronic
دستورالعمل ORG. (نقطه آغاز - origin) :
دستورالعمل ORG. برای نمایش ابتدای آدرس بکار میرود. این دستورالعمل میتواند برای کد و داده هر دو استاده گردد.
دستورالعمل INCLUDE. :
دستوالعمل INCLUDE. به اسمبلر AVR میگوید که محتوای یک فایل را به برنامه ما اضافه کند مانند اضافه کردن کتابخانهها برای استفاده از میکروکنترلر ATMega32 باید دستور زیر را در ابتدای برنامه بنویسید
.INCLUDE "M32DEF.INC"
#میکروکنترلر #AVR
🆔@computeronic
دستورالعمل ORG. برای نمایش ابتدای آدرس بکار میرود. این دستورالعمل میتواند برای کد و داده هر دو استاده گردد.
دستورالعمل INCLUDE. :
دستوالعمل INCLUDE. به اسمبلر AVR میگوید که محتوای یک فایل را به برنامه ما اضافه کند مانند اضافه کردن کتابخانهها برای استفاده از میکروکنترلر ATMega32 باید دستور زیر را در ابتدای برنامه بنویسید
.INCLUDE "M32DEF.INC"
#میکروکنترلر #AVR
🆔@computeronic
قواعد برچسب زدن در اسمبلی :
یک برنامه نویس میتواند برنامه خود را با استفاده از اسامی معنیدار برنامه خود را کاربردی تر و خواناتر کرد. توجه کنید که نام هر برچسب باید یکتا باشد. در زبان اسمبلی اسامی که برای برچسبها بکار میرود از حروف الفبا(کوچک و بزرگ) ارقام صفر تا 9 و کاراکترهای مخصوص مانند علامت سوال (؟) ، نقطه (.) ، علامت اَت (@) ، خط زیرین (_) و علامت دلار ($) تشکیل شدهاند. حرف اول هر برچسب باید یکی از حروف الفبا باشد به عبارت دیگر نمیتواند عدد باشد هر اسمبلر تعدادی کلمات از پیش تعریف شده دارد که به اصطلاح رزرو است مانند ADD , LDI و نمیتوان از این کلمات به عنوان برچسب استفاده نمود.
#میکروکنترلر #AVR
🆔@computeronic
یک برنامه نویس میتواند برنامه خود را با استفاده از اسامی معنیدار برنامه خود را کاربردی تر و خواناتر کرد. توجه کنید که نام هر برچسب باید یکتا باشد. در زبان اسمبلی اسامی که برای برچسبها بکار میرود از حروف الفبا(کوچک و بزرگ) ارقام صفر تا 9 و کاراکترهای مخصوص مانند علامت سوال (؟) ، نقطه (.) ، علامت اَت (@) ، خط زیرین (_) و علامت دلار ($) تشکیل شدهاند. حرف اول هر برچسب باید یکی از حروف الفبا باشد به عبارت دیگر نمیتواند عدد باشد هر اسمبلر تعدادی کلمات از پیش تعریف شده دارد که به اصطلاح رزرو است مانند ADD , LDI و نمیتوان از این کلمات به عنوان برچسب استفاده نمود.
#میکروکنترلر #AVR
🆔@computeronic
ساختار زبان اسمبلی :
یک برنامه زبان اسمبلی از یک سری خطوط حاوی دستورات زبان اسمبلی تشکیل شده است. یک دستور زبان اسمبلی عبارت است از یک کلمه اختصاری که میتواند یک یا چند عملوند اختیاری به دنبال داشته باشند. عملوندها واحدهای دادهای هستند که پردازش میشوند و کلمات اختصاری فرمانهایی هستند که به CPU میگویند با دادهها چه کند.
#میکروکنترلر #AVR
🆔@computeronic
یک برنامه زبان اسمبلی از یک سری خطوط حاوی دستورات زبان اسمبلی تشکیل شده است. یک دستور زبان اسمبلی عبارت است از یک کلمه اختصاری که میتواند یک یا چند عملوند اختیاری به دنبال داشته باشند. عملوندها واحدهای دادهای هستند که پردازش میشوند و کلمات اختصاری فرمانهایی هستند که به CPU میگویند با دادهها چه کند.
#میکروکنترلر #AVR
🆔@computeronic
در عکس فوق برنامهای را نوشتهایم از دستوراتی که گفته شد.
1. SRAM loc $300 for SUM
2.START at address 0
3.R16 = 0x25
4.R17 = 0x34
5.R18 = 0x31
6.add R17 to R16
7.add R18 to R16
8.R17 = 0x0B
9.add R17 to R16
10.save the SUM in loc $300
11.stay haere forever
#میکروکنترلر #AVR
🆔 @computeronic
1. SRAM loc $300 for SUM
2.START at address 0
3.R16 = 0x25
4.R17 = 0x34
5.R18 = 0x31
6.add R17 to R16
7.add R18 to R16
8.R17 = 0x0B
9.add R17 to R16
10.save the SUM in loc $300
11.stay haere forever
#میکروکنترلر #AVR
🆔 @computeronic
اسمبل کردن یک برنامه AVR :
حال که شکل پایه ای یک برنامه زبان اسمبلی را دیدیم، به ساختن یک برنامه میپردازیم.
مراحل ساخت یک برنامه امبلی قابل اجرا بطور اجمالی در زیر بیان شده است :
۱. ابتدا از یک ویرایشگر متن برای نوشتن یک برنامه شبیه برنامهای که در پست قبل ساختیم.
میکرو کنترل های AVR از AVR Studio IDE، که دارای ویرایشگر متن، اسمبلر، شبیه ساز و موارد بسیار دیگر در یک بسته نرم افزاری می باشد، استفاده می کنیم. این برنامه یک نرم افزار تولید محصول بسیار عالی است که تمام امکانات تراشه AVR را به صورت رایگان پشتیبانی می کند. ویرایشگرها در پردازش کنندگان متن بسیاری در دسترس هستند که می توان از آنها برای ایجاد یا ویرایش متن اتفاده کرد.
#میکروکنترلر #AVR
🆔@computeronic
حال که شکل پایه ای یک برنامه زبان اسمبلی را دیدیم، به ساختن یک برنامه میپردازیم.
مراحل ساخت یک برنامه امبلی قابل اجرا بطور اجمالی در زیر بیان شده است :
۱. ابتدا از یک ویرایشگر متن برای نوشتن یک برنامه شبیه برنامهای که در پست قبل ساختیم.
میکرو کنترل های AVR از AVR Studio IDE، که دارای ویرایشگر متن، اسمبلر، شبیه ساز و موارد بسیار دیگر در یک بسته نرم افزاری می باشد، استفاده می کنیم. این برنامه یک نرم افزار تولید محصول بسیار عالی است که تمام امکانات تراشه AVR را به صورت رایگان پشتیبانی می کند. ویرایشگرها در پردازش کنندگان متن بسیاری در دسترس هستند که می توان از آنها برای ایجاد یا ویرایش متن اتفاده کرد.
#میکروکنترلر #AVR
🆔@computeronic
مطالبی بیشتر در مورد فایل های asm و obj :
فایل asm فایل منبع ( source file ) نیز نامیده می شود و باید پسوندش " asm " باشد . چنانچه پیش از این نیز ذکر شد ، این فایل توسط یک ویرایشگر متن مانند MS - DOS EDIT یا Notepad در ویندوز ساخته می شود . بسیاری از اسمبلر ها حاوی ویرایشگر متن نیز می باشند . اسمبلر دستورات زبان اسمبلی موجود در فایل asm را به زبان ماشین تبدیل کرده و فایل object ) obj ) می سازد . فایل object به عنوان ورودی یک شبیه ساز نرم افزاری یا شبیه ساز سخت افزاری استفاده می شود . قبل از اسمبل کردن یک برنامه و ایجاد یک برنامه آماده اجرا ، باید مطمئن شویم که کد هیچ خطایی ندارد. AVR studio IDE پیغامهای خطا را در اختیار ما قرار میدهد و تا زمانی که اسمبلر برنامهای را که خطاهای آن رفع نشود اسمبل نمیکند.
#میکروکنترلر #AVR
🆔@computeronic
فایل asm فایل منبع ( source file ) نیز نامیده می شود و باید پسوندش " asm " باشد . چنانچه پیش از این نیز ذکر شد ، این فایل توسط یک ویرایشگر متن مانند MS - DOS EDIT یا Notepad در ویندوز ساخته می شود . بسیاری از اسمبلر ها حاوی ویرایشگر متن نیز می باشند . اسمبلر دستورات زبان اسمبلی موجود در فایل asm را به زبان ماشین تبدیل کرده و فایل object ) obj ) می سازد . فایل object به عنوان ورودی یک شبیه ساز نرم افزاری یا شبیه ساز سخت افزاری استفاده می شود . قبل از اسمبل کردن یک برنامه و ایجاد یک برنامه آماده اجرا ، باید مطمئن شویم که کد هیچ خطایی ندارد. AVR studio IDE پیغامهای خطا را در اختیار ما قرار میدهد و تا زمانی که اسمبلر برنامهای را که خطاهای آن رفع نشود اسمبل نمیکند.
#میکروکنترلر #AVR
🆔@computeronic
یکی از ویرایشگرهای بر استفاده در محیط ویندوز Notepad است که در تمام سیستم عامل های مایکروسافت موجود می باشند . توجه داشته باشید که ویرایشگر باید قابلیت تولید یک فایل اسکی را داشته باشد . در اسمبلرها نام فایل ها از قراردادهای رایج در DOS تبعیت می کنند ، ولی پسوند فایل منبع ( asm " ( source files " می باشد . فایل های منبع با پسوند " asm در مرحله بعدی توسط أسمبلر مورد استفاده قرار میگیرند . فایل منبع " asm " حاوی کد تولید شده در مرحله اول ، به اسمبلر AVR داده می شود . اسمبلر یک فایل object ، یک فایل hex ، یک فایل eeprom ،یک فایل list و یک فایل map تولید می کند . فایل object دارای پسوند obj ، فایل hex دارای پسوند hex، فایل eeprom دارای پسوند eep . فایل list دارای پسوند lst و فایل map دارای پسوند map می باشد . پس از یک لینک شدن موفق ، فایل هگز برای ریخته شدن بر روی ROM برنامه AVR آماده می باشد . به عبارتی فایل هگز بر روی برد آموزشی AVR دانلود می شود . می توان فایل eeprom را نیز بر روی EEPROM داخلی AVR برای مقدار دهی اولیه EEPROM دانلود کرد .
#میکروکنترلر #AVR
🆔@computeronic
#میکروکنترلر #AVR
🆔@computeronic
فایل lst (list) :
فایل list ) list ) ، که اختیاری می باشد ، برای برنامه نویس بسیار سودمند است . فایل list کد منبع و دودویی را نشان می دهد . این فایل دستورات بکار رفته شده در کد منبع و مقدار حافظه ای را که توسط دودویی برنامه استفاده می شود ، گزارش می دهد . بسیاری از اسمبلرها فرض می کنند شما احتیاجی به فایل list ندارید ، مگر اینکه خودتان اشاره کنید که مایل به تولید آن هستید . این فایل ها توسط یک ویرایشگر متن مانند Notepad قابل دسترسی بوده ، و می توان آنها را بر روی صفحه نمایش به تصویر کشید و یا برای چاپ به پرینتر ارسال کرد . برنامه نویسان از فایل های list و map برای اطمینان از طراحی صحیح سیستم استفاده میکنند . اسمبلرهای AVR مختلف بسیاری به صورت رایگان وجود دارند . اگر شما از سیستم عامل ویندوز استفاده میکنید ، AVR Studio می تواند انتخاب مناسبی برایتان باشد ، زیرا که محیط خوب و مطلوبی داشته و اطلاعات کمکی خیلی خوبی را فراهم می کند .
#میکروکنترلر #AVR
🆔@computeronic
فایل list ) list ) ، که اختیاری می باشد ، برای برنامه نویس بسیار سودمند است . فایل list کد منبع و دودویی را نشان می دهد . این فایل دستورات بکار رفته شده در کد منبع و مقدار حافظه ای را که توسط دودویی برنامه استفاده می شود ، گزارش می دهد . بسیاری از اسمبلرها فرض می کنند شما احتیاجی به فایل list ندارید ، مگر اینکه خودتان اشاره کنید که مایل به تولید آن هستید . این فایل ها توسط یک ویرایشگر متن مانند Notepad قابل دسترسی بوده ، و می توان آنها را بر روی صفحه نمایش به تصویر کشید و یا برای چاپ به پرینتر ارسال کرد . برنامه نویسان از فایل های list و map برای اطمینان از طراحی صحیح سیستم استفاده میکنند . اسمبلرهای AVR مختلف بسیاری به صورت رایگان وجود دارند . اگر شما از سیستم عامل ویندوز استفاده میکنید ، AVR Studio می تواند انتخاب مناسبی برایتان باشد ، زیرا که محیط خوب و مطلوبی داشته و اطلاعات کمکی خیلی خوبی را فراهم می کند .
#میکروکنترلر #AVR
🆔@computeronic
شمارنده برنامه در AVR :
مهم ترین ثبات در AVR و سایر میکروکنترلرها ، ثبات شمارنده برنامه ( program counter ) است . شمارنده برنامه توسط CPU برای اشاره به آدرس دستور بعدی که باید اجرا شود ، بکار گرفته می شود . هنگامی که CPU کد ماشین ( opcode ) را از ROM برنامه واکشی می کند ، شمارنده برنامه بطور اتوماتیک اضافه می شود تا به دستور بعدی اشاره کند ، هرچه پهنای شمارنده برنامه بیشتر باشد ، CPU به خانه های حافظه بیشتری دسترسی خواهد داشت . این بدین معناست که با شمارنده برنامه ۱۴ بینی می توان حداکثر به 14^2 = 16K خانه حافظه برنامه دسترسی پیدا کرد .
در خانواده AVR هر خانه حافظه آنی ( flash ) 2 بایت پهنا دارد . برای مثال ، در ATmega32 ، که حافظه فلش آن ۳۲ کیلو بایت می باشد ، این حافظه به صورت 16K × 16 سازماندهی شده است شمارنده برنامه آن 14 بیتی است. ATmega64 شمارنده برنامه 15 بیتی دارد حافظه فلش آن حاوی 32K خانه ( 32K = 2^15 ) می باشد که هر خانه آن 2 بایت پهنا دارد پس حجم کل حافظه برابر است با 32K * 2 = 64 Kbytes )
در مورد شمارنده های برنامه 16 بیتی فضای کد 64K می باشد که محدوده آدرس 0000 تا FFFFH را در بر می گیرد . شمارنده برنامه در خانواده AVR می تواند تا 22 بیت توسعه یابد . پس به عبارتی می تواند به آدرس برنامه 000000 تا 3FFFFFH ، یعنی کل خانه های موجود در 4 مگابایت دسترسی داشته باشد . از آنجایی که هر خانه حافظه فلش 2 بایت پهنا دارد ، AVR می تواند حداکثر تا 8 مگابایت کار را در خود جای دهد . فضای کد 8 مگابایتی فضای بسیاری است ، هرچند کل این 8 مگابایت ROM داخلی بر روی هیچیک از اعضای خانواده AVR نصب نشده است .
#میکروکنترلر #AVR
🆔@computeronic
مهم ترین ثبات در AVR و سایر میکروکنترلرها ، ثبات شمارنده برنامه ( program counter ) است . شمارنده برنامه توسط CPU برای اشاره به آدرس دستور بعدی که باید اجرا شود ، بکار گرفته می شود . هنگامی که CPU کد ماشین ( opcode ) را از ROM برنامه واکشی می کند ، شمارنده برنامه بطور اتوماتیک اضافه می شود تا به دستور بعدی اشاره کند ، هرچه پهنای شمارنده برنامه بیشتر باشد ، CPU به خانه های حافظه بیشتری دسترسی خواهد داشت . این بدین معناست که با شمارنده برنامه ۱۴ بینی می توان حداکثر به 14^2 = 16K خانه حافظه برنامه دسترسی پیدا کرد .
در خانواده AVR هر خانه حافظه آنی ( flash ) 2 بایت پهنا دارد . برای مثال ، در ATmega32 ، که حافظه فلش آن ۳۲ کیلو بایت می باشد ، این حافظه به صورت 16K × 16 سازماندهی شده است شمارنده برنامه آن 14 بیتی است. ATmega64 شمارنده برنامه 15 بیتی دارد حافظه فلش آن حاوی 32K خانه ( 32K = 2^15 ) می باشد که هر خانه آن 2 بایت پهنا دارد پس حجم کل حافظه برابر است با 32K * 2 = 64 Kbytes )
در مورد شمارنده های برنامه 16 بیتی فضای کد 64K می باشد که محدوده آدرس 0000 تا FFFFH را در بر می گیرد . شمارنده برنامه در خانواده AVR می تواند تا 22 بیت توسعه یابد . پس به عبارتی می تواند به آدرس برنامه 000000 تا 3FFFFFH ، یعنی کل خانه های موجود در 4 مگابایت دسترسی داشته باشد . از آنجایی که هر خانه حافظه فلش 2 بایت پهنا دارد ، AVR می تواند حداکثر تا 8 مگابایت کار را در خود جای دهد . فضای کد 8 مگابایتی فضای بسیاری است ، هرچند کل این 8 مگابایت ROM داخلی بر روی هیچیک از اعضای خانواده AVR نصب نشده است .
#میکروکنترلر #AVR
🆔@computeronic
نقشه حافظه ROM در خانواده AVR ها :
همان طور که دیدیم ، برخی از اعضای خانواده فقط چند کیلو بایت ROM داخلی داشته و برخی دیگر ، مانند ATmega128 دارای 128 کیلو بایت حافظه ROM است . نکته ای که باید یادآور شویم این است که خانواده AVR می تواند به بیش از 4 مگا کلمه ( هر کلمه دو بایت است ) از کد عمل ( opcode ) دسترسی داشته باشد ، زیرا که شمارنده برنامه آن حداکثر 22 بیت پهنا دارد ( محدوده آدرس 000000 تا 3FFFFFH ) . توجه داشته باشید که اولین خانه ROM برنامه داخلی AVR دارای آدرس 000000 می باشد ، و خانه آخر آن بستگی به اندازه ROM موجود در تراشه داشته و متغیر است . در میان اعضای خانواده ATmega8 ، AVR ، 8کیلو بایت ROM داخلی دارد . این 8 کیلو بایت حافظه ROM ، به صورت 4Kx2Bytes سازماندهی شده است و آدرس حافظه 00000 تا 00FFF$ را به خود اختصاص داده است . بنابراین آدرس اولین خانه ROM داخلی 00000 و آدرس آخرین خانه آن 00FFF$ می باشد .
#میکروکنترلر #AVR
🆔@computeronic
همان طور که دیدیم ، برخی از اعضای خانواده فقط چند کیلو بایت ROM داخلی داشته و برخی دیگر ، مانند ATmega128 دارای 128 کیلو بایت حافظه ROM است . نکته ای که باید یادآور شویم این است که خانواده AVR می تواند به بیش از 4 مگا کلمه ( هر کلمه دو بایت است ) از کد عمل ( opcode ) دسترسی داشته باشد ، زیرا که شمارنده برنامه آن حداکثر 22 بیت پهنا دارد ( محدوده آدرس 000000 تا 3FFFFFH ) . توجه داشته باشید که اولین خانه ROM برنامه داخلی AVR دارای آدرس 000000 می باشد ، و خانه آخر آن بستگی به اندازه ROM موجود در تراشه داشته و متغیر است . در میان اعضای خانواده ATmega8 ، AVR ، 8کیلو بایت ROM داخلی دارد . این 8 کیلو بایت حافظه ROM ، به صورت 4Kx2Bytes سازماندهی شده است و آدرس حافظه 00000 تا 00FFF$ را به خود اختصاص داده است . بنابراین آدرس اولین خانه ROM داخلی 00000 و آدرس آخرین خانه آن 00FFF$ می باشد .
#میکروکنترلر #AVR
🆔@computeronic
وقتی AVR روشن می شود ، از کجا شروع به کار می کند :
سؤالی که باید در مورد تمام میکرو کنترلرها ( یا میکروپروسسورها ) پرسیده شود این است : وقتی برق وصل شد ، از چه آدرسی CPU شروع به کار می کند ؟ جواب برای هر میکروپروسسوری متفاوت است . در مورد خانواده AVR ، همه اعضا هنگام روشن شدن ، بدون توجه به دسته بندی ها و مدل های مختلف ، از خانه 0000$ حافظه شروع به کار می کنند . منظور از روشن شدن ( power up ) اتصال VCC به پایه RESET ، میباشد . به عبارت دیگر وقتی AVR روشن می شود ، شمارنده برنامه حاوی مقدار 00000 است . یعنی انتظار می رود اولین کد عمل ( opcode ) در آدرس ROM 00000H ذخیره شده باشد . به همین دلیل اولین کد عمل باید در 00000H حافظه ROM ریخته شود ، زیرا وقتی AVR بوت شد در آنجا بدنبال اولین دستور می گردد . برای انجام این کار ، همان گونه که پیش از این نشان داده شد ، از دستورالعمل ORG . در فایل منبع استفاده می کنیم . در ادامه عملکرد مرحله به مرحله شمارنده برنامه را در واکشی و اجرای یک برنامه نمونه ، بررسی خواهیم کرد.
#میکروکنترلر #AVR
🆔@computeronic
سؤالی که باید در مورد تمام میکرو کنترلرها ( یا میکروپروسسورها ) پرسیده شود این است : وقتی برق وصل شد ، از چه آدرسی CPU شروع به کار می کند ؟ جواب برای هر میکروپروسسوری متفاوت است . در مورد خانواده AVR ، همه اعضا هنگام روشن شدن ، بدون توجه به دسته بندی ها و مدل های مختلف ، از خانه 0000$ حافظه شروع به کار می کنند . منظور از روشن شدن ( power up ) اتصال VCC به پایه RESET ، میباشد . به عبارت دیگر وقتی AVR روشن می شود ، شمارنده برنامه حاوی مقدار 00000 است . یعنی انتظار می رود اولین کد عمل ( opcode ) در آدرس ROM 00000H ذخیره شده باشد . به همین دلیل اولین کد عمل باید در 00000H حافظه ROM ریخته شود ، زیرا وقتی AVR بوت شد در آنجا بدنبال اولین دستور می گردد . برای انجام این کار ، همان گونه که پیش از این نشان داده شد ، از دستورالعمل ORG . در فایل منبع استفاده می کنیم . در ادامه عملکرد مرحله به مرحله شمارنده برنامه را در واکشی و اجرای یک برنامه نمونه ، بررسی خواهیم کرد.
#میکروکنترلر #AVR
🆔@computeronic
قرار دادن کد در ROM برنامه :
برای درک بهتر نقش شمارنده برنامه در واکشی و اجرای یک برنامه عملکرد شمارنده برنامه را هنگام واکشی و اجرای هر دستور بررسی می کنیم . در ابتدا یکبار دیگر فایل لیست ( list ) برنامه نمونه را بررسی کرده و چگونگی قرار گرفتن کد در flash ROM را نشان می دهیم در تصویر ملاحظه می کنید ، کد عمل و عملوندهای هر دستور در سمت چپ این فایل لیست شده اند .
بعد از ریخته شدن برنامه بر روی ROM یک AVR مانند ATmega32 یا Tinyll ، عملوندها و کد عمل در خانه های حافظه ROM که از 0000 شروع می شوند ، قرار می گیرند . این لیست نشان می دهد که آدرس 0000 حاوی مقدار E205 که بیانگر کد عمل انتقال یک مقدار به R16 و عملوندی ( در اینجا 0x25 ) که قرار است به R16 انتفال باید می باشد ، است . بنابراین دستور " LDI R16 , 0x25 " دارای کد ماشین " E205 " می باشد ، که E در اینجا نشان دهنده کد عمل و 205 عملوند . این دستور است . عکس ملاحظه شود . به همین نحو ، کد ماشین "E314" خانه 0001 حافظه قرار گرفته و کد عمل و عملوندهای دستور " LDI R17,$34 " را نشان می دهد . به همین ترتیب ، کد ماشین " E321 " در خانه 0002 حافظه قرار گرفته و کد عمل و عملوندهای دستور " LDI R18,0B00110001 " را نشان می دهد.
#میکروکنترلر #AVR
🆔@computeronic
برای درک بهتر نقش شمارنده برنامه در واکشی و اجرای یک برنامه عملکرد شمارنده برنامه را هنگام واکشی و اجرای هر دستور بررسی می کنیم . در ابتدا یکبار دیگر فایل لیست ( list ) برنامه نمونه را بررسی کرده و چگونگی قرار گرفتن کد در flash ROM را نشان می دهیم در تصویر ملاحظه می کنید ، کد عمل و عملوندهای هر دستور در سمت چپ این فایل لیست شده اند .
بعد از ریخته شدن برنامه بر روی ROM یک AVR مانند ATmega32 یا Tinyll ، عملوندها و کد عمل در خانه های حافظه ROM که از 0000 شروع می شوند ، قرار می گیرند . این لیست نشان می دهد که آدرس 0000 حاوی مقدار E205 که بیانگر کد عمل انتقال یک مقدار به R16 و عملوندی ( در اینجا 0x25 ) که قرار است به R16 انتفال باید می باشد ، است . بنابراین دستور " LDI R16 , 0x25 " دارای کد ماشین " E205 " می باشد ، که E در اینجا نشان دهنده کد عمل و 205 عملوند . این دستور است . عکس ملاحظه شود . به همین نحو ، کد ماشین "E314" خانه 0001 حافظه قرار گرفته و کد عمل و عملوندهای دستور " LDI R17,$34 " را نشان می دهد . به همین ترتیب ، کد ماشین " E321 " در خانه 0002 حافظه قرار گرفته و کد عمل و عملوندهای دستور " LDI R18,0B00110001 " را نشان می دهد.
#میکروکنترلر #AVR
🆔@computeronic
🟥🟧🟨🟩🟦🟪
🔰دسترسي سريع بِه مطالب و آموزشهاي كانال:
💻مهندسي كامپيوتر:
#كامپيوتر
#برنامهنویسی
آموزش زبان برنامه نويسي پايتون:
#python
#پايتون
☑️همچنين ميتونيد به كوييزهايي كه در پستهاي قبلي گذاشتيم پاسخ دهيد و آموزش ببينيد!😉
آموزش زبان سي شارپ پروژه محور توسعه دسكتاپ(ويندوز فُرم اپليكيشن):
#WindowsFormApp
🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴
🔋💡مهندسي برق و الكترونيك:
زمينه و گرايش برق كنترل با مباحث زير:
#arduino
#AVR
#میکروکنترلر
🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴
⚙️مهندسي مكانيك:
#مکانیک
#استاتیک
#خودرو
📚📚📙📕📘📗📔📚📒✏️
جهت دسترسي بِه كتابخانه دانشجويي كامپيوترونيك و دانلود رايگان كتب مرجع از هشتگ زير استفاده كنيد:
#کتابخانه
📱📱📱💻💻💻🧐🧐🧐
حقايق جالب و دانستني و ترفندهاي موبايل و كامپيوتر:
#فكت
با ما همراه باشيد!🤗
🆔@Computeronic
🔰دسترسي سريع بِه مطالب و آموزشهاي كانال:
💻مهندسي كامپيوتر:
#كامپيوتر
#برنامهنویسی
آموزش زبان برنامه نويسي پايتون:
#python
#پايتون
☑️همچنين ميتونيد به كوييزهايي كه در پستهاي قبلي گذاشتيم پاسخ دهيد و آموزش ببينيد!😉
آموزش زبان سي شارپ پروژه محور توسعه دسكتاپ(ويندوز فُرم اپليكيشن):
#WindowsFormApp
🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴
🔋💡مهندسي برق و الكترونيك:
زمينه و گرايش برق كنترل با مباحث زير:
#arduino
#AVR
#میکروکنترلر
🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴🔴
⚙️مهندسي مكانيك:
#مکانیک
#استاتیک
#خودرو
📚📚📙📕📘📗📔📚📒✏️
جهت دسترسي بِه كتابخانه دانشجويي كامپيوترونيك و دانلود رايگان كتب مرجع از هشتگ زير استفاده كنيد:
#کتابخانه
📱📱📱💻💻💻🧐🧐🧐
حقايق جالب و دانستني و ترفندهاي موبايل و كامپيوتر:
#فكت
با ما همراه باشيد!🤗
🆔@Computeronic
🛑دسترسي سريع:
كامپيوتر و برنامه نويسي💻: #كامپيوتر #پايتون #python
#برنامهنویسی #WindowsFormApp
برق و الكترونيك💡:
#AVR #میکروکنترلر #arduino #الکترونیک
مكانيك⚙️🛠:
#مکانیک #استاتیک #خودرو #سیالات
ترفندهاي موبايل و كامپيوتر و حقايق علمي📱:
#فكت #ترفند
كتب مرجع دانشگاهي📚📕📒📘:
#کتابخانه
🔵🔵🔵🔵🔵🟡🟡🟡🟡🟡
🆔@Computeronic
كامپيوتر و برنامه نويسي💻: #كامپيوتر #پايتون #python
#برنامهنویسی #WindowsFormApp
برق و الكترونيك💡:
#AVR #میکروکنترلر #arduino #الکترونیک
مكانيك⚙️🛠:
#مکانیک #استاتیک #خودرو #سیالات
ترفندهاي موبايل و كامپيوتر و حقايق علمي📱:
#فكت #ترفند
كتب مرجع دانشگاهي📚📕📒📘:
#کتابخانه
🔵🔵🔵🔵🔵🟡🟡🟡🟡🟡
🆔@Computeronic
📜مشخصات AVR :
میکروکنترلر های AVR میکروکنترلر هایی با معماری 8 بیتی RISC (کامپیوتر با مجموعه دستورات کم) هاروارد است که با امکانات استانداردی از قبیل وجود ROM برنامه (کد) ، RAM داده ، EEPROM داده ، تایمرها و پورت های I/O داخلی ارائه میگردد. همانند تصویر بالا.
اکثر AVR ها امکانات اضافی مانند ADC ، PWM و انواع مختلف واسط سریال نظیر USART , SPI I2C(TWI) , CAN, USB و غیره را نیز به همراه خود دارند.
✅جهت سفارش به آیدی زیر پیام دهید :
🆔@electropart_admin
#میکروکنترلر #AVR
➖➖➖➖➖➖➖
🆔@electro_parts
🆔@Computeronic
🌐computeronic.ir
میکروکنترلر های AVR میکروکنترلر هایی با معماری 8 بیتی RISC (کامپیوتر با مجموعه دستورات کم) هاروارد است که با امکانات استانداردی از قبیل وجود ROM برنامه (کد) ، RAM داده ، EEPROM داده ، تایمرها و پورت های I/O داخلی ارائه میگردد. همانند تصویر بالا.
اکثر AVR ها امکانات اضافی مانند ADC ، PWM و انواع مختلف واسط سریال نظیر USART , SPI I2C(TWI) , CAN, USB و غیره را نیز به همراه خود دارند.
✅جهت سفارش به آیدی زیر پیام دهید :
🆔@electropart_admin
#میکروکنترلر #AVR
➖➖➖➖➖➖➖
🆔@electro_parts
🆔@Computeronic
🌐computeronic.ir
🔧انواع میکروکنترلرهای AVR :
انواع زیادی از میکروکنترلر های AVR با ویژگی های متفاوت وجود دارند. به استثنای AVR32 که یک میکروکنترلر 32 بیتی است، بقیه AVR ها همگی 8 بیتی هستند، یعنی CPU در هر لحظه فقط با 8 بیت داده میتواند کار کند. داده های بزرگتر از 8 بیت به بخش های 8 بیتی تقسیم شده و بوسیله CPU مورد پردازش قرار میگیرد. یکی از مشکلات سری AVR این است که آنها از لحاظ نرم افزاری بطور صد در صد کامل از یک سری به سری دیگر سازگار نیستند. برای اجرا برنامه نوشته شده برای Tiny25 بر روی Atmega64 باید برنامه قبل از ریخته شدن روی Atmega64 دوباره کامپایل شده و احتمالا موقعیت برخی ثبات ها تغییر کند.
عموما سری AVR به چهار گروه اصلی تقسیم میشود :
مگا ، تاینی (Tiny) ، کلاسیک و تک منظوره.
جهت سفارش به ایدی زیر پیام دهید :
🆔@electropart_admin
#میکروکنترلر #AVR
➖➖➖➖➖➖➖
🆔@electro_parts
🆔@Computeronic
🌐computeronic.ir
انواع زیادی از میکروکنترلر های AVR با ویژگی های متفاوت وجود دارند. به استثنای AVR32 که یک میکروکنترلر 32 بیتی است، بقیه AVR ها همگی 8 بیتی هستند، یعنی CPU در هر لحظه فقط با 8 بیت داده میتواند کار کند. داده های بزرگتر از 8 بیت به بخش های 8 بیتی تقسیم شده و بوسیله CPU مورد پردازش قرار میگیرد. یکی از مشکلات سری AVR این است که آنها از لحاظ نرم افزاری بطور صد در صد کامل از یک سری به سری دیگر سازگار نیستند. برای اجرا برنامه نوشته شده برای Tiny25 بر روی Atmega64 باید برنامه قبل از ریخته شدن روی Atmega64 دوباره کامپایل شده و احتمالا موقعیت برخی ثبات ها تغییر کند.
عموما سری AVR به چهار گروه اصلی تقسیم میشود :
مگا ، تاینی (Tiny) ، کلاسیک و تک منظوره.
جهت سفارش به ایدی زیر پیام دهید :
🆔@electropart_admin
#میکروکنترلر #AVR
➖➖➖➖➖➖➖
🆔@electro_parts
🆔@Computeronic
🌐computeronic.ir
✋سلام به همه کامپیوترونیکی های عزیز
🤛🤜قرار هست باهم میکروکنترلرهای AVR رو آغاز کنیم و باهم دیگه پیش ببریم!
✅میکروکنترلرهای AVR امروزه به پرمصرف ترین آیسی های الکترونیکی تبدیل شده است. که در پروژه های بسیاری اعم از دانشجویی و صنعتی مورد استفاده قرار میگیرد!
✅توی این دوره سعی کردم با بهترین شیوه های ممکن آموزش بدم و شما رو تقریبا با قطعات به صورت گرافیکی هم آشنا کنم.
✅این دوره دارای 3 سطح : مقدماتی ، متوسط و پیشرفته هست.
🖥داخل این دوره از نرم افزارهایی مانند : پروتئوس ، fritzing و کدویژن استفاده خواهم کرد.
💡میکروکنترل مورد استفاده هم میکروکنترل ATMega32 هست.
موفق و پیروز باشید.
#الکترونیک
#AVR
➖➖➖➖➖➖➖
🆔@computeronic
🌐 computeronic.ir
🤛🤜قرار هست باهم میکروکنترلرهای AVR رو آغاز کنیم و باهم دیگه پیش ببریم!
✅میکروکنترلرهای AVR امروزه به پرمصرف ترین آیسی های الکترونیکی تبدیل شده است. که در پروژه های بسیاری اعم از دانشجویی و صنعتی مورد استفاده قرار میگیرد!
✅توی این دوره سعی کردم با بهترین شیوه های ممکن آموزش بدم و شما رو تقریبا با قطعات به صورت گرافیکی هم آشنا کنم.
✅این دوره دارای 3 سطح : مقدماتی ، متوسط و پیشرفته هست.
🖥داخل این دوره از نرم افزارهایی مانند : پروتئوس ، fritzing و کدویژن استفاده خواهم کرد.
💡میکروکنترل مورد استفاده هم میکروکنترل ATMega32 هست.
موفق و پیروز باشید.
#الکترونیک
#AVR
➖➖➖➖➖➖➖
🆔@computeronic
🌐 computeronic.ir
avr_roadmap.pdf
101 KB
📆 برنامه های آموزشی ویژه نوروز کامپیوترونیک
✳️ آموزش رایگان میکروکنترلرهای AVR
⏰ مدت دوره : 30 ساعت
🗓 مدت زمان یادگیری : 7 روز
🌐 computeronic.ir/?p=7668
#AVR
کامپیوترونیک مرجع آموزش های حرفه ای و فارسی
➖➖➖➖➖➖➖
🆔@computeronic
🌐 computeronic.ir
✳️ آموزش رایگان میکروکنترلرهای AVR
⏰ مدت دوره : 30 ساعت
🗓 مدت زمان یادگیری : 7 روز
🌐 computeronic.ir/?p=7668
#AVR
کامپیوترونیک مرجع آموزش های حرفه ای و فارسی
➖➖➖➖➖➖➖
🆔@computeronic
🌐 computeronic.ir