• دستگاه و برنامه نویسی میکروکنترلرهای AVR. میکروکنترلر و نحوه شکست آن چیپ حافظه چیست و چگونه تراشه ها را برنامه ریزی کنیم

    من قاطعانه با این رویکرد مخالفم. معمولاً همه چیز به پایان می رسد - یا با هیچ چیز، یا انجمن های مسدود شده با درخواست کمک. حتی اگر به کسی کمک شود، در 90٪ دیگر هرگز در سایت های الکترونیک ظاهر نمی شود. در 10 درصد باقی مانده، او همچنان تالارها را پر از التماس می کند، اول لگد می زنند، سپس روی او گل می ریزند. از این 10 درصد، 9 درصد دیگر حذف می شود. سپس دو گزینه وجود دارد: یا به یک کله احمقانه می رسد و همچنان به ابتدا می رود، یا در نسخه های به خصوص نادیده گرفته شده، سرنوشت آن این است که از طرح های دیگران کپی کند، بدون یک فکر در مورد نحوه کار. از دومی ها، آردوینوها اغلب متولد می شوند.

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

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

    اگر در مورد جرم کل صحبت کنیم، پس همه چیز دقیقاً همانطور است که در ابتدا توضیح دادم: عدم تمایل به پرداختن به اصول اولیه، در بهترین موردلحظه ای را به تاخیر می اندازد که باید به این مسائل برگردید. در بدترین حالت، به سرعت به سقف دانش خود می‌رسید و همیشه شخص دیگری را مقصر مشکلات خود می‌دانید.

    2. قبل از حل یک مشکل، آن را تا حد پوچی خرد کنید تا "لحیم کردن یک مقاومت"، کمک می کند، بررسی می شود.کارهای کوچک بسیار ساده تر حل می شوند. وقتی یک کار بزرگ به دسته ای از اقدامات کوچک تقسیم می شود، تنها چیزی که باقی می ماند تکمیل آنهاست. من می توانم یک توصیه خوب دیگر به شما بدهم، اگرچه ممکن است به نظر شما دیوانه باشد - یک دفترچه بردارید و هر کاری را که قرار است انجام دهید در آن بنویسید. فکر می کنی یادم می آید، اما نه. فرض کنید امروز حالم خوب است و به این فکر می کنم که چگونه هزینه را دریافت کنم. برنامه اقدام را یادداشت کنید: بروید یک مقاومت بخرید، سیم ها را آماده کنید، نمایشگر را نصب کنید. بعد همه چیز را فراموش می کنی، یک دفترچه باز می کنی و نگاه می کنی - آره، امروز حال و هوای بریدن و بریدن است، من یک کوه می سازم. یا برد را جمع می‌کنید و از قبل برای لحیم کردن آخرین جزء باقی مانده است، اما آنجا نبود که مقاومت‌ها تمام می‌شوند، بنابراین قبل از لحیم کاری آن را یادداشت می‌کردم، سپس یادم آمد.

    3. حداقل در مراحل اول از تولید کننده کد، ویژگی های غیر استاندارد و سایر ساده کننده ها استفاده نکنید.من میتونم مالمو بیارم مثال شخصی. در زمان استفاده فعال AVR، من از کدوژن CAVR استفاده کردم. او کاملاً مناسب من بود، اگرچه همه می گفتند او کاکا است. زنگ‌ها دائماً به صدا درآمدند، مشکلاتی در کتابخانه‌ها، نحو، با انتقال وجود داشت، اما رد کردن آن سخت بود. من متوجه نشدم که چگونه کار می کند، فقط می دانستم کجا و چگونه جعبه ها را بررسی کنم.

    با ظهور STM32 یک چوب به تابوت من رانده شد، لازم بود روی آنها خزیده شود و سپس مشکلات ظاهر شد. مشکلات به زبان ساده، در واقع، من مجبور بودم از ابتدا به میکروکنترلرها و زبان C تسلط پیدا کنم. اشتباهات گذشته را دوباره تکرار نکردم. باید بگویم که این بیش از یک بار مفید بوده است. از آن زمان، من فرصتی برای کار با پلتفرم های دیگر داشتم و هیچ مشکلی نداشتم، این رویکرد خود را توجیه می کند.

    با توجه به همه بهبودها و ساده‌کننده‌ها، یکی بسیار وجود داشت مقایسه خوبکه آنها مانند ویلچرهایی هستند که روی ریل سوار می شوند، می توانید بروید و لذت ببرید، اما نمی توانید بلند شوید، جایی که شما را می برند - به آنجا خواهید رسید.

    4. زبان C را یاد بگیرید.آه، چقدر می شنوم که آماتورهای رادیویی تازه کار به خود می بالند که سیشکا را خوب می شناسند. این برای من تبدیل به غذا شده است، من همیشه دوست دارم با چنین افرادی مشورت کنم. معمولاً بلافاصله معلوم می شود که آنها اصلاً زبان را نمی دانند. می توانم بگویم که علیرغم سادگی ظاهری، با افراد زیادی آشنا نشدم که واقعاً او را بشناسند. اصولاً همه به اندازه ای که برای حل مشکلات لازم است او را می شناسند.

    با این حال، مشکل از نظر من این است که بدون دانستن امکانات، به شدت خود را محدود می کنید. از یک طرف، راه حل های غیر بهینه که نیاز به بیشتر دارند آهن قدرتمند، از طرف دیگر نه کد قابل خواندنکه نگهداری آن دشوار است. به نظر من خوانایی و قابلیت نگهداری کد یکی از مهم ترین مکان ها است و تصور اینکه چگونه می توان بدون استفاده از همه ویژگی های زبان C به این امر دست یافت، برایم سخت است.

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

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

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

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

    7. اغلب مردم درخواست می کنند که یک دیتاشیت به زبان روسی ارسال کنند. Datashit - این همان چیزی است که باید به عنوان حقیقت، صحیح ترین اطلاعات تلقی شود. حتی در آنجا خطاها نیز منتفی نیستند. اگر اشتباهات مترجم هم به این اضافه شود، او هم فردی است، شاید هم از روی عمد، فقط برای مهر و موم شدن. در هر صورت او دیدگاه خود را دارد، ممکن است چیزی را از دست بدهد، به نظر او مهم نیست، اما شاید برای شما بسیار مهم باشد. این وضعیت به ویژه زمانی خنده دار می شود که شما نیاز به یافتن اسنادی برای اجزای نه چندان محبوب دارید.

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

    من آزمایشی انجام دادم: یک دانش آموز، برگه داده و مترجم گوگل در دسترس بود. آزمایش شماره 1: به دانش آموز یک برگه داده داده شد و به دانش آموز این وظیفه داده شد که به طور مستقل مقادیر لازم را پیدا کند، نتیجه "بله، چگونه می توانم"، "بله، من انگلیسی نمی دانم"، "من پیدا نکردم" است. هر چیزی / من متوجه نشدم» عبارات معمولی که می گویند او حتی تلاش نکرد. آزمایش شماره 2: به همان دانش آموز همان دیتاشیت و همان تکلیف داده شد، با این تفاوت که من کنارش نشستم. نتیجه - بعد از 5 دقیقه او خودش تمام مقادیر لازم را کاملاً بدون مشارکت من و بدون دانش انگلیسی پیدا کرد.

    8. چرخ را دوباره اختراع کنید.به عنوان مثال، شما در حال مطالعه چیز جدیدی هستید، فرض کنید یک ترانزیستور، عمو هوروویتز با اقتدار از صفحات کتاب خود می گوید که ترانزیستور تقویت می کند، همیشه بگویید - باور نکنید. ما یک ترانزیستور را در دست می گیریم، آن را در مدار روشن می کنیم و مطمئن می شویم که واقعاً چنین است. یک لایه کامل از مشکلات و ظرافت ها وجود دارد که در کتاب ها توضیح داده نشده است. فقط زمانی می توانید آنها را حس کنید که آنها را در دست بگیرید و سعی کنید آنها را جمع کنید. در عین حال، ما یک مشت دانش گذرا به دست می آوریم، ظرافت ها را یاد می گیریم. علاوه بر این، هر نظریه ای بدون تمرین بسیار سریعتر فراموش می شود.

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

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

    9. و اگر من جای توسعه دهندگان بودم چگونه این کار را انجام می دادم؟آیا می توانم بهتر عمل کنم؟ هر بار این سوالات را از خود بپرسید، این کمک زیادی به پیشرفت در یادگیری می کند. برای مثال، رابط‌های 1wire، i2c، spi، uart را مطالعه کنید و سپس به تفاوت آنها فکر کنید، آیا می‌توانست بهتر انجام شود یا خیر، این به شما کمک می‌کند بفهمید چرا همه چیز به همین شکل است و غیر از این نیست. همچنین متوجه خواهید شد که چه زمانی و کدام یک بهتر است درخواست دهید.

    10. فراتر از تکنولوژی بروید.این مهم است که این توصیه بسیار خط ظریف. مرحله‌ای از زندگی وجود داشت که از هر دری می‌توانست شنید «لازم است FPGA را بشناسیم»، «اما در FPGA می‌توان این کار را انجام داد». به طور رسمی، من هیچ هدفی برای مطالعه FPGA نداشتم، اما عبور از آن غیرممکن بود. به این موضوع کمی زمان برای آشنایی داده شد. زمان بیهوده نگذشت، من در مورد ساختار داخلی میکروکنترلرها سوالاتی داشتم، پس از صحبت با پلیسه ها بود که پاسخ آنها را دریافت کردم. نمونه های مشابهبسیار، تمام دانشی که به هر شکلی به دست آوردم دیر یا زود به کارم آمد. من یک مثال بی فایده ندارم.

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

    11. اگر از یک رادیو آماتور مبتدی بپرسید که برنامه نویسی یا مدار را بیشتر دوست دارد، با احتمال 99 درصد پاسخ برنامه نویسی خواهد بود. در عین حال، این برنامه نویسان بیشتر وقت خود را صرف ساخت بردهایی با LUT / Photoresist می کنند. دلایل به طور کلی قابل درک است، اما اغلب اوقات به نوعی جنون تبدیل می شود، که شامل ساخت تخته برای ساخت تخته است.

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

    12. توصیه بعدی، مخصوصا دردناک است، من واقعا نمی خواهم در مورد آن بحث کنم، اما باید.اغلب آنها به من می نویسند و می گویند که xxx rub برای yy گران است، از کجا آن را ارزان تر می گیرید. به نظر می رسد این یک سؤال رایج است، اما معمولاً بلافاصله از آن استرس می گیرم، زیرا اغلب به شکایت های بی پایان در مورد کمبود پول تبدیل می شود. من همیشه یک سوال دارم: چرا نکته پنجم را پاره نکنیم و برویم سر کار؟ حداقل در همان مک داک، حداقل برای یک سایت ساخت و ساز، یک ماه تحمل کنید، اما بعد می توانید چند تخته بخرید، که برای سال آینده کافی است. بله، می دانم که در شهرهای کوچک و روستاها کار سختی است، مهاجرت به شهرهای بزرگ. از راه دور کار کنید، به طور کلی، شما باید بچرخید. فقط شکایت کردن معنی ندارد، راهی برای خروج از وضعیت وجود دارد، هرکس به دنبال آن باشد آن را پیدا می کند.

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

    من نمی گویم ارزان = بد، نه - همه چیز به موقعیت بستگی دارد. من به مثال یک crimper برمی گردم، زمانی بود که من آن را با هر چیزی پر می کردم، بنابراین اغلب مشکلات ایجاد می شد. به خصوص زمانی که برد را راه اندازی می کنید و کار نمی کند، ناخوشایند است، پس از جستجوی طولانی برای یک خطا، متوجه می شوید که به دلیل سیم ضعیف، شرم آور است. از زمان ظهور چین‌خوردگی معمولی، این مشکلات وجود نداشته است. بله، وزغ درونی غوغا کرد و از هزینه آن خفه شد، اما هرگز از این تصمیم پشیمان نشد. تنها چیزی که می خواهم بگویم این است که بعد از کار با یک ساز معمولی، مطلقاً نمی خواهم به یک ساز بد برگردم، حتی نمی خواهم در مورد آن بحث کنم. همانطور که تمرین نشان می دهد، اگر شک دارید، بهتر است در ابزارها صرفه جویی نکنید - کسی را برای آزمایش، خواندن بررسی ها، بررسی ها ببرید.

    14. یک وب سایت راه اندازی کنید، می توانید هر چیزی را روی آن بنویسید، درست مانند یادداشت ها.تمرین نشان می دهد که کارفرمایان هنوز آن را نمی خوانند، اما این واقعیت خود تأثیر زیادی دارد.

    15. سوال ظریف: آموزش عالی تخصصی آیا لازم است؟من بیش از چند مورد را می شناسم که افرادی بدون تحصیلات مطلق کار می کردند و بر اساس تجربه و دانش خود می توانستند به هر فارغ التحصیلی نور بدهند. در واقع من تحصیلات تخصصی ندارم، آیا از این موضوع احساس ناراحتی می کنم؟ تا حدی بله.

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

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

    نکته بعدی اغلب در نظر گرفته نمی شود، این محیط است. فراموش نکنید افرادی که با آنها مطالعه می کنید نسل شما هستند، ممکن است با آنها کار کنید. تعداد شرکت های فعال در یک صنعت بسیار محدود است. تمرین نشان می دهد که حتی در شهرهای بزرگ، همه و همه در مورد یکدیگر، تا جزئیات صمیمی، می دانند.

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

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

    16. آیا برای شروع برنامه نویسی در 20، 30، 40، 50 سالگی دیر شده است؟رویه افراد دیگر نشان می دهد که سن اصلاً مانعی ندارد. به دلایلی، بسیاری این واقعیت را در نظر نمی گیرند که یک لایه کامل از کار وجود دارد که جوانان به دلیل جاه طلبی های خود نمی خواهند انجام دهند. بنابراین، کارفرمایان ترجیح می دهند کسانی را که آن را بکشند، بگیرند. این شانس شماست که به آن دست پیدا کنید، و سپس همه چیز به شما بستگی دارد.

    و آخرین نکتهبسیاری از آماتورهای رادیویی غیرقابل معاشرت، عصبانی و تحریک پذیر هستند - این را ویژگی های شغلی در نظر بگیرید. مهربانی و مثبت را ساطع کنید، انسان خوبی باشید.

    9


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

    اگر در حال خواندن این مقاله هستید، احتمالاً تمایل به درک نحوه عملکرد میکروکنترلرها دارید و به احتمال زیاد سؤالاتی دارید:

    4. چه ادبیاتی را مطالعه کنیم؟

    بیایید سعی کنیم به این سوالات پاسخ دهیم.

    1. کدام میکروکنترلر را برای کار انتخاب کنیم؟

    میکروکنترلرهای 8 بیتی در بین رادیو آماتورها بسیار محبوب هستند. PICفناوری ریزتراشه و AVRاتمل 16 بیتی MSP430شرکت های TI، و همچنین میکروکنترلرهای 32 بیتی، معماری ARM.

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

    ما میکروکنترلرهای AVR 8 بیتی را مطالعه خواهیم کرد سری ATMEGA 8 و 16. انتخاب مجدداً با در دسترس بودن، حضور بسیاری از پیشرفت‌های آماتور و مقدار زیادی مواد آموزشی تعیین شد. وجود انواع قطعات داخلی و کارایی این خانواده.

    2. برای برنامه ریزی میکروکنترلر انتخابی باید از چه محیط توسعه ای استفاده کنم؟

    محیط های توسعه یکپارچه مختلفی (IDE، محیط توسعه یکپارچه) برای AVR ایجاد شده است.
    IDEیک سیستم است ابزارهای نرم افزاری، توسط برنامه نویسان برای توسعه استفاده می شود نرم افزار(نرم افزار) که شامل:
    ویرایشگر متن,
    کامپایلر و/یا مفسر،
    ساخت ابزارهای اتوماسیون
    اشکال زدا

    رایج ترین ها AVRStudio، ATmelStudio، WINAVR، CodeVision، IAR Embedded Workbench.
    برای نوشتن برنامه از رایگان استفاده می کنیم ATmelStudio IDE نسخه 6و بالاتر.
    پس از ثبت نام می توانید Atmel Studio را از وب سایت رسمی دانلود کنید (ثبت نام کاملا رایگان است و شما را به هیچ چیزی ملزم نمی کند!)

    ATmelStudio به شما امکان می دهد پروژه ها را ایجاد کنید و برنامه ها را هم در اسمبلر و هم در C بنویسید.

    در ابتدا همیشه یک سوال وجود دارد: چه زبان برنامه نویسی را برای نوشتن انتخاب کنیم برنامه های موثر?

    من به سادگی پاسخ خواهم داد: شما باید بتوانید حداقل دو زبان اسمبلی و C بنویسید. اسمبلر به سادگی زمانی لازم است که شما نیاز به نوشتن زیربرنامه ها و ماکروهای سریع و فشرده دارید، رانندگان مختلفدستگاه ها اما زمانی که نیاز به ایجاد دارید پروژه بزرگ، ساخته شده بر روی الگوریتم های پیچیده، بدون دانش SI، زمان زیادی را می توان صرف کرد، به خصوص در هنگام اشکال زدایی، و اگر تمایل به انتقال به پلتفرم دیگری مانند PIC18 یا STM وجود داشته باشد، می تواند به یک مشکل غیر قابل حل تبدیل شود.
    علاوه بر این، اکنون پلتفرم های محاسباتی سخت افزاری نیز وجود دارد آردوینو، کار با آن نیاز به دانش زبان C++ دارد.
    بنابراین برنامه ها را هم در اسمبلر و هم در سی می نویسیم.

    برای مشاهده بصری نتیجه کار خود بدون استفاده از آهن لحیم کاری یا تخته نان، کافیست برنامه را نصب کنید پروتئوس.

    3. چگونه کنترلر را فلش کنیم و برای کار راحت با آنها چه وسایل و لوازم جانبی دیگری لازم است؟

    ما از datagorian استفاده می کنیم. علاوه بر این، شما نیاز به خرید دارید تخته های نان، منبع تغذیه با ولتاژ خروجی 5 ولت. با استفاده از دیود زنر 5 ولتی می توانید از آن به عنوان یک PSU با امواج کم استفاده کنید.
    شاید با گذشت زمان، من و ایگور پروژه ای برای مونتاژ یک برد اشکال زدایی ارائه دهیم.

    4. چه ادبیاتی را مطالعه کنیم؟

    و برای مثال اینجا:
    برنامه نویسی عملی AVR در اسمبلر. ریویچ، 2011
    مدار 1000 و یک میکروکنترلر جلد. 1-2. ریومیک، 2010-2011
    10 دستگاه های کاربردیدر کتاب MK AVR 1-2. کراوچنکو، 2008-2009
    راهنمای خودآموز برای توسعه دهنده دستگاه در MK AVR. بلوف، 2008
    خانواده MK AVR Tiny و Atmega. افستیفیف، 2008
    CodeVisionAVR. راهنمایی برای مبتدیان. لبدف، 2008
    کنترل ریزپردازنده دستگاه ها، تریستورها، رله ها. بلوف، 2008
    رابط های آنالوگ MK. استوارد، بال، 2007
    ما دستگاه هایی را در MK AVR ایجاد می کنیم. بلوف، 2007
    MK AVR در تمرین رادیویی آماتور. تجزیه کامل ATTINY2313. بلوف، 2007
    تبادل داده های شبکه و بین شبکه با MK. برو، 2007
    MK AVR. تمرین برای مبتدیان هارتوف، 2007
    استفاده از طرح های AVR، الگوریتم ها، برنامه ها. بارانوف، 2006
    میکروکنترلرهای AVR دوره مقدماتی. مورتون، 2006
    اندازه گیری، کنترل و تنظیم با AVR. ترومپرت، 2006
    برنامه نویسی به زبان C برای AVR و PIC MK. شپاک، 2006
    طراحی دستگاه ها در MK. بلوف، 2005
    MK - ساده است، جلد 1-3. فرونز، 2002-2003
    زبان برنامه نویسی سی، ویرایش دوم. کرنیگان، ریچی، 2009
    برنامه نویسی میکروکنترلرهای ATMEL به زبان S. Prokopenko، 2012

    5. کجا می توانم به صورت آنلاین سؤال بپرسم و پاسخ های مشخصی دریافت کنم؟

    شما می توانید در انجمن ما یا هر انجمن دیگری که موضوعات مربوط به میکروکنترلرها به نحوی مورد بررسی قرار می گیرد، سؤال بپرسید. نکته اصلی در انجمن ها این است که به درستی سوالات را به منظور دریافت واضح پاسخ ها تنظیم کنید. از سوالات انتزاعی استقبال نمی شود و به احتمال زیاد به جای پاسخ، انتقادات تندی به شما وارد می شود و یا سوال شما بدون توجه می ماند!

    حال بیایید نگاهی دقیق تر به میکروکنترلر مورد علاقه خود، ATMEGA 8 بیندازیم.

    میکروکنترلر AVR کم مصرف 8 بیتی با کارایی بالا
    معماری پیشرفته RISC
    130 دستورالعمل با کارایی بالا، اکثر دستورالعمل ها در یک چرخه ساعت اجرا می شوند
    32 رجیستر کار 8 بیتی با هدف عمومی
    عملکرد کاملا ثابت
    عملکرد نزدیک به 16 MIPS (در 16 مگاهرتز).
    ضریب 2 چرخه داخلی

    برنامه و حافظه داده غیر فرار
    8 کیلوبایت قابل برنامه ریزی در سیستم فلش مموری(فلش خود برنامه ریزی درون سیستم)
    1000 چرخه پاک کردن/نوشتن را ارائه می دهد
    بخش اضافی کدهای بوت با بیت های قفل مستقل
    حالت خواندن/نوشتن همزمان (Read-While-Write) ارائه شده است
    512 بایت EEPROM
    100000 چرخه پاک کردن/نوشتن را ارائه می دهد
    1 کیلوبایت حافظه داخلی SRAM
    قفل قابل برنامه ریزی برای محافظت از نرم افزار کاربر

    لوازم جانبی تعبیه شده
    دو تایمر/ شمارنده 8 بیتی با پیش مقیاس کننده جداگانه، یکی با حالت مقایسه
    یک تایمر / شمارنده 16 بیتی با پیش مقیاس کننده جداگانه و حالت های ضبط و مقایسه
    شمارنده زمان واقعی با ژنراتور جداگانه
    سه کانال PWM
    مبدل 8 کانال آنالوگ به دیجیتال (در بسته های TQFP و MLF)
    6 کانال با دقت 10 بیتی
    مبدل 6 کانال آنالوگ به دیجیتال (در بسته PDIP)
    4 کانال با دقت 10 بیت
    2 کانال با دقت 8 بیت
    رابط سریال 2 سیم بایت گرا
    سریال USART قابل برنامه ریزی
    رابط سریال SPI (Master/Slave)
    تایمر نگهبان قابل برنامه ریزی با نوسانگر داخلی جداگانه
    مقایسه کننده آنالوگ داخلی

    عملکردهای ویژه میکروکنترلر
    تنظیم مجدد برق و آشکارساز ولتاژ کاهش قابل برنامه ریزی
    اسیلاتور RC کالیبره شده داخلی
    منابع وقفه داخلی و خارجی
    پنج حالت کم مصرف: Idle، Power-Save، Power-down، Standby و کاهش نویز ADC

    پین ها و بسته های ورودی/خروجی
    23 خط ورودی/خروجی قابل برنامه ریزی
    بسته PDIP 28 لید، بسته TQFP 32 سرب و بسته MLF 32 سرب

    ولتاژهای کاری
    2.7 - 5.5 ولت (ATmega8L)
    4.5 - 5.5 ولت (ATmega8)

    فرکانس کاری
    0 - 8 مگاهرتز (ATmega8L)
    0 - 16 مگاهرتز (ATmega8)

    تفاوت بین ATMEGA16 و 8
    16 کیلوبایت فلش خود برنامه ریزی درون سیستمی

    رابط JTAG (سازگار با IEEE 1149.1)
    قابلیت اسکن محیطی مطابق با استاندارد JTAG
    پشتیبانی از اشکال زدایی درون خطی پیشرفته
    برنامه نویسی از طریق رابط JTAG: فلش، حافظه EEPROM، جامپرها و بیت های قفل

    چهار کانال PWM / PWM

    مبدل 8 کانال 10 بیتی A/D
    8 کانال نامتعادل
    7 کانال دیفرانسیل (فقط بسته TQFP)
    2x کانال دیفرانسیل با بهره قابل برنامه ریزی 1x، 10x یا 200x (فقط بسته TQFP)

    شش حالت خاموشی: Idle، Power-Save، Power-down، Standby، Extended Standby و کاهش نویز ADC

    32 خط ورودی/خروجی قابل برنامه ریزی

    بسته PDIP 40 لید و بسته TQFP 44 سرب

    AtmelStudio

    اگر تازه شروع به کار کرده اید، باید برنامه AtmelStudio را دانلود و نصب کنید صفحه رسمی atmel.com
    پس از نصب برنامه AtmelStudio می توانید شروع به ایجاد پروژه کنید.
    پروژه- این برنامه شماست که بعد از کامپایل آن را در حافظه میکروکنترلر می نویسید، اشکال زدایی و فلش می کنید.

    برای ایجاد یک پروژه، باید برنامه را باز کنید، یک صفحه نمایش ظاهر می شود،

    و صفحه ایجاد پروژه باز می شود

    برای ایجاد یک پروژه جدید، بر روی آن کلیک کنید پروژه جدید...
    در این حالت، پنجره جدیدی باز می شود که در آن می توانید زبان برنامه نویسی، نام پروژه، مکان آن، نام بسته به همراه فایل های پروژه و امکان ایجاد دایرکتوری برای استفاده بیشتر در پروژه های متقابل دیگر را انتخاب کنید. . برای ایجاد پروژه ای که در آن در اسمبلر برنامه نویسی می کنیم، باید انتخاب کنید - مونتاژ کننده، سپس نام پروژه، مکان آن را تغییر داده و انتخاب کنید خوب.

    پنجره زیر ظاهر می شود

    انتخاب کنید megaAVR، 8 بیتیو میکروکنترلر مورد نیاز خود را انتخاب کرده ایم ATmega8.لیستی از دستگاه هایی که با این میکروکنترلر کار می کنند در سمت راست صفحه نمایش ظاهر می شود که می توانیم یکی از آنها را وصل کنیم. انتخاب کنید خوب.

    صفحه ویرایشگر متن ظاهر می شود و به شما امکان می دهد برنامه را ویرایش و اشکال زدایی کنید. در حالی که صفحه تمیز است، زمان و تاریخ ایجاد و نام فایل پروژه، نام کاربری مشخص شده است. بخور پنجره اضافیدستگاه های ورودی/خروجی، پنجره گزارش کامپایل برنامه. حالا ما


    ما می توانیم در اسمبلر برنامه ریزی کنیم.
    به طور مشابه، پروژه ای برای برنامه نویسی به زبان C ایجاد می شود.

    برنامه نویسی میکروکنترلر

    معرفی

    بخش 2. محیط های برنامه نویسی. نمودارهای اتصال میکروکنترلر

    بخش 3. اجرای عملی برنامه بر روی میکروکنترلر

    فهرست منابع استفاده شده

    معرفی

    مرتبط بودن موضوعمیکروکنترلرها در تمام حوزه های زندگی انسان، دستگاه هایی که اطراف آن را احاطه کرده اند، استفاده می شود. اتصال آسان و بزرگ عملکرد. با کمک برنامه نویسی میکروکنترلر می توان بسیاری از مشکلات عملی فناوری سخت افزار را حل کرد.

    هدف کار. بر اساس یک مثال عملی، ویژگی های سودمند استفاده از میکروکنترلرها، نیاز به پیاده سازی آنها در دستگاه های مختلف.

    می توان فرض کرد که میکروکنترلر (MC) یک کامپیوتر است که در یک ریزمدار واحد قرار دارد. از این رو ویژگی های اصلی جذاب آن: ابعاد کوچک. عملکرد بالا، قابلیت اطمینان و توانایی سازگاری برای انجام کارهای مختلف.

    میکروکنترلر به علاوه CPU(CPU) حاوی حافظه و دستگاه های ورودی/خروجی متعددی است: مبدل های آنالوگ به دیجیتال، کانال های انتقال اطلاعات سریال و موازی، تایمرهای بلادرنگ، مدولاتورهای پهنای پالس (PWM)، مولدهای پالس قابل برنامه ریزی و غیره. هدف اصلی آن استفاده در سیستم های کنترل خودکار ساخته شده در طیف گسترده ای از دستگاه ها است: کارت های اعتباری، دوربین ها، تلفن های همراه، استریو، تلویزیون، VCR و دوربین فیلمبرداری، ماشین لباسشویی، اجاق مایکروویو، سیستم دزدگیر، سیستم های جرقه زنی برای موتورهای بنزینی، موتورهای الکتریکی لوکوموتیو، راکتورهای هسته ای و بسیاری موارد دیگر. سیستم های کنترل جاسازی شده به چنان پدیده ای انبوه تبدیل شده اند که در واقع شاخه جدیدی از اقتصاد به نام EmbeddedSystems (سیستم های تعبیه شده) شکل گرفته است.

    ATMEL MC ها که عملکرد بسیار خوبی دارند، بسیار گسترده هستند.

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

    در عین حال، توجه کمی در ادبیات به مسائل آموزش برنامه نویسی برخی از میکروکنترلرهای ارزان قیمت، در ترکیب با محرک های واقعی، شده است.

    توسعه یک طرح برنامه نویس، که با سادگی، وضوح و هزینه کم مشخص می شود، هم برای برنامه نویسی کریستال ها و هم برای آموزش بصری طیف گسترده ای از کاربران در اصول برنامه نویسی MC ضروری می شود.

    بخش 1. هدف و دامنه، معماری آنها

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

    رایج ترین دستگاه های تعبیه شده شامل دستگاه های حافظه و پورت های ورودی/خروجی (I/O)، رابط های ارتباطی، تایمرها، ساعت های سیستم هستند. دستگاه های حافظه شامل حافظه دسترسی تصادفی (RAM)، حافظه فقط خواندنی (ROM)، رام قابل برنامه ریزی مجدد (EPROM)، رام قابل برنامه ریزی مجدد الکتریکی (EEPROM) می باشد. تایمرها هم شامل ساعت واقعی و هم تایمرهای وقفه هستند. امکانات ورودی/خروجی شامل پورت های سریالاتصالات، پورت های موازی (خطوط I/O)، مبدل های آنالوگ به دیجیتال (A/D)، مبدل های دیجیتال به آنالوگ (D/A)، درایورهای نمایشگر کریستال مایع (LCD)، یا نمایشگر فلورسنت خلاء (VFD) رانندگان دستگاه های تعبیه شده قابل اعتمادتر هستند زیرا به مدارهای الکتریکی خارجی نیاز ندارند.

    برخلاف میکروکنترلر، کنترلر معمولاً بردی نامیده می شود که بر اساس یک میکروکنترلر ساخته شده است، اما اغلب در هنگام استفاده از عبارت میکروکنترلر، از نام اختصاری این دستگاه استفاده می شود و برای سادگی، پیشوند میکرو را کنار می گذارند. همچنین، هنگام اشاره به میکروکنترلرها، می توانید کلمات "chip" یا "microchip"، "crystal" (بیشتر میکروکنترلرها بر روی یک کریستال سیلیکونی ساخته می شوند)، اختصارات MK یا از میکروکنترلر انگلیسی - MC را پیدا کنید.

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

    میکروکنترلرها را می توان در تعداد زیادی از صنایع مدرن و لوازم خانگی: ماشین آلات، ماشین، تلفن، تلویزیون، یخچال، ماشین های لباسشویی. و حتی قهوه ساز. سازندگان میکروکنترلرها عبارتند از: اینتل، موتورولا، هیتاچی، میکروچیپ، اتمل، فیلیپس، تگزاس اینسترومنتز، فناوری‌های Infineon (گروه نیمه هادی زیمنس سابق) و بسیاری دیگر. برای تولید ریز مدارهای مدرن به اتاق های فوق تمیز نیاز است.

    اصلی ویژگی طبقه بندیمیکروکنترلرها عمق بیتی از داده های پردازش شده توسط واحد منطق حسابی (ALU) است. بر این اساس آنها به 4-، 8-، 16-، 32- و 64 بیتی تقسیم می شوند. امروزه بیشترین سهم از بازار جهانی میکروکنترلرها متعلق به دستگاه های هشت بیتی است (حدود 50 درصد از نظر ارزش). پس از آنها میکروکنترلرهای 16 بیتی و DSP (DSP - Digital Signal Processor - Digital پردازنده سیگنالتمرکز بر استفاده در سیستم های پردازش سیگنال (هر یک از گروه ها تقریباً 20٪ از بازار را اشغال می کنند). در هر گروه، میکروکنترلرها به دستگاه های CISC و RISC تقسیم می شوند. پرتعدادترین گروه میکروکنترلرهای CISC هستند، اما در سال های اخیر روند واضحی به سمت افزایش سهم معماری RISC در میان تراشه های جدید مشاهده شده است.

    فرکانس ساعت یا به طور دقیق تر سرعت اتوبوس تعیین می کند که در واحد زمان چند محاسبه می تواند انجام شود. به طور کلی عملکرد یک میکروکنترلر و مصرف انرژی آن با افزایش فرکانس کلاک افزایش می یابد. عملکرد میکروکنترلر در MIPS (میلیون دستورالعمل در ثانیه - یک میلیون دستورالعمل در ثانیه) اندازه گیری می شود.

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

    بسته به هزینه و ابعاد دستگاهی که نیاز به کنترل دارد، الزامات مربوط به کنترلر نیز تعیین می شود. اگر شیء کنترل ده ها متر را در منطقه اشغال کند، مانند مبادلات تلفنی خودکار، ایستگاه های پایه سیستم های سلولیارتباطات یا خطوط رله رادیوییارتباطات، سپس رایانه های جهانی می توانند به عنوان کنترل کننده استفاده شوند. در این مورد، کنترل را می توان از طریق پورت های داخلی کامپیوتر (LPT، COM، USB یا اترنت) انجام داد. در چنین کامپیوترهایی وقتی برق روشن می شود وارد می شود برنامه کنترل، که کامپیوتر جهانی را به یک کنترلر تبدیل می کند.

    استفاده از یک کامپیوتر جهانی به عنوان یک کنترل کننده امکان توسعه سریع سیستم های ارتباطی جدید، ارتقاء آسان آنها (با تغییر برنامه) و همچنین استفاده از واحدهای انبوه (و در نتیجه ارزان) آماده را ممکن می سازد.

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

    تصمیم گرفتم این مقاله (یا بهتر است بگوییم یک سری مقاله ...) را به میکروکنترلرهای Atmel اختصاص دهم. البته این موضوع هک شده است... اما! من از تجربه خودم می دانم که دانستن حقیقت در این میان بسیار بسیار دشوار است، متاسفم، BADDACK! بنابراین، تصمیم گرفتم حداقل کمی شفافیت را در ذهن کسانی که مشتاق شناختن این جانور وحشتناک به نام "میکروکنترلر" هستند، بیاورم.

    بنابراین، هدف این مقاله شرح و در صورت امکان، نشان دادن کل فرآیند ایجاد یک دستگاه مبتنی بر میکروکنترلر از ابتدا است. یعنی از یک ایده (به عنوان مثال، ما تصمیم گرفتیم یک فلاشر سال نو، مشابه آنچه توسط محترم توضیح داده شده است، جمع آوری کنیم. alx32در مقاله ...) قبل از تجسم در غده. البته، دور زدن تمام مراحل میانی: تنظیم یک مشکل، انتخاب MC، انتخاب یک مهار، فرموله کردن یک الگوریتم، نوشتن برنامه، اشکال زدایی، ایجاد یک برد، و، که مدت ها انتظارش را می کشید، راه اندازی !!!

    به روز رسانی: فایل ها اضافه شده است.بنابراین، وظیفه: باید دستگاهی بسازیم که بتواند به ترتیب خاصی روشن شود (بگذارید به نوبت باشد)، تعداد N-امین ال ای دی (بگذارید 8 قطعه باشد).
    (این برای شروع……..)


    حالا می توانید برنامه نویسی را شروع کنید. شما می توانید در هر چیزی بنویسید، اما برای مبتدیان به شما توصیه می کنم زبان را ترجیح دهید سی، زیرا برنامه نویسی ساده تر و واضح تر است. من شخصا از کامپایلر استفاده می کنم کد ویژن AVR(در آرشیو فایل موجود است)، لیست های بیشتری از برنامه ها به طور خاص برای این کامپایلر ارائه خواهد شد.

    در مورد الگوریتم تصمیم بگیرید. باید یکی از خروجی های MK را بعد از مدت زمان مشخصی روشن کنیم.

    شما می توانید آن را به روش های مختلف روشن/خاموش کنید:
    - مقادیر را به هر خروجی به طور جداگانه اختصاص دهید.
    - مقادیر تمام خروجی ها را به یکباره ثبت کنید.

    مقادیر (توالی) را می توان به دست آورد:
    - با تایپ تمام دستورات به صورت دستی.
    - از یک آرایه؛
    - روش ریاضی

    فاصله زمانی قابل تنظیم است:
    - توابع تاخیر (تاخیر)؛
    - از طریق یک تایمر

    بیایید همه این روش ها را آزمایش کنیم. اما ابتدا باید آماده شوید ...

    برای ایجاد یک برنامه خالی، از مولد کد داخلی استفاده می کنیم CVAVR. برای انجام این کار، برنامه را اجرا کنید، فشار دهید فایل -> جدید، در پنجره باز شده را انتخاب کنید "پروژه"و کلیک کنید خوب. سوال "از یک تولید کننده کد استفاده کنید؟"ما پاسخ می دهیم "بله".
    پنجره مولد کد ظاهر می شود. در آن نوع MK و آن را انتخاب می کنیم فرکانس ساعت، بقیه را همانطور که هست بگذارید:


    بعد، به برگه بروید پورت هاو آنجا در "PortB"و موارد زیر را قرار دهید:


    بنابراین ما تمام پین های پورت را تعریف کرده ایم ببه عنوان خروجی، و صفر به این معنی است که هنگامی که برق روشن است، آنها به یک منطقی تنظیم می شوند. 0 ".
    ما به بقیه ویژگی ها نیاز نداریم.

    کلیک "فایل -> ایجاد، ذخیره و خروج"، محل ذخیره فایل های پروژه را انتخاب کنید و پنجره ای را با کد ایجاد شده توسط مولد ببینید.

    حالا بیایید کد خود را وارد برنامه کنیم.
    ساده ترین گزینه پیاده سازی (اگرچه از نظر برنامه نویسی زیبا نیست) نوشتن مقادیر هر خروجی و انجام تاخیرها از طریق تابع است. تاخیر انداختن.

    delay_ms( ایکس); - تاخیر برای ایکس میلی ثانیه

    تاخیر_ما( ایکس); - تاخیر برای ایکس میکروثانیه

    PORTB- بندری که با آن کار می کنیم.

    PORTB. ایکس - درخواست تجدید نظر برای نتیجه گیری ایکس بندر ب

    خطوط زیر را در انتهای متن پیدا کنید


    این چرخه بی پایان(یعنی همیشه در حالی که برق روشن است اجرا می شود) برنامه ما. همه چیز در مقابل او یک فرمان است از پیش تنظیممیکروکنترلر خطوطی که با “//” - نظرات، آنها همچنین گاهی اوقات برای خواندن مفید هستند.

    قطعه حذف شده مجله ما بر اساس کمک های مالی خوانندگان وجود دارد. نسخه کامل این مقاله فقط در دسترس است


    روی دکمه کلیک کنید پروژه را بسازید

    (در نوار ابزار).

    فحش دادن؟
    و درسته! کامپایلر عملکرد را نمی داند delay_ms()، بنابراین باید فایلی که این تابع در آن توضیح داده شده است را مشخص کنید.
    برای این کار در همان ابتدای متن برنامه باید خط #include را وارد کنید (اینجا نقطه ویرگوللازم نیست!)
    تقریباً به این صورت:

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

    اما صبر کنید، برای گرفتن آهن لحیم عجله نکنید... ما در حال یادگیری برنامه نویسی هستیم، نه لحیم کاری!

    به همین دلیل است که من پیشنهاد می کنم برنامه ما را در حالت مجازی آزمایش کنیم، یعنی در چنین محصول فوق العاده و محبوبی از Labcenter Electronics - Proteus VSMدر آنجا می توانید کاملاً هر مداری را شبیه سازی کنید (حتی مدارهای اولیه لاپلاس نیز وجود دارد!). می توانید آن را به همراه فایل های پروژه در آرشیو ضمیمه قرار دهید. درست است، نسخه کاملاً کج نیست، بنابراین ذخیره کار نمی کند. در مقاله ای جداگانه خواهم گفت که با آن چه باید کرد.

    پس بیایید شروع کنیم داعش(محیط توسعه نمودارهای مدار). در این پنجره، دکمه P را فشار دهید.

    در صف "کلید واژه ها"وارد “attiny2313”و در سمت راست دریافت می کنیم:


    انتخاب زیادی وجود ندارد، بنابراین روی این خط تنها دوبار کلیک می کنیم و در سمت چپ در پنجره اصلی می بینیم:


    این بدان معنی است که عنصر اضافه شده است.

    حالا وارد فیلد شوید "کلید واژه ها"کلمات LED-قرمزو "RES". یک مقاومت و یک LED به پروژه اضافه کنید و انتخابگر المنت را ببندید.

    تلاش برای ساخت یک شماتیک(نتیجه تنظیم مجددحتما به + 5 ولت وصل شوید وگرنه کار نمی کند! و این نیز در زندگی مطلوب است!)

    در اینجا یک اشاره کوچک است:

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

    جمع آوری شده؟ امیدوارم به خود، عزیزان و اشیای اطراف آسیب نرسانند.

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

    وقتی مدار مونتاژ شد، می توانید MK مجازی ما را فلش کنید. برای این کار روی آن دوبار کلیک کنید و پنجره را ببینید.

    سلام به همه. همانطور که قول داده بودیم از امروز شروع به مطالعه می کنیم برنامه نویسی AVRمیکروکنترلرها (به عنوان مثال Atmega8). برای همان خوانندگانی که علاقه مند به برنامه نویسی برد آردوینو هستند، نگران نباشید، مقالات در این زمینه ادامه خواهد داشت. .

    می توانید یک سوال منطقی بپرسید که چرا از تعدادی میکروکنترلر دیگر (از این پس - MK) دقیقاً MK AVR. چند دلیل برای این وجود دارد:

    • MK AVRدر دسترس جهانی؛
    • آنها قیمت نسبتا پایینی دارند.
    • شما می توانید بسیاری را در اینترنت پیدا کنید برنامه های رایگان، که هنگام کار با داده های MC به شما کمک می کند.
    • علاوه بر این، مقالات و انجمن های مکتوب زیادی وجود دارد که می توانید در مورد داده ها سؤال بپرسید. MK AVR.

    همانطور که قبلاً گفتم، ما از MK به عنوان موضوع آزمون استفاده خواهیم کرد Atmega8. چرا او؟

    این میکروکنترلر دارای 3 پورت ورودی/خروجی است. علاوه بر این، بسیار ارزان است.

    توسط پورت ها، آنها گذرگاه های داده ای را که می توانند در دو جهت مخالف (یعنی برای خروجی و ورودی) کار کنند، درک می کنند.

    در Atmega8 3 پورت. پورت B از 8 پین (با شماره های 0،1،2،3،4،5،6،7) تشکیل شده است. پورت C از 7 پین (با شماره 0،1،2،3،4،5،6) تشکیل شده است. پورت D از 8 پین (با شماره 0،1،2،3،4،5،6،7) تشکیل شده است.

    شما می توانید میکروکنترلر را از 3.3 و 5 ولت تغذیه کنید. با ولتاژ تغذیه 5 ولت حداکثر فرکانسفرکانس کلاک 16 مگاهرتز است و با ولتاژ تغذیه 3.3 ولت، حداکثر فرکانس کلاک 8 مگاهرتز است. در حال حاضر، بیایید در مورد فرکانس های کلاک خود را خسته نکنیم.

    برق به پایه 7 تامین می شود و زمین به پایه 8 متصل می شود.

    دانلود به صورت رایگان. دانلود، نصب، راه اندازی شد 🙂

    اولین کاری که باید با Atmel Studio شروع کرد، ایجاد یک پروژه است.

    File -> new -> project را انتخاب کنید.

    یک پنجره انتخاب باز می شود. پوشه "Browse" را انتخاب کنید، که در آن پروژه های نوشته شده را ذخیره می کنیم. از قبل یک پوشه برای پروژه ها ایجاد کرد.

    ما یک نام به پروژه اختصاص می دهیم، در مورد من lesson_avr_1

    به چک باکس "ایجاد دایرکتوری برای راه حل" توجه کنید. اگر چک باکس تیک خورده باشد، در پوشه ای که برای ذخیره پروژه ها انتخاب کرده ایم، یک پوشه جداگانه برای پروژه فعلی ایجاد می شود.

    این همه است - پروژه ایجاد شده است.

    بیایید پروژه ای را که ایجاد کردیم راه اندازی کنیم. Projest -> lesson_avr_1 خواص یا (alt+F7) را فشار دهید

    به تب Tool بروید. یک شبیه ساز انتخاب کنید اقداماتی که ما انجام داده ایم، اشکال زدایی کد نوشته شده را ممکن می سازد. ما تغییرات را ذخیره می کنیم. می توانید تغییرات را در یک فایل (جاری) یا در تمام فایل های پروژه به طور همزمان ذخیره کنید. تنظیمات را ببندید.