شمارنده برنامه در 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